System Development Life Cycle
Managing complex software development projects is about efficient utilization of resources, risk management, accurate estimation of budgets and timelines, experienced selection of appropriate technologies, and scheduling feature development to meet time-to-market requirements. Harpan’s iterative methodology for software development is designed specifically to mitigate risk which is a reality in every project.
The most important question to answer before starting product development is: Why is this product needed. The answer to this question constitutes the business objectives of the product that should drive its entire lifecycle
A software product's development lifecycle is comprised of the following workflows:
- Requirements
- Analysis
- Detailed Design
- Coding
- Implementation
- Maintenance
These workflows are managed by a project plan that determines when the software product will offer the required features.
Waterfall Model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance. Time spent early in the software production cycle can lead to greater benefits at later stages. McConnell shows that a bug found in the early stages (such as requirements specification or design) is cheaper in money, effort, and time, to fix than the same bug found later on in the process. Requirements must finalised before detailed begins to avoid wasted effort on performing detailed design on incorrect requirements. Similarly the design should be perfect before implementation.
A further argument for the waterfall model is that it places emphasis on documentation as well as source code. In less designed and documented methodologies, should team members leave, much knowledge is lost and may be difficult for a project to recover from. Should a fully working design document be present, new team members or even entirely new teams are able to familiarize themselves by reading the documents. Detailed design documents also facilitate the maintenance workflow.
Rapid Prototyping Life Cycle
The Rapid Application Development and Design approach utilizes accelerated joint application development sessions to derive the detailed system requirements for your specific application. RAD (Rapid Application Development) provides for a very dynamic approach to software development and customization. Harpan capitalizes on the iterative nature of this approach by involving the client at agreed upon "review points" in the process. The "review points" serve multiple purposes:
- The workflow of rapid prototyping ensures that the correct conceptualization and specification is agreed on by the client
- Provides a forum for the client to provide input to the development team
- Exposes the client to the interfaces, thus enhancing its state of readiness for the detailed design and development phase
Our approach and methodology is well adapted to enforce processes and has been employed with great success in the design of various solutions in organizations.
Incremental lifecycle model
The basic idea behind this model is to develop a system in smaller portions at a time (incremental), allowing the team to take advantage of what was learned during development of earlier parts or versions of the system. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subset of the software requirements.
All requirements are evaluated and ranked in order of importance of delivery and return on investment. Using an incremental lifecycle model, the workflows of the Waterfall life cycle model are repeated in each increment and the project plan arranges the development in incremental builds. The Benefits of Harpan’s Incremental lifecycle model include the following:
- The model demonstrates progress at an early stage in the life cycle
- The team focuses on getting the highest priority features and the highest risk features implemented early to realise business benefits
- Because the client and users experience the system early they are able to provide feedback that is used in the subsequent increments
- The impact of a new system to users is reduced and the implementation of the system is experienced early in the lifecycle.