March 11th, 2014 by Adam Sandman
A CIO magazine study concluded, “Analysts report that as many as 71 percent of software projects that fail do so because of poor requirements management” The unfortunate truth is that managers of many of those projects probably believed that they were doing good requirements management.
Although it is rarely stated so simply, the vast majority of software and systems project failures are due in large part to insufficient importance being placed on Requirements Engineering. In September 1999, NASA's $125 million Mars Climate Orbiter probe was destroyed when it tried to enter orbit 100 kilometres too close to Mars. The now notorious error was due to incompatible specifications; the attitude-control system was specified using imperial units but its navigation software used metric units. It cannot be stressed enough that getting requirements right and using them to the fullest extent throughout the project is critical to success. When reviewing reports of project failure, factors such as 'Inadequate understanding of user needs', 'Unclear scope' and 'Changing requirements' can be frequently found, all of which are core aspects of RE or Requirements Management (RM) as it is sometimes called.
A Google search for 'requirements management' results in almost 350 million hits, a testament to the extensive coverage the discipline is now receiving and the work still to be done in providing education in this area.
Even as projects increasingly adopt Agile processes, requirements management remains key. Agile projects may encourage the definition of user needs and wants in different ways than traditional processes, with user stories for example. But it is critical that stories accurately reflect the needs of the stakeholders and allocation of stories to tasks is still performed. Essentially, the stories are the requirements in a Scrum methodology and full access to them is essential to ensure that all team members are working closely together towards a common goal, which is what Agile is all about. Agile projects also promote the fleshing out of requirements as the project progresses rather than all at the beginning, but this does not affect the principles we are addressing here.