How I Scratched an Itch to Build a Useful Product in a Weekend
Modern web applications are built upon a myriad of hosted services. For better or for worse, the health of every app or website built is now dependent on the health of easily a dozen other services. This is the price we pay in exchange for fantastic reductions in time to market.
Why, then, is there no easy way to see the health of all those services? That was the realization I had one Wednesday afternoon a few months ago. I had just spent two hours debugging a problem on a customer's web app involving the Facebook Platform API. After two hours of my time, and 260 of their dollars, I Googled for the Facebook API Status page. BAM! Facebook was reporting a known issue.
I spent the next 48 hours building what I call a Minimum Triable Product: It was a single Sidekiq worker and a collection of Mechanize scrapers checking my most important services and emailing me. No signup, no name or logo, not even a web interface at all. My goal was simply to try it myself: prove to myself that the concept could work and would save me time and money.
Within the first month of tossing the app onto a free Heroku dyno, it had already saved my ass more than once. This infintile little product alerted me to one Heroku outage and another Facebook Platform issue. I asked some friends to try it out and added their emails to the notification list. They, too, were astonished at the usefulness.
Next, I talked to every developer I knew. Near universal praise for the concept and a flurry of ideas came out of my "MTP". I quickly discovered that a unified dashboard of service statuses was even more desirable than a constant barrage of notices
What I had built wasn't a viable product... yet. But it had already been tried and proven useful by a jury of my peers. Now the next step would be to build something viable - the minimum product someone might pay for. (A challenge to recount another day.)
There's a lot of debate about minimum viable products; it's true that there is more to product development than throwing out the first thing that functions. But as innovators, we must find ways to iterate often and solicit feedback early. A Minimum Triable Product is one way to prove that a concept has the potential to be something more.