Requirements Gathering Part 1: It’s challenging, but essential to what we do
Wikipedia defines requirements gathering as ‘the practice of obtaining the requirements of a system from users, customers and other stakeholders.’ A requirement is defined as being the ‘documented need of what a product or service is or does’. To have value or utility it must identify ‘a necessary attribute, capability, characteristic, or quality of a system.’
At first glance gathering requirements looks like a rather tedious process when compared to building dynamic web pages with cutting edge technology. But when American computer scientist Alan Davis wrote about software development, he likened the amount of requirements and specification work you do to choosing an insurance policy: you need enough to ensure you can sleep at night, but not so much that you bankrupt yourself!
Why is this the case? The IT research company, the Standish Group, found that 64% of functionality delivered in software systems is rarely or never used. Therefore, carefully defining exactly what you want and need to deliver is an important exercise in efficiency.
What makes requirements difficult to pin down is that they are locked up in our customers’ minds. There are requirements that they are very much conscious of – but there are also those they don’t think worth mentioning and those they haven’t even dreamed of but would desire nevertheless.
Luckily techniques such as observation, brainstorming and mind-mapping can help us overcome these obstacles. These form part of requirements engineering, which is the process for obtaining high quality requirements. Once they have been gathered, they are analysed for quality, captured using a suitable method, and validated to ensure the finished product can be tested against them later on.
So, although good quality requirements are not the only factor in a successful web site, they form an essential part of the process of realisation.
Future posts on requirements gathering will look at observation, brainstorming and mind-mapping in more detail.
Posted by David Hall