Evolution over revolution


Evolution over revolution is a concept that I’ve recently embraced. The premise is simple: instead of changing a lot (revolution), change a little (evolution). The benefits are numerous:

  • Smaller (code) changes are easier to explain, and therefore easier to review by others.
  • Changing a large portion of someone else’s code can make them feel like their original code was not good enough.
  • Smaller changes are (usually) less likely to introduce bugs or regressions.

When working with other people’s code, it’s sometimes tempting to scoff and think that you can achieve the same results with cleaner, more concise code. Remember that code is often written to account for edge cases, or things you haven’t thought of yet. Most of the time, people aim to do good work - saboteurs are rare. Remembering this when reading and understanding code authored by others is important. Respect is mutual - gaining the trust of other members of your team is an important step to becoming accepted. Changing smaller amounts of other people’s work is a useful strategy to achieve this.

Strive to evolve, not to revolt.