Project management approach
Yumasoft methodology and project management system is applicable to every particular IT project. To organize the process of work the most effective way we follow well-known and established Methodologies, use modern Project Management Instruments and offer flexible ways of Project Management Organization.
Methodologies
Software development methodologies that Yumasoft practices are based on iterative / incremental methodology since it is appreciated as a forward step from traditional Waterfall model. Depending on specifics of every project and every Client at Yumasoft we use both Formal and Agile methods of software development process organization.
Formal Methods
Rational Unified Process (RUP)

As iterative software development methodology RUP development process is divided into iterations whi ch are grouped into 4 phases. Each iteration includes some parts of workflows. Assuming that work process according to RUP is measured in two dimensions:
- Inception - stage of project analysis
- Elaboration – working out the detailed plan of development
- Construction – development of the project
- Transition – software testing and customer delivery
- Level of criticality is high - is used when even a little permanent failure is not acceptable (surgery software);
- Requirements are defined clearly and can be changed in exceptional cases;
- It is required to develop separate project or task, which can be measured in time exactly.
This methodology can work both with fixed price and time and materials payment models.
Agile Methods
Scrum
Iterations in Scrum are called Sprints. In opposite to RUP’s iterations each sprint in Scrum are cyclic (reccuring) should deliver potentially shippable increment of the software - working and tested.
The software development process in Scrum organized via following stages:
- Building of Product backlog – high level document contained prioritized high level requirements of what should be done.
- Forming of Sprint backlog – choosing which Product backlog items should be implemented during the sprint. It is decided on sprint planning meeting.
- Sprint – the implementation process itself during which growth of the software functionality appears. It is not allowed to make any requirements changes in sprint backlog while the sprint period is going (usually from two to four weeks, according to the team decision).
- Every day during the sprint Daily Scrum meetings inside the team are held.
- In the end of each sprint period Sprint Review meeting is held to present the demo to the client and review what work has been completed and what has not.
- On the end of the sprint development team delivers Working Increment of the software and demonstrates how to use it.
- The problem cannot be fully understood and defined at the starting point;
- Clients need to change the requirements about what they want during the software development process;
- The team needs to react the most effective way on emerging requirements;
- The project requires using modern new-released technologies, and it is hard to estimate exact timeframe for development (mutual venture).
Extreme programming (XP)
XP is further step in agile programming from Scrum in destination to extremely shortened time of iterations, extremely frequent requirements detailing, and extremely close communication and joint work with the customer.Eliminating mentioned differences, the software development process in XP is rather similar to Scrum. Its stages are following:
- Investigation of Unfinished Features from the product backlog and starting the process from the most important ones.
- Starting every iteration with Iterative Planning – getting customer’s requirements, definition and specification of them and making sure that no additional improvements can be included into iteration requirements – each iteration starts from scratch, no redevelopment or development of what was planned to do on previous iteration are accepted.
- Creation of Honest Plans – estimation of requirements got on Iterative Planning.
- Development of features planned to deliver in current iteration with Daily Communication (similar to Scrum) inside the team and with Client when needed. The principle of Team Empowerment claims moving the team leader role inside the team during the software development process.
- Delivering of working software at each and every iteration.
The pace of iterations changing forms a Project Heartbeat. The goal is to make it fixed by length and as short as possible. While Scrum recommends 30 days iterations, XP is struggling for a week.
- Client needs to see new functionality often to have an opportunity to make needed corrections;
- Changes in requirements are critically needed even in the latest phases of software development process and it should be planned instead of creating of a stable set of requirements;
- Client enjoys being the part of the team and being always accessible in close connection to the team;
- The project requires using modern new-released technologies, and it is hard to estimate exact timeframe for development (mutual venture).
Time and Materials payment model suits to this methodology the best way.
Instruments
To make the software development process manageable and transparent at every project at every stages Yumasoft use following project management instruments:
- Two-level project management structure –Project Managers as a part of every development team and General Project Manager as a part of Yumasoft Management Team;
- Project Management software – general (MS Project, etc.) and IT-specified (JIRA, Rally Dev, LightHouse, OnTime, TRACK, etc.).
- Using of Unified Modeling Language (UML) - another instrument, which allows the description of all aspects of any project, enabling developers to have the unified vision for the software project, easy managing of work coordination. UML ensures the project integrity and flexibility of the development process management (Rational Rose).
Project Management Organization
Besides two-level project management structure following our principle of flexible approach to clients we offer different options of Project Management organization:
1. Project Management from our side :
Project Manager as a part of our side development team, responsible for project management and communication with Client only
Generally is used when:
- Development team consists of large number of developers (5 and more);
- Client does not take an active role in software development process.
Project Manager as a part of our side development team, who is at the same time Senior developer and Tech Lead, responsible for project management, communication with Client, architecture building and programming
Generally is used when:
- Development team does not consist of large number of developers (2-5 developers);
- Client takes part in software development process, usually there are development team working on the same project on Client’s side.
2. Project Management from Client's side. Generally is used when development team is small (1-2 developers)
Generally is used when:
- Development team is small (1-2 developers);
- Client takes an active part in software development process, usually there are development team working on the same project on Client’s side and clearly defined separate tasks are provided to outsourcing software development team.
Every Client is unique and furthermore every project is unique. In some parts it can require extreme programming while in others the requirements can stay constant for extremely long time. So to fit to one of our core corporate values and stand on flexible approach to the customer we mix the methodologies and always choose the right one for the right project phase.
