7/09/2007

Incremental Build Life Cycle Model

Software process models often represent a networked sequence of activities, objects, transformations, and events that embody strategies for accomplishing software evolution. Such models can be used to develop more precise and formalized descriptions of software life cycle activities.
One such model that helps reduce cycle time is the Incremental model (A prescriptive model which describes how a new software system should be developed). It allows the system to be delivered in pieces .Thus, the user can have some functionality while the rest is being developed.
Generally 2 systems work in parallel for this:
· The operational System - The one currently being used
· The development System - Next version which would add some more functionality to the existing system
The incremental approach attempts to analyze each iteration through 2 views essentially, the user view and the developer’s view and incorporates the feedback to modify both the language requirements and any design related changes for future iterations. The development is done in an open loop with user feedback being an essential factor.
It primarily combines the waterfall sequence with some of the advantages of prototyping. There are two fundamental flaws in the traditional (waterfall or modified waterfall) software development life cycle model: the information flow is unidirectional with inadequate provisions for feedback and user involvement is focused primarily only at the beginning and end of the project. The iterative process addresses these flaws by using a shorter life cycle and allowing efficiently for feedback from later stages to earlier ones.
In general it divides the project into a number of increments and then applies the waterfall model to each increment. The system is put into production when the first increment is delivered. Over the time additional increments are completed and added to the working system. Each iteration passes through the requirements, design, implementation and testing phases. The Incremental model allows full SDLC of prototypes to be made and then tested before moving to next level.
Research indicates that developing software components early and often and within smaller time frames increases the success rate .Complex systems are most successful when they are implemented in short steps and each step has a specific and clear objective. (A classic example of this is NASA’s space shuttle software –The primary avionics system built from 1977 to 1980). This approach gives an opportunity of receiving feedback from the real world before actually creating the whole system and a chance to correct some design errors in the first few stages before they prove fatal.
The defined phases are:
Initial Planning - understanding the project, preliminary planning and estimating.
Requirement Analysis phase - identification of requirements, detailed planning
Design phase- transform the detailed, defined requirements into system design, develop a complete information system
Deployment –product packaging and delivery, user training, user product evaluation.
Operations Mode – Maintenance of the product.

Each phase consists of a number of iterations which are planned, controlled and analyzed.
Put succinctly, the incremental process breaks the entire project into smaller sub-cycles. Each sub cycle delivers a subset of the overall system functionality to the end user, explicitly validates the requirements, and involves the end users more intimately in the development process.
From a project management perspective, the incremental life cycle seems to be hard to plan and a nightmare to track. It can be unmanageable in an absence of an experienced project manger and architect. Incremental development places a much greater premium on a sound architectural framework based on a solid use case analysis. But when the process is managed with the appropriately skilled team members on board, it is actually easier to manage and carries drastically reduced risks of cost overruns, missed deadlines, lower quality, and failure to meet expectations.

No comments: