The imaginative software
The very nature of software is imaginative.
The customer has an idea of what they want as feature in their solutions, this picture gets into the mind of the analyst who understands the requirements, then comes the Designer who has another version of what is needed, then the programmer, the tester, the doc writer comes. Each of them has its own imagination of what is needed. These gaps in understanding have been a subject of discussion for long and have even resulted in some very famous cartoons.
Understanding what is going in the client’s mind for the upcoming project is quite tricky unless you hire psychiatrists who can do some therapy sessions with them. And may be you’ll need to extend our contract with the same consultant to help Programmers and Testers stayed on that vision.
On the other side, this might be good that each one perceives things in their own way. This adds more perspectives to the project.
So how we can bridge this gap? One way is to go for extended documentation as suggested by organizations like IEEE. The problem with that approach is that they assume that requirements once finalized will stay the same and have a thought like:
“Walking on water and developing software from a specification are easy if
both are frozen.”
— Edward V Berard
But those days are gone and we live in a very changing world where even customer changes mind in a few months. Here comes the Agile to our rescue by suggesting to solve it through more communication between these key figures and thus calling in the ‘Three Amigos’ mantra. The more you spend time with each other, the more you start understanding each other. And note that this understanding improves as you discuss more. So if we can have these discussions going among the Client (or business domain people), the Programmer and the Tester such that they become friends, we have a much better chance of coming up with what is actually needed.
Have you observed any gaps in the projects you have worked? Do you have other ideas to improve this gap?