The day started out just like any other day except for one major problem - the office coffee maker broke. For anyone who spends even a small amount of time working in a high-performance environment, you'll immediately understand the critical importance this holds.
Coffee has been recently linked once again to amazing health benefits but for most of us, we're generally in it to keep ourselves online and functioning at the highest levels. Having your office coffee maker break down 5 minutes before stand up is not great. Now, this got me thinking about the wider implications of such a crucial, if not critical, component of the office.
People, mostly the engineering/developer types, in our office immediately began to attack in a typical problem-solving way:
"Perhaps if we clean it all out, it will fix itself" claimed one engineering employee. “No no, we need to take it apart because there is something blocking the water line” chimed another.
After a few minutes of this back and forth we reluctantly joined stand up and resolved to fix the problem later and deal with our caffeine problems via instant methods. During stand up we learned of a curious fact: someone had noticed the coffee maker had been having an issue since yesterday afternoon and they had reported the issue via our fancy slack office issue channel. The problem was that our office manager was out that day and is not a coffee drinker.
What had essentially occurred was that a bug had been identified within the coffee making system and reported through a channel which wasn't targeted nor time appropriate. If we think about this from the context of software development, how often are you delivering contextual information about your product to the wrong person, via the wrong channel at the wrong time? Or, perhaps more accurately, are your users stuck reporting bugs to you via the app store or a contact form on your website?
Making matters worse is that now the office has begun to create new workflows to mitigate the original issue. For some, this includes the use of instant coffee. For others, this includes bringing in their own French press. Regardless of the medium, however, the original issue still lingers. The issue has compounded now to introduce additional complexity where none needed to exist previously. As we draw parallels to the software world, we can begin to highlight how often this happens. If the original bug is fixed early enough in the development phase, workarounds don't get into the product.
When the community coffee maker does eventually become fixed, these work around workflows will have to again be adjusted. All of these issues impact the worlds that we build for ourselves and cause us to have to switch our patterns accordingly. Likewise, a developer who is on version 3 of a software feature that has to go back to version 1 to fix a bug will lose valuable time not only in actual dollar cost but also lost opportunity costs for the business itself.
While the coffee maker bug might not be the traditional bug in the sense of software development like we've come to know it, it does help us to think about things from a real world perspective. It's certainly easy to become caught up in thinking about bugs and software testing from a purely technical perspective.
The goal should be to provide contextual information to the right person at the right time in all of the development cycles of your product or service. If you don't get these bugs resolved before release you run the risk of poor app store reviews, reduced profits and stalled growth. Check out how our mobile app testing and web app testing can increase your release confidence and reduce the time it takes to deliver great software.
We'd love to hear your stories of everyday situations that relate to the world of software delivery and testing. Drop us a line in the comments below!