I was reading the latest newsletter by Gojko Adzic this morning. The title of the newsletter was – How to Reduce the Cost of Testing and the themes were mostly focused towards test automation.
It also bordered on that age-old argument that as you automate, you need less and less “testers”, so costs naturally are reduced.
We’ll, I woke up a bit grumpy this morning and I have a revelation to share. If you really want to reduce the cost of testing, then…
I did a keynote talk not that long ago and I largely reacted to what James Whittaker and other testing pundits were saying about the end of testing. They were (are) largely predicting that software testing will be performed by (1) our customers and (2) the developers in our self-directed, agile teams.
They posited that the profession of software testing is largely populated by dinosaurs that will soon be extinct.
I remember this same wave of thinking when the Extreme Programming approach first surfaced in the late 1990’s. It placed a strong emphasis on developers as being the primary value proposition on software teams and everyone else was superfluous and expendable.
Of course they didn’t say it that clearly and honestly, but that was certainly the implication.
But as time passed, they seemed to be proven wrong. It turned out the professional testers, solid/good testers; hard-working testers were still needed in effective teams. In fact, a breadth of experience and roles makes for good teams, at least in my humble experience.
Picking on Gojko’s headline, if you don’t like the expense of testing, then stop. In my mind, there is only doing solid testing or not doing it. There is no try! Try only gets us to mediocrity, silly quality trade-offs, pissed off customers, and low value software.
So don’t try! Either stop doing it and live with the consequences OR do it incredibly well and stop trying to marginalize the profession of testing.
I told you I was a bit grumpy this morning.
Now onto “Agile”
While I’m talking about focus, I thought I’d wrap up with the same point about agile adoption. You see I’m seeing simply too much poor agility in the world. For example, teams who are whining about their having distributed teams and that it’s too hard for agile to work in those contexts or teams that don’t like the discipline of solid agile behavior.
For example, last week I ran into a team/organization that doesn’t like to finish what they start within a sprint. They have a “carryover story” rate of 50% in their sprints. That is, if they plan on delivering 10 user stories, they only get 5 completed on average. The others simply move to the next (and next…) sprint.
This negatively impacts their morale, stakeholder confidence, their velocity, and their ability to provide predictable forecasts.
And they blame all of that on agile not supporting the technical complexity of their business domain. Complaining that it’s simply impossible for them to do small pieces of work within a 2-week sprint and get it…done.
The agile methods are not your challenge. Your challenge is that you’re not really committed to agility. You’re going through the motions. You’re stuck in doing things the way you’ve always done them and if, a big if, you do try agile, you won’t commit to doing it well.
You’ll simply pick the practices that are COMFORTABLE for you and ignore the rest. Well to you I say the same thing.
STOP DOING AGILE
It’s not worth it. Again, either you commit to the principles, practices, and the mindset of solid agile development OR you don’t. There should be no try! Trying is a waste of your time and it belittles the efforts of all of those folks who are working hard at the methods and getting solid results.
Like I said, I’m grumpy. But quite soon I’ll turn back into my “soft and squishy” self. Until then though, I want this post to seriously challenge you.
Software testing is tough to get right, as-is agile development. But just because they’re hard, doesn’t mean we should take the easy road or opt out of hard work.
Nothing worth doing is ever easy. So don’t try – Do!
Stay agile my friends,