TDD is Boring!

Yes! You read that right. TDD is boring. It will make your programming job so predictable that in 95% of the cases building code is going to become boring as hell.

Imagine you decided to get to the office real early. So, you are alone on the road. But today you are catching every red light on every intersection on the way to the office. Or imagine you get to the post office to send a package and, as it appears, for some unknown reason the universe decided to send all people on the planet to this very same post office. Now you are making one step every minute...

This is what TDD aims to feel like! It gets so predictive that you know exactly what steps you are going to take and for how long.

The non-TDD way of writing code is a lot of entertainment. Looks like that on the meme.

In this way you constantly solving puzzles. In fact, it is not writing code anymore. It is about getting the code to work for at least this happy path scenario so you could check it in. It is when you abandon knowledge and move on with belief and hope.

Can you decide to change code structure after it "is working"? Performance optimizations? Nah. These things are difficult to without some kind of reassurance like unit tests or being able to quickly verify it "still works".

TDD, on the other hand, manages to get you to solve all tricky and unmanageable problems early in the game. So when you past the start of your project or when you are working on a mature system, most of the code you are writing not going to contain lots of unknowns or unknown-unknowns. TDD will reinforce you to write optimal code (minimal size, proper structure, performance). And it is gong to be same baby steps all the way until it is "done-done".

So when you finally finished the code, it is checked in, the system works. So you move on to something else: another code to write, solve other problems or just get up and go home. Tomorrow is just another working boring day.