Validating a Customer Need with Rapid Experimentation

Code Aug 28, 2017

I've always been a product engineer - I like buildings things that people love. Plus, since I was formally an engineer of Intuit (a very product focused company), I have a bit of their culture ingrained within me. One of the principles they engrained in their culture was rapid experimentation; validation; and repeat. Through this mechanism, we were encouraged to identify potential customer problems, validate whether they were true, and continue to iterate/refine through rapid experimentation.

Over the last two weeks, I went through this exact exercise of rapid experimentation and validation. I went through the journey of experiencing a problem, identifying a potential customer need, and validating whether it was true. Before I get into the experiment, let me set up the back story.

Two weeks ago....

When Google Allo was first announced, my friends and I were stoked to see a modern chat platform that had a huge emphasis on enhancing our social interactions. When it was finally released last year, we were huge fans, but still found that we were sorely missing an experience that allowed us to use it on our desktop. Since we wanted to use this as our main method of communication, it was imperative that we would be able to chat through any and all of our devices. So we stuck with Google Hangouts for a little longer. But alas, two weeks ago Google finally released a web client for their chat app - my friends and I were excited! We were finally able to use Allo on our lappy-toppies and our oversized desktop rigs. However, I personally ran into one small problem....

I had to leave a Google Chrome browser tab open at all times to use it.

Identifying the problem

I have to have a browser tab open just to use it on my computer?! Outrageous! It was truly a first world problem. Google Hangouts was great because it had a chrome extension & app. This was nice because it was a standalone window on my desktop: it had its own icon on my desktop/taskbar/dock, I could still have Hangouts open even when I accidentally close my browser, I can easily tell if it was running, and more! When I think about apps and the act of using an app, I like to think of them as individual, standalone entities.

If we think about it from a user experience standpoint, having to associate my browser and chat client as the same window and taskbar/dock is jarring. Despite Google fulfilling my need of wanting to use Allo on my computer, it was still not a 100% ideal experience. I knew I couldn't be the only one that felt this way.

So on the first day that we migrated to Google Allo, I had asked my friend Adrian how he felt about using the new chat platform. He responded with:


Me too man. Me too... Then I switched over to my Basketball group chat and partway through our discussion, my friend Patrick said the following:


Well, that makes two people. Maybe others are feeling the same way as me. And that's when my friend Kevin, on another completely separate chat group, sends a resounding confirmation:

Okay, it seemed that some of my friends were definitely experiencing the same first world problem as me. However, what I found interesting was that two of them stated that they wanted a chrome extension because that's what they were accustomed with through Google Hangouts. That's when I identified the potential customer problem:

My friends and I want a dedicated "desktop-like" experience for the Allo web client.

Running the experiment

Although they all seemed to miss the chrome extension, I had identified the potential customer problem as them wanting a "desktop-like" app for their laptops and desktop rigs. This was when I decided to run the Intuit experiment to validate whether this was true. But how do I validate this? There are several different ways to answer this question. Sometimes people will set up surveys for a focus group; create simple landing pages with a sign-up link and tally the number of sign ups; and some will create high-fidelity prototypes to test with users.

Rapid prototyping

I knew I could quickly prototype and get a "desktop-like" app working to validate my hypothesis. I was going to create the desktop app with an electron-based website wrapper. For those unfamiliar, Electron enables you to build desktop-apps using web technologies. I was also familiar with another open source project called Nativefier, which allows you to turn any web application into a desktop app through a simple command. Nativefier uses electron under the hood, so I knew this was exactly what I needed to get something quickly testable.

So I spun up a Mac OS and Windows desktop app that wrapped around Google Allo's web client. This took me only an hour to get up and running (most of the time was spent trying to get the icon to render correctly). After verifying that it worked, I put it on Github, set up the download links on there, and I sent it out to my friends to download. My friends were stoked; they started to use it immediately! Itt wasn't a chrome extension, but it was exactly what they wanted. Although it was simple to set up and 100% of the credit goes to the Nativefier and electron communities, I was happy to have been able to solve this problem for my friends. Through these electron apps, I was able to validate that the problem existed and that this solution was the right one for them.


However, something interesting occurred. Several hours after I had put it up on Github, I received two stars for it from two completely random strangers.

Redefining the problem

The point of the Intuit experiment is to continuously and rapidly experiment +'validate. The two random stars on GitHub were indicators that I could take the experiment further. But in order to do that, I had to tweak and redefine the customer problem a bit.

People who use Google Allo want a dedicated "desktop-like" experience for it.

You may notice that one minor change I made was swapping "My friends and I" with "People who use Google Allo". Thankfully by trying to solve my friends' problems, I had already created functional prototypes of the desktop app. So to run this experiment quickly, I decided to create a marketing page for the app. If there truly was a need, people would (hopefully and organically) find the website through a Google search, happen upon the page, and then download the app. I would then validate the experiment by tracking page views + downloads of the app. I would also maybe check Reddit or some forums to see if there were any requests for a "desktop-like" experience, and then post the link accordingly. I planned to gather the data over several weeks.

You can see the page live on


I made the link live last Thursday (August 24th), and I can say with confidence that I was able to validate the problem successfully. In just two days over the weekend, the marketing page had received over 5000 page views as well as over 990 downloads. I was shocked to receive that much coverage after only launching the marketing site for a few days, so I decided to look into where this traffic was coming from.

Without any self-advertising, this post wound up on the front-page of Reddit /r/android as well as an article on Android Police and other websites...and some more. The need for a "desktop-like" experience had prompted these articles and post.


Through rapid prototyping and experimentation, I was able to at least identify that the customer need exists; people who use Google Allo want a dedicated "desktop-like" experience for it. If that wasn't the case, I would not have received this free press, traffic, and downloads.


I also want to make clear that there are obvious flaws with the app itself. For one, it is an electron-based desktop app, which definitely makes it not highly optimized or performance as it could be. But, the purpose of the app is to validate whether a problem exists and help provide a solution to the problem. It's not super elegant nor sophisticated, but for the average non-developer or for those who want an interim "desktop-like" experience, this has hopefully helped them out. It has already fulfilled its purpose of helping me run an experiment outside of a corporate setting - and it has already done more than that. As long as one person finds the app useful, it's gone above and beyond what I've expected and wanted from it. Enjoy!