Excerpt
Preface The Standish Group reports that tens of billions of dollars are wasted each year on information systems that are canceled or not used, with most projects over budget and/or late. On the other hand, the wrong system can be delivered on schedule, within budget. The primary problem has been that the system does not meet the expectations and needs of the business area for which it was built, typically because of inadequate user involvement in the early phases of system design. The challenge is to define the correct system requirements early in the delivery process to minimize design, construction, and post-implementation repair.
Accurate system requirements definition is a lost art for many organizations, but with the high cost of information systems and the competitive nature of business today, it is needed more than ever. An organization cannot afford to waste resources on post-requirements repair that could have been avoided. Essential System Requirements was written to provide a collection of event-driven methods for the analysis and specification of conceptual system requirements. I hope it will encourage and assist developers to "get it right the first time" by defining systems that are on target with the user's expectations. The term essential, as used in this book, refers to a set of system requirements that meets business-area needs without including unnecessary system capabilities. It also implies that the requirements are conceptual (non-physical) in nature. Although methods typically don't enforce a conceptual strategy, they can encourage the reduction of physical properties in the requirements. When this is accomplished, post-analysis repair can be reduced.
The most important aspect of this book is its underlying concept of business events and the partitioning of proposed systems into responses to those events. Business events are intuitive to the user and are typically accepted by both the user community and the development group. They get the user group involved early in the development life cycle by defining, in the user's language, activities that occur in the business area. Business events also help reduce the communication gap that often arises during the software development effort, and they partition the proposed system into subsystems that have relatively low coupling and support incremental development and implementation.
Essential System Requirements is a guide and therefore does not contain the amount of discussion found in most textbooks--discussion is limited to key basic concepts. It presents the methods and techniques in a concise manner to provide an effective instrument for the analyst, based on decades of software development experience. This book does not offer a particular commercial methodology but instead presents a set of core techniques and methods for the definition of system requirements. It follows a toolbox approach--that is, the methods and techniques are only used as needed, and are often repeated during the delivery process (some dependencies do exist, but iteration is the rule). For any particular project, some techniques may not be used at all. Along with the methods, this book integrates project management tips and a function-point project estimation method. It also offers a discussion of an object-oriented partitioning scheme that can be used with an event-driven user interface and that reuses many of the event-driven models.
Essential System Requirements will serve as a useful guide to the professionals responsible for the definition of system requirements and to those who manage the effort and develop the resulting system. As a guide, this book is meant to sit on your bookshelf, where, after initial study, it can be used for quick reference to the techniques and tips for the individual or the team. It can also support a corporate-wide effort to establish standards for the analysis and specification of system requirements.
For further discussion of the focus and organization of this book, please see the Introduction.