Bets and Debts
16 July, 2024At a simplistic level, software (and perhaps all) management is about deciding who gets to make bets and who has to pay debts.
Making bets is exciting. You get a green field! Maybe the bet pays off, and you receive a ton of credit. These bets are often tied to new features, AI/crypto integration, or innovative development paradigms. Everybody wants to make bets because some of them turn out to be incredible successes. Hiring Rob Pike to create Golang, letting Kubernetes come into existence, Gmail, Azure, and AWS—all of these were once bets made inside large (or at least highly profitable) companies. But most bets fail. Ideally, they fail quickly and conclusively, but the worst ones linger. People start wondering: “Maybe it would have worked if we’d thrown more people, funding, or attention at it.” But nobody really knows.
In a startup, it’s all about which bets to make, and if none of them work out, you go bankrupt. Oh well, some VC loses money, and the founder loses some reputation.
Inside a mid to large company, bets are trickier because you also have to pay debts.
All existing services are constantly accruing debts—updating dependencies, keeping up with security, improving alerts, smoothing out user and internal errors, or adding features that won’t change the world but make the existing product less frustrating to use.
Nobody wants to pay debts, but they grow over time and will either choke your service or, if you deprecate it, damage your credibility with customers. So debts must be paid. Unfortunately, if you’re successful at paying debts as a low-level person, your upside is limited. If you mess up, however, you risk breaking things that people rely on.
Everyone wants to make bets and avoid paying debts. The ideal situation for most is when a bet creates debt. This often happens by shipping something that’s only a middling success because “it just needs more exposure.” Often, the person who made the bet moves on before the debts are paid.
Have a nice day.