If Heroku fixed these problems, I’d never leave…

Michael Boufford
2 min readJun 30, 2013

--

  1. Transparency: tell me how everything works. I don’t need to read your code (though I would like to), but I do want to know the nitty gritty details of how your “dyno” cycling, deployment,routing, time-sharing, and monitoring strategies work. It shouldn’t require a RapGenius to figure out how traffic is directed.
  2. Your parentalism is great, to a point. Could I make better decisions about how to manage cloud infrastructure, on my own, than the very smart people at Heroku? No. However, the fact that I can’t easily partition my traffic for branch testing, deploy with zero downtime (or slowdown), or make my own load balancing decisions means that I feel unempowered as a customer.
  3. Help me answer my bosses. “I was in a demo with a huge client today, and the whole app randomly just hung, what went wrong?” I am sick and tired of saying “um, I dunno, Heroku blargeddyfargnerg??”
    -
    Sometimes I’ve written some stupidly slow code, or forgotten an index, or I’m wandering through a maze of hyper-normalized database tables to get to what I need; but, when I do something stupid, the performance is usually consistently bad, and I’m able to do something about it. On Heroku, the same request replayed under roughly the same load conditions can vary by a factor of 50, with no clear explanation in the logs. This comes back to my first point, what the hell is taking so long!?
    -
    Success in a services business is a recursive call to a function named makeMyBossLookGood(). I am your customer, so on some level, I am 1/nth your boss. I want to stay your customer, you guys are great, but sometimes you fail to make the initial makeMyBossLookGood() call, and it prevents me from making the subsequent call, and it prevents my boss from making the call for our customers, and the whole thing breaks down, and all I can do is blindly blame you for failing to call makeMyBossLookGood().

Make me look good. That’s all.

--

--