RequirementOne Logo

Top 10 Writing good requirements tips

Martin Gorm Pedersen
WRITTEN BY Martin Gorm Pedersen - 15 January 2012

So how should I write and manage my requirements such that they communicate effectively to my team members and other stakeholders?

Here are my top 10 points for writing and managing requirements:

1)     Central repository. Requirements must be stored in a central repository, ideally online, where all relevant stakeholders can access them and where changes to requirements are tracked

2)     Must be verifiable. All requirements should start with "The system shall.." e.g. "The system shall provide a login with username and password". In other words you should be able to verify whether the requirement has been implemented or not by answering simply yes or no. Each requirement should also only include one purpose.

3)     Unique IDs. All requirements must have a unique ID e.g. R100. The ID itself should have no associated meaning other than provide a common reference.

4)     Table of contents. All requirements must be organized in a logical hierarchy i.e. a table of contents. Such that you group for example different areas of your product like modules, security requirements etc.

5)     Priority. All requirements must have a priority attribute that indicated how important the requirement is. The simplest form could be "Must-have" and "Nice-to-have" or "High", "Medium" and "Low".

Requirement Management Toolkit

Get your $7 Requirement Management Toolkit & control your requirements without mistakes!

6)     Owner. All requirements must have an owner attribute that indicated who requested the requirement. This is important so you know who to ask if any questions come up.

7)     Lifecycle. All requirements must have a lifecycle attribute that indicates where in the process a given requirement is. The lifecycle indicates how finished the requirement is e.g. New, needs review, approved, assigned to developer, ready for test, test approved, test failed, write release notes, released to production. Compare the lifecycle to an assembly line where the requirement is moved through different phases.

8)     Responsible. All requirements must have a responsible person attribute that indicates who is responsible for the requirement right now. This is closely linked to the lifecycle described above. So if the lifecycle is "assigned to developer" then the responsible person will be set to a developer by the project manager. When the developer is done then the lifecycle will be changed to "ready for test" and the responsible person will be set to the test person or redirected to the project manager for re-assignment.

9)     Release. All requirements must have a release attribute that indicates what product version the requirement should be part of. You typically group requirements (and issues) by version such as Product 1.0 with release January 1st.

10)  Dependencies. All requirements should have listed any dependencies on other requirements. So if a requirement states we need to "View a list of logins" then a dependency, should be added to a requirement that states "When a user logs in the details must be added to a log." Because you can’t get the former list unless the latter log entry has been created. The dependencies are critical especially when you start to have many requirements and you start to introduce change, then you must know how a change to a given requirement impacts other requirements through its defined dependencies.

So why are requirement so important to take seriously and get right from the start, simply because without them you have no way of effectively communicating what needs to be accomplished to your stakeholders. And equally important you will be unable to determine if everything was delivered as agreed when the project finishes.

Feel free to share your own experiences and questions.

Bookmark and Share

Want to run more successful projects?

Start organizing, managing and sharing your requirements now with your free 14 day trial

Get my free account

No credit card required. We guarantee 100% privacy. Your information will not be shared.

Blog topics


Join our mailing list for requirements tips, blogs and other great content.



Martin Gorm Pedersen (Founder)


Get my free account

No credit card required. We guarantee 100% privacy. Your information will not be shared.

Make your next project better

"RequirementOne has allowed us to regain control of our requirements, no longer having to struggle with updating our unwieldy word document. I now couldn't imagine living without filters when organizing sprints." - Luke Kirkpatrick, Software Engineer & Product Lead

RequirementOne Inc. © 2014

1250 Oakmead Pkwy., ste 210
Sunnyvale, CA 94085-4037
United States
Main +1 877 737 8473

Terms & Conditions