October 3, 2008

Requirements engineering is tough. It takes a very talented product/project manager (PM) to get it right. A high-performing effective PM team can give you a distinct advantage over the competition. Not everyone can do this job effectively. But, unfortunately we make it even tougher on them. Yes, WE.

There is a better way if:

  • You require PMs to develop a detailed requirements specification up front
  • You support your software teams when they say they cannot start without detailed requirements
  • You don’t like it when requirements change

While certain life-critical systems require this kind of up-front rigor and expense, most software systems do not. Most software systems development can assume that requirements will become clearer the deeper into the lifecycle you get. It is a reasonable risk to trade off in order to get started.

Agile Methods do not require a frozen list of requirements locked in to start the project. Agile says:

"Start with what you know"
"Clarify as you go"

It even rhymes! I bet there is a poem in there somewhere.

An excellent method for gathering requirements early in the project is the User Story. User Stories are low cost and low fidelity. That means they can be developed in a short time frame and changes are handled easily. User stories are written on index cards. Usually 4 x 6 is better than 3 x 5 because of the extra real estate.

To prove my point about low fidelity:

  • What if you decide to delete a user story? Action: discard the card into the nearest trash can.
  • What if you decide to modify a user story? Erase and write the modified text.
  • What if you need a new user story? Grab a card and write it (in pencil).
  • How do you monitor progress of user story development? Put the cards on a board with columns for “Not Started”, “In Work”, and “Done”.

User stories have a simple requirement written on the front of the card in the form of role, function, and business value. High-level test cases are written on the back in the form of actions and expected results.

Your PMs will especially love this about user stories – often times the initial set of user stories is derived from a user story workshop. The PM invites key individuals such as the customer, customer proxy, software developers, testers, release builders, etc. The PM brings lots of index cards and pencils with erasers. The PM presents the vision of the project followed by a few of the obvious user stories. These are discussed and modified as consensus develops. The rest of the team then begins brainstorming. Additional user stories emerge and are captured on the index cards. The customer or proxy can guide explicit guidance on the relevance of a user story.

The “wisdom of the crowds” comes into play strongly at the user story workshop. It is highly collaborative and consensus rules. Disagreements will arise, but treat them as healthy discussion opportunities. The customer or PM can make the final call.

Teamwork psychology also comes into play during the user story workshop. A team member that suggests a new user story is handed a card and a pencil. They get to write the user story and read it back to the team for feedback. This makes them feel like a valuable contributing member to the team. If you have quiet lead-by-example folks on your team, this is an excellent way to help them improve their communication skills.

At the conclusion of the user story workshop, the PM is armed with an excellent preliminary list of requirements – in about ½ day. Software development can begin in a “start with what you know” approach. Yes, I said it – the same day the project started. Is there any other requirements engineering technique that can make the same claim? I doubt it.

Compare this approach to the following assignment: your job as PM is to query the customer, do some market analysis, and write a comprehensive requirements spec due in 2 months in order to kick off this critical project. No excuses. You better not be late. Good luck.

Do your PM and Software teams a big favor. Shift over to User Stories.

I’m not kidding. Your PMs will love it!

Comments? Feel Free! Contact me and let me know what you think.

Back to Blogs