Saturday, August 6, 2011

Project development golden pentagon

Intro

This article is about the 5 golden principles that lead to success the development of a product.
It also gives pragmatic development tips to streamline the development process.

Golden Pentagon
The 5 major objectives that any software project should fulfill are to deliver a solution that
  • matches business requirements
  • is operationable
  • is within budget
  • is within scheduled timeframe
  • is maintable
Match Business Requirements
Been out of scope is obviously useless. So the closest the better. But which methodology to use???
The IT world is full of acronyms and methodology all in one solution but what I recommand is the following:
  • AVOID RUP!!!
It brings nothing except troubles and an ironical conclusion: if it fails it means that you did not follow the methodology correctly.
  • CHOOSE AGILE
But here again the goal is to produce something and not to be lost within scrums, sprints, backlogs and burndown curves.
So how to concretely describe the business requirements in order fulfill the product owner desires? And how to make those requirement be in line with the Truth (the stuff that will run in production)?
  • CHOOSE FITNESSE
Write stories to describe your business requirements make and exhaustive list of them. Reach the developement contract accord between project owner, developers, analysts, tester, project manager. Since is wiki human readable it is feasible.
Write the correct fixtures to loosely couple your business requirements with the underlying code.
This will bodyguard your development effort with Quality Assurance.
Meanwhile to put that in place there is some learning curve and some fixture development time effort. To easy this part MP provides some ready to use fixtures.

Minuteproject asset:
When working with a Datamodel, MP generates an entire wiki with associated fixtures to make crud operation easy.
Example :
  • you need to illustrate a scenario, in the set up use MP fixtures to reset and populate the database.
  • after couple of features performing a suite of UCs you need to have a sanity check in the database (to check the data is correctly stored). MP generates the Fitnesse fixture for the desired sanity check query materialized in a DB object view.
A specific entry for the MP 'Lazuly' showcase will be put in this blog soon. Stay tuned.

Be operationable
What's the point to develop something that runs properly. This is a wide concept be in the terms of web development is to have a solution that scales properly, does not be to be restarted (no memory leaks), sustain concurrency and responds fast.

Stay within budget
Also obvious and speaking from itself, it is a reality that most project forget and tend to counterbalance by betting on CR (Change request), i.e. anappropiate analysis leading to clumsy UCs raise profitable CRs.
When the analysis tackles with model (Change/enhancement), MP is ready to cope with it with extrem performance (just a couple of seconds) to have your backend aline/online.


Stay within deadlines
What is the interest of releasing after deadlines (or what is the interest of setting dealines if we know from the start there're just virtual?????).
By remove a huge dev burden, MP helps you handle deadline easily. From to 40% to 60% of your developement effort can be handle by MP according the tracks you use.
Write less code.
WRITE ONLY THE CODE YOU NEED.
Do not overcode.



Think future: stay maintable



//this slot is under construction, wait a while for it to be finished... there are some many things to say!!!