Delivering Software Solutions On-Time and
On-Budget
According to the Standish Group, only
16% of all software development projects are delivered on-time
and on-budget. A staggering 31% of projects are cancelled
before they ever get completed.
In this month's
newsletter, we will introduce the Iterative Software Lifecycle
and explain how it can help you consistently deliver software
solutions on-time and on-budget. In the coming months, we will
explain each phase of the Iterative Software Lifecycle and
provide you with step-by-step instructions on implementing
it.
This newsletter is sponsored by Software Planner
(http://www.SoftwarePlanner.com).
Iterative
Software Lifecycle
Two of the
more popular life cycle models are the traditional Waterfall
model and the Iterative or Spiral model. The Iterative/Spiral
model is a rapid application development (RAD) model.
In the Waterfall model, a project progresses through
sequential steps from the initial concept through system
testing. The problem with this development life cycle is that
you are usually not aware of major problems until the system
is ready for production, because this is when all the pieces
of the software are integrated together in preparation for
production.
The Iterative Software Lifecycle (sometimes
referred to as the Spiral Software Lifecycle) model is a
risk-oriented one that divides a software project up into
different subprojects.
Each subproject addresses one
or more major risks until all are identified. The Iterative
model allows for increased creativity and greater management
of risk due to its iterative nature.
This lifecycle
implements portions of functionality in pre-releases. For
example, a layer of functionality will be delivered as a .1
release. The full product is run through the testing cycle and
user acceptance. Then more functionality is added as .2
release. It is then run through the testing cycle and user
acceptance.
This Iterative cycle is repeated until all
functionality is added and fully tested. This allows the team
to discover performance issues and design flaws early in the
project.
Phases of the
Iterative Software Lifecycle
Below are
the phases of the Iterative life cycle:
* Planning
(Analysis) Phase
* Design Phase
* Iterative
Code/Test/Release Phases
* Production Phase
To
ensure that each phase is delivered on-time and on-budget,
there are specific deliverables for each
phase:
Planning (Analysis) Phase Deliverables:
*
Functional Specification
* Functional Specification
Signoff
* Risk Assessment
Design Phase
Deliverables:
* Detailed Design Document / Use Cases
*
Test Design
* Object Model
* Data Model
* Project
Plan
* Budget
* Customer, Development, Testing
Signoff
Iterative Code/Test/Release Phases
Deliverables:
* Triage
* Weekly Status Reports
* Risk
Assessment
* System Documentation
* User Documentation
(if needed)
* Test Signoff for each iteration
* Customer
Signoff for each iteration
Product Phase
Deliverables:
* Final Test Signoff
* Final Customer
Signoff
* Post
Mortem
Summary
Using the
Iterative Software Lifecycle model, you increase your ability
to deliver on-time and on-budget by dividing your project into
several smaller projects with discreet deliverables.
As you complete each subproject, you are able to
evaluate your performance on the prior iteration and improve
upcoming iterations with lessons learned from the previous
iteration.
Customers are happy because they receive
functionality quicker, project managers and team members are
happy because they successfully deliver solutions quickly
without major
delays.
Free
Templates
Click the
link below for some free templates to get you started with the
Iterative Software Lifecycle. These templates cover all areas
of lifecycle, from the planning to production
phases.
Templates for the Iterative Software
Lifecycle
Software
Planner
Software
Planner is a web-based software lifecycle management tool that
fully supports the Iterative Software Lifecycle. To learn more
about Software Planner, click the link
below.
Software
Planner