Being a software developer often means making tough trade-offs. You have to balance different factors like time, money, and the quality of your work. If you had unlimited resources, you wouldn’t have to worry about these choices. But since that’s not the case, how do you make the best decisions?

One way I like to decide is by considering the “Cost of an Error.” This means thinking about what would happen if something went wrong because of my decision. It’s a form of risk management. For example, if you’re working on a small new social network and a feature doesn’t work perfectly, it’s not a huge problem. Users might be a little annoyed if they can’t like a post, but it won’t cost you money or won’t make stop using your service.

However, if you’re creating a fin-tech startup, mistakes can be very expensive. A missed requirement or a bug might lead to money loss or fraud, which can damage your reputation and make users leave your service. That’s why for such projects, it’s worth spending more time and money early on things like analysis, design, and testing. This is typical Shift Left to prevent problems before they happen, which can save you from bigger losses later on.

The “Move fast and break things” approach isn’t necessarily a bad thing; it’s more like a tool that’s suitable for certain situations. Even larger companies can use this method effectively for the right tasks, as not everything needs to go through a lengthy, bureaucratic process. Considering the cost of an error is also crucial when choosing the right approach. Perhaps the reason why some larger companies are slower is because they apply a one-size-fits-all process, which can lead to stagnation. The cost of error here isn’t just about financial loss, but also about the missed opportunities due to not moving quickly enough in areas where they could afford to take more risks.