Sometime in April of 2012, I came into work to find out that my crazy co-workers had, over a bottle of scotch, spent the previous evening throwing together an experimental dating site called CupidCurated. I admired their audacity and congratulated them for pulling it off and then chuckled to myself as I went back to 'real' work on StartupDigest VIP. You may have read about this a few weeks ago. This is the story of what comes next and what it really means to build a minimum viable product -- from the engineer who built it.
Two weeks later, I went down to Monterey to visit my in-laws. I had basically forgotten about CupidCurated at this point when I got a phone call late on Sunday evening from Chris McCann. This is when our fastidious editor compiles our event newsletters, so I picked up immediately, thinking something must be wrong with our CMS.
"How quickly do you think you can get CupidCurated up?", Chris went straight to the point.
"There's a demo day in San Francisco next Wednesday and we'd like to show CupidCurated at it."
My heart skipped a beat.
"I'll see what I can do..."
So began one of the craziest 9 days of coding of my life. The next morning, I immediately cloned our EC2 stack, forked our master Github repo and started to figure out how I could actually make this all work in 9 days. It's all very well and good to think of dating and recruiting as being parallel interactions, but how do you actually take one and turn it into the other. Could you take OKCupid and turn it into a LinkedIn killer?
The first step was to remove all unnecessary parts: activation, account editing, password resets. These are all key for a real product, but they're just wasting time in a demo. Then, I set Chris and Brendan on the task of re-writing all our copy to be 'dating-ish' rather than 'recruiting-ish'.
There was no way of getting around the core interaction of the application logic. A recruiting product helps companies and engineers meet. A dating site helps girls and guys meet. I made the crazy decision that women would be companies and men would be engineers (well, that one isn't so crazy, I guess). For the demo, the key was to validate the interaction, not the matching. Obviously, in a real product you want to optimize the matches that happen on your site, but for a true MVP, you just need to figure out if it answers the human side of the equation: the interaction, before you optimize the machine side. By Friday, I had a site that actually followed the workflow of a dating site.
The problem was, it still looked like a recruiting site.
The most important part of an MVP is that it needs to feel like a real product. It can be crap on the inside (and believe me, this product was a hodgepodge of hacks, improvisations, and plain old guesses on the inside), but, again, MVPs are about validating the human side of the equation. Will this product match what a human wants out of it? And to that end, it needs to feel real. So, I knuckled down over the weekend on design. I picked Imprima for the font as it has a nice, clean, sans serif feel, with a hand-written twist. I found a nice background on Subtle Patterns and played around with the color scheme to make it feel more Cupid-like.
And you know what? It actually looked like a dating site. It felt like a dating site, but could it actually handle demo day? I was fully prepared to spend the entirety of Life 3.0 huddled in a corner, casting spells of 'resurrect server' through the evening, but it actually handled the load quite nicely, which just goes to show you how useless premature optimization is.
I think MVPs are sometimes hardest on engineers. We're naturally lazy and therefore predisposed to the philosophy that if it isn't worth doing right, then it it isn't worth doing at all. However, this turns out to be wasteful as evidenced by the the countless engineers who spend their weekends working on over-designed, under-validated side projects that are never going to get off the ground.
Yes. The demo that I created for Life 3.0 was a monster an adventure, but, you know, life is too short to work at a boring company.