I didn't expect it, but at first, I was resistant to the idea of dogfooding (when an organization uses its own product for work, or in this case, when members of the organization use the app in their personal lives as sort of a limited beta testing pool). When given the chance, I was very reluctant to make use of my free ONE account.
In previous lines of work, I always worked on enterprise-level software – the sort of stuff that never got rolled out to the individual user or was even useful to the individual user. Think fleet operations, hardware configurations, and online warehouse ordering software. Like most people, I didn't have a fleet of vehicles, a personal warehouse, nor was I in need of multi-million dollar servers. I was familiar with the idea of dogfooding, but obviously it didn't make sense to try to try these products at home. Nevertheless, I always thought it would be nice to try dogfooding someday when I was working on software that supported it.
But, when I was asked to try our ONE product on my own time, on my own stuff, I balked. I had my backup method (circa 2001) and I didn't see a need for a cloud backup. After several rounds of traditional testing, I also didn't see the point of beta testing on my own, at home, even if there was no expectation beyond just trying it out. Dogfooding felt like needing to work in my spare time, using my personal stuff to test it, and I just couldn't see what that would gain me in either my personal or work life. So there I was, staring down a ONE account, not a clue in the world regarding what I wanted to do with it, confused as to how it would simplify my life or make it better. (That's how I choose applications for my computer and phone – does it simplify my life or make it better? If not, off it goes.) I coaxed myself to install it, backed up a selection of stuff, and then forgot all about it.
Which was exactly the point, not that I knew that at the time.
Then... life intervened.
In short order, I had a computer crash, I lost my Alaska Airlines sign-in information, and then I couldn't remember my 401k username. While I was losing my mind to a coworker about the computer crash, she asked me if my stuff was backed up to ONE.
Yeah, yeah it was.
Then, she pointed out, all I needed to do was download it again, if my computer didn't come back to life. I didn't need to dig through boxes to find my external hard-drive (which was out of date by a month or three) and I didn't need to go dig through my email to find the up to date files. ONE had those waiting for me, because it had been running all those months that I'd forgotten it. And also, she explained, if I was going to be losing passwords left and right, maybe I should set up a personal account with Encryptr, a password wallet. As it turned out, my computer recovered from the tailspin and I didn't lose any data, but I did reinstall ONE, just in case, and I also installed Encryptr. Into Encryptr went a pile of passwords I'd either just reset, vaguely remembered, or frankly, just wanted to stop needing to "remember" once a year. Sweet, sweet relief from that concern.
A couple of months later, I decided I wanted to take a cheap, older computer to Alaska on vacation. I didn't want to take my primary machine because I was helping a friend move, and I figured if something landed on my computer, fell on my computer, smushed my computer, or otherwise imperiled it, I'd rather it be an old laptop. I didn't need my most of my files or games, I just needed to check email, listen to tunes, and maybe check in on friends while I was away. I scrapped the OS on the computer, installed CentOS7 and then dug around in my box of electronic bits and bats to find a usb drive to transfer the few files I wanted to take with me.
My USBs were missing.
My coworker stepped in again, reminding me I had a ONE account and could just download everything I needed. So I installed ONE on the backup machine, transferred the three files I needed and blundered off to the hinterlands of Alaska's interior. Where I proceeded to download many more files. A recipe here, a poem about Alaska there. A character sheet I'd forgotten to bring with me for a game. A chunk of writing my friend wanted.
Surprise, surprise, I was dogfooding and it didn't feel like work. It felt like I was just using a product and treating it like a user might. In that moment, I got it. Dogfooding is not about diving deep into the software, it's about putting casual trust in it, merely assuming it will work, not proving it.
What's the difference? What's the benefit?
As I've continued using ONE at home for my own personal files, I've developed a very different relationship with the product. I lost a file by accidentally saving an old version over a new version. Fortunately, ONE holds onto historical versions, and I could just go get the data I needed. Boom, back in business. Similarly, when I forgot to bring a file to my family gathering, fortunately I could download ONE to my phone and get that file where I needed it, when I needed it. As an end-user, I just generally trust the application. I don't see the UI, or the underlying structures, I don't think about even 50% of the functionality that normally I spend so much time testing and reviewing. I just use the product.
Using a product in this casual way is all about trusting it and assuming the best. Expecting things to be easy, simple to do and understand, and go off without a hitch. When I'm a tester, I'm utterly eagle-eyed about detecting the smallest issues that may point me toward larger bugs. But dogfooding isn't about testing so much as it is about about really being a user. Because I'm not deliberately trying to find issues, trigger failures, or confuse the application, I'm getting a feeling of how robust the product really is, and I'm sussing out my own expectations for the product outside of what I know it can do, and how it should behave.
Surprisingly, things that frustrate me during testing, that I used to be convinced impacted end users disproportionately, don't bother me at all when I'm using the product as an end user. When I'm actively testing ONE, it's right in front of me, it's all I'm doing. In real life, it runs in the background, silently and unobtrusively doing its own thing. The slower upload times (because ONE is designed to not hog resources) don't matter to me when I'm not waiting for something to happen so I can move onto the next test. Syndication, which can take a long time on developed accounts, almost never impacts me because I'm not making dozens of new devices in a day. I just don't use Syncs or Sharerooms in my real life, so I'm not subject to any waiting games with them either.
Similarly, things that don't bother me a bit as a tester have tried my patience. When I create a small test machine, it doesn't have dozens of files backed up so all files in the account are easy to find. I'm a bit of an unorganized file hoarder in real life, so my personal account is almost jammed with files. It can take some doing to find the precise version of a file I want to download. When I want to back up saved games, which are stored in the vast labyrinth of the Windows system, I usually need to research where they are on the computer, and then dig through both my file manager and the file tree in ONE to get them backed up. (This is more on the Windows Operating system and Game designers, but finding those files is really frustrating anyway.) I'm not the biggest fan of how ONE stores deleted files – it stays more organized when you delete folders, but on the rare occasion I clean out the stash, I go through it with a comb and delete the individual files. On the upside, when I do delete a file and empty the recycle bin, only to wake up at 2am in a cold sweat when I realize I actually needed that file, ONE has it waiting for me.
Dogfooding has given me a real appreciation of how stable and reliable ONE is. External hard drives and USB sticks fail from time to time. ONE has never once not retrieved the data I needed, or corrupted it. Also, ONE can't get lost in a box when you reorgnaize your office. If I did lose my ONE client, I can just install it again. Testing, because it doesn't involve real life stakes, can never properly illustrate just how valuable the reliability of the application can be. Testing could also never clearly illustrate the real set-it-and-forget-it nature of the application. When I'm using ONE as a regular user, I'm almost never in there, poking at the interface. It runs in the tray, a little reassuring cloud icon reminding me that my work is being backed up when I save new versions. I've only opened it a handful of times in the sixteen or so months it's been installed.
I think in some cases, Dogfooding changes how a QA Analyst might test. For me, it hasn't changed that so much as it has helped me prioritize and characterize bugs. I used to be entirely hung up on UI issues, no matter how I caused them. When I realized how often I wasn't interacting with the UI, I think I started to provide much more realistic impact assessments for these bugs. Since we're a small company, when we have to choose between fixes, those realistic impact statements really help us drive quality that our customers can appreciate.
I think that dogfooding this way was successful because:
- it was not in the context of work, nor required for work
- there were no metrics for the effort – it was not testing
- there was no need to fully explore the software – I only used the features I needed
- The adoption of the application was gradual and organic
- Use over time allowed me to see how the software could change my data management for the better by removing some of the human error
- The software in question was stable, with minimal bugs (that is, I wasn't an at-home beta tester)
I'm really excited to roll out Share to my small business and see how it can link people in four different regions of the United States in our effort to create high-quality independent print and audio books. While I know from working on the development of Share that it's intended for the use of larger businesses, I'm hoping that dogfooding will give me a depth of experience and insight that rote and exploratory testing can't. Consider me a believer.