⌚ Why Everything Takes Longer and Longer in Growing Startups
What slows you down but the CEO doesn't see
When I talk to CEOs, their only question about technology is: “Why are they so slow?” And we talk about how deadlines don’t work to make software development work at all - or work faster. There are many things a CTO can do to optimize performance in software development - with 40h weeks - but the main reason why things are slow is the iceberg principle.
“You know how an iceberg is 90% underwater? Well, most software is like that too — there’s a pretty user interface that takes about 10% of the work, and then 90% of the programming work is under the covers.” -Joel on Software
In the beginning of a startup everything is fast. The founder has an idea, talks to the developer, developer writes some code, done. Then over time it takes longer and longer to implement something. The CEO asks “Why was everything faster in the past? Why do small changes take weeks?”
In the beginning the code base is small and developers are few.
It is easy to extend the existing code with new features. The code is easy to understand and there are no side effects. Over time the code gets more complicated with more side effects. There is Hubspot integration. And SOX compliant auditing. and Meta pixels for marketing.
And where once was a single database there are now several database clusters with different schemas. And bigger schemas. And more data. And there is a read/write split for performance. And caching.
But the CEO only sees the same UI.
And there is organisational change. In the beginning the one developer only has to talk to themselves in their head. Then there are more developers. And product managers. Decisions need to be made together. There are now other teams and changes need to be coordinated. There are goals systems. Every change might impact the OKR of some people. There is resistance to change. Someone needs the feature the way it currently is. “No we can’t change CSV to JSON because our marketing partner needs CSV”.
To make things worse there is the principle of diminishing returns of adding developers. The CEO adds a developer every month and expects things to keep going. But from 1 developer to 2, performance goes up 100%. From 2 to 3, performance is up 50% for the same money added. From 4 to 5 it’s 25%, then 20%, then 17% and so on. The CEO feels she is constantly adding developers but things are still not getting faster. To keep the added development power constant, the CEO would need to add an exponential number of developers. First 1 (from 1 to 2), then 2 (from 2 to 4), then 4 (from 4 to 8) and so on.