Game Changers

Sometimes you try a new thing and can’t imagine going back to the old thing.

This is how I feel about automated tests. Once you experience the confidence you get from being able to make a change and verify that you haven’t broken any of your tests, it seems unfathomably painful to go back to the old thing.

This is how I feel about git. Branching and merging, in every previous version control system I used, were so unpleasant that I would do my best to avoid doing them at all. Git makes branching cheap, which supports workflows that can make merging painless. Now I dread the day I sign up for a project that uses a different VCS.

This is how I feel about iterative and incremental development. It’s foolish to think that you know what you need to build when you start a project. Short feedback loops, especially when they can involve user feedback, lead to good outcomes. Long feedback loops are quixotic, and projects with them tend to be epic wastes of everyone’s time.

I could go on. The list isn’t long, but it isn’t short.

What’s been a game changer for you?