Everybody loves to test, but especially developers. . . I hope you can sense the dripping of sarcasm in that sentence. I get it – I truly do. Who wants to test stuff when they can be saving the world with the next “Flappy Bird” or inventing the combo ruler/scale/CRM/weight loss app?
In all actuality, testing is more than a boring review of whether or not the code works (because everyone knows developers don’t need to test), it is actually a way of life and a learned action that permeates our lives. Let me just let you inside my crazy thoughts on this.
As a father, there are themes that are “broken records” that I repeat constantly through different dad-isms – “brush your teeth,” “did you brush your teeth for 2 minutes,” “did you brush ALL of your teeth;” “clean your room,” “did you clean your room?” “did you clean behind your door,” “did you clean outside of your door.” Trust me, I could go on. Oddly, when I look at how we apply agile in our daily lives, this is a matter of defining the definition of done and acceptance criteria for a user story. From the definition of done aspect, my children have not yet learned to include testing; they have yet to validate if their work complete meets any standards. From the acceptance criteria standpoint, they did not ask the product owner (in this case, I am the one setting the value of what needs to be accomplished by the end of the sprint) what it is that adds the most value [read: reducing cost of dental health through consistent maintenance ;)] for the user story that is “As your father, I want you to brush your teeth, because I want to have children with teeth in their mouths.” Working with my children not just to do what I ask, but also to begin critically thinking about what they do and how they do it is my primary goal here. I want them to ask questions so they understand the need and the value in my requests AS WELL AS what criteria need to be met to make me content.
As a ScrumMaster at work, I have a different role. That is to get the development to ask the right questions; to work with the product owners to groom the backlog. In addition, encouraging the development team to adopt automated tests, test-driven development and the lot as well as reiterating the need for those actions to the product owners as valuable definitions of done. Both of these actions in themselves lead to better testing as they open up communication and understanding about what needs to be done and why we do what we do. Working to ingrain a thought of “I really need to consider testing” and “we need testing in order to know if the value realized is stable” begins the process of improvement and toward a more agile delivery.
In order to get there, however, it requires a shift in how we look at work and what is considered high importance. Just like my kids and brushing their teeth 🙂 So let’s start looking at testing in a different light and thinking about how we make this a part of our daily life, rather than just a boring task that takes time away from other good stuff. And most of all, I hope it sparks new thoughts or techniques for improvement on all teams. Like I said above, just a humdinger of a conversation starter.