Yesterday, in a fit of frustration, I tweeted this:
I was just venting, and quickly moved on with my day. But then, a few hours later, I was shocked to go back to Twitter and see the thing had been liked and retweeted a dozen times. I’m a pretty smalltime Twitter personality, so that’s a significant number. It was enough to capture my ongoing attention and now, the next day at about 11pm, the tweet has been re-tweeted 2,300 times. I don’t know how to emphasize this enough: I’m not a big Twitter personality. If I get one retweet, the dopamine pathways in my brain light up like Christmas trees. So, clearly, 2,300 meant I’d struck a nerve and this subject deserved a more nuanced reflection.
So, here’s that more nuanced reflection.
My Employer
First, let me just say for the record that my original tweet wasn’t meant to be read as pertaining to anything specific happening at my current employer. It’s not hard to figure out where I work by Googling me, and once you’ve done that exercise you’ll discover that I’m a low-ish-medium-high-ish level engineering director at a big, recognizable, reputable software company. And, yes, they are reputable. And, no, they don’t fraudulently sell vaporware to noobs and then abscond with the money stashed in offshore bank accounts. The company is full of good, hardworking people who want to do the right thing by their teammates and their customers. In fact, I’d consider my current company to be above average in this department. No, really. So, while reading this, please keep two things in mind. One is that I said “my 20 year career” quite deliberately. That means, I’m speaking from the cumulative experience and scars I have working at (or with) literally dozens of companies. Second is I may have been being hyperbolic when I said “doesn’t exist.” As any grownups in the room would be quick to point out to me, there’s a lot of nuance around what exists and what doesn’t exist in the world of software. So let’s go there now.
Defining “Doesn’t Exist”
The most jaded in the crowd were quick to say that sales guys will cynically sell complete vaporware that they know damn well doesn’t exist at all, even a little bit just to make a sale. I wish I could say this never happens, but, sadly, it does. It does quite a bit. But, when I’ve seen this happen in the wild, it’s almost always the CEO or the founder of the company doing it and it’s almost always an early stage company whose survival depends on the next sale. I don’t consider it an ethical practice and I don’t consider it even an effective business practice (I’ve seen more than one company go completely out of business for this exact reason) but I do acknowledge that, as the head of the company, it’s that person’s call if they want to bet the farm like that or not. In any case, I think the “complete vaporware” case is actually the least common case. Let’s explore more common cases, instead.
I’ll dub the most common case the “overly optimistic hallway conversation” case. In this case, a sales person is this close to closing a deal and they know if they could just claim to solve one or two more pain points for their client they’ll be securely over the line. So they look at what the client has talked about during the sales cycle, and they look at the capabilities of the product they sell and they start to see similarities there, if only you hold your head at juuuuust the right angle and apply juuuust a little creativity and thinking outside the box. All of a sudden, in their mind, Feature A can solve Problem B for the client. So they rush to their favorite developer or product person or the like and ask them “hey, could someone solve Problem B with Feature A?” And the answer they get back was probably some variety of “hmm, yeah I suppose you could if you blah blah blah blah blah blah expensive and time consuming modification blah blah blah if the schedule allows blah blah blah talk to Joe to confirm that part,” but, basically, they stopped listening after “I suppose you could” and failed to retain all the rest.
I’ll dub the second most common case the “didn’t say it couldn’t do it” case. This is where the client themselves starts to see functionality that isn’t there, kind of similar to the “overly optimistic hallway conversation” case, but from the client’s point of view. I think any moderately-intelligent sales person knows damn well the client is doing this, but, to avoid upsetting the deal, they just go right on ahead and let the client think the product does that, assuming it will all work out in the end after the contract settles.
I’ll dub the last case the “easy, but only if we’re not working on anything else” case. In this case, the product could be modified to do what the client wants without too much difficulty. Not a problem, right? Well, in the world where the engineering organization is sitting around just waiting for things to do, then it really isn’t a problem. But, in reality, getting engineering time is a zero-sum game. So doing even this small modification means bumping off something else, often at the last minute and certainly at the expense of some other client/sales person/product person.
One can imagine many more incarnations of “doesn’t exist” like “poorly trained sales force” or “too junior to know better” or “was mislead by product or marketing teams” or “ambitious, detached, and/or optimistic senior engineering manager ok’d it” or “absolute expert in product could configure it, but mere mortals don’t stand a chance to get it right” or even “works fine at a certain scale, but totally falls apart at one order of magnitude larger” or “could be done, but creates an unacceptable ongoing operational cost”. So, for the sake of simplicity, please read everything I described above in place of anywhere I say “doesn’t exist.” All of this is to say that most sales people aren’t completely evil, they’re just humans with aggressive goals to meet and families to feed like anyone else and they’re just doing what they’re paid to do: solve problems creatively for the company’s clients. In fact, let’s talk for a moment about sales people…
Sales People
You can’t really find two tribes of people who are more different from each other than developers vs sales people. So, I suppose I shouldn’t have been surprised by the vitriol I saw directed at sales people as a whole. But, really, I was surprised. And I don’t think most of it is merited. I love sales people. One of my best friends is a software sales person. I’ve found most people I run into in sales to be intelligent, engaging, energetic, optimistic, gets-things-done kinds of people. So I’m not knocking sales people, as a class. What I am knocking is two things: 1) the system of incentives that creates the moral hazard that attracts people to sell things that don’t exist, and 2) the handful of individuals (and it really only takes one) who push this system too far. This is what needs to be held accountable. Not just for the sake of engineers, but also for the preponderance of good sales people who suffer because they won’t cheat in this prisoner’s dilemma problem to make their quota. Because sales people really do have to work their ass off to move the company forward, just as much as engineers do. Which brings me to…
Making Revenue and the Contribution of the Sales Team
I got several tweets like “without sales you wouldn’t have paychecks” or “you’ve never been in the hot seat so you don’t know what it takes to sell.” Let me address those one at a time.
First, the easy one: “without sales, you wouldn’t have paychecks”. Ok, well, without engineering, you wouldn’t have a product to sell. And without marketing, nobody would know who the company was when you cold called (because without marketing, cold calling is all you’d be doing) and the prospect would just tell you to fuck off. And without customer service, many of the customers you sign wouldn’t stick around long enough to pay back their ROI. A company is a team, plain and simple. Just because sales is the only team that gets paid a commission doesn’t mean they’re the ones solely, or even largely, responsible for the revenue.
Next, the one that really pisses me off: “you’ve never been in the hot seat so you don’t know what it takes to sell”. Let me start with me, personally. For five years, I ran a pretty successful company that I bootstrapped from nothing and grew to employing seven people with zero outside funding. No, that’s not Facebook, but it’s definitely more than enough to call bullshit on anyone who’s addressing that statement to me, personally. If you’re addressing that to engineers, as a class, then, sure, most of them probably haven’t had to sell. Also, you’ve never been dragged away from your daughter’s birthday or from Thanksgiving dinner or woken up at 3am to fix a flaming pile of software you’re on call for. Yes, all of those things have happened to me. And they’ve also happened to most of the engineers I know. And do you think those engineers cut corners on fixes or ignore their phones just because it’s too hard? I can tell you, definitively, they do not. At least not the ones who stay employed, especially if they work for me. So, let’s just say the “you don’t know what it’s likes” should all cancel each other out on both sides.
Which then leaves the question: is sales so hard that it’s ok to do unethical things and screw your customers just to avoid missing your quota? When I express it that way, I dare you to say “yes”. You wouldn’t. Especially not in front of your CEO. But, even a moral compass isn’t necessary to see the flaw in this argument. Let’s just take it on its surface and ask ourselves the Machiavellian question: is the expected lifetime value of customers you lie to and then inevitably disappoint higher than that of customers you never disappoint but occasionally lose a sale to? No, it is not. I’ve lost sales because I wouldn’t promise the impossible and my competition would. Guess what usually happens? Those customers come back, six months later, after my competition has completely let them down. Sometimes after the internal sponsor at that company has been fired.
So Why Do We End Up Here?
Clearly, from the tweet storm I created, this happens a lot in spite of it being a Bad Thing. So, why? I think it’s a mixture of a testosterone-driven culture, misaligned incentives, and lack of visibility.
To gratuitously throw around some stereotypes, sales culture tends to be a set-the-bar-high-and-you’ll-get-results, sports-metaphor-inspired, go-big-or-go-home kind of culture. Good sales people are competitive to their core. They hate losing. And they are doggedly persistent. And we want these things because they are all actually critical to success in sales, and being successful in sales is, pretty obviously, one of several prerequisites for staying alive as a company and paying salaries. Engineers tend to find this truth mystifying because many of those same qualities in an engineer are a complete and total disaster. This testosterone culture can be harnessed to do some beautiful things. Where this testosterone culture goes wrong, though, is when it’s directed by the wrong incentives.
And this part is where actual sales people can correct me if I’m getting things wrong. In companies where this is the worst, sales people are compensated based on the contracts they get signed, primarily, and the actual revenue that comes off those contracts over the long term secondarily, if at all. This creates an incentive to get things signed at all costs. And if fulfilling those contracts requires engineering investment, the value of that investment isn’t taken off the top of the commission. So there’s all the incentive in the world to promise things and no incentive not to promise things, at least at the individual sales person level.
VPs and Directors of sales teams, however, have a more holistic incentive. Their compensation tends to be tied a bit more to long term company outcomes which are, quite obviously, tied to long term customer happiness and overall company effectiveness. They, if anyone, should be in the best position to make this situation better. The problem is, how do they tell the difference between someone selling something that isn’t there and engineering simply screwing up or being slow? Yes, engineering screws up at the same rate sales people screw up, which is the same rate that humans in general screw anything up. Basically, these executives can’t tell the difference, because they don’t have the visibility. And they don’t have the visibility partially because we, in engineering, aren’t creating that visibility in a way they can digest. They don’t know if a Bad Thing happened or if they’re just the victims of bad engineering. And, in the absence of better information, why wouldn’t they believe their own team, the people they’re in the trenches with every day, over people they hardly see?
What’s the Cost of Being Here?
Too often, we focus on the client we’re going to lose if we don’t deliver the “doesn’t exist” feature. But what about the other clients and, it should be called out, the other sales people who the company made commitments to in an orderly fashion and put on a roadmap to deliver features to? The sales person who promised a world that doesn’t exist is not just screwing the engineering team who has to deliver the feature, he or she is also screwing their comrades who sold what was actually on the roadmap. And they’re screwing their comrade’s customers. They’re probably even screwing themselves, because some of those screwed customers are going to be their own accounts.
There’s also a cost to developer attrition. Especially in this tight labor market, why would the most talented developers stick around for this kind of treatment? They wouldn’t, that’s the answer. Pretty soon you have a negative self-reinforcement cycle where bad developers stay and good developers leave and, eventually, no company at all to sell for. Think that’s extreme? I’ve seen it, several times, with my own eyes.
Lastly, just like in the classic prisoner’s dilemma, once you’ve rewarded cheating and all the players in the game see it, then every rational actor in the equation should also start cheating. Or, let’s say “swinging big” instead of “cheating” if that’s easier to digest. And once you have everyone promising things that don’t exist, it’s only a matter of time until that same negative reinforcement cycle kicks in and the company circles the drain.
Ok, Tough Guy, How Would You Fix This?
I’ve got two easily-digestible fixes and one hard-to-swallow pill.
The first, easily-digestible fix is to simply stop celebrating this behavior. Did fulfilling a sale require midnight heroics and lots of heat and light to pull over the line? Don’t celebrate it as a victory then. Don’t make it part of your company lore. Don’t stand up in company all hands and sing kudos to the sales people who made it happen. Treat it like the narrowly-missed disaster that it was and just say nothing about it. Instead, celebrate the top sales people who actually sold what your company has. Don’t promote the people who engage in this behavior. And then see how much more of the right kinds of sales you get.
Second, create visibility. This rests squarely in the hands of engineering leadership. We’re not a terribly confrontational bunch. We tend not to like to have uncomfortable conversations. But we’ve got to do it anyway. I’m speaking to myself here, as well as all my peers. Create relationships with your counterparts in product and sales and make sure that, each time this happens, everyone knows exactly what was traded off in order to make the sale happen. Don’t be a dick about it, just convey facts. If you can, trace it all the way to other sales that didn’t happen because the product wasn’t built that would have enabled them. Articulate the cost in terms that make sense to sales people. Don’t just assume your gripes will be understood in a salad of engineering speak. Don’t just complain once. Complain repeatedly and constructively and to the right people. Say it in words that a team player would say, not a disgruntled do-nothing. But do, in fact, say it. And don’t be afraid to make people uncomfortable, including yourself.
Last, and here’s the bitter pill, create a financial incentive to discourage this behavior. If completing a sale requires engineering work to get things done, then take 10% of the sales commission and put it in a bonus pool for engineering that gets paid out at the end of the year. Think that’s unfair? Well, would the sale have happened without the engineering work? No? Then engineering should get a cut because they were basically (and involuntarily) part of your sales team. I call that fair. And, besides, if it really was that valuable of a sale compared to sales you could have made with the products you already had, then you’ll come out ahead still, anyway. And if it wasn’t valuable enough to overcome that 10%, then the sale shouldn’t have been made. Because, at the end of the day, it really did cost the company to make that sale. Maybe it didn’t cost you to make that sale, but it did cost the company. So it’s not good for the company as a whole unless it was a really, really good sale. And, anyway, engineers aren’t monks. Just see how much more cooperative and vigorous those engineers are if they’ve got skin in the game, too.