We allow our customers to select the optimum model of interacting with us depending on the sources of funding, availability of in-house experts, in-company culture, and their willingness to be involved in the development process.
With this model, the customer pays for the time of the professionals who work on the software product with the customer's direct participation. This is one of the most flexible approaches because any number of changes can be made in projects at any stage of the development cycle.
– The customer defines tasks together with the developers.
– The task priority is defined.
– Each completed task is accepted by the customer.
– Changes are made to the project if necessary.
– As a result, the customer gets the desired software product.
– Changes can be made to the project at any stage.
– The customer only pays for the desired features.
– The customer gets exactly the project they need.
– Product requirements may change at any time.
– The customer requires complete financial control over the costs.
– The customer is ready to participate in the development process.
This model is applicable if the budget and the scope of works are fixed. The quality of the final product depends directly on detailed requirements which will not change till project completion. Deadlines are set at the start of the development cycle.
– Detailed specifications are created for the project.
– The budget and the development period are fixed.
– Any changes to the product requirements will be kept at a minimum.
– Interim development steps are identified.
– The customer accepts each completed step.
– Project expenses will not exceed the defined budget.
– Project requirements are defined before the start of the work.
– Development times are known at the very beginning.
– The customer is not going to change the project requirements.
– The budget and the development period are clearly defined.
– The customer does not have enough experience to participate in the development.
The customer gets a team of engineers which are selected according to the project needs. The team becomes a part of the customer's company and completes the tasks defined. Additional engineers may be added to the project and changes may be made to the development process if necessary.
– The area of responsibility is defined for the team.
– Each specialist is validated by the customer.
– The team uses the customer's tools and environment.
– The customer maintains full control over the development process.
– The team list may be modified if necessary.
– The customer contributes to the selection of project engineers.
– No money is spent to hire and manage in-house personnel.
– The team adapts to the customer's internal processes.
– Long-term complex projects.
– The customer cannot build an in-house team of developers.
– An existing team has to be expanded promptly.
A hybrid approach may be the best one under certain circumstances, where different interaction models are selected for different stages of the project. This allows the customer to maintain full control over budget and deadlines, combined with maximum flexibility of the development process.
– A model is selected individually for each part of the project.
– The model can be changed promptly if necessary.
– A separate agreement is signed for each model.
– Risks are reduced both for the customer and the contractor.
– Benefits of other interaction models are combined.
– The project starts with great uncertainty.
– Additional flexibility in project funding is required.