Dealing effectively with requirements tops the list of the challenges
to managers and practitioners developing systems and software. Improving
the effectiveness of requirements practices has been a focus for me throughout
my career. My vision of this book is to help you in your life's work by
providing practical, useful, effective requirements practices.
This book describes ten requirements practices that provide a framework
for overcoming current industry problems. Although systems and software
development efforts have been going on for five decades, the industry
has major difficulty worldwide in delivering products that meet customer
needs. By applying effective requirements practices, one can remove causes
of project failure. The reasons for failure are well documented (see Chapter
1). The needed improvement activities can be financed via the one third
of total project costs now wasted. This book is full of suggestions concerning
how to transform this waste into productive use.
The theme of this book is that practitioners should insist on using effective
requirements practices. The use of effective requirements practices will
reduce costs, improve the quality of work products, and increase customer
satisfaction. The practices, ideas, suggestions, and recommendations provided
in this book can be used individually or collectively, and not all have
to be implemented to achieve progress. One can gradually implement some
good practices quickly, with good payback, and then continue to work toward
a more sophisticated, high-performance set of requirements practices.
This book provides a baseline for managers and project leaders to use
to ensure that they are doing what is necessary to make a project successful.
The practices, methods, techniques, and the requirements process itself
have been filtered through experience, so the ideas are practical, cost-effective,
and proven.
This book deals with the practical difficulties of requirements elicitation
and management from a pragmatic, organizational, and project perspective.
Attention is given to the pitfalls, costs, and risks as well as to the
benefits of these practices. Unfortunately, many good practices never
get implemented because the benefits are oversold, and the costs and risks
aren't recognized. Political realities of organizations and projects must
also be considered.
Application of the practices in this book will result in more productive,
healthier, and happier organizations for systems and software development.
The analysis extends beyond the technical issues to human issues and values.
This book emphasizes the need for a shared vision of project success and
advises how to obtain the required customer and supplier commitment.
The effective requirements practices described in this book will help
you whether you are in a small organization or a large one, whether you
build systems or software. Advice is provided for the information technology
executive, consultant, manager, architect, systems or software engineer,
systems integrator, developer, tester, process improvement engineer, member
of the quality assurance group, or one responsible for configuration management.
This book is invaluable for systems and software engineering courses,
at both the undergraduate and graduate levels, and also for venues relating
practical, useful guidance such as industry association and corporate
courses concerning management of systems, requirements, as well as systems
and software process engineering.
Although one frequently sees references to "requirements management,"
let's be clear that the challenge to system and software developers extends
far beyond simply managing requirements. The requirements process is a
full life cycle systems engineering process. It requires special effort
and practices at the beginning of a project or system to identify what
I refer to as the real requirements. Because the world changes
while we are developing systems and software, it's essential to address
new and changed requirements within the requirements process.
The requirements process requires mechanisms, for example, to achieve
a shared vision, to ensure joint customer and supplier responsibility
for the requirements, and to enable effective project coordination. The
requirements process impacts every other activity performed in developing
systems and software. One needs an automated requirements tool that provides
for attributes such as the priority of each requirement, how it is linked
to the design, where it is met in the code, how it is verified and tested,
and so forth. It should be apparent already that we as an industry do
not spend enough time and effort on the requirements process, and that
this itself is a root cause of our problems.
The requirements comprise the basis for all the development work that
follows. If you don't get the requirements right, you are in for a long,
hard, and expensive pull. Your chances of "finishing" are small, and the
probability of satisfying the users of the planned system is nil. We know
from industry experience that customers don't know their "real requirements"
(even though they may have spent a lot of time defining them and believe
they know them). Suppliers and system developers don't know them either.
Identifying the real requirements requires an interactive requirements
process, supported by effective mechanisms, methods, techniques, and tools.
The requirements process need not be complicated or expensive. However,
a requirements process is required for a project of any size. It's
more important that a project or organization have a requirements
process than the nature of its specific components.
This leads to another fundamental premise of this book: Continuous improvement
and a quality ethic within a project or organization lead to repeatable
processes and reuse that save time and money. My commitment to these values
comes from my work experiences and also from my study under Dr. W. Edwards
Deming. Dr. Deming clarified for me that many of the root causes of problems
are not technical issues. Rather, the root causes concern our responsibility
as organizational and project executives, managers, and leaders to provide
the environment in which "the workers"can be effective, productive, and
fulfilled. Management must empower its work force to unleash its incredible
capabilities.
The systems and software development environment needs attention, as
we all can attest, based on our experience. The effective practices advocated
in this book will facilitate your creation of the needed environment and
will empower and enable your development team. I have witnessed (as I
hope you have too) the power and the results of effective teams in positive
environments. My experience is that an empowered team can accomplish anything
it sets out to do. We must work to create the needed environment for success.
To benefit from the information in this book, you need bring only your
involvement in systems and software-related activities coupled with a
desire to improve. If you are a customer or client of the system or software
provider industry, you will be particularly interested in Chapters 1 through
5 and 12. If you are a practitioner already familiar with the issues and
problems, you may proceed directly to whichever of Chapters 2 through
11 relate most closely to your specific work activities, noting the references
to additional information and sources. If you are an executive or manager,
you may want to focus on Chapters 1, 7, and 12 to gain added insight into
the issues, to garner a high-level understanding, and to formulate some
ideas concerning candidate improvement actions. If you are a student of
systems or software engineering, you'll likely find it worth your time
to proceed deliberately through the book. If you are participating in
a requirements-related course, you'll find the entire book insightful
and provocative.
A rich collection of suggested references is provided in the footnotes,
the Key References and Suggested Readings sections provided for each chapter,
and the bibliography. No source is included just because it provides related
information. Rather, each and every one is noted because it provides additional
insights, more detailed suggestions and ideas, a recommended technique/approach,
or an alternative concept you might want to consider.
Primary Features of This Book
- Provides a practical organizational and project perspective.
- Emphasizes the need for a partnership approach and explains how to
obtain commitment.
- Focuses on specific improvement activities.
- Explains how to evolve the real requirements.
- Considers the human dimension.
- Emphasizes the importance of effective communication.
- Provides sample templates (for example, for a requirements process
and a requirements plan).
- Discusses the need to iterate the requirements and the architecture.
- Recommends how to deal with changing requirements.
- Explains requirements verification and validation.
- Suggests several mechanisms to facilitate self-correction and to help
maintain momentum.
- Stresses the need for an automated requirements tool.
- Provides advice and recommendations for executives, project managers,
and leaders.
- Enables organizations and projects to utilize their resources better.
- Includes a rich set of references.
I am very grateful to a large number of reviewers for the material presented
in this book. They have been helping me for 28 years to understand what
works. Some I've come to know only recently, and many of them are industry
experts in requirements, systems, or software engineering. The publisher
tasked some industry experts to review these materials, and their review
comments were invaluable. Others provided informal reviews because they
are experts in particular areas or because they are professionally interested.
Addison-Wesley's publishing professionals have made an invaluable contribution
to the final product.
All of the reviewers have reinforced something I already knew: These
practices are urgently needed today on projects and efforts of all sizes
in all systems and software efforts. My hope is that they will help you.
Of course, different practices work well in different environments. This
is something we all understand from our experience, no matter where that
experience was acquired or what fields it concerned. So you will need
to select appropriate practices, recommendations, and suggestions, and
apply them with a large measure of common sense--always a great guide!
I hope that you take the time and effort to share with me your experiences
in applying the practices, recommendations, and suggestions in this book.
This will help me further strengthen and improve my own insights and understandings
and, God willing, allow me to share them again with others.
|