Corosoft emphasizes the value of utilizing industry proven methodologies and the importance of monitoring results when developing software. We base our process framework on open, published and supported standards. On larger projects and with larger software development teams we apply tailored versions of Rational Unified Process methodology of software engineering (RUP), while on smaller projects more often we use the most modern Agile Methodologies. The customer has the decisive say on the choice of the methodology for a particular project.
Waterfall Software Development Life Cycle model
The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance. Though, the model was criticized for a long time, it is useful on some midterm, well-defined and structured projects with clear project goals.
Rational Unified Process (RUP)
Corosoft has invested in the required development tools and training for the successful implementation of RUP. Adherence to the RUP process allows Corosoft to mitigate the risks associated with traditional custom software development and deliver projects on time and on budget.
Corosoft has created several custom versions of RUP with tailored sets of artifacts, roles, and activities suitable for typical projects in a particular industry. For example, in the telecommunications sector we have come to implement two tailored versions of processes: one for engineering individual modules of a larger system controlled by the customer and the other for a fairly independent and standalone system.
Software is developed in increments, where each increment adds some functional capability to a system until the full system is implemented. At each step extensions and design modifications can be made. At Corosoft such approach is used to develop short-term small-team projects where the customer wants to control progress of work, but does not participate in regular development activities.
When business conditions are rapidly changing and a software product must be developed in a short period of time, though the final functional and technical requirements can’t be estimated beforehand and a client isn’t sure that he will manage to cover costs for the whole project in time, a new alternative agile approach to software development becomes necessary.
Corosoft team has a substantial experience in Agile Software Development based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The company successfully uses such Agile methods as SCRUM (projects progress via a series of iterations called sprints. Each sprint is typically 2-4 weeks long. Scrum is ideally suited for projects with rapidly changing or highly emergent requirements.) and XP (Extreme Programming).
The other things that make Agile methods our strength are its correspondence to our Quality Management System and a permanent improvement of our stuff qualification by taking part in trainings and conferences dedicated to this topic.
Corosoft also uses a number of its own practices to promote projects implementation using Agile Development Methods:
- Integrated project infrastructure for closer contact in the team and data exchange simplification. This includes a professional tasks and defects registration system, interactive smart cards, on-line conferences, online seminars, joint repositories of documents and source codes.
- Agile relationship system with customer, including direct interaction of developers and customers’ project team, application of customers’ standards and development practices.
- Developing methodologies oriented on the fastest achievement of the result: architecture and user interface prototyping, iteration developing, finished open-source components usage, testing-based developing, automated quality control etc.