Software Engineering
Home Planning Requirements Writing Hazard Analysis Requirement Analysis Config Control Software Design Software Testing Software Standards Basic Logic

Software Project Planning

Planning focuses on the Business problem, not the technical solution.

Planning allows repeatability. You don’t need a recipe to cook, but… A recipe improves repeatability.

A company can choose many places to invest their money:

  • Roulette Wheel (very high risk, very high payoff potential).
  • The Bank (very low risk, but very low payoff).
  • A software project (hopefully less risky than a Roulette Wheel, but with a higher payoff than the bank).

Because companies want a higher rate of return than a bank offers, and less risk than a casino, they generally invest in new projects. Planning adds overhead cost, but it also reduces the risk and reduces the cost of defects, therefore it increases the value of the software project.

Cost of Defects

The more time between the point when a defect is introduced and the point when the defect is detected, the greater the cost of correcting that defect - if it can be corrected at all.

Software Development Processes

There are two primary software life-cycle process:

  1. Software development.
  2. Software maintenance.

In addition there are five supporting processes:

  1. Software Risk Management (risks could be anything from safety to product liability exposure).
  2. Documentation.
  3. Configuration Management.
  4. Verification and Validation.
  5. Problem tracking and resolution.

True Horror Story

Only a day after starting a job writing jail management software, I watched our digital mugshot software being installed at a jail. Software Risk Management was not part of the company's development process, so they designed a straight-forward system that made sense to every programmer. Unfortunately, it also had the arresting officer's back to the inmate while operating the software!

The jail was forced to assign an additional officer to each shift to provide increased security - which did not make us very popular. Had a software hazard analysis been performed, this could have been avoided.

Project planning allows the team to devise methods for each of these processes, as applicable. The level of formality will vary by project and industry - but the processes themselves remain the same.

Level of Detail

Level of detail increases as the project progresses. This also means that documents containing specific implementation details had to be created after the coding. Planning documents and SRSs that contain great detail were clearly created after the fact.