May 25th, 2006

Writing Good Requirements – The Big Ten Rules

logo

Pragmatic Marketing has a training seminar called Requirements That Work. In support of that, they provide a list of 8 characteristics of good requirements. We change one and add two more to round it out to The Big Ten Rules. Combine this with Michael’s ten tips for writing MRDs, and we’ve got a good handle on how to create a great MRD.

Pragmatic’s List (1-8) + Two Three Four More

  1. Necessary Valuable
  2. Concise
  3. Design Free
  4. Attainable
  5. Complete
  6. Consistent
  7. Unambiguous
  8. Verifiable
  9. Atomic
  10. Passionate
  11. Correct
  12. Stylish

Looking at each rule of writing good requirements…

1. Valuable

Updated for 2009

Writing valuable requirements is important.  It doesn’t matter how well your teams execute if they are off building the wrong products / capabilities / features.  The right products and capabilities are the ones that have relevant value.

  • Valuable requirements solve problems in your market.
  • Valuable requirements support your business strategy.
  • Valuable requirements solve problems for your users.
  • Valuable requirements meet your buyers’ criteria.
  • Valuable requirements don’t over-solve the problems.

Valuable Requirements

Pragmatic uses necessary as a criteria of good requirements. We believe that valuable requirements are good requirements. When prioritizing requirements, we should do the must-have requirements first. But other valuable requirements are critically important – even if they aren’t mandatory. Prioritization and release scheduling should stress necessary requirements first, and then the most valuable requirements next.

Requirements that can differentiate our product from the competition are by definition not necessary – or the competition would have done it already.

[Update: Our detailed article on Writing Valuable Requirements ]

2. Concise

Updated for 2009

Concise requirements give your team a useful, easy to read and easy to change understanding of what must be done.  Great requirements exist to do three things:

  1. Identify the problems that need to be solved.
  2. Explain why those problems are worth solving.
  3. Define when those problems are solved.

Concise Requirements

Easy to read and understand. If only it were that easy. For whom is it easy to read? A market requirements document (MRD) is written for several different people on the team. It provides a vision of what problems our product solves. It provides clarification to the implementation team. It also sets expectations with stakeholders. Different people on the team have different domains of expertise – we have to write requirements that are easily understood by all of them.

[Update: Our detailed article on Writing Concise Requirements]

3. Design Free

Updated for 2009

Design-Free requirements are important for two reasons, and hard for two other reasons.

Design-free requirements are hard because you “know what you want” when you should be documenting “why you want it.” Writing design-free requirements can be hard when you don’t trust your development team to “do the right thing” even though it is not your job to design the solution.

Design-Free Requirements

Generally, a requirement should not specifiy any of the implementation choices. From a product manager’s perspective the requirement is the ‘what’ and the spec is the ‘how’. To a system designer or architect or lead developer, the requirement serves as a ‘why’.

[Update: Our detailed article on Writing Design-Free Requirements]

4. Attainable

Updated for 2009

Unless you live in a world filled with unicorns and rainbows, writing realistic requirements is critical. When you set unattainable goals, the best result you can hope for is a frustrated engineering team. Write requirements that are attainable, and your team will surprise you with what they can achieve.

Attainable Requirements

The requirement must be realistically achievable. Barbara and Steve make great points about understanding the cost of implementing something as expressed in the requirements. As we pointed out in our thoughts about good requirements management, there is an optimal tradeoff between costs and benefits for any given company or project. We can formally approach this using the techniques identified for more is better requirements using a Kano framework. In short, the investment must have an ROI that exceeds the opportunity costs by the hurdle rate.

Looking at cost-benefit tradeoffs also supports the argument that valuable should replace necessary.

[Update: Our detailed article on Writing Attainable Requirements]

5. Complete

Updated for 2010

You give your requirements to the engineering team, and they look complete. The team builds your product, you launch it and the market soundly rejects it. Why? Because your requirements weren’t complete – they didn’t actually solve the problem that needed to be solved.

Complete Requirements

Simply put, if the requirement is implented as written, the market need is completely addressed. No additional requirements are required. When writing a specification, we may use decomposition to break individual requirements into more manageable, less abstract criteria.

[Update: Our detailed article on Writing Complete Requirements]

6. Consistent

Updated for 2010

Consistency in writing requirements is important on two levels – strategic and tactical. Tactically, you need to write your requirements with grammatical consistency, so that potentially ambiguous statements will be interpreted similarly. You also need to write requirements that are logically consistent, so that you avoid “impossible” requirements and gaps of unspecified meaning. Strategically, your requirements need to reflect a focus on markets and problems that are consistent with your business objectives and the vision your company is manifesting

Consistent Requirements

Pragmatic Marketing highlights that the requirement must be logically consistent with the other requirements in the document – no overlaps, no contradictions, no duplications. This is certainly the most important point of consistency.

