Formalizing informal stakeholder inputs using gap-bridging methods
Authors: Barry Boehm
Venue:  (2007)

For many software and systems developers, Requirements Engineering is one of the biggest problems they face. Without an accurate, consistent, and complete requirements specification it is very difficult to develop, change, and maintain software. It is now a generally accepted and frequently stated fact that one of the major causes of software development failures is poor requirements engineering. The CHAOS Surveys by the Standish Group report that 15% of the projects fail outright, and 51% are late, run over budget or provide reduced functionality. On average only 54% of the initial project requirements are delivered to the client. Inadequate specification of system requirements is considered to be one of the main causes for project failure. Good&mdash;sufficiently complete, consistent, well-understood, and testable&mdash;requirements are a prerequisite for successful projects. Without understanding what the stakeholders&mdash;people who have some demands on the product, and hence must be consulted in the requirements gathering activity&mdash;really wants and needs, and writing these requirements in a concise, understandable and testable manner, projects not only won't lead to what the stakeholders wanted, but also they probably will fail. Often, the stakeholders who can contribute the most value and realism to system requirements are the ones with the least time available to participate in the process. Negotiations are crucial in the early stages of the lifecycle to develop a set of mutually satisfactory requirements. We have found the EasyWinWin requirement negotiation method and tools to be an effective way to involve such busy stakeholders. It avoids time-consuming group wordsmithing, but results in relatively informal win-win agreements (e.g., "24/7" or "anytime, anywhere" vs. more precise availability and accessibility requirements). The transition to semi-formal and formal representations is still a challenging problem. While the EasyWinWin improves the identification and negotiation of stakeholders' requirements, the transition to more formal system requirements and further project artifacts is based on intuition and experience. Requirements problems are present to a certain degree in almost all projects despite the fact that there are available techniques that could address them. The approach of our research is to integrate gap-bridging methods&mdash;template, NLP, keyword analysis, formal experts, and inspection&mdash;with requirements engineering to leverage the benefits of these methods in order to create a better requirements engineering process. The basic idea is that orchestrating gap-bridging methods whenever and wherever possible through the requirements engineering process could eliminate requirements related problems. This framework helps consistently elicit the customer needs, save time and cost, and trace the requirements through the entire development life cycle. We enhance the existing tool EasyWinWin, to improve the results of requirements negotiation process and further to define the requirements specifications with the characteristics of good requirements taken into account. Beginning with the identification of requirements leading to the analysis and negotiation of requirements to the actual generation of requirements specification, the framework combines all requirements engineering activities in order to eliminate problems and provide a good foundation for the later artifacts of software development.