A stitch in time saves nine

Importance of clear, unambiguous requirements cannot be understated. A clear well understood requirement is several times quicker to deliver than long vague requirement.

Defining clear requirements needs commitment and discipline. Often we jump to developing a solution before understanding the requirement; sometime we incorrectly label this as agile approach.

Confusion of goals and perfection of means seems, in my opinion, to characterize our age. – Albert Einstein

What a profound statement and is still true in this modern age. When we jump to develop a solution before defining the requirement we tend to think of various “means” rather than goals.

Initially this may appear to be like a great approach. Stakeholders can get excited about it and feel they do not have to think hard about the the real requirements and the development team would loves it as they could get started right away.

This honeymoon period tends to last for several iterations, reviews are fun and cool new things (“means“) are discussed and presented. Stakeholders, and Development team loves the review meetings. There is feedback with even new ideas and most of them slightly change the goal post. It all goes well for some time then it starts getting awkward, review meetings are no longer fun. Stakeholders feel frustrated as they are not getting what they require, development team wonder why stakeholders keep changing their mind and adding new things in project.

“Confusion of Goals” causes review meetings to end with a new list of superficial items which gives a false sense of comfort of reaching towards the goal. This continues for few if not several sprints and ultimately causes the project to overrun and underdeliver and at times could lead to a failure.

The aim of this article is not to criticise any development methodology which in itself is not a problem, as it is the lack of clarity of “goals” and clear requirements that cause the failure. It is important to keep an eye on the key goals and it largely may not matter which development methodology is adopted. Agile development is like a guided missile chasing a moving target but very often it is forgotten that the “target (goal)” even though moving is the same thing that the missile is chasing.

These are the some of the causes and effects of unclear requirements in a project. The next article in the series will attempt to discuss the key principles and best practice to developing clear, unambiguous requirements.