Preface
Despite some fifty years of industry experience, many software development organizations struggle to gather, document, and manage their product requirements. Lack of user input, incomplete requirements, and changing requirements are the major reasons why so many information technology projects fail to deliver all of their planned functionality on schedule and within budget.[]
Software development involves at least as much communication as computing, yet we often emphasize the computing and neglect the communication. This book offers dozens of tools to facilitate that communication and to help software practitioners, managers, marketers, and customers apply effective requirements engineering methods. Newly added to this second edition are chapters on the role of the requirements analyst; the importance of business rules; and ways to apply requirements engineering to maintenance projects, package solutions, outsourced projects, and emergent projects. Numerous sidebars present storiesall truethat illustrate typical requirements-related experiences. Also, look for the "true stories" icon, like the one to the left, next to real examples drawn from many project experiences.
The techniques presented here are mainstream "good practices" for requirements engineering, not exotic new techniques or an elaborate methodology that purports to solve all of your requirements problems. Since I wrote the first edition of this book in 1999, I have taught more than 100 seminars on software requirements to people from corporate and government organizations of all types. Ive learned that these practices apply to virtually any project, including those following incremental delivery approaches, both small projects and large-scale endeavors, and both new development and maintenance projects. Nor are the techniques limited to software projects, being applicable to hardware and systems engineering as well. As with any other software practice, youll need to use common sense and gain some experience to learn how to make the methods work best for you.
Benefits This Book Provides
Of all the software process improvements you could undertake, improved requirements engineering practices will likely provide the greatest benefits. I focus on describing practical, proven techniques that can help you to
Improve the quality of your projects requirements early in the development cycle, which reduces rework and improves productivity.
Meet schedule objectives by controlling scope creep and requirements changes.
Achieve higher customer satisfaction.
Reduce maintenance and support costs.
My objective is to help you improve the processes you use for gathering and analyzing requirements, writing and validating requirements specifications, and managing the requirements throughout the product development cycle. I hope you will actually implement improved practices, not just read about them. Learning about new practices is easy; actually changing the way people work is much harder.
[] The CHAOS Report. The Standish Group International, Inc., 1995.
[] Peterson, Gary. 2002. "Risque Requirements." CrossTalk 15(4):31.
Who Should Read This Book
Anyone involved with defining or understanding the requirements for a software product will find useful information here. The primary audience is those individuals who serve as requirements analysts on a development project, be they full-time requirements specialists or others who occasionally fill the analyst role. A second audience includes the designers, programmers, testers, and other team members who must understand and satisfy user expectations. Marketers and product managers who are charged with specifying the features and attributes that will make a product a commercial success will find these practices valuable. Project managers who must deliver products on schedule will learn how to manage the projects requirements activities and deal with requirements changes. A third audience is customers who want to define a product that meets their functional and quality needs. This book will help customers understand the importance of the requirements process and their role in it.
Looking Ahead
The book is organized into four parts..
concludes by describing requirements development challenges for some specific project situations and exploring how requirements affect other aspects of project work.
The principles and practices of requirements management are the subject of concludes with a description of commercial tools that can enhance the way you manage your projects requirements.
The final part of the book, " can help you select areas that are ripe for improvement. Other appendixes present a requirements troubleshooting guide and samples of several requirements documents.
Case Studies
To illustrate the methods described in this book, Ive provided examples from several case studies based on actual projects, particularly a medium-sized information system called the Chemical Tracking System. (Dont worryyou dont need to know anything about chemistry to understand this project.) Sample dialogs between project participants from the case study projects are sprinkled throughout the book. No matter what kind of software your group builds, I think youll find these dialogs pertinent.
From Principles to Practice
Its difficult to muster the energy needed to overcome obstacles to change and to put new knowledge into action. Its tempting to remain in your comfort zone of familiarif not always effectivepractices. To assist you in the journey to improved requirements, each chapter ends with some "Next Steps," actions you can take to begin applying the contents of that chapter. Ive provided annotated templates for requirements documents, inspection checklists, a requirements prioritization spreadsheet, a change-control process, and many other process assets on my Web site, http://www.processimpact.com . Use these materials to jump-start your application of these techniques. Start with small requirements improvements, but start today.
Some project participants will be reluctant to try new requirements techniques. Some people are downright unreasonable, and none of these techniques will work if youre dealing with unreasonable people. Use the material in this book to educate your peers, customers, and managers. Remind them of requirements-related problems encountered on previous projects, and discuss the potential benefits of trying some new approaches.
You dont need to launch a new development project to begin applying improved requirements engineering practices. discusses ways to apply many of the techniques in this book to maintenance projects. Implementing requirements practices incrementally is a low-risk process improvement approach that will prepare you for using a suite of new techniques on your next major project.
The goal of requirements engineering is to develop requirements that are good enough to allow you to proceed with design and construction at an acceptable level of risk. You need to spend enough time on requirements engineering to minimize the risks of rework, unacceptable products, and blown schedules. This book gives you the tools to get the right people to collaborate on developing the right requirements for the right product.