Brooks in Reverse

Jul 29, 2022

Fred Brooks observed in Mythical Man Month that adding more programmers to a project often slowed it down.

The effect works in reverse, as Paul Graham noted in a 2001 essay, The Other Road Ahead:

as groups get smaller, software development gets exponentially more efficient

Graham was observing the early effects of SaaS and web programming. No need for porting applications to different operating systems or physical releases (floppies, CDs, or software appliances). SaaS removed the dependency hell companies often found themselves in – old versions that customers refused to upgrade from that still needed to be maintained (often with backward compatibility). The downside, he said, was that you still needed to manage servers and infrastructure. A single bug could crash all users. Hardware disks could become corrupted.

Many of those concerns are no longer true. Hosting a static site on a cloud CDN requires nearly zero ops. Edge functions don't require a site reliability engineer to ensure the hardware and runtimes are up-to-date. Further down the stack, managed services don't require developers to keep an eye on them (well, not all the time). Observability tools allow engineers to be quickly reactive to problems – and sometimes even proactively prevent full outages. Web applications evolved to do more than solve the multiple versioning issues – new strategies emerged like A/B testing and rolling deployments.

FTX, a cryptocurrency exchange, has 30 engineers on staff. Even if you can't suspend disbelief about their valuation ($32b) or business, you have to admit the complexity of software and scale that they are able to achieve with a few engineers is still wildly impressive.

Not all software businesses will be as easily leveraged with engineering talent. Enterprise software businesses, even (maybe especially) the most technical ones, require significant sales and marketing headcount to scale. But some will and might achieve extraordinary scale with a few leveraged developers.