Skip to content

Mistakes of the Past

Perhaps the most interesting part of working on any large and fairly old project is watching how the mistakes of the past are doing.

In such a historical context, there's always staff turnover and that famous bus periodically hits carriers of information, those who wrote this code, for example. Even those who knew those who wrote this code leave. Pieces of the project that everyone is afraid to look into almost inevitably appear. Worst of all if these pieces lie somewhere in the foundation of the project.

Rational behavior is just not to touch it. No one has any idea anymore why certain decisions were made. If you touch it, everything can fall apart for millions of users. You need courage here to take and fix something like that, affecting a bunch of different features. Many obviously bad decisions live for years only because they're scary to fix.

Tests, documentation, written requirements, tickets, clean commit history - all this, of course, partially solves the problem. With them, understanding decisions from the past becomes easier. But almost any growing project goes through that stage where all this doesn't exist in the volume you'd like (often this is when they hire you), and while it appears you also need to live and develop the project.

Tests, documentation and written requirements, by the way, may well diverge from what's really happening in the project. That's real fun.

Life is a complicated thing, in short, sometimes to do something good you really have to take some risks. While building a culture where risks will be reduced.