Pia Wiedermayer & Romano Roth
How has software development been changed by DevOps, Agile, and other emerging trends? This article attempts to explain how – using a classic children’s story.
The following blogpost was first published on Zuehlke website in Feb. 2021.
Once upon a time, in a land far, far away... Or was it only yesterday – here in our country, in our city, at our company? Either way, that’s where Alice is now.
Alice is a passionate and dedicated tester. Software quality holds a special place in her heart. Satisfied users and zero errors in production are what she lives for. But she’s recently been feeling like her principles are holding her back. The world is suddenly speaking a different language. A language that Alice doesn’t understand.
The good old days are gone
You have to be ‘agile’ these days, they say. We no longer need documentation and specifications. We’re agile, we’re fast! We don’t spend ages on preparing and carrying out elaborate tests. Automation is the new testing. But where does this leave Alice?
In the ‘good old days’, Alice’s task was clear: it was her turn after everyone else had finished theirs. Alice often felt like her colleague, the White Rabbit, frantically checking the time, rushing up and down, but still always arriving late. Nevertheless, Alice still knew what she had to do. She never had enough time to get everything done, but her task and the conditions were well-defined. She had everything she needed – except, of course, time.
Today, Alice is working on a project surrounded by MVPs, epics, stories, sprints, reviews, retrospectives, refinements, plannings, POs, scrum masters, automation engineers, developers, DevOps engineers, and lots of Agile types and buzzwords. Everyone is part of a team – be it a development team, a DevOps team, a scrum team, a unicorn team or whatever else happens to sound fancy and most definitely needs its own specialist team. Only Alice doesn’t have a team. Didn’t someone say that ‘Agile’ is a team sport? Well, it looks like Alice is on the subs bench then.
The old testing team no longer exists. ‘It was far too expensive anyway.’ Alice feels lost and doesn’t really know how to complete her task alone.
She’s constantly being asked about the quality of the software, by her project colleagues and anyone else with an interest in it. Alice hates making unfounded statements about quality. But even after spending days and nights testing the product, she still can’t provide a reliable assessment.
The software is constantly changing. And what is the expected result anyway? What exactly is the new feature supposed to do? ‘It’s all in the story’, Alice keeps hearing. ‘And never ask about documentation’ – that’s another rule that Alice has made sure to remember. ‘They looked at me like I’m an alien, or the Cheshire Cat.’
Alice doesn’t really understand what these ‘stories’ are about, and why you’re no longer allowed to just say ‘functions’ or ‘requirements’.
But she doesn’t have time to answer these questions anyway. She’s too busy testing, so that she can assess the quality. And she’s also constantly being blocked by the Development department. They deploy whenever they feel like it, and the test environment is never stable.
Things aren’t easy for Alice. But all she wants is one simple thing: to create high-quality software for the users, for the project, and for the team, in order to make everyone’s life a little bit easier.
But she’s always too slow, and no one really appreciates the value of her work. She’s in despair. What now? Give up? No way!
She remembers her old acquaintance who makes hats. The Mad Hatter might know how she could make people understand her situation. Maybe one or two of them might even try on her hat.
Everything is changing
The next day, over a cup of tea, Alice tells the Mad Hatter about her predicament.
‘Can you see now why I’m in despair?’ she asks.
The Mad Hatter: ‘Oh Alice, I’m sorry to hear you’re having a hard time. But look at it this way: everything is changing. So why shouldn’t your job change too? This doesn’t have to be a bad thing. It could be a great opportunity to reorganise your work and start using your time and skills more efficiently. Let’s take a look at your role and the process. I think we both agree that your job is a thankless task. In the past, the main thing was for all tests to be completed successfully. But everything is much faster these days, so this approach is no longer possible. Others are more or less forced to incorporate quality from the outset. They can no longer afford to correct errors retroactively. This is known as ‘shift left’. Because that’s precisely where you need to start. Show them how you could help them improve. Give them specific examples of how to formulate their stories more clearly and describe their unit and integration tests better, so that errors can be avoided during implementation. You can thereby kill two birds with one stone: errors don’t even make it into the code, and you can focus your test scenarios on those cases that haven’t yet been covered at lower testing levels. You can use your time more efficiently while also helping your colleagues improve their quality assurance (QA) skills. All project participants will thus become your unofficial teammates. Sounds good, doesn’t it?’
Alice: ‘Definitely, I like the thought of that! But everything has to be automated these days. I can’t do that. I don’t have the necessary skills, so I’d only be tying up important development resources again.’
The Mad Hatter: ‘Ah, yes. Good old automation. Many see it as the Holy Grail, the solution to everything. But when you think about it, no machine can identify a potential error that the person who developed it wouldn’t have thought of themselves. So you don’t have to worry about that, Alice. You don’t have to become an automation specialist if you don’t want to. Instead, you can be the brains behind the automation. You decide what should or shouldn’t be automated. And you’ll be the best person to do so, because you have a wealth of experience and that special quality mindset that is needed for your job. The actual automating can be left to others who could do it better anyway. You just concentrate on making people aware of what you’re really good at, and don’t be too hard on yourself if there’s one or two things you can’t (yet) do.’
Alice: ‘Yes, you might be right. But what about this new artificial intelligence (AI) thingy that everyone keeps talking about? Won’t that replace my tester brain and make me useless?’
The Mad Hatter: ‘Alice, my dear, haven’t you been listening? As long as you never get tired of developing and improving your skills, you’ll never be useless! Use every new technology to your advantage. Find out what artificial intelligence can offer you, and think about how you could integrate it into your work and use it to your benefit. I’m convinced that AI could help you make even better use of your time and skills. And, yes, there might be one or two tasks that become redundant. But that’s great, isn’t it? It means you’ll have more time for other, more exciting things. So don’t limit yourself. Let machines do the work for you wherever it makes sense.’
Alice: ‘OK, I think I understand. I should also use this whole DevOps story to my advantage, right? Automation is the order of the day in that area, but still things don’t always go smoothly.’
The Mad Hatter: ‘Definitely. DevOps is predestined for that. The cycle will only work with the right people and mindsets in the background. It also needs a good QA person, someone who can enable the team and integrate quality into the whole cycle. And it’s just as important, of course, to have the right tools to be able to keep pace. But, ultimately, it’s the people who make the difference.’
Alice: ‘Doesn’t that apply to all Agile models?’
The Mad Hatter: ‘Congratulations, Alice, now you’ve got it! Whether scrum, kanban or any other approach – without the right people and the right mindsets, even the best model is doomed to fail.’
Alice: ‘So quality is no longer down to me alone. It’s a team effort! This means that everyone is responsible for quality and must play their part. Whether it’s formulating the requirements as precisely as possible, designing the tests as efficiently as possible at all levels, finding suitable tools to support and carry out these tasks, or conducting the actual tests. All of these things are no longer down to individual testers. Rather, they become the responsibility of the whole team. And I get to coach my teammates and help them to develop the right skills and continuously improve them. Sounds great!
Yes, my old job doesn’t really exist anymore. But that’s OK. I’ve discovered some new and exciting ways to get involved. Thanks for your support, Mad Hatter!’