There are very few people in the programming world who will argue against the idea of testing software. But, when it comes to the mechanisms though which code is tested, the conversation starts to get interesting. There are those who feel that TDD - Test Driven Development - is "the way"; and, that any divergence from TDD is not only laziness but is, in fact, borderline malfeasance. At the other end of the spectrum are the people who perform all their testing manually; often, relying on QA (Quality Assurance) teams and smoke tests to find regressions before each deployment.
Most people sit somewhere in the middle of these extremes. This week, the crew talks about their own views and experience with testing; and, how they currently implement testing at work. I swing heavily towards the manual testing end of the spectrum; Adam and Carol swing heavily towards the automated end of the spectrum; and Tim, who often feels very hypocritical, sits somewhere in the middle.
Listen to Episode 009, with:
- Adam Tuttle → Website, Twitter, LinkedIn
- Carol Weiler → Twitter, LinkedIn
- Tim Cunningham → Twitter, LinkedIn
- Ben Nadel (that's me) → Website, Twitter, LinkedIn
Triumphs & Failures
Adam's Triumph - He's been working hard to get his company's application migrated over to a new open-source software stack. And, as of this recording, he's successfully moved 9 of his 13 production servers over to the new setup; and, everything seems to be running smoothly! He's feeling very strong on hitting his goals of migrating the rest of the servers by the end of January.
Ben's Failure (that's me) - This week has been kicking my butt! I haven't been sleeping well, I can't get comfortable in my chair, and everything seems to hurt. I'm carrying a boat-load of tension in my neck and shoulders and I just can't seem to get past it. The only saving grace is that I can use my "standing desk" controls to select the perfect height for sitting ... most expensive "sitting" desk ever.
Carol's Failure - She's also having a tough time getting comfortable! Her body hurts from her tail-bone up to her head; and, the heating pad she's using just ain't doing it. She's currently on the hunt for a new chair that might help offer some relief. But, being the Amazonian warrior that she is makes things a bit more challenging. As she says:
I can't help it - I have six feet of legs and they have to go somewhere!
And, as the icing on the cake, she accidentally deleted the configuration settings for all seven of her home networks. She had automatic backups configured; but, she accidentally turned them off 3-months ago.
Tim's Triumph - It's been a while since he was able to get into a groove; but, this week, he finally achieved flow state: that moment when the world disappears, time loses meaning, and all you can see is the code in front of you as it appears to pour out of your hands without effort or thought. He summed this feeling up quite nicely:
I feel less like I'm pushing a stone uphill and more like there's a river just flowing through me.
I mean, come on, he even wrote a Regular Expression!
Notes & Links
- CFML - ColdFusion Markup Language, a language specification for one of the most powerful web application runtimes.
- Testing budget - a concept in which the tests that can block a deployment have to run within a certain time window.
- Rich Hickey: YouTube - please, just go watch all of his videos.
- Feature flags - tooling that allows you to turn parts of an application on or off without having to redeploy it.
- Ben Nadel: My Personal Best Practices For Using LaunchDarkly Feature Flags - a tome that Ben wrote on how he uses feature flags.
- EggHead.io - a popular subscription service that provides tutorials on web application development.
And, if you're feeling the love, support us on Patreon.
In response to this post, Adam Cameron wrote an intense reply that is worth a read:
I won't try to recap what was said, only to say that Adam is strongly against most of what I said in the podcast. His points are fair; but, I think some of it is a mischaracterization of what I was trying to say. You should check out the post and the comments.
The Working Code crew also discusses this post in Episode 11, which should come out in two weeks.
Much love to Adam Cameron for always wanting people to be better!
What I love about this show is that it always shows many different points of view of you all. Maybe Adam C. was expecting a more scripted and time lined or post edited/reviewed lesson from experienced test driven developers. Really don't know. I've always felt that this podcast is just a recording session of a bunch of experienced developers (I know you all are) "just hanging out and talking" about the daily life experiences, motivations, drawbacks, energy levels, humor and more. It has been a very valuable companion to me. If I'd want to know what coding god thinks about testing and coding, the does and donts, I'd dig somewhere else, learn also from other sources and then decide with my own evaluation. What I've learnt in my life is, that there is never a perfect golden rule for anything. It always depends on how practical a specific solution is and how the overall circumstances of business are.
Also, I'd like to say that thanks to you Adam C posted a good blog post, that is somehow cfml related. I wish he'd post more often again.
Thank you for the feedback on the show - I'm / we're super happy that you're enjoying it. And, your perception on what we're trying to do is spot on: just casual conversations between people who love to program!
+1 on Adam Cameron posting more about CFML :D The man is a machine when it comes to deep-dives on language features.
We just released Episode 11 of the show:
In Ep11, we discuss - among other things - Adam's post a bit more in-depth.