November 10, 2016
Ep. #5, GraphQL At GitHub
In Ep. #5 of JAMstack Radio, Brian and Ryan talk to GitHub Platform Engineering Manager Kyle Daigle about what makes GraphQL such a great qu...
Thank you, guys, all for being here to listen to me. I have been working on this deck for a while. It's likely to go a bit long.
Even so, as I was reviewing it I realized there's lots and lots of stuff that needs to be in there that can't be in there because there just isn't enough time. I'll do my best to go over everything that I possibly can, but I'm more than happy to take as many questions as you guys want afterwards.
If you're actually interested in this stuff, I think the slides are just going to scratch the surface of the overall questions. Hopefully, to have more time to discuss things after that.
A bit of background about me. Most recently I was the CEO at Nitrous. Prior to that, I was at CoreOS for a while as the SVP of sales. Prior to that, I was at GitHub in a sales position. Prior to that, I was in Engine Yard.
At Engine Yard I left in a sales position but actually started as an engineer. That's actually been my career at this point. I'm quickly approaching the half-and-half point. I was a developer for a very long time. I did DevOps. I focused a lot on fixing problems for people.
That got me more into a position to talk to customers and work with them once they were having issues and, more importantly, work with them about how do they actually use different products to do the things that they're wanting to do rather than just fixing bugs.
Fixing bugs is easy enough, but the big question is really, when you're using a product, what do you want to use it for?
What's the actual benefit you're getting out of it, and what's the problem you're trying to solve?
That led me getting into sales, indirectly, where I got much more of an opportunity to talk to people about how they can actually use the product to make their experience better, how they can have better workflow in whatever they're doing.
Most of my experience has been very much on developer tools. A lot of the advice I have here is very specifically targeted towards that. If you're working on a particular consumer application, you're probably not going to be too concerned about enterprise stuff anyway.
Also, if you're working on, let's say, a CRM, for example, some of this stuff is still going to be applicable. Some of it is not, because there's just some inherent differences in how you sell different products because of who you're selling to. We're going to go a lot more into detail about that.
If you've been talking to anybody in the last few years, you've probably heard something along the lines of enterprise sales is the future. When I was at GitHub, we were very fortunate to hit an uptake in enterprise sales for startups, and that got a lot of people talking. And a lot of other companies were doing it at the same time.
It's been a big push since then, but the really important thing to remember is when you hear that statement, you have to keep in mind what you heard versus what people hopefully, actually, meant when they said it. If they knew what they were talking about.
What you probably heard was things like, "Sell to Fortune 500 companies." Those are the enterprises, those are the ones you're selling to. So that's who you want to target. You're going to be having a lot of meetings with CEOs and CTOs of these big corporations.
You need to wear a suit and tie, go to all these different high-stress situations, talk to people and negotiate these huge deals where, if you close one deal, you can go buy a private jet for your 10-person startup. That's the thing you think you hear. That's not actually accurate.
What's a lot more accurate is to focus on the message behind it. A lot of these things are very much the same idea. They're just approached from a different angle. One of the big things to remember is that you're selling to a much smaller audience than you would with an inside-sales approach, for example.
With inside sales, what you're doing is you're selling to as many people as you possibly can.
When you're selling to enterprises, even though there's a lot of enterprises out there, it's still a limited market. You can only have so many enterprises that you can actually sell into, but once you sell into them, there's a huge opportunity for growth within that enterprise.
If you get into an enterprise and you sell them, let's say, a 100-seat license for a product, that 100-seat license can easily grow into 5,000 seats. That's not a new sale. That's just a growth of your existing sale.
The other big thing to keep in mind, and this is like I said at the beginning of the talk, one of those things that I could give a whole talk just on this one topic. You have to remember when you're dealing with selling to enterprises for the first time, because you're going to be so focused on growth, because you're going to be so focused on getting into the company, and then getting more and more people using it, it's really key that you start with really, really aggressive pricing.
I don't mean aggressive in the way that you hear it in marketing materials where it's meant to be like aggressive because it's beneficial to the customer.
You actually want your pricing to be very, very high, because the more people you add, the more discounts they're going to want.
And what you're going to end up with, if you give them your typical consumer pricing, what you're going to end up doing is basically giving away your product once you get past a certain number. No matter how hard you try to plan for what that number is going to be, no matter how hard you try to plan for how many you think you'll be able to sell to, you're almost always going to be way under on that number.
So, you're going to say, "Okay, at most we might be able to get 2,000 people using this." What's going to happen is you're going to have 5,000 people using it, and you're not going to be charging them anything for that, because you will have already given everything away up front.
A big corollary to this is that, unfortunately, I can't have a lot of detail about right now, is that if you have a consumer-oriented version of your product, you almost never want to stick with that same pricing or that same product description for enterprise sales.
At GitHub, this is a great example. So, GitHub Enterprise is a completely separate product sold to enterprises. It costs a hell of a lot more than using GitHub.com. The actual code base is identical. The code base that runs GitHub.com is the exact same code base that's used on GitHub Enterprise, but that's for us to know. That's for us to worry about.
What enterprises know is they're getting a completely separate product. Therefore, because they're getting an enterprise product, it's okay that they're paying quite a bit more for that product than they would fo the consumer version.
That's the thing you have to remember for yourself, is you don't necessarily want to have two products if you can avoid it, because you're going to create a bunch of unwanted engineering work. But you need to have two products, from a pricing perspective, because without that pricing breakdown, you're going to end up in a situation where you're trying to give large companies discounts based on your consumer pricing.
What ends up happening is that once you give them all these discounts, you're not making any money. How do we actually get to selling to enterprises? You're at a startup. You've got your product. You've hopefully got a couple of customers using it, but now you really want to get into enterprises. So how do you actually go from point A to point B?
Getting there is actually half the fun, primarily because the second half sucks. But we'll go into that later.
The very first thing you really need to think about is building out your sales organization.
I'm assuming most people here are in companies that, you know, you're probably between five and 10, 15 people at most, I guess. For most of you, my guess is that when I say "build a sales organization," you're taken aback unless you happen to be a sales guy or sales girl or whatever.
Typically, engineer organizations recoil at the thought of having a sales organization, and for good reason. Sales organizations tend to be things you don't want to deal with, but that's purely a function of how you actually set that organization up and what you have them focused on doing and how they interact with the rest of the company.
It doesn't actually have to be bad. People just always assume that it will be. When you're planning on setting up a sales organization, the things you can keep in mind, number one, is always plan for team growth.
Almost always, you're going to start with one person, and that one person is going to be there for what's going to feel like a very long time, because there's going to be a lot of stuff you're going to need to learn as part of that process. But once you hit that inflection point, once you actually start getting customers coming in, you're not going to be able to bring people on fast enough.
So, if you haven't already had to go through this exercise, in focusing on just hiring for the company in general, keep in mind the amount of time you're going to have to devote to finding people, to interviewing, to recruiting, all that stuff. So that when you get to a point where you have so much work for your salespeople to do, you have so many leads, hopefully, they just can't keep up with them, the last thing you want is to be drowning in leads and customer questions while you're trying to hire more salespeople.
It's good to be ready for that, ahead of time. That's not to say go out and hire 10 salespeople. That's just to say, be ready to hire 10 salespeople if you need to.
The next part, obviously, is identifying the candidates. The first candidate you hire is going to be very different from the 10th candidate you hire, for example. The next step is obviously hiring the actual people and then putting them to work. We're going to go into a lot more detail about what all these individual pieces are.
First, let's talk about planning for your growth. A very common thing that I've run into in all the startups that I've been at, and something that I hear very often when I talk to people who are in startups for the first, second time, whatever: people are always freaked out by this idea that the company is going to change.
I don't know if you guys have been reading the news lately. In the last week, there's been a lot of news about GitHub where people are saying that a bunch of executives are leaving. There's this huge internal upheaval and so on. That may very well be true. I haven't been there in a few years. I don't know exactly what's happening internally, but the big thing to remember is that's not a bad thing.
If your organization is growing, and the dynamics inside are changing, it's going to be bad for some people. Some people are going to be very unhappy about that, but that doesn't mean that it's not the thing that's best for the organization. This is something that I learned very painfully at GitHub, especially at GitHub: so many people were really buying into the idea of how things should be run.
Then, when that started to change, people started to get very uneasy and started to worry about what this meant, and so on, especially, from a sales perspective. When you're dealing with your very first salesperson, or your very first three-to-four salespeople, they're going to be doing essentially a completely different job from the salespeople you're going to have later.
When you have 20, 50, 100, 200 salespeople, at that point they're basically machines. It's like dealing with a support organization at a really big company where, as soon as you send in a question, the very first thing you get back is some sort of canned response.
Everything they ever say to you is a canned response. Like, you never actually get a human response from a customer service agent except for, "Hi, my name is Joe," right? Everything after that is just a canned response. That's what sales will end up becoming once you have, let's say 200, people doing it. But very early on, it's actually going to be much more of a hands-on support operation, because you're still new to the market, your product is new to the market.
People don't really know what it is that's great about you, so your sales organization is not just about knocking on doors or making phone calls or sending out emails.
Your sales organization is about helping these customers succeed once they start using the product, giving them a reason to start using it, and then helping them succeed later.
The big thing to keep in mind always with enterprise sales, and you're going to hear me talk about this repeatedly, and I've already mentioned it a few times, the big win in enterprise sales is the growth that you experience later once you're actually in the organization.
You've probably heard the term "land and expand." It sounds a bit cliche, but it's an extremely effective strategy. It's all about just getting a foothold into a company. I don't mean that in this very aggressive, sales-y way.
It just means you need to have people in the company who use the product and who like it. It's word of mouth, except it's not word of mouth where you're telling your aunt about it. It's word of mouth where you're telling your co-worker who works in a different department about it, and then they can start using it, and then that department starts using it.
Then you have another department start using it and so on. Next thing you know, your revenue stream just starts climbing on its own, which is a fantastic situation to be in.
Once you're actually looking at candidates, what are you going to look for? One of the biggest things to keep in mind is that the person that you hire first really needs to understand, maybe not when they first come in, but very quickly after, that they really need to understand why your product is great.
You've probably heard discussions before about whether a developer evangelist, for example, can be a good salesperson. Absolutely, it's not a given, because sometimes they don't want to focus on the sales aspect of it as well. But you really need somebody who truly believes in the product. For me, this is a big thing that I look at any time I go to a new company where I'm having to evaluate it is, "Do I believe in this? At this point do I have enough experience that I could sell a product that I don't believe in?" Probably, but I don't want to.
I don't want to sell a product that I don't care about. I need to really, really care about it and think that it's really awesome.
When you actually have that, when you find somebody who has that passion, that's actually going to be a huge thing that will help them overcome whatever weak spots they have in their overall sales strategy. You can overcome a lot, especially early on, with just pure passion.
If the person is really passionate about what they're doing and about solving these problems, when they're dealing with early adopters who are typically early adopters because they also want some of that passion, especially when they're at enterprises where passion is not exactly a thing that's used very often to talk about enterprises.
If somebody is at a big enterprise company and wants to do something really cool, they really want to be doing something cool. They don't just want a better solution. They want something that's cool as well. Later on you're going to have people who just want a better solution, and that's once you have, 10, 15, 20, 30 salespeople. But early on it's important to remember that the salespeople are going to be talking to, essentially, fans who are going to be wanting to use the product.
On top of that, obviously, apart from just the product and understanding why the product is good and how it works and all that stuff, is you really want your first salesperson to really, really care about the company's mission. I put this up in the slide. You'll see a few of these sprinkled in there just as general notes for people to keep in mind, especially if you haven't really built out a team before.
I know it sounds very cliche, but if you don't already have a mission statement, go home tonight and write one.
It doesn't have to be good. Just go and write it, and then you can refine it over time. It seems so silly, you know, especially if you ever worked at a big company where you had this big plaque on the wall. It's like this is our mission statement. It seems really silly, but at a small company, it's really, really important, because the experience of writing, it helps you define why you're doing the thing that you're doing.
A lot of times you've probably never said that. You've never thought about it very specifically. You just know why you care, but you've never had to put that into words. Once you can put that into words, and once you can get other people on board, that's really key. The reason that it's key with salespeople is, as I mentioned before, salespeople are, typically, going to be a very different existence inside the company from your typically very engineering-focused organization.
It's very, very important that the salespeople are basically on the same page as the engineers. We're all here for the same reason. The thing that I'm doing happens to be selling the product. The thing that this other person is doing happens to be writing code, but we're all doing it for the exact same reason. We're all on the same team. We're all trying to fix the same problem.
Most importantly, once you find people like this, once you find people who really care about both the product and what you're doing at the company, and what customers can do with the product, what they'll naturally gravitate towards, even if they don't have a lot of sales experience, is going to be closing deals that are going to be very effective. Because they'll be able to identify the customers who should get the most time and the most attention. Because they're going to want to help customers who are most likely to succeed at using the product. These are the deals you really need.
You need to have these effective deals to get that growth later.
If all you managed to do is sell into a bunch of relatively small teams inside of larger organizations, but you never get any growth, now you've essentially completely failed at your enterprise sales strategy.
So you can just pack it up, go home. Or try it all over again, but the big thing to always remember is that it's all about getting that growth later.
As a counterpoint to that, when you're interviewing candidates for early positions, keep in mind that candidates who are focused on sales as the very first thing, rather than their passion for the product and their passion for the company, they will typically close the wrong deals.
When somebody is passionate about the product, they'll close the deals that you want, the deals that are going to grow.
When somebody is just focused on sales, what they're looking for is just that win of, "Yes, I got a customer to sign on." And then six months later, that customer hasn't gone anywhere, they don't really care. They've already moved on to their next win.
Once again, later on that can be okay because you're going to have a separate team to handle customer growth and so on. But early on, you're not going to have that luxury. So it's very, very tricky if you start off with somebody who's just going to be focused on sales and not also focused on helping customers succeed.
I wish I had a great stock-photo banner. I spend so much time looking for the perfect generic business stock photo for this. So, your first hire. You've interviewed a bunch of people. You've talked to a bunch of candidates, and now you're ready to hire your very first salesperson.
The very first thing you're going to have to think about is compensation. How are you actually going to pay this person? If you're an engineering focused company, you're probably giving everybody a salary. And now you're looking at a salesperson, and salespeople, typically, get paid by commission.
Developing a good commission plan, or for that matter, developing a bad commission plan. It doesn't matter. Developing any commission plan is a huge time sink. I've done it a bunch of times. I still hate doing it. It's a huge waste of time. There's times when you need it, but that time is not right now.
A good commission plan can be great for attracting experienced salespeople who are used to doing things the traditional way.
Once again, once you grow enough where you need those sort of people, that can be very helpful, and at that point you'll probably already have somebody who you can hand that task off to so you don't have to deal with it. And they can waste 60 hours of their time developing that comm plan, but early on, you really don't need it because the people you're going to be hiring early on are probably not going to be traditional salespeople. Sometimes they are.
If you get somebody who is more of a traditional salesperson who fits all the other criteria, that can work as well. But if you're hiring that sort of person, they'll probably already know what they want in a comm plan. They can basically write their own comm plan.
The key thing to remember is you really don't want to be doing it, and you probably shouldn't be doing it anyway.
So, how do you actually pay salespeople? It's actually very simple. The exact same way you pay engineers. Salary and equity. Give them a good salary. Give them a fair equity in the company, and ask them to be as involved in the company as the engineers are.
All too often, salespeople are treated as this disposable resource where you expect that you're going to bring somebody in for six months or a year, and they're just going to, you know, work super hard and then burn out. And then they'll be gone, and who cares. You'll hire another one and so on.
Once again, that works at bigger scales. If you're Yelp, that can work just fine. We had a bunch of people who we hired at GitHub who came from Yelp. One of the people actually mentioned that at the time, and this was, mind you, four years ago. So it's probably even crazier at this point.
At one point they were onboarding 60 new salespeople per week at Yelp, and yet their actual head count was barely increasing. So, do the math on how many people were leaving every day. There's a possibility you'll get to that point. I know it sounds terrible. There's some good things to be said for it. I'm not saying you should necessarily do it, but it's so far off, don't even worry about thinking about it right now. Just think about having a good, fair salary for your salespeople.
Have good equity for them, and provide room for bonuses. The bonuses are not going to be a commission bonus. It's not going to be for things like that. It's basically the opportunity to say, "Okay, we wanted to sell to this big customer, and not only did you succeed, you got this big customer to grow 3,000 percent within the first year. That deserves an honorable mention.
So, in exchange for that, you're going to get this bonus. It's not really about the money. It's about the recognition. It's a way of recognizing the salesperson for what they've done. As a general rule, you should think of that bonus amount being less than 10% of their annual salary. More importantly, if you've worked in sales organizations before, typically, any time a salesperson hears this, what they think of is, well, my salary is my salary plus my bonuses.
Don't think of it that way. Your salary is just your salary. That's all you ever talk about. Don't even mention bonuses. Just have bonuses in your back pocket, so you can give them later if you need to.
It can be a very effective tool to recognize people later on, so it's just important to make room in your budget for it. Then going back to a point that you heard me talk about quite a bit before, when you're hiring salespeople early on, it's very, very important that they fit well with your organization.
One of the reasons that's so important is, if the salesperson that you hire is your very first sales hire, the person who is going to define what sales within your company is going to look like if that person doesn't get along well with the engineers in your company, they're not going to get along well with engineers at other companies.
The engineers at other companies are the ones they're selling to. Their job is to sell to the engineers of these other companies, and if those engineers don't like them, and they don't have the sales acumen to be able to overcome those objections you're going to have a very hard time getting any sort of traction. So that's why it's really important to find people who fit with your organization, because chances are, if your developers can get along with your salespeople, the developers at the companies who are going to be using your product are going to be able to get along with your salespeople.
So, now you've hired your very first salesperson. Maybe you've even gotten two or three, if you got lucky, so how do you actually put them to work? What do you have them do now that they're actually in the company?
The three biggest things that your salespeople are going to do, and, by the way, the three biggest things of pretty much any new hire at your company is going to be doing, for the first probably 20 people, is make lots and lots of mistakes, learn from them, and then do it all over again.
That seems counter-intuitive. You want to say, "Well, if there are all these mistakes that we know about, we can learn about them ahead of time so we don't make them ourselves." That's very true in some cases, but in my experience, particularly at startups, the hard-won experience of making a mistake yourself and learning from that mistake teaches you so much more that's going to be so much more valuable later on, that it's well worth doing.
A big side point to that is you also have to instill a culture in the company where mistakes are okay, where failure, essentially, is okay. Where you don't go around handing out blame. You go around discussing, "Well, why didn't this thing work?" and "How could we make it work next time?"
Especially in a sales organization, if you're listening to this talk you're listening to it because you probably don't have all the answers. I don't have all the answers, either. I just have, hopefully, a few more.
But to get all these answers, you really need your salespeople to be going out, having these conversations, making these mistakes and learning from them, so that when you start hiring more salespeople, they're not hearing somebody else preach something that they heard from somebody else, who heard it from somebody else, who heard it from somebody else, and they just dismiss it.
When you're learning something from somebody who has actually had this experience, it's much more effective. People are much more likely to believe it, which can be really, really important for growing out that core of your team. The first five or 10 sales hires you have are going to be really critical, because they're really going to define what the overall sales culture is going to be like and what the overall level of understanding, level of compassion, towards the customers is going to be in the long term.
Having people make these mistakes themselves is a really important thing to allow to happen.
Now, obviously there's more to it than that. What are they going to be working on that's going to give them the opportunity to make these mistakes? Again, focus on closing as many small deals as possible. The big deals will come later. We'll be talking about that later, as well as about what big deals look like, but focus on getting small deals closed.
They're going to be small deals with large companies. You're going to have a Fortune 500 company, but if all they want is 10 seats for this one team, that's perfectly fine. One of the first sales that I had to Apple was for a team of, I think, five people. This was at GitHub, we had to basically realign how we did our package pricing to make it possible for them to actually get this up front, but once you get your foot in the door and once you get that established, now it's much easier to get other people using it.
Apple, by the way, is not a great example. It's a very siloed organization, so getting growth at Apple can be pretty tricky. But for most other companies it will be much easier.
Once you've sold all these small deals, you want to work with every single customer that you've sold to to make sure that they're successful.
You've heard me harp on about this for pretty much the entire talk so far, and you're going to hear it a lot more as time goes on. It's really, really critically important that you set yourself up for an opportunity to have this growth within enterprises. If you don't experience that growth, it just isn't going to work.
It's virtually impossible as a startup to come in from the top and make up for it with these really big deals. You have to have a good solid foundation of small deals, that have grown over time, to be able to refer to with new customers that you get later, who might want a bigger deal.
If you have somebody coming in who wants to drop 500 grand a year, they're going to want references. They're going to want some idea that this will actually work. Chances are you haven't sold one of those before, but chances are pretty good that you have a couple of customers who started at 10 grand a year and have worked their way up to 100, 200, 500 a year, and now you can actually use those people as references.
So it's really, really important to get that nailed. The other big thing to keep in mind is, going back to making mistakes and learning from them, you really, really want to make sure that you have a repeatable process for letting customers succeed.
With these first set of customers that you're getting, you want pretty much a 100% success rate.
You want every customer who comes in the door to have a good experience and start growing. They don't have to grow at astronomical numbers, but at the very least you want them to start with 40 units, whatever your method of measuring out your product is. Have them start at 40 units. If they grow to 45, that's fine.
As long as you can establish a clear pattern of growth, that's the real key thing.
The reason that you've heard me harp on about this, and the reason it's so important, is because this way of doing deals is very, very efficient. We've already said that you don't want to have this huge sales organization. If you have a 10-person company, you don't want to double the size of your company with 10 more salespeople. You ideally want to have 10 engineers, and one salesperson. In order to make that possible, you have to be very efficient at how you're doing things. This allows you to be very efficient.
As a very, very ballpark number, this is obviously very different across industries, and so on, but as a general rule, a good inside sales organization doing cold calling, and so on, once they do all their phone calls, once they do all their emails, they can get roughly 10% success rate with all their contacts to get them signed up. Typically, they'll be signed up for a free trial, not even a paid thing, but they'll at least be signed up.
10% of the people you talk to will end up going with the product. The problem is the vast majority of those people are going to drop off. The reason they signed up was because your salesperson was very nice on the phone, but then they're not really going to care about the product. They're not really going to have any growth that they experience with it internally, so they're just going to stop using it.
Conversely, an enterprise sales organization is pretty much the exact opposite. A good enterprise sales team, even if it's just one person, can easily get a 90% success rate. Now, this is different because obviously it's a very limited set of customers. They don't have huge call lists because there's only so many enterprises out there, and they're going to spend a lot more time with them. But the customers they talk to they're going to have very good luck with actually closing that deal early on.
Once they close that deal, they will hopefully do it in such a way that the customer is going to be very, very, very likely to stick around in the long term. If they stick around for a while, that gives you the opportunity to have them grow to get you to a point where you really want to get to. Starting out on the enterprise side of things, you always want to focus on small deals.
The very last point I have here is a good rule of thumb to keep in mind. You want to have a large number of small deals and a small number of large deals. That small number of large deals can be zero. That's perfectly fine.
The big thing to remember is that you want to focus on having a lot more small deals than large deals.
What's the difference between a large deal and a small deal? When you have a small deal, even at a large company, you're going to have a lot fewer stakeholders involved in that negotiation, and you're going to have a lot less legal back and forth.
If you have a small deal, it's perfectly possible that your agreement gets sent over there. They either have no changes or they have a couple minor changes. You get it signed off, and you're done. That's all you have to worry about. Your salesperson can move onto the next thing, and that customer can, hopefully, start using the product having good experience with it.
When you're dealing with small deals, you're dealing with small teams. Now, you'd think that you want really big sales, but you really don't when you're a small company and you're just figuring out how you're going to grow. While I'm sure we'd all love to be able to close a deal for 10,000 users, you're probably not ready to support 10,000 users all at once.
It's actually much better for you and much better for them if you start off small. Start off with 10 users or 100 users and then grow from there. The important thing is to always keep an eye on growth, but don't worry about starting big.
Now, this is one of my favorite stories. If you haven't dealt with large companies, and you haven't deal with how procurement is done at large companies, you'll hopefully get a chuckle out of this. A lot of companies have approval thresholds.
There's a number that is written in a policy somewhere that says if you want to spend more than this amount of money, you have to get approval.That number is typically either $1,000 or $5,000. It depends on the company. It depends on the person's position within the company, and so on. If at all possible, you want to come in under that threshold because what that means, for you, is you're talking, let's say to a manager of an engineering team, and they want to use your tool.
Your tool costs $1,000 a month, and their budget is $1,000, meaning it has to be below that. Don't even think twice about it. Just sell it to them for $999, but the key is you're actually giving them a discount. You're not changing the price of the product. You're giving them a discount even though it's just $1.
We used to do this at GitHub all the time because we had set pricing. At CoreOS, pricing was actually developed for each individual customer. But at GitHub with GitHub Enterprise, it was sold in packs of 20, and those packs were 5,000 bucks each. So, at the organizations where they had a $5,000 threshold, we would very commonly give people a $1 discount just to make it so that they don't have to go to their procurement people, and go through that entire process.
An important side note to this: the people that you're talking to may know that this rule exists, but may not even think to ask for the discount because they're engineers.
They're not here to negotiate with you. They're just here to work with you. As part of the conversation that you're having with them, find out what that threshold is for them and find out if there's a way that you can get in under it, because it will make it so much easier to get yourself established in the company if you don't have to go through all these additional checks and balances.
Then finally, the biggest thing to remember with large enterprise deals is that the vast majority of large enterprise deals are going to be small deals that worked out really well and then became large deals. That's what you want. You don't want to have big deals to start. You don't want to have these massive deals happening one at a time every nine months. You want to have a bunch of small deals coming in, and then you want all those small deals over the next nine months to become large deals.
This point is something that I learned at great personal struggle and at great expense. GitHub in particular was where it first became an issue. It ended up costing us a lot of time and a lot of money, so this is one of those things where, hopefully, at least this one point take my word for it and don't make this mistake yourself. This is one of those you can skip rather than making the mistakes yourself.
Remember that the deal size, or the dollar amount of the deal is going to be relative to the size of the company. So, just because you're dealing with a publicly traded company doesn't mean that they're a large company. There are publicly traded companies with annual revenues of $5 million.
When you have companies of that size, they are set up like a corporation. They have a legal team. They have a procurement team. They have all the headaches that you're going to have at any other organization, and yet, what they're going to be doing is buying a product for a very small amount of money, for a very small number of developers, with very little potential for growth.
You can get sucked into this scenario where you're spending so much time with their legal, with their procurement, going back and forth and back and forth, and it's just not worth it. Focus your time on the big companies. If you're dealing with a company with 100,000 employees, even working with just a standard, mid-level manager, it can typically go very, very quickly for a much bigger dollar amount because they're high up enough in the organization, and the dollar amount from a corporate viewpoint is small enough that they don't need to have all this extra headache.
Whereas small corporations, they're still corporations. They still have all the overhead, but they don't have the same cash reserves. So they're going to be much more stingy about their money, and they're going to put you through a bunch more work to get that sale done. You heard before, the land-and-expand strategy. The expand is really the key here.
You're never going to have enough customers. No matter how big you grow it's never going to be enough.
You're always going to want to grow bigger, but you want to get to that point starting at a small level and growing. How is this actually going to work? You've got all these small deals out there, and you want them to grow, and they're starting to grow. What's actually going to happen during that transition period?
Some subset of the deals that you closed previously will just grow on their own, will start getting more people. You'll just randomly get an order form. I can't count the number of times when we've just gotten a check in the mail. Literally, just a check in the mail, that's it. You get the check and you look at the customer name and you're like, "Okay, well, we know they're a customer, and they just sent us 20 grand. I have no idea why."
You want to know why, so you reach out to them. And they're like, "Oh yeah. We needed to add another 50 people."
"Oh, fantastic. Okay, here. Let me just write out a form for you, send it to you. We'll get the check cashed." That's what you want, and that is going to happen. But sadly it's never going to happen as much as you'd like. It's going to be a small subset of the overall population.
The majority of your companies that you've sold to, what's going to end up happening is once they get to a certain point, once they've spent enough money and once they have enough people using it internally, now the procurement people are going to get wind of this. And they're going to get brought in to basically fix the deal, to do it the way they would have done it had they done it up front. But they didn't get to do it that way, because you were selling directly to the engineering managers or just an individual engineer or whatever the case may be.
So, they're going to come in, and they're going to try to basically put all these additional restrictions on you. They're going to ask for a bunch of stuff. They're going to want lower pricing. They're going to want to renegotiate the contract. It's going to be a hassle. It's going to be a pain.
You're going to start to really hate procurement people, trust me on that, but the key here is, because you're already entrenched, because you've already done the "land" part before the "expand," you already have the corporation using this product. You have a number of people in the company who rely on using this product every day.
Once you have that sort of setup, no matter how pushy the procurement people are, no matter how much they want that discount, no matter how much they threaten you, there's not a single procurement person that I've ever run into at any big company who has the authority to overrule the entire engineering department, and tell them that they can't use the tool that they've been using for the last six months, because Bob in procurement couldn't get the discount that he wanted. It just doesn't happen. Take advantage of that leverage. You're going to lose it over time.
Once you start getting bigger deals up front, you're going to lose a lot of that leverage. So take advantage of it while you can.
Set yourself up for a position where you have the opportunity to have that leverage. Two big points that I really cannot stress enough. At this point, when you've gotten to a point where your small deals are growing into large deals, procurement people are getting involved. Legal is getting involved. If you haven't already sent your sales team to negotiation training, do it now or do it yesterday or do it a month ago. But don't wait. Just go out and do it.
There are a bunch of companies out there that specialize in this. A lot of them, especially if you look at their websites, they seem really, really cheesy. I've never seen a bad one. Regardless of the skills they teach, the most useful part of the experience is that, typically, there's a lot of practice.
So what you're basically going to be paying for is for a salesperson to go and practice negotiating all day, everyday, for four days. It's not a big deal to lose a salesperson for a week to get them to a point where they can be much more effective dealing with purchasing people.
Then, from the other side of the equation, if you don't already have a good contract lawyer, get one immediately. If you have a corporate counsel, that is not a contract lawyer. They shouldn't be doing the same thing, even if they can do it, even it they're good at it.
First, they're going to cost you too much. Second, you're going to run into a situation where they have to decide between doing the papers that the board needs done and doing the papers that this customer is waiting on. That's not a situation you want to end up in.
You can just find a good lawyer who understands startups, who understands technology. They are out there, especially in San Francisco. Find a good lawyer that you like working with and just bring them on. And they're going to be the lawyer that is just used for sales stuff. If you don't already have that relationship, set it up.
The great thing with lawyers, they typically work on retainers. So you can get somebody very cheap. You don't have to throw a bunch of money at them, and you're not going to lose a bunch of money. You can bring somebody in and just have them ready to work, but without billing you an arm and a leg when you're not necessarily using them. So definitely keep that in mind as part of your planning.
Once you go to have these conversations with the procurement people, and as you can see on the green part there, I obviously don't really like procurement people, having dealt with them for a long time. The type of things they're going to ask for are going to be surprisingly consistent. The type of things that big companies want, and the type of tactics that their procurement people are going to use, are going to be very, very similar.
Some of these are going to be real things, and some of these are just going to be negotiating points.
We'll try to rundown them and get you a general idea of what to expect.
Probably the number one thing is, if you don't already, provide 24/7 support, which I'm willing to bet you don't. They're going to want that. The good news is you don't have to give it to them. You have to promise it to them. Realistically, if you're going to sell to enterprises, you're going to have to get it to them at some point, or charge them for it. But you're at least going to have to make it available.
If you don't have it on day one, that's fine. Just be aware they're going to bring that up, and they're really going to push on it. Give them the best support you can without overburdening your support team, and have them go with that. Just promise them that as your support capabilities increase, they'll be the first to get that.
So, you can explain to them, "Hey, we have two support people that can't be on call 24/7. The best we can do is give you business-hours support Monday through Friday. But we're working right now to hire more people in different time zones. As soon as those people are available, this is immediately going to be available to our large customers to have expanded support hours."
The very next thing after that, is you're going to get a lot of legal stuff. One of the things that surprised me the most when I first got into sales was I thought that sales would be all about shaking hands and meeting people and making phone calls and so on. I would say depending on the week, somewhere between 40% and 65% of my time is spent reviewing contracts. There's so much legal back and forth that you're going to go through, that it's ridiculous.
You have to be prepared for that, or the salespeople you hire have to be prepared for that. You have to have a good lawyer to work with. You just have to accept the fact that's a price of doing business with the enterprise.
Now, what's going to happen is once you start having these conversations, you're going to start hearing the same sort of issues on a regular basis. A lot of those are things that are real, genuine concerns for large corporations that we just never think about. They have all sorts of SCCE rules that they have to abide by, and so on, that we just never even consider.
They're going to ask for all these what seem like arbitrary changes in the contract. A good lawyer will know that these are changes that they need, and they'll tell you that. But you're also going to have them bring back a bunch of changes that they don't even want or need. The reason they're putting them there is just as negotiating capital.
If you send them a contract, and they make a bunch of changes to it, and they send it back, they are expecting that you're going to push back on half of those changes. But as part of you pushing back on the changes which, as a reminder, you don't put them in the first place. They're the ones who put them in the first place, but even so, they change the contract.
And now when you say, "Well, we don't want to make this change," they'll be like, "Oh, okay, we understand. But in return, can you make this other change here?" You look at it, and you're like, "Well, wait a second. I never wanted to make this change in the first place. You pushed this change on me, and then when I said no, now you want something else in exchange for the thing I didn't want to give you in the first place," right?
That's how negotiation works. That's going to happen, but just be prepared for seeing those kinds of things. You're going to have all these BS requirements that are going to show up. Don't get too stressed out about them. Just recognize that the reason they're there is to give them leverage as part of the negotiation.
If you're careful, sometimes you can actually defuse those. It's possible to basically eliminate some of those changes without giving anything up for them, but that's well outside of the scope of this particular talk.
Another big one is going to be some sort of restrictions on pricing. At the very least, they're going to want some guarantees the pricing isn't going to change. Most large companies, they're really going to be focused on trying to lock you in to a maximum price that isn't going to change for years and years and years. This is a very delicate point, because the outcome very much affects how your company is going to grow over time.
But whether or not it happens is also affected by how your company does business and what your product actually is. I can't give you a one-answer-works for everyone approach here, but as a general rule, you want to really stay away from this. As a general rule, you really want to push back on any sort of caps on pricing and on any sort of unlimited pricing. Because I've said this before; it's worth repeating:
No matter how big you think a deal can possibly get, it can always get bigger than you ever anticipate.
So when you figure out this unlimited pricing, based on the biggest deal you could possibly imagine, when that deal ends up being three times that size, you're now throwing away 60% of the money that you could have been getting.
It's a very bad idea to get into that up front. If you have never heard of this before, hopefully you never will, but a big thing that corporations have been asking for, it's not as bad anymore, is code escrow.
What they basically want is a copy of your source code that is held by an escrow company in the eventuality that you go out of business, because big corporations are always concerned that they're going to buy a product, and they're going to rely on it, and then you're going to go out of business, and they're going to be SOL.
If you're dealing with a subscription business, and if you haven't noticed already, pretty much everything I said here already assumes that we're dealing with subscriptions. I can't really foresee any modern startup business, any modern tech focus business not doing subscriptions.
If you're not doing that, talk to me afterwards and explain to me why you're not doing it. I probably won't believe it, but, you know, we can talk about it.
But if you're dealing on a subscription basis, there's no reason to use code escrow, because the subscription is for a certain period of time.
After that subscription is up, whether it's up because they didn't renew or because you didn't let them renew is irrelevant. Either way, they don't need your code. You're only selling them your product for a set period of time. After that time, if it's no longer available, too bad. That's just the nature of buying a subscription model versus buying up front.
Then the final thing to watch out for, especially if you're a founder or a very early engineer, when really important customers come in and they say, "We have these changes that we'd really like to make. We love your product. We want to use it, but we just need you to change this one thing."
In the vast majority of cases, you really, really don't want to do that. Every once in a while the thing they're going to be asking for is something that you've already wanted to do, something you've already planned to do, and in that case, you can use it your advantage.
You already have this thing on your product road map. They come in and say, "Hey, we really want this feature." You say, "Hey, great, give us 50 grand up front, and we'll guarantee to have this feature out in three months." Never mind the fact that we were actually working on it, we just didn't tell you that. But in the majority of cases, the things they're going to ask for are things that are going to really, really screw up the overall experience of using the product and create such a nightmare for you later on.
If you haven't already learned this lesson, just talk to anybody who's ever tried to do a consulting business. Doing work for other people is not scaleable. You can't grow your company on just doing customizations for people. That's not a valid business strategy.
You need to have a product, and you need to set the vision for that product. And you need to set the parameters for that product. And you need to sell that product as is. If people want extensive changes, in most cases, don't go down that road. Don't even entertain the idea, because it's going to cause so many headaches that it's really not worth it.
That's all I have. I think I've already gone quite a bit over time, but hopefully not too long. I'm happy to answer any questions you guys have.
How am I drawing the line between enterprise and inside sales? That line ends up being pretty blurry at startups because, traditionally, inside sales was essentially people who sat on phones all day, and outside sales was people who lived all over the country and knocked on doors. You don't really do that anymore.
What you do nowadays is you just email customers or maybe you call them. For me the big distinction between inside sales and "outside" sales or account managers is the difference in volume. Inside sales is all about going through a huge list of leads and just seeing who bites. Whereas having somebody whose focused in more of an account manager role, what they're going to be doing is working with a much smaller number but spending a lot more time on them.
They're basically going after your high-value targets within the developer-tool space, or in general, engineering tools. If you're building technology tools for organizations to use, you're almost certainly not going to want to use inside sales, because the spray-and-pray approach doesn't really work there.
You can't just call every single engineer to every single corporation to see if they bite. You can do that for, like, grocery delivery or something, but you can't do it for something that's going to cost $100,000.
That's my big distinction, I guess, is figuring out what your target market is. It's a matter of contacting a lot of people and spending very little time with them, or contacting a few people and spending a lot of time with them.
The question was, "Can you tell us your secret of the 90% success rate in enterprise sales?" It's actually very much like the previous question.
It's all a matter of how much time you spend and how careful you pick your leads. If you're reaching out to enterprise customers just by doing a dump of LinkedIn and finding every single person that works at a company and trying to call every single one of them, well, of course you're not going to have a 90% success rate.
But if your target is just that company, and your approach is to contact 100 different people inside the company until you get one of them to talk to you, once you get one of them to talk to you.
A big assumption in my talk here that I didn't go over is I'm assuming, ahead of time, that your product is good. If your product is crap, that's a whole separate talk in terms of how to make it better for people, and so on. But if your product is actually good, it's not going to be hard to get an engineer to want to use it, because engineers of large companies don't get to use a lot of good tools.
They get to use a lot of really, really terrible tools that they hate, so any improvement you can give them they're going to be completely interested in. Really, it's just a matter of focusing on your wins, on whether or not you got the organization, not focusing your wins on whether or not every single phone call paid off.
The question is, "How technical does your salesperson need to be?" If I got this right, you said both for the first hire and the hundredth hire.
Your first hire, assuming that you're dealing with a very technical product, needs to be pretty darn technical. I always run the risk of pissing off salespeople when I say this, but given that I went from being an engineer to a salesperson, I honestly believe that it's much easier for an engineer to pick up sales skills than it is for a salesperson to pick up technical skills.
Technical skills are very, very complicated, and unless you've spent years on at least thinking about the problems, it's going to be really hard to deal with it. For your very first hire, you really want somebody with technical skills.
Once you grow your team, once you have 100 people, you can easily have sales engineers who take care of the technical stuff, and the actual salespeople are just focused on sales. Your 100th hire, really not a big deal.
Your first hire, if your product is very technical, I would say probably your number one criteria is going to be whether or not that person is technical enough to at least understand the product.
They don't need to be able to write changes to it. If they can, that's even better, but at the very least they should be able to understand most of the details of how it actually works, because those are the conversations they're going to be having early on.
It's usually not time-period specific, so at big companies, when they have these thresholds, it's basically a matter of, okay, you want to charge something on a credit card, what number is it?
It doesn't matter if you're going to charge that everyday or if you're going to charge it once a year. Believe it or not, I mean, it sounds crazy. If you have a budget of $5,000, once you use that you don't get anymore, but that's not what these rules are actually meant to do.
These rules are basically like petty cash rules. They basically say that if you're spending less than this amount of money on a credit card or a single purchase or whatever, you don't need to get approval. If that's monthly, if that's yearly for you, it doesn't really matter.
I think it's just the difference in approach. I think his approach is very valid for what I would consider to not be enterprise sales. What he does is essentially consumer sales. There's a great talk that I gave previously, talking about the difference between selling through sales channels and selling through marketing channels.
In my view, sales is not really a funnel. Sales is a hose. Marketing is the funnel. Marketing is what gets you that broad reach and gets people into the funnel. Sales is just a hose. You can't really do much to expand it on either end.
Sales is inherently inefficient. You constantly have to throw more people at the problem to get more sales. If that's the only way your business can make money, you're going to have a really hard time. You need to be able to make money off people who just hear about the product independently, who come in and sign up and give you money and never talk to anybody.
I think that's the big difference between Jason's approach and mine. When you look at it that way, you're not selling to everybody. You're just selling to the people you need to spend a lot of time on.
What you're really dealing with is much more of a customer success sort of setup than a traditional sales set up. Of course, the previous slide, to reiterate that, again, traditional salespeople are very motivated by commissions. In my experience as a tech company, you don't want traditional salespeople, early on. Thank you, guys.