17 comments

[ 4.0 ms ] story [ 50.4 ms ] thread
Reminds of when I started reading Code Complete. The construction analogy really helped me conceptualize the difference between making a personal one-off project (like a shed) and an hardened mission-critical system requiring test suites for everything. (building NORAD). Not everything needs to be a TDD, elegant haiku.
Alternate title and TL;DR: Troubleshooting systems is the same across all domains.
The author's name is Drew Bell, and the article is about a doorbell.

Nominative determinism!

It's true: and everything we're working on now will be considered legacy in 3-5 years time, and the devs working on it then will be moaning about all the short-sighted decisions we made. Believe it.
Im doing this now. The moaning that is. But the worst part is I'm seeing the names of people who gave birth to my problems on new projects. Lets hope they learned something.
Unfortunately for me the wazzock who wrote the code is me, 4 years ago. What A DoucheBag.
Ah yes. "What the heck is this!? Who wrote this garbage??" ... runs git blame ... "...shit."
You know they're saying the same about you, right?
There are known knowns and known unknowns etc etc. Yes I totally know they say this about me. I say this about me.
Let's hope YOU are learning something. It's very likely you are laying the foundation for future problems right now.
Be glad they're still available to answer questions.
If it takes an entire 3-5 years before devs are moaning about your short-sighted decisions, you did an incredible job.
^^^ Comment of the day right there. Upvoted.
> Full regression tests are hard enough in software, but I can’t imagine trying to run through a “make sure everything in the house works” checklist in meatspace.

Interestingly, this is exactly what you do when you rent a boat, and also what owner does later when you return it. You go through a checklist and manually test and mark each feature. Kind of like manually running functional tests, except it's in a real world. :)

Very true.

I would offer an airplane also as an example. First thing you do is walk the plane making a complete circle checking items off with a visual inspection.