Where do bugs come from?
People ask me: Are we ever going to get rid of bugs? And I tell people: No. And then they pull out their machine guns and things get messy. But why is that? Are we really doomed for fighting bugs for the rest of our lives? Or theirs? Are we Read more…
TDD: Mind Your Language
One of the exercises I love to do in my TDD classes is to build a lightsaber in TDD. (Yes, of course that’s how they’re made). In the exercise, I go through listing all kinds of features and use cases, and the first test we usually write is for turning Read more…
Over Exposure and Privacy Issues
This conversation comes up in every training I do about testing. I know exactly when it will happen. I know what I’m going to say, what they will say, and I know no one comes out completely convinced. Then violence ensues. We want to test some code. However, this code had Read more…
Unit testing is part of the job
In one of my unit testing courses we had a disucssion I’ve been part of what feels like a million times. The question the team asked was: “How do you convince the client to pay for unit testing?” Because it adds like 20% more to the project’s budget, right? While we Read more…
The Ugly Truth About Emergent Design
If the 2nd D in TDD is design, then we’re talking about emergent design. The tests drive the design, which emerges from thin air, and step by step reveals itself in all its glory. Emergent design has got to be superior to upfront design, right? Well, it depends. If we’re Read more…
Testability != Good Design
It’s a funny thing, code testability. It’s not really defined, or rather, it is defined poorly. If “testable code” is “code we can test”, that means all code is like that. We can test it through unit tests. If it’s hard we can move to functional tests. And if all Read more…