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 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.
- Elaboration, i.e. receiving terms of references and developing specifications. The partner receives a written statement of his demands and work plans.
- Construction.
Design, i.e. creation of graphic layouts, visual models, interface design. Creation of individual styles.
Coding, i.e. obtaining the source code.
Documenting, i.e. ensuring the possibility of transferring the accumulated volume of knowledge to other software engineers.
Testing, i.e. checking the conformity of the program to all the requirements and standards. - Support.
Deployment, i.e. installation of the product and training of end-users.
Maintenance, i.e. patching of bugs found and end-user support.
The difficulty with large-scale projects very often lies in the impossibility of defining all of the requirements concerning software at the project design stage. Significant changes are introduced by the customer as late as the development stage, which may alter the total volume of work. We know that this is common in the case of complicated systems.
This problem is solved by means of implementing an iterative approach to work with payments based on an hourly payment scheme. The adequate and sensible organisation of work enables the customer to change the direction of project development, introduce additional tasks or demand additional attention to bottlenecks without any disruptions to the overall course of the project.
