Writing Good Requirements Part1
Why do we have such a hard time writing good requirements? There are a couple of reasons the simple answer is that no one ever showed us how to write good ones. Another is that we don’t think that they are important and so it we just write them to fill in need to have requirements.
For whatever reason that we write bad requirements I think the first place to start in correcting the issue is to have a good understanding of why we need requirements and how they help us. This understanding will give us greater insight to writing good requirements.
I have seen design engineers fight tooth and nail to avoid having to write a requirements specification for something they needed to build. Arguments ranged from it’s a simple thing to its commercial off the shelf to I know what the customer wants. And then I have seen that same engineer meticulously documenting what he wanted in the new custom house that he was building. He was making sure that there was no room for the builder to get it wrong.
You wouldn’t just tell a builder go build me a house without telling them any details would you. I’m sure you are going to tell them things like:
1. How many bedrooms
2. How many levels
3. Do you want a garage
4. How many bathrooms
5. Where you want it built
6. When you want it built
7. How much you have to spend
So why is it that we resist the writing of requirements so much when it comes to our own work products? We are engineers and we just want to build things not have to spend all of that time writing it down. It’s not glamorous the writing of requirements but it is a necessary task. The other thing I see is that most of the engineers that fight the writing requirements don’t understand the bigger picture of what happens to validate or close a contract by verifying those requirements. They have the throw it over the wall syndrome. I build it and then it’s someone else’s problem to sell it off to the customer.
So let’s start with what is a Requirement? A requirement is a need, and a well written requirement will convey that need in a clear, concise and verifiable way to the people that have to meet that need. So lets look at the Need for a minute. We have to ask ourselves is it a Need or a Want and there is a big difference between the two. A need is mandatory feature, capability or function that we must have. A want on the other hand is nice to have and may make the product more friendly or easier to use but if it was not there the product would still fulfill the Need. For example a car needs 4 wheels. The owner wants White Wall tires and chrome rims. Does this mean that we don’t include Wants as requirements? No it just means that we need to understand the difference and make sure that we communicate this difference to control cost and schedule.
Writing good requirements will make everything better in the end.