At the end of the day, software project managers are responsible for delivering a product. Since that is our primary objective, we will look at product development techniques first, before project skills and people skills. Product development techniques, competencies will be briefly described in next articles, while sections appearing later in this blog will describe each competency more fully.
Where Product Competencies Are Addressed
There are many approaches to the "sequence" of events that include the process of developing, controlling, managing, enhancing, and maintaining software. The word "sequence" appears in quotes because the process is not necessarily linear - iterations inside and between phases, or process steps, often take place. And, the process steps may take place in tandem - more than one task may be worked on during any given period of time, and a project member may be dividing time among multiple tasks.
Different kinds of projects need different kinds of process models: Software controlling an automobile air bag or medical CAT Scan machine will require extraordinary testing since human life is at risk. Software for an Internet catalog ordering system for used china and silver needs a great deal of attention to the user interface - a part of the system that should probably be prototyped. The safety requirements of the latter system are minimal as compared to the others, so the same degree of testing is not needed. The different degrees of testing are but one of many reasons different life cycles exist.
In "Selecting Software Development Life Cycles" we will explain some of the more popular or widely used models, and how to know which one to use "as is", or to use as the basis for tailoring to your specific project. Since we require a common framework for discussion, we will talk in terms of a "plain vanilla" waterfall with iterations "Introduction" figure "The Iterative “Waterfall” Model Software Life Cycle (SLC)", rather than one of the newer, more specialized SLCs.