The following is an excerpt from our Airtime for Email company manifesto. Dan Shipper and I wrote down our principles up front to make sure we understood each others’ thinking, agreed on everything and were on the same page.
A close friend of mine is one of the best poker players in the world. As you can imagine, knowing someone like him is a huge privilege. I spent all of last semester trying to understand why he is the best. He regularly plays ten games of poker simultaneously on three thirty-inch monitors and is ranked in the 99.99th percentile online. After school, he will be making his living playing poker professionally. On three separate occasions last semester, we worked together on quantitative group projects for class. Many a late night over those months, we reasoned (or perhaps discovered) that among smart people, we both have relatively average mathematical faculties. So why am I not one of the best poker players in the world? Why aren’t our classmates? Why aren’t more people? What makes him different?
First, some background on a key point: at his level, everyone has internalized poker probabilities. Knowing this means that the end of every round reveals a wealth of data. Another aside: there is no doubt the sport of poker is complex. Mastery of undeniably difficult skills – managing bankroll, reading people, handling double-think, maintaining emotional discipline and doing speedy mental math – makes you good but certainly lends you no advantage over any other strong poker player. Something else has to explain his astronomical performance. And something else does.
Immediately after the cards show down, he replays the entire hand in his head, whether he won or lost. Given the known outcomes, he looks for any errors he made. Say he missed the tell from a bluffer who got lucky on the next card. He adds that error to his list of things to look for going forward. At the start of each hand, he runs through, in computer science terms, a database of hundreds if not thousands of edge cases to avoid potholes. This is a man who has played millions of hands online and now competes on a level where mistakes are painfully expensive.
I have long held that great ideas are elegantly simple. No surprise, his edge is incredibly easy to understand. He is the only person I have ever met who systematically learns from his mistakes. He has developed such an extensive edge-case test suite that it would be ridiculous for him to not play poker to earn a living. He has made “experience” quantifiably scientific.
I am convinced lists like these are the essence of great execution.
***
So what does this mean to us hacker/entrepreneurs? It means this: whatever you’ve screwed up in past ventures, make a list. Every time you make new screw ups, add to the list of things to get right next time. Then never make that mistake again.
Here’s my list of stuff I’ve screwed up. Yes, I have consistently not done some of these painfully obvious things in the past. Yes, it is possible to launch a product and do none of these things. Yes, these things are the icing on the cake. And yes, if we do each of these things with Airtime for Email and keep building this list, we’ll be rockin’ and rollin’. We’ll be building iPods, not MP3 players.
And now, in no particular order…
1. Make “Product Listserves” that are public, available on our blogs, and anyone can subscribe to. Publish weekly emails of updates with these.
2. Nightly customer status emails so we’re always top-of-mind
3. Monthly letters to our customers summarizing new & upcoming additions
4. Easy referral links via email, Twitter, Facebook from the Dashboard
5. Constant PRNewswire releases. It’s how oldschool media gets their information. For my business in high school, I got onto PBS, was interviewed by Newsweek and was invited to the Postal Regulatory Commission with just one of these press releases. Why I didn’t do one a week, I’ll never know.
6. Backlinking from the company & personal blog. Blogging about the subject matter you’re selling so you become a “local expert” and reference
7. Making quick changes to the software based on customer request (Iteration). Stripe has mastered this with their “How can we improve this page” jQuery bar at the bottom of each page.
8. A “Getting Started” tutorial when customers sign up
9. Easy, no-questions-asked, refunds
10. “Thanks for Signing Up, here’s our contact info, we really think you’ll love our product, call us any time of day and we’ll make it right” email upon registration. Pictures attached to our names. Our customers should know who we are
11. Holiday emails. People love this. Yet another excuse to be top-of-mind
12. Thank you emails. No reason not to randomly thank people out of the blue for giving us their business. Again, helping to stay top-of-mind.
13. 24 hour average email response time. Hard but awesome.
14. A tiered service with a free tier
15. Strong test suite
16. Strong error handling, especially around any external dependencies
17. A failure notification system that emails us when errors are thrown (instead of logging and forgetting about them)
18. Uptime monitoring
19. A wireframe layout (Foundation, Twitter Bootstrap 2, et. al.)
20. A broad, sweeping vision and rallying cause (e.g. AirBnB: unlocking spaces; Stripe: payments make the world smaller and helps people; Google: search makes the world smaller and helps people)
21. Philanthropic & corporate partnerships
22. Testimonials from existing customers
23. Links to feature articles on the front page
24. Customer education on why what they currently have doesn’t work (“You are overpaying for ineffective advertisements. Use Airtime for Email.”)
25. A company Facebook page and Twitter account. A Like Us button.
26. Notifications before we bill someone. Receipts after. Especially for subscription products. (Feb 2012)
27. “Thank you video” when people sign up (Feb 2012)
28. Look at the numbers daily. Both (1) the hard financials and (2) an administrative screen showing the number customers signed up, upgraded, downgraded, or canceled a product. Check these numbers throughout the day & have everything update in real time. (Feb 2012)
29. Never schedule a meeting the day after a new product release. You’ll need the whole day for debugging (Feb 2012)
30. Don’t optimize prematurely but instead focus on functionality THEN performance. Build software that first and foremost works. (Feb 2012)
31. Help pages and video help tutorials should be in both a knowledge database and easily accessible via a help button on the relevant page (i.e. the banners page has a different help button than the dashboard) (Feb 2012)
32. Never choose a name without checking both website domains and the relevant trademark classes first (Feb 2012)
33. Don’t set up more shares than you absolutely need in Delaware. This minimizes tax liability (Feb 2012)
34. Respond to every Hacker News post and blog comment (Feb 2012)
35. Always grandfather in old prices for existing customers (Feb 2012)
36. Trust but verify. Check sources when somebody makes a claim against you, externally verify everything (Feb 2012)
If you’ve read this far, please consider following me on Twitter.