Custom Software Development Process
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
Planned IT Solutions Indianapolis, INIndianapolis, IN  Sales@PlannedITSolutions.com