Karl Wiegers is one of the favorite authors around the ArgonDigital office with his Software Requirements, Second Edition considered one of the better books on the topic. Karl’s latest, More About Software Requirements – Thorny Issues and Practical Advice, arrived in January but unfortunately has managed to sit in my briefcase ever since awaiting a little free bandwidth. I ended up with a nice chunk of time on a trip recently and the book proved to be the perfect airplane read – lots of great information in a well-written, concise, easily digestible format. Some of Karl’s content is going to be the basis of my next couple of blog posts, but I thought I would take this first post to introduce the book to everyone and provide an overview.
The book’s structure presents 100+ “lessons” grouped into seven categories. Following are some of the highlights I took away from each category.
Essential Requirements Concepts
- A helpful primer on requirements concepts and terminology
- “10 Cosmic Truths About Software Requirements”
The Management View of Requirements
- Real-world examples focused on the value of better requirements engineering
- An excellent discussion around the importance of measuring requirements activities
- Overview of using requirements as the basis of project estimation
Customer Interactions
- “The Myth of the Onsite Customer”
- A better way of asking “why”
Use Cases
- A breakdown of use cases versus scenarios versus stories
- Clear delineation between use cases and functional requirements
Writing Requirements
- Actionable tips for better requirements
- “The Fuzzy Line Between Requirements and Design”
The Requirements Process
- How and when to baseline
- How requirements are like an elephant
- How to overcome the limitations of natural language by using requirements models
Managing Requirements
- How to handle requirements across multiple releases
- Breakdown of business rules versus requirements
- The case for and against requirements management tools
Understand that the book weighs in at less than 200 pages and therefore does not go into great depth on any of the subjects it covers. That said, it does a fantastic job of hitting the high points across a wide range of topics. I think this is a fantastic read for anyone that wants an introduction to a wide spectrum of requirements issues and techniques. If you are trying to evangelize an improved requirements process in your company this might be a good book to leave on your manager’s desk as a means to start the conversation. For those folks that have been in the requirements trenches a while longer, there is still good value in the book. It may not blow you away with any major new concepts or insights, but it will present a number of useful tips and techniques and perhaps get you to look at some well-covered topics with a fresh perspective.
As noted, I am going to drill down further into a couple sections of the book over the coming weeks, but hopefully this overview has whet your appetite for “More About Software Requirements.”