Skip to main content

Testing/Agile and American Football - A comparison

When I was in university I played football, not the English type, although I had played that all my life, but the American kind, with "offense" and "defense"  and "special teams".  I played defense and special teams, and both of them had what is known as a playbook (as does offense). This playbook had a list of plays that we would run in different scenarios depending on what the situation was or how risks averse we felt.

The NFL season kicks off soon (next weekend in fact), and with this in mind, I was thinking this morning about how this can be used in testing, how we can have a playbook of different tests almost  all depending on the situation that we as testers find ourselves.

Just like in football we find that if we just use one "play"  or one form of testing the likelihood of being successful is slim. We need to mix things up a bit and use a wide array of plays or testing techniques in order to score or stop the other team from scoring, or in our case find bugs and release bug free software.

Let me start with the build up to gameday, here we'd have chalkboards and discuss the opposition, I liken this phase to test planning. In the case of a QA we would examine the requirements or the application if we have anything, and come up with a game/test plan on how we are going to test the software.

Come gameday, or in the case of an agile team, sprint time, we try and execute the game plan or test plan as well as we can. Just like in football there may be some outside influences that change what we can run or do, for instance the opposition might actually be playing differently to how we expected, but we adapt and change. In QA world, we could liken this to requirements changing, we don't stick rigidly to our game/test plan as it may no longer be applicable. This is fine, we just work with what we have.

During the game when the offense are on the sideline we can catch up and let the coach know what's working, what the opposition are doing, if anyone has any injuries etc. We can liken this to scrum! Where we let the team know what we are doing, if we have anything stopping us from working effectively.

When we find a bug throughout testing it is effectively a field goal, it's not quite a touchdown.. Why not? you may ask, I prefer to think of a touchdown as a fixed bug, something that we found, and was fixed, for instance we could find a low priority bug, that the business don't want fixed for whatever reason, it's still good that we found it, so... FIELD GOAL! 


A field goal is akin to a bug that is found, but just happens to be a low priority and doesn't get fixed.
We all want to find the high priority bugs, but in some cases we have to take what
we can.

Oh, but if the field goal gets blocked, then it's effectively the bug being rejected!

But if we find a high priority bug.. And it gets fixed, TOUCHDOWN! I suppose you could argue that a low priority bug is a field goal and a high priority bug is a touchdown.... But I'm going to stick to my analogy for now!


A bug that gets fixed, is akin to a Touchdown! If it passes regression testing
it's almost like the PAT was good! :)
There will come times when we are pushed that bit further, and we really have to come through, this can be likened to a 4th and 1 in football. For those who don't understand the rules, 4th and 1 means effectively you have 1 shot to move the ball 1 yard, or else the other team take over... This is effectively come the end of the sprint, we need to pull together to finish testing, can we as a team (developers included) manage it? Sometimes we do, sometimes we don't, just like sometimes teams make 4th and 1,sometimes they don't. However it wouldn't be for want of trying or effort. This situation could also be likened to a Hail Mary, in that you throw everything you have for one last push, one last chance of scoring/developing everything.

Come the end of the game, the sprint is over, or the release has happened, whether you win or whether you lost, whether we reached our sprint goal or not, or whether it was a successful release or not, there will be positives to come out of it, and negatives, here we review the game film, or review the sprint in a retrospective. We discuss what worked well, what didn't work well and how we can improve on it. And hopefully be ready for the next game/sprint.

I guess you can apply testing methodologies, or even Agile methodologies to any type of sport, providing you have planning, and reviews after, what happens in between, would be the "game" the money maker almost, what drives people to do what they do, nobody can say that test planning is the most exciting thing, it's the game day that they care about, or at least, it is for me. Game day doesn't have to be testing a piece of software, it can be driving practices forward, or coming up with improved methods that help game day run more smoothly or even influence the game day in some way to help get your desired outcome. 

Going forward I will extend this theme and list some Testing Techniques/Approaches that are almost like our "playbook".


Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck. football gloves

    ReplyDelete

Post a Comment

Popular posts from this blog

What is a PBI?

After my last post, I had the question of what is a PBI... so I thought i'd write a short blog post about what they are and why they are used.

A PBI is an acronym for Product Backlog Item. It is a description of a piece of work that your SCRUM team will develop and deliver. When you have a list of Product Backlog Items, you then refer to that collective list as a Product Backlog.

The product backlog is often prioritised and yourteam will work through each PBI, and release on a regular schedule... I am however going deep into the world of Agile development, which isn't entirely what this post is about, so I will stop myself now.

A Product Backlog Item is made up of the following:

Title - This is often a one liner that gives the team an idea of what the PBI is about, although it can just be an ID for the item and the team work off of that.

Description - Breaks down the PBI in a bit more detail, and can be written in any style, however I prefer it to be written as follows: 



By writin…

Dealing with Selenium WebDriver Driver.Quit crashes (Where chromedriver.exe is left open)

We recently came across a problem with Selenium not quitting the webdriver and this would then lock a file that was needed on the build server to run the builds.

We were using Driver.Quit() but this sometimes failed and would leave chromedriver.exe running. I looked around and found this was a common issue that many people were having. We (I say we, as we came to the solution through paired programming), came up with the following, that would encapsulate the driver.quit inside a task and if this task takes longer than 10 seconds, then it will clean up any processes started by the current process, in the case of the issue on the build server, it would kill any process started by Nunit.

[AfterTestRun]
        public static void AfterTestRun()
        {
            var nativeDriverQuit = Task.Factory.StartNew(() => Driver.Quit());
            if (!nativeDriverQuit.Wait(TimeSpan.FromSeconds(10)))
            {
                CleanUpProcessByInheritance();
            }
       }

        private s…

Famous Movie Quotes applied to Software Engineering - Jaws

You're gonna need a bigger boat? How can that relate to Engineering?

Firstly, let me ashamedly admit, that I've never seen the whole of Jaws all the way through. It's on my list of films to watch, but whether I get round to it, is another matter!



Anyway, to apply this to engineering, it's almost like "you're gonna need more testers/developers"...

We hear this all too often when trying to push releases out the door, let's throw men at it... However, as we all know, a bigger boat/more men... isn't always the answer, it's not a guarantee of quality, or even a guarantee of getting things done quicker.

If you have a task that will take 2 hours, simply having 2 people work on it doesn't mean that it is halved, in fact often, the time taken to do the task remains at 2 hours, but the maintainability and the knowledge around that area is increased, so it's a price, in my opinion that is often worth paying.