Project flow

Together with the client, we choose a development process convenient for both sides. Our project managers use Agile, Scrum and RUP processes in their work. Here is a short description of each process.

Agile is a software development method with short iterations and unlike RUP it relies on personal communication instead of heavy documentation. With its flexibility it is also beneficial when requirements for the software rapidly evolve over time depending on the intermediate results.

Scrum is one of the Agile software development methods, merely a collection of main principles on which the software development is based. It consists of sprints and after each sprint some part of a project is created. The main principle here is that the customer can easily change their minds about some parts of the project and these new features can be easily adopted or re-prioritized. That helps the project to be more flexible and stick to customer’s needs. Frequently scheduled team meetings help drive the product development in proper direction.

The Rational Unified Process (RUP) organizes the development of software in 4 iterative phases. The goal of the inception phase is to achieve mutual understanding among all stakeholders and to ensure that the project is both worth doing and possible to be done. During the elaboration phase the developers analyze the basic architecture of the project, revise the risk-list, build some development plans and create prototypes. The main focus of the construction phase is on development and design of all necessary components and features. After it the project undergoes its first testing. The goal of the transition phase is to ensure that software is available for its end users. It includes testing the product in preparation for release, and making minor adjustments based on user feedback. At this point in the lifecycle, user feedback should focus mainly on fine-tuning the product, configuring, installing and usability enhancements.

By the end of the transition phase the project should be in a position to be closed out. But in some cases, the end of the current life cycle may coincide with the start of another lifecycle on the same product, leading to the next generation or version of the product.

A simplified version of RUP is Agile Unified Process. Here, all the concepts of RUP are combined with initial Agile techniques, such as code refactoring, test driven development and agile change management.