Software Development Life Cycle
Depending on the needs of the project an appropriate approach to arranging the development cycle is selected. During the process of software development different kinds of life cycles are used, however, a typical cycle of software development (‘Waterfall’) includes the following:
- Initial, i.e. collection and processing of the project requirements. Preliminary planning of the phases and stages of work, of terms and deadlines, of the resources required and the costs.
- Requirements Elaboration, i.e. receiving terms of references and developing specifications. The partner receives a written statement of his demands and work plans.
- Design, i.e. creation of graphic layouts, visual models, interface design. Creation of individual styles.
- Coding, i.e. obtaining the source code.
- Testing, i.e. checking the conformity of the program to all the requirements and standards.
- Documenting, i.e. ensuring the possibility of transferring the accumulated volume of knowledge to other software engineers.
- Deployment, i.e. installation of the product and training of end-users.
- Maintenance, i.e. patching of bugs found and end-user support.
The second solution is a flexible development cycle (agile), which provides the option of altering the course of activities, introducing additional tasks, and allows for a detailed elaboration of subtle details without any negative consequences.
The process of software development using agile solution consists of small iterations – short cycles – or sprints, which are in fact small projects lasting from one to four weeks. On completion of a separate productive period, an analysis and reorientation to new tasks for the next cycle is conducted. There can be any number of sprints.
- Planning – goal setting and choice of actions for implementation, distribution of available resources.
- Development – practical solution of tasks for creation of an application.
- Testing – accumulation of final information to monitor the fulfillment of tasks; analysis of mistakes and reasons for deviations from plan; identification of methods to correct faults.
- Demonstration – presentation of the completed part of the software to the client.
- Deployment – use of the software as an independent product on request.
Using an agile flexible cycle is reasonable for large, long-term projects when users’ demands are prone to constant changes, and in other cases where strict planning is impossible. The 'waterfall' method will suffice for small projects with strictly defined requirements, providing that there are specialists with relevant qualifications available.
The degree of risk in software development varies according to the chosen method. In flexible cycle development there is a higher possibility of ineffectual architecture, but it is easier to correct mistakes. When using the waterfall method, any failures in the architecture become manifest at the end of the project, when it is more difficult and expensive to eliminate such defects.
Working using the agile cycle costs less and presupposes the delivery of completed units in installments. The waterfall method requires a fixed sum for the final product, often without the presentation of intermediary results.
The choice of cycle depends on the specifics of the project and is to be discussed and decided upon. Contact us – even on our first examination of the problem, we will choose the most suitable method of development and provide a free appraisal within a few days.