During the process of software development different kinds of life cycles are used, however, a typical cycle of software development (‘Waterfall’) includes the following.
|01||Initial||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.|
|02||Requirements Elaboration||Receiving terms of references and developing specifications. The partner receives a written statement of his demands and work plans.|
Any agile software development 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.
|01||Planning||Goal setting and choice of actions for implementation, distribution of available resources.|
|02||Development||Practical solution of tasks for creation of an application.|
|03||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.|
|04||Demonstration||Presentation of the completed part of the software to the client.|
|05||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.
|A detailed software requirements specification is not needed.||A detailed software requirements specification that must be provided.|
|There is no clear idea of the size of the budget at the start of the project, only an approximate figure.||The exact cost and deadline are specified in the contract.|
|Development can be started immediately after the contract is signed.||It will take some time to write and negotiate the software requirements specification.|
|It is easy to change certain implementation requirements if they are no longer relevant or the project vision has shifted.||An additional agreement must be signed before implementation requirements can be changed.|
|Lower project cost.||Higher project cost.|
|Payment is made according to the actual time spent.||The cost includes a buffer for unforeseen labour input.|
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.