| At
Planned IT Solutions, Inc., we apply our software planning, design and
development skills to provide a timely, scalable, extendable solution to
your company’s software needs. Effective
software development follows a life cycle similar to that pictured
below.
The
purpose of the software development life cycle is to minimize the cost of
the software over its lifespan. System
features must be identified as early as possible in the life-cycle.
The further into the
life-cycle you go, before identifying a feature change, the more expensive
that change is to make, both in terms of time and financial impact.
|
| Feature Planning: |
|
This
stage is the appropriate place to make all software feature requests.
The type of questions asked and answered in this stage include
those that define how the software will be required to interact with
those who use it, as well as other systems with which it may need to
interface. A good analogy for this stage is to think of a concrete truck being
loaded with the individual components of the mixture that it will take
to be delivered to a construction site.
The individual components might be concrete, sand, gravel and
water. |
| Architecture Design: |
|
This
stage is where decisions are made about the underlying computer
platforms, how the software will be deployed, how to provide appropriate
scalability, as well as extensibility.
New features added here are a little more expensive than those
decided upon in the first stage, but it is still generally possible to
easily integrate features into the system.
To continue our analogy, at this stage, the concrete mixture is being
measured, according to the proportions necessary for the job and
inserted into the concrete mixing truck. |
| Development: |
|
This
stage requires that both the software features and architecture design
be fixed to allow the programmers to be able to implement the required
specifications in the software mix.
In the early stages of Development, is it possible to make minor
changes to features, but significant changes become very expensive, due
to the need to rip out already developed code and replace it with new
pieces. Towards middle of
the development process, any changes become prohibitively expensive due
to the issues testing and verification of the software product.
In our analogy with the concrete truck, we can decide to pour more or
less concrete at the job site, within reason and the limitations of the
amount of mixture on the truck. These
changes are relatively inexpensive.
We could decide to completely change the mixture to be poured,
but that would necessitate throwing away the mix already in the truck,
and requesting another truck with a different mixture—possible, but
very expensive. Finally,
after the truck has arrived on site and begins pouring, stopping and
making changes is an almost impossible task. |
| Deployment: |
|
This
stage obviously requires that the software features be completely set,
without possibility of change. The
development process must be complete, as well as testing for
functionality and correctness. At
this point, any change is so expensive that it probably isn’t worth
the effort to make it. It
would be better to begin the software life-cycle over, at the next
revision level. Following
our concrete analogy, this leads us to the point where the concrete has
been poured, is beginning to set, and just needs the surface to be
finished. Obviously, major structural changes are neither practical,
nor feasible at this time. |
| Maintenance: |
|
This
stage is used to resolve issues, identified as bugs, in the software
system. It cannot be used
to develop new features, or change the architecture of the software
product. It is simply there
to correct problems. Our
concrete analogy, leads us to an example of a house slab that is poured,
set, and finished. Then a
realization is made that the plumbing has been place in incorrect
positions. It is possible
to cut holes in the slab, move the plumbing, and patch the slab, but
much beyond that is impossible. |
|
| Next |
Software
Development Plan |
|
|
|
Indianapolis,
IN Sales@PlannedITSolutions.com
|