Thursday, October 3, 2013

Adventures in Context: What Can A Water Bill Tell Us?

I've posted a few of these in the past, and I have to give my family credit, they put up with a lot from me, but last night gave me a chance to explain to my kids a bit about the exploratory testing process, proposing ideas, and setting up experiments.


What could prompt such a discussion, and why would I bring such a thing up? This time, it was one of the first things that I heard walking into the house. after the "Hi, how was your day, we all did…" Christina looked at me with a less than thrilled expression, and said "we got hit with another HUGE water bill!"


At times like this, there's basically three things one can do. We can go into a fetal position (metaphorically), we can irrationally rant about the unfairness of it all… or if you live with a tester, you might go through something like this (which, roughly, is how last night played out)...


So, let's take a look at the bill… looking at previous months, yes, we definitely are considerably higher. This bill represents July and August, which was summer, with most of us at home or in the house for a much greater period than usual. That might be a good gauge. Let's think of the places we use water… showers, washing dishes, watering plants, bathroom breaks, getting ready in the morning/evening, cooking, plus three fish tanks, not to mention laundry, cleaning, washing cars... it can certainly add up, but does it add up to this?! In previous years, we've had spikes during the summer, but this looks unusually high.


It's usually about this point that I might normally make a variety or pronouncements and recommendations, but I know they will last about two days and then everything will slide back to where we were before. Hmmm, what if we did something different?

"Hey, who'd like to try an experiment with me?"

Truth be told, to some members of my family (especially my kids), this is the most dreaded statement any of them can hear. It has even more weight than "you're grounded". The reason? They know that, when I say "let's try an experiment" I tend to hold them accountable, and they actually have to do things and face hard facts with cold, uncaring data starting back at them. I intend to actually see if they can learn about their real behaviors, not just their imagined ideals of what they might be.


Me? I'm a huge fan of "X-diaries", with the X being whatever it is I want to measure. In this case, water consumption. What does a typical person like me do in the course of the day, and how much water do I consume? Only one way to find out for sure, and that's get into a mode of "write down every water interaction I can think of, and measure it, if I possibly can, or make a rough estimate otherwise.


Little experiments like this typically have me reaching for a notepad, pen and a stopwatch or timer. The reasoning for this is that I want to see if I can spot patterns, or interesting aspects I might take for granted or not notice in my everyday usage. One example is the shower. I turn on the water, and wait for it to be warm enough, and then get in. I don't take long showers because, frankly, I don't have the regular hair maintenance of normal people (of course, I spent more time in front of a mirror with a razor and shave cream, so it kinda evens out for time, but water wise, quite a bit less ;) ). Still, even at the best and fastest practical shower that I can take, the water still needs to warm up, and that takes about 45 seconds. 

Hmmm…

What if I were to take a bucket, and see how much water flowed out of the shower head in that 45 seconds? Better yet, what if I then used that water afterwards to water the plants? Over the course of a week, how much water would that represent? Could it allow me to turn the automatic sprinklers back one minute per zone? Could we use the water for something else, like for rinsing dishes after meals?

It's about this point in these conversations that I am either hit with MEGO (My Eyes Glaze Over) from my kids, or given a litany of reasons why it couldn't possibly work, or how it was a waste of time and effort, etc. Typically, at this point, I also tell them that I have very similar conversations with fellow testers and with programmers as well. In this case, though, I'm not talking about water distribution and use, but about software and how I test it. With this example, I showed them a little glimpse into how I often formulate tests.

First, I need a problem. Something that either is surprising, or comes across as out of the ordinary. A high water pill can be easily compared to web site performance or some other form of interaction that causes someone to say "wait, that can't be right".

Often, we only have hunches to go on, so we try our best to see if we can gather data, even if the data we gather is from a very small area. Reviewing HTTP headers and response times through Chrome tools is very similar to capturing the water in a bucket while it goes from cold to warm.

Once we have some data that we can look at, we can make some hypotheses and make a basis for further interactions or experiments. They may prove to be right, or they could prove to be wrong. If I perform elaborate and detailed captures of water and then transfer it to other uses, I may see total water usage go down. I may also not see any appreciable difference in water usage at all. That might mean that I am just transferring the use in equilibrium… or maybe there's a deeper problem.

Last year, as we were trying similar experiments, we discovered that a sprinkler valve had rotted over time, and that a slow leak had appeared How long the leak had been happening, we had no idea, but we fixed the valve, and for a time, that seemed to make a big difference in water usage. It's entirely possible that we may have a similar situation happening now (our house is just shy of 60 years old, so anything is possible ;) ). 

The point I wanted to show them, though, was that we can use our testing methodology and apply it to a host or problems in our everyday sphere, and likewise, similar challenges in our everyday lives can help inform our testing. My kids often laugh and say "Dad can turn anything into a testing problem". They weren't too amused last night, though I certainly was.  I'm not quite sure if these little talks of mine with my kids will encourage them to test, or will cause them to run with all power and haste to any career where they don't have to hear this crazy testing stuff. Time will tell I guess ;).

No comments: