Software
development
Introduction
The software development cycle is a software project
management theory saying that software is developed
in five phases. Each phase is dependent upon completion
of the previous one, though during subsequent phases
alterations to previous phases can and should be made
at the earliest point possible. The rationale for using
the software development cycle for software project
management is often compared to constructing different
building types.
The Doghouse Approach:
When you build a doghouse, the needs are pretty basic
and easy to understand. The risk for failure is low,
and the cost is low. In the worst situation, your dog
would have a poorly built doghouse with maybe a leaky
roof and unevenly spaced walls. Since the doghouse is
so simple, there is little or no maintenance requirements.
It would be considered overkill to carefully draw up
blueprints for a doghouse, but having blueprints or
any plan at all would be better then not having them.
This approach can be applied to software development
for the very small projects which take little time,
effort and money to build. ok now give us the blue prints.
The House Approach:
If you decide to build your own house, it would be foolish
to just start building somewhere without any plan at
all. A proper foundation needs to be located and laid,
an architect needs to be hired to draw the blue prints,
electritions and plumbers need to be found, laborers
to build the house, suppliers for materials, building
inspectors, finding a good construction manager, setting
a timeline and goals, staying within budget, etc. The
intricacies of a house are much greater then a doghouse.
Unless you are filthy rich, the cost of failure in building
a house would be very bad. While a dog might tolerate
a leaky roof or uneven walls, your family wouldn't and
neither would the future home-buyer. Much like building
a house, mid-sized software development projects have
the same level of risks involved. You need to take in
many more considerations suck it.
The Multi-Story Office Building Approach:
Much like building a house, but the cost and risks for
failure are much greater. The Project Manager needs
to keep close track of many different pieces of a project
to make sure that things are running seamlessly. A delay
of a shipment of steel or concrete could push back the
timeline for the entire project, and at the worst, cause
a breach of contract with the client. Large software
development projects put heavy emphasis in the five
phase development cycle and use experienced project
managers (hopefully).
Development Cycle
. Requirements and Specifications
. Design
. Development
. Implementation
. Maintenance
. Requirements analysis Phase
This phase involves the three pillars of successful
software project development: Time,Budget, Specifications.
This is the step where a client/user, software systems
designer and software project manager would create the
initial design document, determine the objectives, set
the mission/vision, estimate the required budget for
the project (or submit a bid), and set a timeline for
development. This is also where the method for payment
of the project is determined (payment per milestone
or on project completion), and contracts are signed.
. Design phase
This could also be called the "planning phase" where
the foundation of the software details and functionality
is specified in a design document. This is where you'd
also take into consideration technical considerations
about the differing methods of implementation. The importance
on the attention to detail and thoroughness cannot be
over-emphasised for this step. A software project will
become exponentially more difficult to develop and manage
if the planning is poorly implemented.
Many books compare this crucial step to getting the
blue prints to a building construction project.
. Developing and unit testing phase
During the developing and unit testing phase separate
components are constructed and tested according to the
design document. Programmers write the code, artists
create the artwork and design, database admins create
the database structure, etc. This phase takes the longest
amount of time, and most prone to causing delays, setbacks,
or complete project failure. The time this phase will
take is the time you expect it to take, multiplied by
three.
. Integration and system testing
The entire application is implemented as a solution
(installed) and tested. This can be something as simple
as installing software on one machine, or as complicated
as installing software on many machines and configuring
them to work together. Integration and system testing
involve putting the separate components together and
developing & testing the entire system until it is operational.
. Maintenance
The last phase involves maintaining, upgrading and expanding
the system after it has been released. This includes
providing a website, user manual, drivers etc. When
it is determined that the software needs to be updated,
the software developers will return to the first step
and start working the development cycle again.
From
Wikipedia