The following is a blog post inspired by the recent UKSTAR testing conference. I’d highly recommend it to anyone.
From this blog post:
Say you’re a college student, and you have a paper due. The quality of the paper will depend upon the amount of effort you put in. We’ll say that you know the project pretty well: you can get an A with only moderate effort, and with significant effort you could produce something much better than the usual A-grade paper.
The education environment implicitly attempts to convince students that their preferences point ever rightward along this line. Parents and teachers say things like “you should put in your best effort,” and they heap shame upon people who don’t strive to push ever rightward along the quality line.
People generally react to this coercion in one of two ways. The first group (the “slackers”) rejects the implication that quality=preferences. These are the people who don’t care about the class, who complain constantly about the useless pointless work they have to do, who half-ass the assignment and turn in something that either barely passes or fails entirely. Slackers tend to resent the authority forcing them to write the paper.
The second group (the “tryers”) are the ones who accept the premise that quality=preferences, and strive ever rightwards on the quality line. Tryers include people of all ability levels: some struggle as hard as they can just to get a C, others flaunt their ability to produce masterpieces. Some try to curry favour with the teacher, others are perfectionists who simply can’t allow themselves to turn in anything less than their best effort. Some of them are scrupulous people, who feel guilty even after getting an A, because they know they could have done better, and think they should have. Some are humble, some are show-offs, but all of them are pushing rightward.
Society has spent a lot of time conditioning us to think of the tryers as better than the slackers. Being a tryer is a virtue. Slackers are missing the point of education; why are they even there? The tryers are going to go places, the slackers will never amount to anything.
But in fact, both groups are doing it wrong.
At university, I saw the worst effects of this “tryer” culture.
The outrageous expectations placed on the students: “You should be able to read the entirety of Paradise Lost and write a 2,000 word essay on it within a week”; “Here’s an explanation of Gödel’s incompleteness theorems in 60 minutes – we expect you to have completely understood it by the next lecture in 2 days time”; “We expect you to maybe take a week off during the holidays, and then spend 40 hours a week revising the material the rest of the time (an actual quote from a lecturer!)”.
The oppressive competitiveness that permeated every student interaction: “I heard she didn’t get an internship this summer – how embarrassing”; “I heard he got a 2:2 – poor him”; “God, you never see them out, they’re just studying all the time, what a loser”.
The glorification and normalisation of sacrificing your mental health towards the pursuit of perfection at all costs: People literally spending 18 hours a day in the library in the two months leading up to exams; people casually talking about “week 5 blues”, as if getting downtrodden by an environment in a month is just normal; the expectation that if you’re not working yourself to exhaustion you’re not trying hard enough.
The devastating effects this wrought on people’s happiness! People dropping out because the expectation of “getting a first, being in a uni sports team, having a really good relationship with a really attractive partner, getting an internship at a prestigious company, being president of 17 societies and having all these amazing friendships” was (shockingly!) not something that they could live up to. People having breakdowns because the pressure of failing and of being a failure was too much to bear. The endemic and epidemic rates of mental health issues.
There is a different way.
When I was at university, for the first time ever, I realised that I couldn’t do well academically without putting in an extraordinary effort. To get that first, I needed to forsake my social life and relaxation time to work as hard as I physically could, nothing else would have sufficed.
Fortunately, I remembered what I was fighting for: (quote again from this blog post)
What is your goal in taking this class? Perhaps you’re doing it thanks to a combination of social pressure (your parents said to), social inertia (everybody else goes to college), and a vague belief that this is the path towards a good job and a comfortable life. Or perhaps you’re there because you want good grades so you can acquire lots of money and power which you will use to fight dragons. Or perhaps you’re there out of a genuine thirst for knowledge. But no matter why you’re there, your reason for being there will pick out a single target point on the quality line. Your goal, then, is to hit that quality target — no higher, no lower.
Your preferences are not “move rightward on the quality line.” Your preferences are to hit the quality target with minimum effort.
If you’re trying to pass the class, then pass it with minimum effort. Anything else is wasted motion.
If you’re trying to ace the class, then ace it with minimum effort. Anything else is wasted motion.
If you’re trying to learn the material to the fullest, then mine the assignment for all its knowledge, and don’t fret about your grade. Anything else is wasted motion.
If you’re trying to do achieve some combination of good grades (for signalling purposes), respect (for social reasons), and knowledge (for various effects), then pinpoint the minimum quality target that gets a good grade, impresses the teacher, and allows you to learn the material, and hit that as efficiently as you can. Anything more is wasted motion.
Your quality target may be significantly left of F — if, say, you’ve already passed the class, and this assignment doesn’t matter. Your quality target may be significantly to the right of A — if, say, you’re there to learn the material, and grade inflation means that it’s much easier to produce an A-grade paper than it is to complete the assignment in the maximally informative way. But no matter what, your goals will induce a quality target.
Both the slackers and the tryers are pursuing lost purposes. The slackers scoff at the tryers, who treat an artificial quality line like it’s their actual preferences and waste effort over-achieving. The tryers scoff at the slackers, who are taking classes but refusing to learn. And both sides are right! Because both sides are wasting motion.
The slackers fail to deploy their full strength because they realize that the quality line is not their preference curve. The tryers deploy their full strength at the wrong target, in attempts to go as far right as possible, wasting energy on a fight that is not theirs. So take the third path: remember what you’re fighting for. Always deploy your full strength, in order to hit your quality target as fast as possible.
Half-ass everything, with everything you’ve got.
And that’s exactly what I did at uni. I realised that my main aims were picking enjoyable courses and getting a 2:1, so aimed for that, in the full knowledge that a first was never on the cards. It made my uni experience much more enjoyable.
One possible objection might be the following: “We want to be the best at what we do. Therefore, we need to push as far right as we can on the quality curve”.
Here’s 9 examples of us not doing that:
As a developer:
- We choose not to make a design the best we could possibly muster, because we decide it’s not worth the time or effort to do it.
- We choose not to refactor every bit of sub-optimal code that we see, because we decide our efforts are better spent elsewhere.
- We choose not to write our tools to the same quality bar as our products, because we decide it’s not worth the investment.
As a tester:
- We accept that certain bugs aren’t worth fixing because they’re not required to get us to the desired quality bar.
- We decide not to test most areas that we could test, or don’t test as deeply as we could, because we decide that the information we’d uncover isn’t worth the effort.
As a customer support engineer:
- We don’t immediately drop everything and fix an issue a customer has raised, and may not fix the issue at all, because we decide that they could live with the issue.
As a manager:
- We choose not to do the majority of the things that would be beneficial to the project because there’s not enough time. Instead, we pick the highest value things, and do them as well as they need to be done.
As a product owner or product manager:
- We choose not to implement the majority of requests that people make of the product, because most of them aren’t worth the investment.
As a senior manager or executive:
- We choose not to do 99% of things because they’re not the things that provide maximum value.
What all these cases have in common are the same goal: hitting one’s quality target as fast as possible, with minimum effort.
The modern testing mission statement is “Accelerate the achievement of shippable quality”. I think that thinking about testing in this way has some advantages over the context-driven school of thought.
Yes, the context-driven school of thought is a better guide when it comes to “how to test”, in terms of “evaluating a product by learning about it through exploration, experimentation, observation and inference”, and is useful in thinking about all aspects of quality in the right contexts (capability, reliability, usability, performance, scalability etc).
However, what I really like about the modern testing way of thinking about things is its emphasis on hitting the desired quality bar with minimal effort.
Take the word “shippable” for example. The implication here is that there are bugs that we don’t need to fix to have a shippable product. The other day, somebody mentioned that “bugs are bad, and should always be fixed”. NO! It’s not always worth it!
Take principles 2 and 3 for example:
- We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.
- We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.
A modern tester could consider these principles, look at their organisation’s development practices, and realise that they can provide most value by driving the organisation towards a CI/CD system. Crucially, this is valuable because it makes it much easier for developers to get information about the quality of their code, and allows us to ship at any time.
Or take principles 4 and 7:
- We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture
- We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist
The minimal effort way to achieve the desired quality bar from day one is to make sure that the entire team is unified in their understanding of what “quality” means for a given project, and equipping them with the skills for them to assess the “quality” of the product themselves.
What all these cases have in common are the same goal: enabling the team to hit their quality target as fast as possible, with minimum effort.
So, to summarise:
Strive to remember what you’re fighting for.
Aim to hit the quality target with minimal effort.
As a tester, your goal is to enable the team to hit their quality target as fast as possible.
Half-ass everything with everything you’ve got.