Software Development Methodologies

Yumasoft's methodology and project management system can be applied to any IT project. To make the work processes effective and efficient, we follow well-known and established Methodologies, use modern Project Management Instruments and offer flexible ways of Project Management Organization.


The software development methodologies that Yumasoft uses are based on iterative / incremental methodology, since this is considered a step up from the traditional Waterfall model. Depending on the specifics of each project and client, we use both Formal and Agile methods of software development process organization at Yumasoft

Formal Methods

Rational Unified Process (RUP)


As far as iterative software development methodologies are concerned, the RUP development process is divided into iterations which are grouped into 4 phases. Each iteration includes some workflow parts. We assume that according to RUP, a process is measured in two dimensions:

Time – Iterations:
  • Inception: stage of project analysis
  • Elaboration: working out a detailed development plan
  • Construction – development of the project
  • Transition – software testing and customer delivery
 Engineering disciplines:
1.       Business modeling – establishment of a better understanding and communication channels between business (organization or client company in which the software will be used) and software engineering. This includes understanding the structure, further development goals, current problems, and possible improvements of the target organization.
2.       Requirements – listening to clients’ requests and transforming them into sets of requirements, thus creating technical specifications.
3.       Analysis and design –presenting an outline of how the source code will be structured and written, representing the future components in the implementation.
4.       Implementation - realizing entire systems through the implementation of individual components.
5.       Test – verifying the interaction between objects and the proper integration of software components, ensuring that all requirements have been correctly implemented, bugs are fixed, tested, and closed.
6.       Deployment – producing successful product releases, delivering the software to end users, installing, and providing assistance.
Supporting disciplines:
1.       Change management – this includes configuration management (systematic product structuring, keeping documents and models under version control), change request management (keeping track of the changing requests), status and measurement management (tracking statuses of change requests – new, logged, approved, assigned or complete, its priority levels, etc.).
2.       Project Management – two-level planning: The software development plan (general, The Phase plan) and The Iteration plan.
3.       Environment – providing the software development organization with the necessary processes and tools, the software development environment
This is generally used when:
  • The level of criticality is high - is used when even minor permanent errors are not acceptable (surgery software)
  • Requirements are defined clearly and can be changed in exceptional cases
  • Separate projects or tasks need to be developed, for which an exact time frame can be measured

This methodology can be applied to both the fixed price model and the time and materials payment model.

Agile Methods


Iterations in Scrum are called Sprints. In contrast to RUP iterations, each sprint in Scrum is cyclic (recurring) and should deliver a potentially shippable increment of the software – functionality is in testing.

The software development process in Scrum is organized in the following stages:

  1. Building of Product backlog – high-level document containing prioritized high-level requirements of what is to be done.
  2. Forming of Sprint backlog – choosing which product backlog items should be implemented during the sprint. That decision is made during the sprint planning meeting.
  3. Sprint – the implementation process itself during which the software functionality grows. Changes in requirements are not possible in sprint backlog during the sprint period (usually between two and four weeks, based on the team decision).
  4. Every day during the sprint, Daily Scrum meetings are held within the team.
  5. At the end of each sprint period, a Sprint Review meeting is held to present the demo to the client and review what work has been completed and what has not.
  6. At the end of the sprint development, the team delivers Working Increment of the software and demonstrates how to use it.
Scrum is generally is used when:
  • The problem cannot be fully understood and defined at the starting point.
  • Clients need to change their requirements during the software development process.
  • The team needs to react to emerging requirements in the most efficient manner.
  • The project requires the use of modern, newly released technologies, and it is hard to estimate exact time frames for development (mutual venture).
The Time and Materials payment model is the best fit for this methodology.

Extreme programming (XP)

extreem_programmingIn agile programming, XP is another step up from Scrum, which entails severely shortened iteration times, extremely frequent detailing of requirements, and particularly close communication and collaboration with the client.

Aside from the differences mentioned, the software development process in XP is similar to Scrum. Its stages include:

  1. Investigation of Unfinished Features from the product backlog and beginning the process with the most important ones.
  2. Starting every iteration with Iterative Planning – receiving the client’s requirements as well as their definitions and specifications and ensuring that no additional improvements can be included into iteration requirements – each iteration starts from scratch, redevelopment or development of material planned for previous iterations are not acceptable.
  3. Creation of Honest Plans – estimation of requirements agreed upon during Iterative Planning.
  4. Development of features planned for the current iteration with Daily Communication (similar to Scrum) within the team and with the client when needed. The Team Empowerment principle encourages alternating team leaders within the team during the software development process.
  5. Delivering working software with every single iteration.

The changing pace of iterations results in the formation of a Project Heartbeat. The goal is to make it fixed-length and as short as possible. While Scrum recommends 30 day iterations, XP strives for completion in one week.

XP is generally used when:
  • The client needs to see new functionalities often in order to have an opportunity to make the necessary corrections.
  • Changes in requirements are critical even in the latest phases of the software development process and should be planned rather than creating a fixed set of requirements.
  • The client enjoys being the part of the team, the constant accessibility and close collaboration with the team.
  • The project requires using modern, newly released technologies, and it is hard to estimate exact time frames for development (mutual venture).

The Time and Materials payment model is the best fit for this methodology.


To make the software development process manageable and transparent during each project stage, Yumasoft uses the following project management instruments:

  • Two-level project management structure – Project Managers as part of every development team and a General Project Manager as part of the Yumasoft Management Team
  • Project Management software – General (MS Project, etc.) and IT-specific (JIRA, Rally Dev, LightHouse, OnTime, TRACK, etc.)
  • Unified Modeling Language (UML) - Another instrument, which facilitates coordination of work and allows any aspect in any project to be described, thus enabling developers to have a unified vision for the software project. UML ensures the project integrity and flexibility of the development process management (Rational Rose).

Project Management Organization

devteamsizeFollowing our principle of practicing a flexible approach with clients, we also offer different Project Management options in addition to our two-level project management structure:

1. Project Management on our side :

  • g.jpg  Project Managers as part of the Yumasoft development team, responsible for project management and communication with the client only

Generally used when:

  • Development teams consist of large numbers of developers (5 or more)
  • The client does not play an active role in the software development process
  • g.jpg  Project Managers as part of the Yumasoft development team, who are Senior developer and Tech Lead at the same time, responsible for project management, communication with client, architecture building, and programming

Generally used when:

  • Development teams do not consist of large number of developers (2-5 developers)
  • The client takes part in the software development process. In those cases, there is often a development team working on the same project on the client’s side

2. Project Management on the client's side

Generally used when:

  • Development teams are small (1-2 developers)
  • The client plays an active role in the software development process. In those cases, there is often a development team working on the same project on the client’s side. The outsourcing software development team receives clearly defined, separate tasks

Each client is unique, and so is every project. While some cases may require extreme programming, in others, the requirements may remain fixed for a long time. True to one of our core corporate values, offering our clients a flexible approach, we combine the different methodologies and always choose the right one for the right project phase.

The mix of different methodologies and our flexible approach to Project Management Organization, combined with our eight years of experience in software development process organization, allow us to manage even the most complicated software development projects efficiently and thus lead our clients to success.