Over on the iRise blog, there’s a great article about measuring the hidden return on investment (ROI) of good requirements definition. David Walker speaks of how companies are focusing on “reduction in rework” and points out that the after-effect of reducing rework is accelerated time to market, which has several significant (monetary) benefits. David also points out:
Rework isn’t the only place to look for time-to-market advantages. Focusing on requirements definition not only reduces re-work – it also reduces WORK work. At an agile development conference in 2006, Mary Poppendiek (author of Lean Software Development: An Agile Toolkit for Software Development Managers) shared that 45% of code that’s written is NEVER EXECUTED! Another 20% is only rarely executed. It is however coded, documented, tested, trained, supported, maintained, etc. All of which adsorbs resources – and adds time & cost – to projects. Getting the requirements right interactively and up-front with end users helps make sure that unnecessary functionality never gets built. What if your development teams could get 45% additional bandwidth simply by not working on stuff that will never be used? Less stuff to build & test means, you guessed it, shortened time to market.
Even though I currently work in the government sector where time to market isn’t relevant (or at least not paid much attention), I can sure relate to the frustration of rework. We seem to be reinventing the wheel almost every day, as one group goes out to accomplish some great goal that another group has been working on for months.
How do you develop good requirements?
Rapid prototyping and user testing is key. Understanding your customers and their goals and motivations is critical. Sound business analysis focusing on the right metrics, direct user interaction, and a focus on usability from the start will give successful results. Using rapid prototyping/requirements developments tools should help as well.
Of course, good vision, communication and organizational structure are going to be critical. Make sure you have all your people marching towards the same goal and everyone knows what the other groups are doing, so you don’t have a whole lot of re-solving the same old problem going on. That’s the kind of rework we don’t much talk about or measure, but whenever you have a fairly large organization, it happens.