Test Retreat

Welcome to the homepage of Kris Corbus

Archive for the tag “software quality”

Meaningful Agile Metrics

People like to set deadlines and to measure things, this is how we roll. In my classes, I hear many questions about how to measure software quality in an agile context. Many teams who switched to agile continue to measure quality like they used to do it before: number of found bugs, number of closed bugs, number of automated tests, stories rejected by PO etc. But after some time they found it was not helpful.

I am very cautious with metrics. First of all, because out of context they are misleading. Secondly, people tend to focus on what they are measuring, because they want to improve that thing. If we focus only on the numbers, it can be very dangerous. 

If you measure “stories rejected by PO” you will work with those numbers, but not address the real reason behind the problem, so in the majority of cases, it will not change. Just like in Dilbert comics or more current issue with Trump who did not want to test people for Corona, because then the numbers will sky rocket. He “likes the numbers where they are”.

OK, let’s assume I convinced you – metrics are tricky. But what can we do? My first suggestion is to evaluate if we really need a metric. If yes – for what and why? Sometimes the answer to those questions can give the solution. “Because we’ve always measured something!”, “Our management / stakeholders want to know it!”, “Our boss wants to know to whom he should pay a bonus”. Some of those are indicators of bad management, others of bad agile approach and I hope you understand that no metric will solve those problems.

If your challenge is nothing like this, then for the second round, I have a story to tell. Two years ago I took an Agile Testing Fellowship TrainTheTrainer course. I had two major highlights in the training, two things that changed my agile approach. I remember so vividly the moment when Janet Gregory announced: “forget about traceability in agile! We don’t need it”!

It came as a shock. How?! Why?? No traceability??? But, but, but… how will I work without traceability? Traceability always was a part of software development – starting from requirement elicitation until support and maintenance. I needed some time to process it. In the end I had to agree with Janet. If everything from beginning to end works, if testing is a part of development, if the team is the one who leads, if stakeholders support the team and give freedom of a decision then of course we don’t need a traceability. It becomes one and the same as the process.After reevaluation of traceability, I started to revise other old “religions”. As you can guess, one of them was metrics. My idea was – if I would remove everything I used to know about measuring quality and assume that it is baked in, what would I like to measure then? I will save you the whole rethinking process. At the end, I decided to focus on the whole team. For that I use 5 values of eXtreme Programming: Simplicity, Communication, Feedback, Respect, Courage. There are several ways to measure each of them. I will give you few examples that you know what I mean: simplicity besides known methods can be measured by checking if everyone on the team can read and understand code from somebody else. Respect I prefer to measure with closed team dot voting. For courage I find it very important to monitor how strong a team feels about pushing back or questioning (unnecessary?) user stories. 

It took some courage (ha -ha) to leave old practices in the past and I must admit not with every team and company this will be possible. If you practise fragile (bad agile), if the company does not really live by agile values, it will not work.     

For a dessert I want to share a video of a TED talk about missing baby dinosaurs. Maybe it gives you another perspective on known things.

 

Words Has Meanings: QA

Words matter. Words are the way we transfer ideas from person to person. Shared words do not guarantee shared understanding. I understand 4 languages and I try to understand 4+ cultures. Time to time I experience situations where I cannot express myself in none of the languages and my motives are misunderstood in all the cultures. At the moment I try to help my son with his Latin studies, it means I am kind of studying it as well. And it is quite fun because grammar is very similar to Latvian, but words to English and/or Italian.

You may wonder why I am writing about languages and what it has to do with quality assurance (QA)? You see, I really like quality assurance in software. I am very into processes, responsibility about the software and improving quality of an end product. If I would need to name one thing what I am good at, it would be seeing links/ matches/ connections. When I see a bug in the software, I see that it comes from a bug in the process. You can fix the bug in the software, then write and maintain 10 regression checks to get information when it happens again, but for me, more sense is to fix the bug in the process which caused the bug in the software.

One illustrative example. Imagine bakery. Good recipe does not guarantee tasty cake. Bad recipe does not mean that a cake will not taste. Testing in all this is trying the cake – quality should be baked in, if it is not in there, for this particular cake you can not change (improve) the quality. QA in bakery would be observing processes, identifying bottlenecks, questioning actions in place, analysing end products, which does not meet quality standards, with an aim to find a source, talking to customers and then decide what to do – to improve a recipe, approach, method, marketing or selling strategy. Another thing, I hope you all agree with me on this: if we call a bread as a cake, it is still a bread.

I really like to work efficiently and remove a cause instead of effects, so I applied for jobs with title “QA Manager”, “Head of QA” etc, but always at the end, thing, I was asked to do, was software testing. Don’t understand me wrong, I have nothing against software testing, I think it is great method to collect information about a software. But I kept wondered why companies and clients use “quality assurance” incorrectly. I broke it down and asked people what “quality” means to them and how they measure it; mostly got no answers and puzzled looks. How you can assure something you cannot describe and do not know how to measure? So I came up with this idea:
a) that they do not know about QA as a discipline;
b) it is some kind of strategic game played by companies: let’s put “QA” in our job openings and use the word “quality” few times on our website, then our customers will think that we care about it!

Let me tell you this – you can add sugar coating and glitters to your pastries, but everyone, who will eat it, will see that it is bread and not a cake.  If you call a bread as a cake, it is still a bread, right?

Post Navigation