Black box projects or distributed development?

25. March 2014

Based on several of the comments we receive on the blogs, many people associate outsourcing of software development to black boxes: Black boxes – or predefined projects – are sent to a company somewhere in the world, and after a period of time, you will receive the finished software. The type of software development we focus on in the blogs is outsourcing of distributed software development with dedicated teams, as this is the type of outsourcing we have worked with in the past 8 years in Conscensia.

What is the difference between the two types of outsourcing and how do you choose one over the other? In our opinion, you have to look at your company’s maturity and the level of details in your specification.

The Black box model

The Black box model is the classical outsourcing model that involves a specification on the software you would like to have developed. The software is delivered to you, when it has been fully developed – and you pay a fixed price and agree on a deadline.
Advantages:
After you have handed over your specifications, you can lean back and wait for the software to arrive. There are no requirements to your company’s experience with software development projects. The sourcing partner manages the project, which involves taking the risk, if the project is delayed.
Disadvantages:
As the sourcing partner is responsible for the project, the price for managing the project is often higher in order to get coverage for unknown challenges along the process. The supplier wants to ensure he doesn’t loose money on the project, however, sometimes, the price can be up to 30% higher than the actual development price. The developers are “code machines”, who works from the specifications on the projects. Your specifications have to be 100% accurate, otherwise, you risk ending up with a software solution that does not fulfil your expectations.

It is possible to involve your own development department using the black box model, however, it is far from usual procedure. Therefore, when you decide to get a project developed using black box, you have usually no control.

Dedicated team model

If you outsource using distributed software development with a dedicated team, your sourcing partner hires the developers for you, and they will work for you, just as your own employees. The sourcing partner handles all practicalities in terms of HR, but you have to manage the project yourself.
Advantages:
The sourced developers on a dedicated team are often more proactive, because they are encouraged to be innovative (they are viewed as human beings and not code machines). Your developed solution will benefit and you get more value for your money.
When you work with a dedicated team, the software are developed to match your own development environment and the source code for the software will be on your own server, giving you full control over the process, even though the developers are not sitting at your location.
Disadvantages:
You manage the project and is responsible if the project is delayed. You pay your team by the hour, meaning, if the project takes a longer time to complete, you have to pay the extra costs. There is also a higher demand for maturity in your company. It is important that you can manage a development project, you have to be very clear in your communication and you have to be dedicated to the project.

A question of maturity and specifications

When you have to choose one model over the other, you should look at your company’s maturity and your ability to control the development process. If you have the time and energy to manage the project, we recommend you to choose the distributed software development model with a dedicated team, simply because you get added value for your money.
If both types of outsourcing had to solve the same project at the same time, the cheapest solution would be a dedicated team, simply because the price for black box projects is raised, in order to cover potential challenges in the development process.
If your company does not have a development department with the maturity or experience to manage the project and the outsourced employees, you should probably choose the black box model.
Besides maturity, you have evaluate how well defined your project is. If your project is not 100% specified, it will be difficult to use the black box model, because you do not have the option to adjust the project in the process. In this case, you will definitely benefit from the dedicated model, as it allows you to adjust the development in every phase of the project.