On this page I use a technique for layout called CSS grid. Only the most recent versions of Firefox, Chrome and Safari support this technique. To see the page as it is intended please switch to one of those browser. Either way I hope you will enjoy yor visit.

Balancing production and production capacity

This weekend I played board games with some friends, and more specifically we played a game called Hansa. It’s a strategy game, and like most strategy games you have resources that you need to manage. In this game there was a clear division between production and production capacity. Production capacity allowed you to do more actions each turn and more powerful actions. With these actions you were able to buy resources that provided points.

Some players focused on building their production capacity while some rushed to buy points. So at the end of the game some players hade a huge production capacity, but the game had ended before they had a chance to use that capacity to buy points. Others had few points because their capacity to buy points during the game had been too low. The winner had balanced building production capacity with using that capacity to buy points.

The need to balance between production capacity and actual production is ever present when building software. Devoting time to a CI pipeline increases the teams production capacity, but doesn’t actually produce anything. Cutting corners when delivering a new feature prioritises production at the cost of future production capacity.

Reality, just like games, have limits to have long you can play and software projects have deadlines that are more or less arbitrary. Deadlines can be imposed by a product manager. The project may have a limited budget. The startup may run out of cash. A competitor may launch a similar product or feature before you. Having a perfect development environment doesn’t really help a startup that doesn’t have any cash left for payroll.

The balancing act requires judgement calls that are made in the moment but I’ve assembled a few heuristics.

All in all I probably lean too much towards investing in production capacity. But I think that software development is a marathon, not a sprint, so what you invest in production capacity today will pay dividends for years to come.

Daniel Karlsson

Hire me!

I'm Daniel and I'm a fullstack developer specialised in web applications. I've programmed for twenty years, the last ten professionally and founded startups. I help companies explore and realise new revenue streams by delivering proof of concepts and minimally viable products. I'm also available as a freelance developer. Contact me!