How to balance client work with in-house products?

Almost all software development companies that strive to develop their own products while also providing services to clients face the issue of balancing workload.
You have to dedicate resources to projects that generate cash flow for your company. Yet, you wish to develop a product and scale the company beyond the “just another service provider”.
Besides, providing services only in an unpredictable market, when there’s a global shortage of talent, puts strong limits on your growth. On the other hand, selling software products is a business you could scale almost limitlessly.
There’s no end all be all solution to this problem, but as a software and future product company, here’s our take that you might find useful.
Internal projects are a training ground
Junior-level software developers and interns can’t take part in client work right from the start. They require mentorship and test projects to practice on. Yet, allocating the time of senior developers for mentorship causes often a bottleneck because it’s a non billable hour.
Finding legacy code or projects where people can practice can be tiresome and new employees might lose motivation quickly, especially if they’re not intrinsically motivated by nature and proactive.
Internal projects are a great training ground. We have seniors working on them and juniors testing their coding skills. Combined with mentorship, it’s a great way to train people.
It’s a win-win. Both training and mentorship at one place, and the product still stays in production.
Developing products tells you a lot about your business processes
Because we’re handling internal projects as a training ground for junior-level software engineers, we deliberately allocate the resources for that. Our senior-level developers have a task list that includes internal projects.
At some point, those trained juniors start taking over client tasks in the company and the dynamic shifts naturally.
However, every time we spot there’s no slot available for further development of our own product, we realize that we have reached the maximum capacity.
It’s a signal that we need to hire more people or optimize our processes. Internal projects can reveal a lot about company processes and capacities. Especially if you hire yourself and become your own client.
Yes, you have to hire yourself
This one was hard to implement, yet it completely changed the way we approach internal projects. You have to hire yourself. You have to be your own client.
This ensures that the internal product-related tasks actually end up on your task list or get mentioned in your daily syncs.
- Your project managers will keep track of available resources.
- You’ll develop processes around it.
- You’ll start thinking about a business plan for the product.
If you don’t hire yourself, the internal product becomes just another item in the backlog that constantly gets pushed around because there’s “actual client work”.
The trap becomes even more dangerous because there’s no timeframe for finishing the product or the MVP.
In the end, it’s about the sacrifice you’re willing to make
Would you rather take on fewer projects so you could devote more time and resources to internal projects? Or would you rather work on it from time to time? It depends on your expectations and willingness to take risks.
If your business research revealed that the market is ready for the product – perhaps you should invest more into it. If you’re operating on a hunch, we might advise doing a full research beforehand.
Either way, we have to sacrifice something in order to get bigger business gains. Time, money, or comfort. Sometimes all of it.