How do we work?

Active client participation

Frequent, working versions

Adapting requirements

Quality

The "traditional" way of managing software projects

It is customary on the software market to estimate the cost of a whole project upfront. On the surface, it may seem that this way the Client is able to precisely define its budget. However, experience shows that when identifying the expenses needed to develop software, even the most experienced engineers are not able to estimate two key factors which have a significant impact of the whole endeavor. These factors are:
  • changing Client requirements: in reality, the requirements are formed as the system is being created,
  • delays caused by unforeseen difficulties arising during the realization of the project.
Having the above in mind, analysts have a tendency do assume a very large margin of error when it comes to assessing the cost and time needed to complete a project. This leads to one of two scenarios:
  • The original esitmate was correct.
The assumed margin of error is an unjustified cost of the project. The Client overpays.
  • Even the exaggerated estimate is not correct.

The programmers are in hurry to finish the project on time. As a result, the system is very low quality.

The traditional model does not guarantee a quality that meets the expenses. In both cases, the Client loses..


Time & Materials

We cooperate with SoftwareMill's Customers using the modern methodologies described below.

In our work we use an approach known as Time & Materials. The cost of the project is preliminarily estimated at the beginning, however the Client bears only the expenses corresponding to the exact time it took to create the commissioned system.

During the realization of the project, SoftwareMill Clients:
  • take an active role in the process of creating the system,
  • receive new, working versions of the system in short intervals of time,
  • define the priorities for actions to be taken in the next step.

This gives our Clients constant insight into the progress made so far.

In case of a change in the Clients' requirements (which are usually formed during the creation of the system) it is possible to modify all earlier-planned actions, for example to introduce new functionalities. The ability to make such adjustments without changing the contract allows the Client to fully control the budget.

Experience shows that such an approach guarantees successful completion of projects.

Agile methodologies

When creating systems at SoftwareMill, we use the so-called agile methodologies. Their basis is the agile manifesto.

During the realization of a project using agile methodologies, the system is created in subsequent iterations. Each iteration consists of three phases: analysis, implementation and deployment of a new version of the system. It is important that after each iteration a working version of the commissioned application is made available to the Client.

The biggest difference, compared to traditional methods of conducting projects, is that the Client takes an active rolein the process of creating the software. It is the Client who, at the beginning of each iteration, determines together with the SoftwareMill team which functionalities are needed the most, and what exactly should be added in the next version. This gives numerous benefits:
  1. If the requirements change during the implementation of the system, the Client simply changes the priorities of required functionalities and they are added in the next iteration.
  2. If the Client decides that the functionalities added so far are sufficient, the project may be ended at any moment, because each iteration delivers a working version of the application.
  3. The Client has constant insight into the progress made by the Team.
  4. Because of the nature of the collaboration, the Team has direct contact with the Client and can quickly clarify any difficulties encountered.
Scrum
To get more information on how agile methodologies can positively influence the realization of your project by SoftwareMill, please contact us.