There is also benefit to consistent writing in an MRD. We can use templates to provide a consistent framework, but more importantly the prose needs to be consistent. This consistency makes it easier on the readers.

[Update: Our detailed aricle on Writing Consistent Requirements]

7. Unambiguous

Updated for 2010

Writing unambiguous requirements is about understanding what is written, and what is read. Without a clear understanding of your market, you can’t write unambiguously. Even when you understand your market, you risk writing something that is ambiguous to your readers. Documenting requirements is about communication. Don’t break this rule, or you’ve wasted all the energy you spent understanding your requirements.

Writing Unambiguous Requirements

A great requirement has a single interpretation. A good requirement has a single reasonable interpretation. As part of our development process, we will use listening skills like active listening to make sure that our engineering team understands the requirement we intended to write. The better the requirements, the less expensive and risky this communication process will be. Writing unambiguously is critically important when using outsourcing models that limit our interactions with other team members.

[Update: Our detailed article on Writing Unambiguous Requirements]

8. Verifiable

Updated for 2010

Writing Verifiable Requirements should be a rule that does not need to be written. Everyone reading this has seen or created requirements that can not be verified. The primary reason for writing requirements is to communicate to the team what they need to accomplish. If you can’t verify that what the team delivered is acceptable, neither can the team. This may be the most obvious of the rules of writing requirements – but it is ignored every day.

Verifiable Requirements

We use a process that starts with market requirements, and then decomposes them into software requirement specifications. the market requirements must be written in a way that we can verify that the associated requirements specification will meet the market need.

[Update: Our detailed article on Writing Verifiable Requirements]

9. Atomic

Every requirement should be a single requirement. If we can say “Half of this requirement is implemented” then this needs to be two or more requirements. If a requirement read “Sales reps can manage their client list and generate custom reports” it expresses two atomic ideas (list management and report generation). Those ideas need to be separated

[Update: Our detailed article on Writing Atomic Requirements]

10. Passionate

Nothing great has been born from complacency, lethargy or mediocrity. When we are defining requirements, we must be passionate about what we’re doing. If we’re just going through the motions, it shows up in the writing. If we aren’t excited about a requirement, the problem is either with us or with the requirement. Either way, it won’t inspire the rest of the team to do something great.

[Update: Our detailed article on Writing Passionate Requirements]

11. Correct

[Update: Added 30 Oct 2006]

In addition to all of the analyses above, a requirement must actually further the objective it supports, and must be neccessary to meeting that objective, given a particular approach to solving the problem.

Our detailed article on Writing Correct Requirements.
12. Stylish

[Update: Added 5 Jan 2007]

Style can also be the difference between a well-crafted requirement and one that is hard to read. And style, applied consistently across requirements makes it easier to view them as a whole, and identify gaps and inconsistencies. This ease of comprehension matters when trying to achieve correct, consistent, complete requirements.

Our detailed article on Writing Stylish Requirements.

Summary

There isn’t really anything to summarize – this article is one big summary.

I would like to take a moment to thank everyone who has been subscribing, reading, commenting, and sharing Tyner Blain. We started this site six months ago and I am continually surprised, flattered, and thankful for all of the readers and support we have.

Thank you very much!

Scott

Post to Twitter Post to Facebook

Recommended Reading

Please Rate This Article!

