Studies show that a lot of software systems are not aligned with business needs. Sometimes, it is because a few requirements are not implemented. Most of the time, it is because the software system contains features that do not correspond to any real requirement.
The main challenge for a development team is to understand the requirements. Otherwise, the team will develop features that nobody needs. But understand requirements is not easy in business domains always more complex.
Let's take a simple example. On the following diagram, here is the requirement: "Connect the nine dots with four straight lines, without lifting the pencil".
You've got it? Bravo!
If you don't, read the requirements one more time. Take your time. Need some help to find the solution? Click here
Don't worry if you failed to solve the problem. The test is a well known cognitive science puzzle. Most of use are supposed to fail. Why ? Simply because of the way our brain works for problem solving. We interpret the problem statements in the light of our own knowledge and experience. In other words, human reasoning is often biased. So what can we learn from this?
Requirements are hard to understand. And we (our brains) often misinterpret the needs. So it is no surprise that software systems do not always correspond to initial requirements. Agile teams should catch on cognitive science.
Agile approaches foster collaboration between business people and developers throughout the project. When the development team works closely with the customers, requirements are clarified on the fly, during informal discussions. The overall quality of a software system is improved.
In the nine dots square example, it would have been helpful to ask questions about the requirements. You would have discovered early that there is no constraint to keeps lines inside the square. The solution to the puzzle would have been easier to find.