As I continue to work in the business of developing software I wonder if it is really ever possible to collect software requirements in any organized fashion. The IT industry has been trying for 3+ decades to define a manageable, usable process for gathering software requirements. In the past decade however some have departed from the idea of gathering requirements as a precursor to developing the software and have opted for the Agile software development methodology. Ok so that is a bit misleading, just enough requirements are gathered to create the system in a step-wise manner building the system in small, usable pieces and then getting the next set of requirements to build the next piece.
But the same problem exists no matter how you decide to get the requirements. You still must get the user of your potential system to tell you what they need and how they plan to use the software. That's like asking my 5 year old how she plans to learn to read. She knows she wants to read and that reading is the next step in her education but she no more knows how she plans to learn to read than a user knows how she plans to use a proposed software system. A user can tell you they want a button and they want the button to calculate a percentage but there is much more that is needed, such as context, inputs, calculation rules, etc. Finding someone that can synthesize the "what" with the "context" is rare. So you are often left with having to make an educated guess. Would you want to live in a home where the builder had to make an educated guess on the placement of load barring supports? I suspect not and I don't think users appreciate educated guesses anymore than you would.
Unfortunately I must end without really wrapping up. I don't have the solution or silver bullet to this industry-wide problem. I can offer you this. Don't surrender! Keep searching for novel and innovative ways to extract requirements from users. Document what you know and share it with others. Don't keep your ideas a secret, we'd all like to benefit from your experience. When something works, shout it from the highest mountain. When something doesn't work do the same. Proving that something doesn't work well is just as helpful as proving that it does work. We'll never be perfect but we will evolve this to a point where outcomes are predictable. I don't think you can ask for much more than that.


2 comments:
I keep reading about Agile developement and a customer on site with the developement team. But I have atleast not seen a single company where a single person knows everything about all the requirements. Then what's the point of adding one more layer of one more co-ordinator layer? It can verywell be done by the onsite co-ordinator of the developemnt team...I guess many times the BAs role turn out to be that in a typical development environment.
So I do not agree there is panacea available by the Agile way as well!
Regards
Mani
Shalom! Wanda White . payday loans
Post a Comment