Recently, I’ve heard references to mediocrity in software testing. Statements like “Tolerance of mediocrity has done massive damage to our testing field". There’s an implicit judgment in this statement. In that word mediocre, there’s a suggestion that many in the software engineering field are somehow negligent, lazy or weak. They take the easy path because they want to be liked, looking for approval from other more technical software engineers. Or they chose to remain willfully ignorant, favouring income over ethics.
Being mediocre doesn’t mean any of that. It means precisely what you think it does. Being mediocre is to be middling. It’s not terrible, and it's not great.
For example, most weekday meals are mediocre. They're not amazing, but they're not awful. Most of us have busy lives; we work full-time, and cooking is not our raison d'etre. A midweek meal offers sustenance and if possible, nutrition. Bonus points if it's tasty!
Most of us live with this mediocrity quite comfortably. We don't expect a cordon bleu meal every night.
But in the software testing profession, we’re not afforded that luxury. A loud few tell us to demonstrate value we must rise above this middling. Not only rise above it but have zero tolerance for it.
Another word for mediocre is 'good enough'. Not great, not terrible. Does the job.
As opposed to mediocre, 'good enough' suggests that you're doing your best. You’re not being put on a podium every sprint, but your ass isn’t being hauled in front of management, either. 'Good enough' means you don’t have ALL the words to explain what you mean or do, but you have some.
Here are some indicators of 'good enough' work.
- All the work you’ve been asked to do, you are performing
- You know that there are plenty of things out there you could be doing, but you realise that this work is needed, so you focus on doing that
- You know there are many blockers to performing work you would prefer to do; however, these are outside of your control and influence, so you focus on achieving what you can.
- You are a social person and enjoy working with a team. Being part of that social construct is important to you. That doesn’t mean you agree or comply with everything that is said, but you are willing to compromise and negotiate to achieve a common outcome
- You enjoy learning new things, but family and other commitments are important, so often you prioritise these needs over that.
- Sometimes you speak up, sometimes you don’t, and that’s perfectly acceptable.
'Good enough' means you refer to green builds in a blog post without having to justify your intelligence and testing proficiency or face online abuse.
Good enough implies agency. It suggests you're making informed decisions about context. You don’t have to explain or justify them to anyone unless our work requires it.
There is nothing ordinary in being a tester. It’s extraordinary work. It’s tough work. Underrated, underfunded and unloved by many in software engineering. It takes courage, commitment and resilience to turn up and ‘just’ test.
Mediocre is good enough.
Deal with it.