Software Requirements “Bills of Rights”
JB | Feb 09, 2007 | No Comment | Print
Welcome to Practical Analyst, a site specializing in practical insight for business analysts and project professionals. If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter. Thanks for stopping by!
Karl Wiegers’ Requirements Bills of Rights and Responsibilities of Software Customers are great in helping business stakeholders that are new to the requirements gathering process understand what the requirements analyst needs from them, and what they, as the customer should expect of the analyst. I’ve listed the bills of rights below:
Requirements Bill of Rights for Software Customers
As the customer, you have the right to:
- Expect analysts to speak your language.
- Expect analysts to learn about your business and your objectives for the system.
- Expect analysts to structure the information you present during requirements elicitation into a written software requirements specification.
- Have analysts explain all work products created from the requirements process.
- Expect analysts and developers to treat you with respect and to maintain a collaborative and professional attitude throughout your interactions.
- Have analysts and developers provide ideas and alternatives both for your requirements and for implementation of the product.
- Describe characteristics of the product that will make it easy and enjoyable to use.
- Be given opportunities to adjust your requirements to permit reuse of existing software components.
- Receive good-faith estimates of the costs, impacts, and trade-offs when you request a change in the requirements.
- Receive a system that meets your functional and quality needs, to the extent that those needs have been communicated to the developers and agreed upon.
Requirements Bill of Responsibilities for Software Customers
As the customer, you have the responsibility to:
- Educate analysts and developers about your business and define business jargon.
- Spend the time that it takes to provide requirements, clarify them, and iteratively flesh them out.
- Be specific and precise when providing input about the system’s requirements.
- Make timely decisions about requirements when requested to do so.
- Respect a developer’s assessment of the cost and feasibility of requirements.
- In collaboration with the developers, set priorities for functional requirements, system features, or use cases.
- Review requirements documents and evaluate prototypes.
- Communicate changes to the requirements as soon as you know about them.
- Follow the development organization’s process for requesting requirements changes.
- Respect the process the analysts use for requirements engineering.
Reference: Wiegers, Karl E, Software Requirements, Second Edition, 2003, Microsoft Press, page 32.
If you found the bills of rights helpful, I’d certainly recommend grabbing a copy and perusing the rest of the book. He just does a good job of defining and breaking down process.
There are lots of other more theoretical and “heavier reads” available on requirements engineering – and I probably have most of them. They all have their value, and their place. I typically refer to the Wiegers book, though, for quick reference and practical, intuitive breakdowns of the steps of the requirements engineering process.
While I’m stuck on Wiegers, you may also want to check out his Website, Process Impact, where he provides lots of software process tips and tricks, including some free “goodies” as he refers to them.
Related posts:
Filed Under: Business Analysis
About the Author: Jonathan Babcock is a business analyst who thoroughly enjoys what he does. Practical Analyst is his outlet for sharing what he's learned, and for interacting with like-minded folks.
To keep up with the latest on Practical Analyst, you can subscribe to the RSS feed, follow Jonathan on Twitter, or view his profile on Linked In.
