Make Your Requirements Atomic!

Atomic symbol in bookI have to admit that I have a rather eclectic music collection, with tracks covering almost every conceivable genre. Every time I hit the “Shuffle” button on my MP3 player, there’s a tense moment of jeopardy.

Will the next track be by an epic rock legend, or will it be a remix of some trashy 90’s pop song?

The mystery is part of the fun!

After hitting the “shuffle” button this morning I was rewarded with the excellent 80’s track, “Atomic” by Blondie.  In a moment of lateral thinking, this 80’s new-wave song prompted me to think about requirements, and specifically about requirements quality.

Let me explain…

Good quality requirements have a number of characteristics.  Many authors have produced guidance around requirements quality, and as an example, the BABOK guide suggests good requirements should be:

  • Cohesive
  • Complete
  • Consistent
  • Correct
  • Feasible
  • Modifiable
  • Unambiguous
  • Testable

(See “A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide) BABOK v2.0”, sec 6.5.4)

As part of cohesiveness, BABOK states:

“A cohesive set of requirements relates to only one thing,” 

I would extend this definition and say that each individual requirement  within the set should relate to one and only one thing. Or, put another way, each requirement should be atomic.  This is of relevance to detailed textural requirement artefacts – for example, declarative requirement statements (“The system shall…” or “A user can…”) or textural business rules.  It wouldn’t normally apply to a model or a high level scoping statement.

The Importance of Atomic Requirements

If you are using declarative requirement statements or similar artefacts, there are several advantages to ensuring each requirement is expressed atomically.  One of the most significant advantages is it helps to avoid prioritisation anomalies.  When several requirements masquerade as one, it makes prioritisation difficult.  For example, imagine a requirement was stated as:

“A user must be able to add, edit and delete a new customer record”

This is actually several requirements bundled into one.  Perhaps the most important priority is to add (create) the record.  Edit might be important, but not critical for day 1 (perhaps it could wait for a second release, depending on the nature of the system).  It might be possible to defer the “delete” function even further. This level of prioritisation can only happen if the requirements are split out.  Otherwise, it’s likely the whole requirement will be seen as a “critical” day one requirement, even though elements of it could wait.

Muddled and combined requirements also create issues with traceability.  What if a different person “owns” each part of the combined requirement above? It would be difficult to show this relationship.  Equally, showing relationships and dependencies between requirements becomes more difficult, as it isn’t clear which part of the requirement has the dependency.  Muddling requirements makes requirements analysis and requirements management more difficult and causes problems further down the project lifecycle.

So, when you’re using declarative requirement statements, think “atomic” as well as “cohesive”!

Improve Your Requirements Specifications

Take your requirements specifications to the next level with honest, constructive feedback from Adriana Beal as part of her virtual, instructor-supported course, Crafting Better Requirements. You’ll receive 6 jam-packed lessons and access to sample projects so you can practice these concepts right away.

Click the link below to learn more:

http://www.bridging-the-gap.com/crafting-better-requirements

 

Free Training - Quick Start to Success

(Stop the frustration and earn the respect
you deserve as a business analyst.)

Click here to learn more

By signing up, you agree to our Privacy Policy.

Before you go, would you like to receive our absolutely FREE workshop?

(No formal experience required.)

21689
21690

Quick Start to Success
as a Business Analyst

By signing up, you agree to our Privacy Policy.