
While Project Management section discusses how SSA LTD interacts with the customers, this page explains our internal management rules.
The software development process is based on the mixture of Scrum (Agile) and Rational Unified Process (RUP). It has the following stages:
1. Development of general architecture for whole system.
At this stage we create architecture of the system’s core and define all the interfaces for interaction with other subsytems in a project.
2. Development of detailed architecture for each subsystem.
This process can be done simultaneously for each subsystem as we already defined general architecture of whole system and interaction protocols between its components.
3. Development of the system’s core and internal interfaces.
At this stage we create preliminary variant of bone classes and their interfaces. The code is written using object-oriented metodology and this is our basic principle.
4. Testing and checking.
We check main system functionality using test cases and fix any bugs in code if some occur.
5. Code development for all subsystems.
This stage can be performed in parallel mode involving additional developers if needed as far as susbsystems are mostly independent of each other and interfaces between subsystems are already defined.
6. Testing all subsystems.
Any bugs or errors have to be fixed at this stage.
7. Final system testing.
Once whole system is ready, we check functionality and fix errors if they occur. At this step the stress tests of the system are performed to check the performance and reliability of the developed software product.
8. Creating installation scripts.
At this stage we create final installation package of the system and check it both in local and customer’s environment. This allows us to define explicitly all mandatory components and libraries used by the system and avoid any possible problems in customer’s environment.
Using this methodology we achieve two main advantages. First of all, this methodology is based on standard software development processes, which itself is created to minimise various organisational problems. And secondly, using concurrent subsystems development technique, we can optimise time of the development that paves the road to successfully finishing even time-limited projects.