25 Responses to “Writing Good Requirements – The Big Ten Rules”

  1. leathej1 Says:

    Let me propose another: Object-Oriented.
    Here is a great essay by Edward V. Berard that does a much better job than my feeble attempt.

  2. Scott Sehlhorst Says:

    Thanks James! I’ve added a link to his collection of essays to the top of the page, I think other folks will really like it too!

  3. AlanAJ Says:

    Great overview!

    I need to work through the detailed articles and reconcile with my own list of requirem1ent questions. This is a checklist I use to validate a requirement. I have a separate checklist for specifications in general, which covers the more general points like conciseness and unambiguousness.

    At least we agree to put value at the top of the list! Do we agree to judge the merit of all the others using this criterion? To give one example: how much more value does a concise requirement add than a verbose one? My most concise requirements generally lack the immediacy of some of my more verbose ones. And requirements full of redundancy have an interesting characteristic, in my experience: they are less likely to be completely wrong!

  4. Scott Sehlhorst Says:

    Thanks Alan, both for reading and commenting!

    The original list order comes from pragmatic marketing’s list of eight characteristics. That said, I think valuable is the most important – no reason to waste time on requirements without value. Correctness is the next most important characteristic – if we get it wrong, it doesn’t matter how well it is understood. I would follow that with unambiguous – even if we document the right stuff, and write it down accurately, it is worthless if our writing is misunderstood.

    I would follow those with completeness and consistency, then attainable and verifiable. Then design-free, atomic, passionate, concise, and stylish.

    I break it down into “stuff we must do to have a chance” and “stuff that makes us better / more efficient.”

    How would you (or anyone else) prioritize these elements relative to one another?

  5. AlanAJ Says:

    Valuable first, of course!

    Then, of similar importance: attainable, verifiable and complete.

    Then: unambiguous and consistent.

    Then: correct!!

    Then: design freee and atomic.

    Then: passionate and stylish

    Finally: concise.

    So… we agree about the most important and the least important, but we diverge interestingly in between.

    I rank attainable more highly because it is closely linked to valuable: What use is a hugely valuable and otherwise “perfect” requirement if it is simply unattainable?

    I rank correctness less highly because much of the value of correctness is delivered by the higher priority properties. The definition above says the requirement “must actually further the objective it supports”, for example. In my view, the proposition that the requirement is valuable ensures this. So it is valuable, attainable, verifiable, complete, unambiguous and consistent… but also incorrect… Can’t be very incorrect, it seems to me!

  6. Scott Sehlhorst Says:

    Thanks very much, Alan.

    On attainable vs. valuable. A bit of a catch-22. It must be both. But I think it is easier to redefine a valuable requirement (perhaps eroding the value) until it is attainable, than it it is to redefine an attainable requirement until it is valuable.

    Good point about correctness versus value. I think about it in terms of context. A valuable goal might have been for the USA to “beat” the Soviets in the geopolitical realm. Two requirements may have been “be first to the moon” and “devalue their ICBMs.” Those requirements embody some ideation – a strategy towards achieving the objective. Both have a ‘value’ and both have ‘correctness’ – but as you say, those notions are intertwined.

    Really fun to think about it with this level of rigor, especially when revisiting (for me, anyway) these earlier articles. Thanks!

  7. Scott Sehlhorst Says:

    @ValWorkman plus the Rules of Writing Good Requirements http://tinyurl.com/c5xfzb #busanalyst #prodmgmt

  8. Byron Workman Says:

    RT @sehlhorst: Rules of Writing Good Requirements http://tinyurl.com/c5xfzb #RQCoP,#PMV

  9. Christine Crandell Says:

    RT ByronWorkman RT @sehlhorst: Rules of Writing Good Requirements http://tinyurl.com/c5xfzb #RQCoP,#PMV

  10. Paul Philp Says:

    Writing Design Free Requirement – http://bit.ly/1sxvrV #pmv

  11. Val Workman Says:

    RT @pphilp: Writing Design Free Requirement – http://bit.ly/1sxvrV

  12. Rafael M. Lopes Says:

    By @sehlhorst: Writing Good Requirements – The Big Ten Rules http://bit.ly/13Y7t0

  13. Scott Sehlhorst Says:

    RT @RafaelMLopes: By @sehlhorst: Writing Good Requirements – The Big Ten Rules http://bit.ly/13Y7t0 [tnx!] #baot

  14. Anna Evans Says:

    Writing requirements-Tyler Blanes’ 10 Big Rules #prodmgmt http://bit.ly/1sxvrV

  15. Delicious Over 50 Says:

    Writing Good Requirements – The Big Ten Rules | Tyner Blain http://bit.ly/5h0UyP requirements userstories good agile howto tips

  16. wida Says:

    Writing good requirement, couldn't write it better http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/

  17. Javier Sáenz Says:

    Writing good requirements – 10 rules and more of Tyner Blain http://icio.us/pa3q01

  18. Scott Sehlhorst Says:

    Hey all – I just updated with links to the latest articles revisiting writing complete requirements and writing consistent requirements.

    As I continue to revisit the individual “rules” and update the references from this article, I will add comments here for those who are subscribed – making it easier to keep track of the updates, as they are spread out, often several weeks apart.

    Thanks to all who are reading / following / tweeting!
    Scott (@sehlhorst on Twitter)

  19. Ron Geens Says:

    RT @sehlhorst: Writing Good Requirements – The Big Ten Rules http://bit.ly/buaKWJ

  20. coombes Says:

    http://bit.ly/aVYJNx – Writing good (marketing) requirements. Essential reading for me at the moment.

  21. Sandeep Bhat Says:

    RT @coombes: http://bit.ly/aVYJNx – Writing good (marketing) requirements. Essential reading for me at the moment.

  22. Vlad Nemes Says:

    Writing Good Requirements – The Big Ten Rules: Shared by vlad

    differentiating ourselves from the competition is… http://bit.ly/aY7F2j

  23. brainmates Says:

    [ACT] Reading @sehlhorst http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/ – will be applying his rules

  24. vishal sodani Says:

    http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/

  25. David Hawks Says:

    Stumbled across a nice set of articles on writing good requirements by @sehlhorst http://bit.ly/1sxvrV

Join The Discussion