Press "Enter" to skip to content

Tag: Automated Tests

Re: Emily Bache on Ward Cunningham’s Fearless Refactoring

When I was a younger developer, I thought I knew how to make code better by, as the kids would say today, following vibes. Much later, a coworker gave me a copy of Martin Fowler’s Refactoring. I regret how long I put off reading it. Even later, I read Sandi Metz’s 99 Bottles of OOP and learned just how safe refactoring could be. Fearless refactoring is a skill that must be learned, and it is almost a superpower!

Acceptance Tests and Unit Tests as Documents First, Tests Second

The real reason [acceptance tests and unit tests] aren’t redundant is that their primary function is not testing. The fact that they are tests is incidental. Unit tests and acceptance tests are documents first, and tests second.

Chapter 7, Acceptance Testing, The Clean Coder: A Code of Conduct for Professional Programmers, by Robert C. Martin

As my wife and I were listening to Uncle Bob’s book on professionalism in software, this line surprised me. Maybe it’s just because I don’t understand tests as well as I’d like, but I had to stop and take note. He clarified exactly what he meant, too:

Confessions of a Software Developer: No More Self-Censorship

I haven’t published since April because I’ve been afraid. I also avoided social media, news aggregators, and discussion forums for months. I’m done letting fear stop me. What was I afraid of? In this post I detail every single thing I’ve avoided admitting on this blog.

Ship Software That Does Nothing

You should ship software that does nothing. Absolutely nothing. I’m not being cheeky about this. I have no hidden meaning. The very first thing you should deliver when you start a new web application is absolutely nothing.

Many people will tell you to ship a minimum viable product. Others say to ship a prototype to get feedback. Not me. I think you should ship a blank page to your production servers on day one.