The W5HH Principle for Software Projects
In an excellent paper on software process and projects, Barry Boehm [BOE96] states: “you need an organizing principle that scales down to provide simple [project] plans for simple projects.” Boehm suggests an approach that addresses project objectives, milestones and schedules, responsibilities, management and technical approaches, and required resources. He calls it the WWWWWHH principle, after a series of questions that lead to a definition of key project characteristics and the resultant project plan:
Why is the system being developed? The answer to this question enables all parties to assess the validity of business reasons for the software work. Stated in another way, does the business purpose justify the expenditure of people, time, and money?
What will be done, by when? The answers to these questions help the team to establish a project schedule by identifying key project tasks and the milestones that are required by the customer.
Who is responsible for a function? Earlier in this chapter, we noted that the role and responsibility of each member of the software team must be defined. The answer to this question helps accomplish this.
Where are they organizationally located? Not all roles and responsibilities reside within the software team itself. The customer, users, and other stakeholders also have responsibilities.
How will the job be done technically and managerially? Once product scope is established, a management and technical strategy for the project must be defined.
How much of each resource is needed? The answer to this question is derived by developing estimates based on answers to earlier questions.
Boehm’s W5HH principle is applicable regardless of the size or complexity of a software project. The questions noted provide an excellent planning outline for the project manager and the software team.
Frequently Asked Questions
- THE EVOLVING ROLE OF SOFTWARE
- Software definition, characteristics and Software Applications
- SOFTWARE - A CRISIS ON THE HORIZON?
- SOFTWARE MYTHS
- SOFTWARE ENGINEERING- A LAYERED TECHNOLOGY
- THE SOFTWARE PROCESS
- SOFTWARE PROCESS MODELS
- THE LINEAR SEQUENTIAL MODEL
- THE PROTOTYPING MODEL
- THE RAD MODEL
- SOFTWARE PROCESS MODELS - Incremental Model, Spiral Model, WINWIN Spiral Model, Concurrent Development Model
- COMPONENT-BASED DEVELOPMENT
- THE FORMAL METHODS MODEL
- FOURTH GENERATION TECHNIQUES
- PRODUCT AND PROCESS