Heroku runs on top of EC2, and they get charged the same amount of money by Amazon whether your instances are idle or on fire. That doesn't matter, though, because businesses do not do cost-based pricing.
There comes a time in a young man's life when "haha, whoopsie, I'm a kid who is not responsible for his own decisions" is no longer sufficient for a do-over. I am not sure when that is, but if you're running a business, well, welcome to being an adult.
How horribly condescending and wrong. Any company that lets their customers go from huge fan to hater in a week has a major bug. The important question is why did their product turn a fan into a hater, and how can they prevent it?
Heroku should almost certainly have user defined cut off points. They should require every new user to set a maximum monthly bill to something they can afford (or "unlimited").
I did exactly that for a similar type of service I worked on. One of the biggest anxieties customers had was that they'd get a massive unexpected bill, just like this guy did.
Heroku's best move would be to cut his bill in half and institute a cut-off feature. Every service like it should follow suit.
>How horribly condescending and wrong. Any company that lets their customers go from huge fan to hater in a week has a major bug. The important question is why did their product turn a fan into a hater, and how can they prevent it?
Spoken like someone who has never had a real customer. There will always be people who expect instant response to support tickets. There will always be people who expect you to fix their webapp, or their apache config when you are selling them a 'no support' plan. People can be unreasonable. If you have a reasonable number of customers, some of them /will/ be unhappy, no matter how good your service actually is.
Now, for me, I avoid some of these problems by making people pre-pay. If you don't, I just don't turn up your server. If it's time for renewal, and you don't want to pre-pay for the next period, I shut you off. There's no way for you to get an unexpected bill, and if it turns out my service doesn't match your expectations, I offer you a refund if you are willing to leave. (You'd be surprised the number of people who don't take the refund and want to stay even after complaining very loudly and publicly.)
For my target market (companies with small revenues and hobbyists) this is absolutely the best way to do it.
On the other hand, there are cases where some businesses would prefer to just pay through the nose to survive the slashdotting or what have you, and that's where this pay as you go model comes in. The problem is that when you have expectations of a 'pre paid' customer but end up buying a 'pay as you go' service.
>Spoken like someone who has never had a real customer.
I've had real customers and you do what you can to keep the loyal ones and make them happy, even if that means cutting your profits temporarily. It's not just being nice, it's smart business. If he finds another hosting company and starts recommending them, that's way more money lost than the $200 they could have knocked off the $1300 bill.
Eh, for me, I am /very careful/ to treat the customers who are easy to deal with (e.g. those who try to solve problems themselves, and those who don't complain) better or at least as well as customers who complain.
My policy is that if I give one person a refund/credit (without them leaving... anyone can get the last month back for any reason if they want to leave, I mean at least once.) I give all customers who experienced the same problem the same refund or credit. A few months back when I was hit with a DoS and was down 8-10 hours? I gave everyone a free month, not just the complainers. Fourteen grand that DoS cost me.
The thing is, your complainers are expensive customers. On a low margin service, it does not take very many "fix my apache config" complaints before a customer becomes unprofitable. I mean, you want some complainers; they act as the canary in the coal mine. But keep in mind that the real money is in the silent masses who silently leave when they feel wronged.
I mean, focusing on higher maintenance customers is also a valid business model... but you need to charge more, because high maintenance customers are more expensive to deal with. I want to be clear that I am only talking about (and I only know about) lower-margin services where the actual cost of providing the service is the determining factor in price. There are markets where those rules don't apply, and in those markets, nothing I'm saying makes any sense at all (and your advice is probably pretty good... not that I'd know.)
It reminds me of that Albert Brooks movie where he goes to Vegas with his wife and she gambles away all of their life savings. He tries to convince the casinos to give him a refund because of the good publicity it would create. The casino replies with something like "If we give you a refund, everyone will come in asking for a refund and then where would they be?"
It's an interesting line to walk. If they give the poster a refund and he posts goodwill posts about it on Hacker News, Twitter, etc. Then, next thing you know, every customer who isn't using all of their capacity is asking for refunds and if they don't give them, then the PR backlash will be even worse (think AT&T and the free micro cells they're giving to some of their best customers but not others).
I'm guessing the majority of their profits come from people who don't use their full metered capacity -- in the same way giftcard profits come from people who never redeem them. Of course a google-like model that provides traffic-based metering would be best.
> I'm guessing the majority of their profits come from people who don't use their full metered capacity
For Herokus sake I hope that that is not the case.
Typically a service like this is 'oversubscribed' to about 10 to 15%, it's like pre-paying for your parking meter, you want to pay a little bit too much because of the uncertainty in when you'll get back to the meter but not so much that you'd be cheaper off parking somewhere for a flat rate fee.
If they really do make the majority of their money on unused instances then they're setting themselves up for trouble in the longer term.
I highly doubt they did not think that one through.
> Heroku should almost certainly have user defined cut off points. They should require every new user to set a maximum monthly bill to something they can afford (or "unlimited").
And then what? They shut you off? That would go over just as well! Here's a thought: understand what you sign up for and take some responsibility for your actions.
> If you don't, we're haggling over the price, not over the principle.
Sure, haggle away. I see no problem with this. I don't see the need for Heroku (or anyone for that matter) to support a user's desire to haggle. I do think, however, that a warning should be given if your usage surges suddenly so that you can react appropriately.
Any company that lets their customers go from huge fan to hater in a week has a major bug.
"I was the one who screwed up" doesn't like hating to me.
It's nice when you can cushion the user from the bad consequences of their own decisions, but you can't always do that. They may have been able to do that in this instance, but it's hard to know from the outside.
This is the Ruby versus Java debate: should we treat professional programmers like they know what they're doing, or should we straightjacket them?
To which I answer: Yes. It is reasonable to run a Enterprise-oriented cloud scaling company which second-guesses your customers' decisions at every point. It is also reasonable to run an Enterprise-oriented cloud scaling company where a professional engineer engaged in capacity planning clicking OK to an estimate presented in 60 pt Arial is assumed to know what they're doing.
I don't agree. It's not an issue of straight jacketing programmers. It's an issue of reminding a user they are incurring an enormous bill for no reason. A simple "Hi, we see you're using X widgets but your traffic would allow you to reduce this to Y widgets. If you'd like to do that, here's a link. If not just ignore this email." That would solve the problem with very little effort. It would keep people forgetting and having a heart attack, getting pissed and leaving. It really doesn't matter if it is the customer's fault if it causes them to leave with a bad taste in their mouth.
Except that Heroku is very much targeting their brand for the do-it-yourself amateur projects (i.e. the handholding crowd) with their "starts-at-free" pricing, cutesy naming for all their a la carte features, and full-service VPS setup. At best, it's inconsistent and/or careless. At worst, this was their plan all along.
Hopefully the folks at Heroku see this comment as the idea for a cutoff rate is really good. I'm not sure cutting the bill in half is necessary, but describing the real costs of their service and potentially allow paying only that cost or at the very least a payment plan seems reasonable.
They may have every right to hold the hard line, but a little compassion would probably pay off better in the long run. Some business' bottom line is profit alone, other's are in it to solve problems, and, keeping an eye on money, and can make enough profit to keep living the dream.
I think the best case is to ask for the discount. Start eating your hat if they don't. Why? Because it is your fault, and it would have been icing to get a break this time. But it's not their prerogative to give out free service, or to take the mass of requests for it if they started doing that.
The user sets up those limits, it cuts costs because they don't need techs to set it up. But the client shoulders the responsibility too. They last thing their company needs is to hire people to handle personal requests like funerals or "i forgots" which would only add more to their overhead. They above comment was perfectly honest with them and not at all condescending.
In terms of "wrong" ? You get what you paid for. Not every business model can include white glove service with freebies and "We understand".
There comes a time in a business owners life when he realizes that he may be able to take the money from this particular customer but that the PR damage done by that customer may be larger than being reasonable and understanding that mistakes happen. And if there is some egg on the face of the business owner for not alerting the user to their sudden suspicious consumption pattern then there are valuable lessons to be learned for all parties.
So, the adult business owner would likely split the bill with the customer to cover his costs, fore go his profits on this particular occasion, have a very happy customer (who might even write about that!) and would apply the lessons learned to their business.
As an empirical question, I think you are likely right that charging off some money owed might buy Heroku disproportionate amounts of goodwill. (I do it all the time.) That is, properly, their call.
As a normative question, though, for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
More broadly, one of my periodic crusades is trying to get HN people to understand that norms in the business world are very unlike the norms of cash-strapped twenty-somethings regarding things like a) the appropriateness of charging money (charge more) b) how much money $1,000 really is (a lot to you, a lot to me, rat spit to businesses with an HR department) and c) expectations for professional behavior (you're doing taxes like a boss, reading contracts like a boss, capacity planning like a boss, paying your invoices like a boss, etc).
Businesses that work on 'metered' entities (phone companies, banks and so on) as a rule have velocity checks in place.
This limits the amount of damage a customer can do to himself and to the company between billing periods.
I think Heroku is the party here that stands to benefit the most from the encounter, and by simply charging the customer they've lost an opportunity for good PR and have made half of HN more wary of dealing with them.
I understand what you're getting at, but just like there is a maturity to being 'in business' there is a maturity in dealing with your customers, and in this case both parties carry part of the blame, so the reasonable thing to do is to find a solution that lies in the middle.
Even the pros mess up occasionally, and in this case it was pretty clear that it was a mistake.
The real lesson here is that Heroku should implement a notification system when a customer has excess unused capacity or a min/max setting for their dynos with automatic increase and decrease depending on the amount of traffic a customer is currently receiving.
As you say, you 'do this all the time', so that means that you know exactly what is in your interest as a business person, and if that means that you occasionally eat a charge that must mean that you know exactly what the value of goodwill is.
Heroku, apparently has not yet learned that lesson, and 'heroku' and 'unexpected large bill due to mistake' are now two concepts that have become strongly linked. It did not need to be that way.
for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
The OP never argued that he has the right to force the cost of his mistake onto Heroku. He's polling a community of business owners to see how they feel it should've been handled.
If I were Heroku management, I would've written the OP something like this:
(Valued Customer)-
I'm so sorry your accident created a nasty end of the month surprise. We understand, but we cannot forgive the whole amount because while they were not servicing requests, we incurred real costs keeping the dynos ready, willing, and able for you.
Since it's your first mistake of this sort, and you've been such a great customer, we're willing to reduce your total amount owed to $x.
We hope this helps,
Heroku
----
so yes, I think it's his own damned fault. But I also think it's a missed opportunity to create a happier customer.
How do you judge the PR damage of a customer? Unless they bring up who they are elsewhere on the net (assuming it is not obvious) you simply can't judge such things.
So what do you do; lose money each time this happens? Or take a hard line "we're nice guys and all but, sorry, it's costing us too".
And the happy customer might write about you; but the risk is it sets a precedent. So the next month when another customer screws up they think to try the same tactic - and if you refuse them it's even worse press ("oh, apparently I'm not good enough to be treated that way", "2 tier customer service" etc.).
How is heroku any different from your or my business? Because they are mildly successful suddenly they are the bad guys and everyone is is good until proven on hn? Double standards really piss me off. The OP needs to take responsibility.
Heroku runs on top of EC2, and they get charged the same amount of money by Amazon whether your instances are idle or on fire.
Is the latter part of that true? (I'm not playing Devil's Advocate, honest!)
I'd assumed the lion share of Heroku's profits were coming from clever arbitrage of EC2 instances rather than markup alone.
For example, if they have 1000 users paying $108 per month for 4 dynos, they don't keep 4000 "dynos worth" of EC2 instances running constantly. Instead they can see the overall load and maintain that lower level of EC2 instances plus some "slack." When traffic increases among apps, the slack can be rapidly configured to pick it up. Heroku would then make not only a markup on EC2 but also profit from the difference between the maximum load and actual load. (Isn't this how cloud scaling systems work anyway, right? Heroku could/might be doing that over thousands of apps for collective benefit.)
Perhaps I'm over-thinking how I'd be trying to squeeze profits out of a Heroku-type system though ;-)
I was under the same impression. If your app has been idle for a long time it takes a few seconds for the first request to complete, which leads me to believe they shut down dynos for idle apps. But it's possible that's only for the free apps.
I know a few of the guys at Heroku and I'd be gobsmacked if they weren't doing stuff 100x smarter than I mentioned. With that said.. I hope I'm not wrong and making them feel bad in the process ;-)
I understand Heroku's decision, but I must say, when the opposite happened to me with SendGrid a couple of days ago (I didn't even asked for the refund, they did it on their own initiative), I was extremely positively surprised.
Right... But I've heard nothing about your experience. Likewise, there is a nonzero likelihood that Heroku could give this HNer a $1000 break and get no publicity...
For $1,000 and no publicity that would still be a valuable lesson learned.
What's more interesting is if this happened before and how they dealt with that. What's the cut-off point at which you want to stop your customers from doing serious monetary damage? $1000? Apparently not. $10,000 ? $100,000?
There comes a point where the continued existence of Heroku would be at stake, so it is in their own interest to guard against this, especially when you take in to account the number of users they've got.
They need some guardrails for this, and sooner probably better than later. Terms of service will not protect you if your customer can't pay your insanely large bill.
In that case you'll end up eating the charges anyway, so guardrails are to mutual benefit.
In my opinion, your point is totally orthogonal to the point I was responding to. I agree with your reasoning about Heroku's self-preservation completely.
Refunding a portion of their profits on the 1K could be seen as money spent on advertising. It sounds like the guy realizes he made a mistake, so he'd probably be happy if he got something back, and think it perfectly fair not to seek to get everything back, so in the end it wouldn't be a great deal of cash, that, long term, they'll probably recoup in the course of a year anyway.
Since he's a good customer, they could even give it to him in the form of credit for their service, which gives him an incentive not to leave.
I'm pretty sure that's not true, but I don't know exactly how Heroku works.
The way I understand it is if no one is making requests to your app they will shut down the dynos, and when you start getting requests they'll spin them back up, up to the number of dynos you're paying for. That's why if your app has been idle for a long time it takes a few seconds for the first request to complete.
This lowers their costs, and presumably the prices for their customers.
I could be wrong though, and perhaps they only turn off dynos for non-paying customers.
Comments
Heroku runs on top of EC2, and they get charged the same amount of money by Amazon whether your instances are idle or on fire. That doesn't matter, though, because businesses do not do cost-based pricing.
There comes a time in a young man's life when "haha, whoopsie, I'm a kid who is not responsible for his own decisions" is no longer sufficient for a do-over. I am not sure when that is, but if you're running a business, well, welcome to being an adult.
How horribly condescending and wrong. Any company that lets their customers go from huge fan to hater in a week has a major bug. The important question is why did their product turn a fan into a hater, and how can they prevent it?
Heroku should almost certainly have user defined cut off points. They should require every new user to set a maximum monthly bill to something they can afford (or "unlimited").
I did exactly that for a similar type of service I worked on. One of the biggest anxieties customers had was that they'd get a massive unexpected bill, just like this guy did.
Heroku's best move would be to cut his bill in half and institute a cut-off feature. Every service like it should follow suit.
>How horribly condescending and wrong. Any company that lets their customers go from huge fan to hater in a week has a major bug. The important question is why did their product turn a fan into a hater, and how can they prevent it?
Spoken like someone who has never had a real customer. There will always be people who expect instant response to support tickets. There will always be people who expect you to fix their webapp, or their apache config when you are selling them a 'no support' plan. People can be unreasonable. If you have a reasonable number of customers, some of them /will/ be unhappy, no matter how good your service actually is.
Now, for me, I avoid some of these problems by making people pre-pay. If you don't, I just don't turn up your server. If it's time for renewal, and you don't want to pre-pay for the next period, I shut you off. There's no way for you to get an unexpected bill, and if it turns out my service doesn't match your expectations, I offer you a refund if you are willing to leave. (You'd be surprised the number of people who don't take the refund and want to stay even after complaining very loudly and publicly.)
For my target market (companies with small revenues and hobbyists) this is absolutely the best way to do it.
On the other hand, there are cases where some businesses would prefer to just pay through the nose to survive the slashdotting or what have you, and that's where this pay as you go model comes in. The problem is that when you have expectations of a 'pre paid' customer but end up buying a 'pay as you go' service.
>Spoken like someone who has never had a real customer.
I've had real customers and you do what you can to keep the loyal ones and make them happy, even if that means cutting your profits temporarily. It's not just being nice, it's smart business. If he finds another hosting company and starts recommending them, that's way more money lost than the $200 they could have knocked off the $1300 bill.
Eh, for me, I am /very careful/ to treat the customers who are easy to deal with (e.g. those who try to solve problems themselves, and those who don't complain) better or at least as well as customers who complain.
My policy is that if I give one person a refund/credit (without them leaving... anyone can get the last month back for any reason if they want to leave, I mean at least once.) I give all customers who experienced the same problem the same refund or credit. A few months back when I was hit with a DoS and was down 8-10 hours? I gave everyone a free month, not just the complainers. Fourteen grand that DoS cost me.
The thing is, your complainers are expensive customers. On a low margin service, it does not take very many "fix my apache config" complaints before a customer becomes unprofitable. I mean, you want some complainers; they act as the canary in the coal mine. But keep in mind that the real money is in the silent masses who silently leave when they feel wronged.
I mean, focusing on higher maintenance customers is also a valid business model... but you need to charge more, because high maintenance customers are more expensive to deal with. I want to be clear that I am only talking about (and I only know about) lower-margin services where the actual cost of providing the service is the determining factor in price. There are markets where those rules don't apply, and in those markets, nothing I'm saying makes any sense at all (and your advice is probably pretty good... not that I'd know.)
It reminds me of that Albert Brooks movie where he goes to Vegas with his wife and she gambles away all of their life savings. He tries to convince the casinos to give him a refund because of the good publicity it would create. The casino replies with something like "If we give you a refund, everyone will come in asking for a refund and then where would they be?"
It's an interesting line to walk. If they give the poster a refund and he posts goodwill posts about it on Hacker News, Twitter, etc. Then, next thing you know, every customer who isn't using all of their capacity is asking for refunds and if they don't give them, then the PR backlash will be even worse (think AT&T and the free micro cells they're giving to some of their best customers but not others).
I'm guessing the majority of their profits come from people who don't use their full metered capacity -- in the same way giftcard profits come from people who never redeem them. Of course a google-like model that provides traffic-based metering would be best.
> I'm guessing the majority of their profits come from people who don't use their full metered capacity
For Herokus sake I hope that that is not the case.
Typically a service like this is 'oversubscribed' to about 10 to 15%, it's like pre-paying for your parking meter, you want to pay a little bit too much because of the uncertainty in when you'll get back to the meter but not so much that you'd be cheaper off parking somewhere for a flat rate fee.
If they really do make the majority of their money on unused instances then they're setting themselves up for trouble in the longer term.
I highly doubt they did not think that one through.
> Heroku should almost certainly have user defined cut off points. They should require every new user to set a maximum monthly bill to something they can afford (or "unlimited").
And then what? They shut you off? That would go over just as well! Here's a thought: understand what you sign up for and take some responsibility for your actions.
Would you feel the same if the bill was three orders of magnitude larger?
If you don't, we're haggling over the price, not over the principle.
> If you don't, we're haggling over the price, not over the principle.
Sure, haggle away. I see no problem with this. I don't see the need for Heroku (or anyone for that matter) to support a user's desire to haggle. I do think, however, that a warning should be given if your usage surges suddenly so that you can react appropriately.
Why not?
If you set a loss limit with your broker, when you hit it they'll automatically sell all your shares and just leave the money in your account.
Any company that lets their customers go from huge fan to hater in a week has a major bug.
"I was the one who screwed up" doesn't like hating to me.
It's nice when you can cushion the user from the bad consequences of their own decisions, but you can't always do that. They may have been able to do that in this instance, but it's hard to know from the outside.
This is the Ruby versus Java debate: should we treat professional programmers like they know what they're doing, or should we straightjacket them?
To which I answer: Yes. It is reasonable to run a Enterprise-oriented cloud scaling company which second-guesses your customers' decisions at every point. It is also reasonable to run an Enterprise-oriented cloud scaling company where a professional engineer engaged in capacity planning clicking OK to an estimate presented in 60 pt Arial is assumed to know what they're doing.
I don't agree. It's not an issue of straight jacketing programmers. It's an issue of reminding a user they are incurring an enormous bill for no reason. A simple "Hi, we see you're using X widgets but your traffic would allow you to reduce this to Y widgets. If you'd like to do that, here's a link. If not just ignore this email." That would solve the problem with very little effort. It would keep people forgetting and having a heart attack, getting pissed and leaving. It really doesn't matter if it is the customer's fault if it causes them to leave with a bad taste in their mouth.
Except that Heroku is very much targeting their brand for the do-it-yourself amateur projects (i.e. the handholding crowd) with their "starts-at-free" pricing, cutesy naming for all their a la carte features, and full-service VPS setup. At best, it's inconsistent and/or careless. At worst, this was their plan all along.
I hardly think a single global setting (set one time) counts as something that "second-guesses your customers' decisions at every point".
Less like a straightjacket and more like an (optional) seatbelt.
Hopefully the folks at Heroku see this comment as the idea for a cutoff rate is really good. I'm not sure cutting the bill in half is necessary, but describing the real costs of their service and potentially allow paying only that cost or at the very least a payment plan seems reasonable.
They may have every right to hold the hard line, but a little compassion would probably pay off better in the long run. Some business' bottom line is profit alone, other's are in it to solve problems, and, keeping an eye on money, and can make enough profit to keep living the dream.
I think the best case is to ask for the discount. Start eating your hat if they don't. Why? Because it is your fault, and it would have been icing to get a break this time. But it's not their prerogative to give out free service, or to take the mass of requests for it if they started doing that.
The user sets up those limits, it cuts costs because they don't need techs to set it up. But the client shoulders the responsibility too. They last thing their company needs is to hire people to handle personal requests like funerals or "i forgots" which would only add more to their overhead. They above comment was perfectly honest with them and not at all condescending.
In terms of "wrong" ? You get what you paid for. Not every business model can include white glove service with freebies and "We understand".
There comes a time in a business owners life when he realizes that he may be able to take the money from this particular customer but that the PR damage done by that customer may be larger than being reasonable and understanding that mistakes happen. And if there is some egg on the face of the business owner for not alerting the user to their sudden suspicious consumption pattern then there are valuable lessons to be learned for all parties.
So, the adult business owner would likely split the bill with the customer to cover his costs, fore go his profits on this particular occasion, have a very happy customer (who might even write about that!) and would apply the lessons learned to their business.
As an empirical question, I think you are likely right that charging off some money owed might buy Heroku disproportionate amounts of goodwill. (I do it all the time.) That is, properly, their call.
As a normative question, though, for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
More broadly, one of my periodic crusades is trying to get HN people to understand that norms in the business world are very unlike the norms of cash-strapped twenty-somethings regarding things like a) the appropriateness of charging money (charge more) b) how much money $1,000 really is (a lot to you, a lot to me, rat spit to businesses with an HR department) and c) expectations for professional behavior (you're doing taxes like a boss, reading contracts like a boss, capacity planning like a boss, paying your invoices like a boss, etc).
Businesses that work on 'metered' entities (phone companies, banks and so on) as a rule have velocity checks in place.
This limits the amount of damage a customer can do to himself and to the company between billing periods.
I think Heroku is the party here that stands to benefit the most from the encounter, and by simply charging the customer they've lost an opportunity for good PR and have made half of HN more wary of dealing with them.
I understand what you're getting at, but just like there is a maturity to being 'in business' there is a maturity in dealing with your customers, and in this case both parties carry part of the blame, so the reasonable thing to do is to find a solution that lies in the middle.
Even the pros mess up occasionally, and in this case it was pretty clear that it was a mistake.
The real lesson here is that Heroku should implement a notification system when a customer has excess unused capacity or a min/max setting for their dynos with automatic increase and decrease depending on the amount of traffic a customer is currently receiving.
As you say, you 'do this all the time', so that means that you know exactly what is in your interest as a business person, and if that means that you occasionally eat a charge that must mean that you know exactly what the value of goodwill is.
Heroku, apparently has not yet learned that lesson, and 'heroku' and 'unexpected large bill due to mistake' are now two concepts that have become strongly linked. It did not need to be that way.
for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
The OP never argued that he has the right to force the cost of his mistake onto Heroku. He's polling a community of business owners to see how they feel it should've been handled.
If I were Heroku management, I would've written the OP something like this:
(Valued Customer)-
I'm so sorry your accident created a nasty end of the month surprise. We understand, but we cannot forgive the whole amount because while they were not servicing requests, we incurred real costs keeping the dynos ready, willing, and able for you.
Since it's your first mistake of this sort, and you've been such a great customer, we're willing to reduce your total amount owed to $x.
We hope this helps, Heroku
----
so yes, I think it's his own damned fault. But I also think it's a missed opportunity to create a happier customer.
How do you judge the PR damage of a customer? Unless they bring up who they are elsewhere on the net (assuming it is not obvious) you simply can't judge such things.
So what do you do; lose money each time this happens? Or take a hard line "we're nice guys and all but, sorry, it's costing us too".
And the happy customer might write about you; but the risk is it sets a precedent. So the next month when another customer screws up they think to try the same tactic - and if you refuse them it's even worse press ("oh, apparently I'm not good enough to be treated that way", "2 tier customer service" etc.).
It's a minefield all round.
How is heroku any different from your or my business? Because they are mildly successful suddenly they are the bad guys and everyone is is good until proven on hn? Double standards really piss me off. The OP needs to take responsibility.
Heroku runs on top of EC2, and they get charged the same amount of money by Amazon whether your instances are idle or on fire.
Is the latter part of that true? (I'm not playing Devil's Advocate, honest!)
I'd assumed the lion share of Heroku's profits were coming from clever arbitrage of EC2 instances rather than markup alone.
For example, if they have 1000 users paying $108 per month for 4 dynos, they don't keep 4000 "dynos worth" of EC2 instances running constantly. Instead they can see the overall load and maintain that lower level of EC2 instances plus some "slack." When traffic increases among apps, the slack can be rapidly configured to pick it up. Heroku would then make not only a markup on EC2 but also profit from the difference between the maximum load and actual load. (Isn't this how cloud scaling systems work anyway, right? Heroku could/might be doing that over thousands of apps for collective benefit.)
Perhaps I'm over-thinking how I'd be trying to squeeze profits out of a Heroku-type system though ;-)
I was under the same impression. If your app has been idle for a long time it takes a few seconds for the first request to complete, which leads me to believe they shut down dynos for idle apps. But it's possible that's only for the free apps.
If they're not doing it that way already then they should definitely hire you at 10% of what you would save them every year ;)
I know a few of the guys at Heroku and I'd be gobsmacked if they weren't doing stuff 100x smarter than I mentioned. With that said.. I hope I'm not wrong and making them feel bad in the process ;-)
I understand Heroku's decision, but I must say, when the opposite happened to me with SendGrid a couple of days ago (I didn't even asked for the refund, they did it on their own initiative), I was extremely positively surprised.
Right... But I've heard nothing about your experience. Likewise, there is a nonzero likelihood that Heroku could give this HNer a $1000 break and get no publicity...
For $1,000 and no publicity that would still be a valuable lesson learned.
What's more interesting is if this happened before and how they dealt with that. What's the cut-off point at which you want to stop your customers from doing serious monetary damage? $1000? Apparently not. $10,000 ? $100,000?
There comes a point where the continued existence of Heroku would be at stake, so it is in their own interest to guard against this, especially when you take in to account the number of users they've got.
They need some guardrails for this, and sooner probably better than later. Terms of service will not protect you if your customer can't pay your insanely large bill.
In that case you'll end up eating the charges anyway, so guardrails are to mutual benefit.
In my opinion, your point is totally orthogonal to the point I was responding to. I agree with your reasoning about Heroku's self-preservation completely.
He already wrote about his positive experience, right here in this thread.
At least Sendgrid didn't gain a negative review on HN and the consumer is still there, paying. That is good for both parties.
You didn't but I can assure you that many of my friends did. Also it was a much smaller break.
Refunding a portion of their profits on the 1K could be seen as money spent on advertising. It sounds like the guy realizes he made a mistake, so he'd probably be happy if he got something back, and think it perfectly fair not to seek to get everything back, so in the end it wouldn't be a great deal of cash, that, long term, they'll probably recoup in the course of a year anyway.
Since he's a good customer, they could even give it to him in the form of credit for their service, which gives him an incentive not to leave.
I'm pretty sure that's not true, but I don't know exactly how Heroku works.
The way I understand it is if no one is making requests to your app they will shut down the dynos, and when you start getting requests they'll spin them back up, up to the number of dynos you're paying for. That's why if your app has been idle for a long time it takes a few seconds for the first request to complete.
This lowers their costs, and presumably the prices for their customers.
I could be wrong though, and perhaps they only turn off dynos for non-paying customers.