The clarity with which you can articulate your requirements will directly affect the depth of response your supplier can give you. With this in mind, I’m going to provide a reusable template that you can use to specify your high level requirements that’s easy to remember, quick to do and will give your supplier a deeper understanding than the clichéd specification scrawled onto a restaurant napkin!
Here’s the template:
As a __________
I want to __________
So that __________
For example a small, online web store selling low volumes of widgets to the public may specify the following high level requirement:
As a store owner
I want to receive an email when a customer submits an order
So that I can print the order, so it’s ready to be filled
Depending on the size of your project, you’re probably going to end up with several dozen of these, so it’s advisable to start with a table:
The reason this template is so effective is that:
– It identifies the roles present in your project. Understanding the different roles builds a picture of the different people that will interact with your solution, the concerns that they have and the actions they are likely to take.
– It provides detail to the abstract. Stating ‘I want an online store’ is open to a wide range of interpretation. Specifying who can do what in your online store is measurable and can therefore be estimated.
– It provides an opportunity for you to review your project within the context of your vision. For every item you should be able to answer the question, ‘How does this contribute to my project vision?’ If the item doesn’t contribute to your vision you’ve either identified a reason to refine your vision, or identified a feature for which the cost to implement should be evaluated against the actual value it brings to your project.
– It provides an opportunity for a third party to review your project within the context of delivering it as a solution. An experienced supplier will be able to review your requirements and discuss recommendations on technical and implementation approaches, highlight items requiring clarity or additional detail (in the above example, how does the customer pay for the order of widgets?)
In essence, to solve a problem you first need to understand it. Following a systematic research approach allows you to establish the facts and expose the underlying goals and tasks which will support the development of a solution that is fundamentally focused on the needs of users.