When Flexiana started as a company, we focused on Clojure. Clojure market is not a huge one, but it attracts very clever and senior developers. Over time, we evolved the way we cooperate with our customers.
This is when Co-development was created. It was designed to specifically address the needs of development companies that offer outsourcing services. Since then, we’ve been using this framework for more than 7 years. Here are the 5 main problems Co development has helped us to fix.
#1: Traditional outsourcing models cut a chunk of our resources and manpower
We have a large team of developers from 37 countries and almost 18 time zones. Managing more than a handful of developers on multiple projects can soon become a nightmare if you don’t have a large management team. Other problems include:
- When clients reach you, they want you to get busy ASAP, and the counteract will end as soon as the product is finished. This leaves you with little to no room for resource management and reallocation.
- There are times when the client wants to increase or cut back on the project, either way, it is not easy for us to respond to it without facing some challenges.
- When we did staff augmentation for a project, we had to cope with having a large number of idle coders at the end of the project and having to work around the clock in order to find new assignments for them.
Under the Co-development framework, we were able to address these issues:
- Before the project is finished, we offer further development and maintenance services to our client. It can help with a smooth transition of a project to the client and helps us to unload our employees from the project at a slower pace.
- Due to having access to a large pool of developers, whenever we feel there’s a need to add more people to the project, we can in-source it to some of our other developers. This way, new people are not added to the project so it prevents some complications, but more manpower is added to the project.
- The client can book our developers full-time, add them to their on-site team and manage them directly, while they still get paid on the hourly basis. It helps the client to get access to the talent that built their product, without having to go through the hiring process thus lowering their costs and time consumption.
As you can see, the main obstacles that prevent outsourcing companies from growing have been addressed here. Although this framework is not without its own problems, it is definitely an improvement over the previous outsourcing models.
#2: Employee training and development was not consistent with outsourcing trends
One of the main problems that Companies who focus on outsourcing face, is that they can’t have a clear vision for their employees’ training and development. Due to the nature of the job employees get paid on an hourly basis, so once they are not getting paid, the company usually doesn’t have much say in what they should do and how they should plan for their own growth and training. This results in having to hire new people with new skills constantly to cover the skill gap in the company, and leaving some of the developers with lots of free time due to their lack of alternative skills.
Even clients don’t want to take in developers who don’t have enough incentive to grow. They want people who can learn and advance as the project moves forward, so they can keep working on it for a long time, and erase the need for onboarding new people with new skill sets whenever the project’s complexity exceeds the level that the current developers can handle.
The good news is we solved this problem in co-development. We offer our developers higher hourly rates and more work opportunities based on how knowledgeable and relatable their experiences are compared to the current needs of the market. This has resulted in a thriving work environment where our employees regularly are looking for new trends, trying to stay on the edge of technology, and regularly holding meetings to share their newfound knowledge with other developers. This way, education, and growth have been incentivized. You can read about the results of these efforts on our blog.
#3: We needed something between staff augmentation and outsourcing
When we talk about outsourcing, it means that the day-to-day management of the team and their tasks are by the client. When we talk about staff augmentation, it means that all the managerial efforts are done by us. There needs to be a common ground between the two so the client can go back and forth between the two, whenever they required.
Co-development offers a third choice: management can be done either way. In some projects, we provide the team, and the client does all the rest. In some other projects, we provide the team and the management. Deciding on which way to go is completely dependent on the project, but knowing that the option exists, gives the client better flexibility and enables us to cover a wider range of contracts. This applies to all the other features of these two models. For example, the client can have access to the unlimited resources that outsourcing companies can offer but decide to stay on the hourly rate payment model that staff augmentation contracts offer.
#4: Sometimes, outsourcing lacks the quality that in-house development has
This is a well-known fact. Although more expensive and sometimes more time-consuming, developing a project in-house has a higher level of quality and polish that the outsourcing solutions can not provide. However co-development solves this problem by combining the merits of staff augmentation and outsourcing together.
Co-development gives you all the benefits of outsourcing without its downsides. The team can be under the client’s command, work under their management system, have direct communication with the client’s team members, and work with their standards.
In this scenario, the Co developers are following the client’s in-house standards and quality measures. So the final result is a more polished, more coherent and more efficient product. And the client doesn’t have to bear the hardships of recruitment and human resources of a new team member. This is the essence of Co-Development.
#5: If the client decides to use our developers full-time, we no longer face a conflict of interest
Once the project is done, the clients usually don’t need as many developers as they did before. But usually, the cost of outsourcing developers for a finished project is much higher than its benefits. That’s when the clients decide to terminate their cooperation with outsourcing companies and try to look for full-time developers.
Co development has a solution to this as well. The client can continue working on an hourly basis with us even after the project is finished, whether to further develop the product and add features or to monitor its operation and do QA. Our framework lets them seamlessly transfer between full-time, part-time, and hourly working plans. At any point, they can reduce the number of working developers on a project, or increase it back up.
By reducing the costs of working with us compared to hiring a full-time developer, we managed to keep the clients even after the project id finished.
As we said, co-development is not a complete and flawless framework. However it addresses and fixes major problems for outsourcing companies, problems that sometimes would become fatal. Since its implementation, we have never felt like we have to go back to the traditional outsourcing models. That’s why if you are a manager at an outsourcing company, we recommend you to give co-development a try. In the future, we will write down a comprehensive guide to co-development that can help everyone start with this framework and implement it in their company. So stay tuned to our blog.