CSC265: Software project preliminaries
Typical development life cycles

In this section we will consider typical organizational structures for software projects, and some of the key roles which need to be addressed within these structures.

Development processes

An estimated 40-50% of all major software projects are abandoned prior to completion, placing a tremendous strain on development budgets.

To try to reduce the number of unsuccessful projects, we must thoroughly understand all aspects of the software development process.

In this course, we will focus on the early stages of the software development process: planning, analysis, and the early stages of design. Other courses will focus more heavily on the design and implementation areas.

The reason for many projects' failure can be traced to mistakes in the early project stages - misunderstandings of the specific project requirements, scope, timeline, budget, reliability requirements, etc etc can all lead to situations which force the cancellation or downsizing of projects. Remember that virtually every project undertaken must effectively improve the business situation of the client - the client is the driving factor in major projects - not the programmer. If a product doesn't do what the client needs from it, then regardless of how technically clever it is, the project is a failure.

A central figure throughout the software development process is the systems analyst: this person (or team of people) analyzes the business situation, identifies opportunities for improvement, and designs and information system to implement the selected changes.

Development phases: there are many different approaches adopted to develop new software systems, but almost all of them include a handful of key phases:

Typically there are a series of iterations through these various steps, explicitly or implicitly, and each step has associated with it a number of deliverables. These deliverables are files, documents, or presentations necessary to the product and/or the project.

Common models: there are many different development styles, here we briefly consider 3 of them. (A fourth will be introduced as an example below.)