"...careful planning at the beginning of the project is perhaps the single most important factor that distinguishes success from failure." 1

A plan is a map of a place to which one wishes to arrive and the path to obtain that goal. The software development project planning process is a method used in the software industry to create such a map for a software project.

Creating such a plan is vitally important because of the nature of software development. It is unlike any other project activity. Unlike construction processes that create bridges, buildings, or other physical products, software is constructed in the mind. The mind may misinterpret, misremember, or otherwise alter a perception and thus change the course of a project into unintended failure. In addition, the mind can make its own assumptions and interpretations on what-needs-to-be-done and how-it-is-to-be-done. Unfortunately, one person's interpretations are not the same as another's even when both are involved in the same software project. These differences in opinion are at the core of software errors. Therefore, a specific, detailed project plan must be developed.

There are several groups of stakeholders - depending on the size of a project. At a minimum the stakeholders include (a) the customer, both the software users and the managers of those employees, (b) the managers of the project, such as the project executive, the project manager, and the team-lead, and (c) the team of developers for the project. Each of these groups has a stake in the success or failure of the project. Each group has its own goals and objectives.

With such diversity among the various groups there must be a plan - and the plan must be developed with the input from all of the stakeholders in the process. One textbook, Effective Project Management, defines the software project planning process to have five steps. The five steps are Defining, Planning, Executing, Controlling, and Closing.

The Defining step is a formal procedure wherein the scope of the project is set. There must be a clear boundary around the project so that all personnel involved will know what is in the project and what is not. A set of questions to be answered by the Defining step include

  1. What is the problem to be solved?
  2. What is the goal of the project?
  3. What objectives must be met to accomplish the goal?
  4. What are the success criteria?
  5. What are the assumptions, risks, and roadblocks that will influence the project?

The second step, Planning, is the process of constructing a "road-map" from the current state to the goal state. The plan refines the scope and helps determine what is important and what is not. An often stated motto is "Keep your eyes on the prize". Uncertainty will occur and the environment will change during the course of the project. The project plan helps the project participants to focus on the goal.

The third step is Executing. This step assigns tasks, determines how they will be done, and the timeframe in which they must be completed.

The fourth step is Controlling, or monitoring the project to maintain the schedule. There will always be interruptions or delays. The project manager uses the plan to determine the best course of action to keep or return the project to an acceptable schedule.

The final step is Closing. This is the ending of the project - presumably because the project goal has been met. However, there is still some review that should occur. A post-closing review should provide information on the success of the plan as it was carried out during the project. In order to provide useful information to improve subsequent projects the following list of questions should be answered:

  1. Did the product meet the expectations of the Customer?
  2. Did the product meet the Project manager's expectations?
  3. Did the project run its course according to the plan?
  4. What lessons can be learned?
  5. How well or not did the project management methodology work?

In conclusion, the software project planning process is an important tool for the success of a development project. It provides the means to determine both the scope and the roadmap for the project so that all of the diverse stakeholders can agree on the "prize" of the project and work toward its attainment.



Footnotes:

  1. Schrach, pg 290

References:

  • Schrach, Stephen R. Classical and Object-Oriented Software Engineering 3rd Ed., Chicago, IL: Irwin, 1996.
  • Wysocki, Robert, Effective Project Management 3rd ed., Indianapolis, IN: Wiley Publishing, 2003.