Last July, the venture capital firm Andreessen Horowitz turned heads when it invested $100 million in GitHub, which the Wall Street Journal dubbed "a little-known social coding startup." In fact it was already well known to coders, more than 1.7 million of whom had accounts with GitHub at the time. According to the GitHub home page, that number has already risen to nearly 2.5 million.
Tom Preston-Werner is co-founder and, as far as I can determine, the CEO of GitHub; the company's DNA does not appear to support a hierarchical management structure. I interviewed Preston-Werner in GitHub's San Francisco offices partly to hear more about the unusual company culture, but mainly for insight into why the cloud-based version control and repository system has such a devoted developer following -- and of course, to learn what a 100-person ubergeek startup planned to do with $100 million in smart money.
[ Find out the topics and issues affecting tech's biggest names and news makers as revealed in the IDGE Insider CEO interview series. | Stay ahead of the key tech business news with InfoWorld's Today's Headlines: First Look newsletter. | Read Bill Snyder's Tech's Bottom Line blog for what the key business trends mean to you. ]
Prior to the investment, GitHub subsisted on charging businesses for GitHub accounts in the usual SaaS style: per account, per month, with the fee dependent on the number of private code repositories. That revenue was augmented last November by GitHub Enterprise, a downloadable version that enables companies to host their own GitHub cloud ($5,000 per 20-seat pack per year). Accounts for open source development, with unlimited collaborators and open repositories, have been free of charge from the beginning.
The interview with Preston-Werner, an edited version of which appears below, began with a few questions about GitHub's origin.
Eric Knorr: When did you see the need for new collaborative development tools that weren't available at the time?
Tom Preston-Werner: At my previous job we were using Subversion, and Git was just starting to become known. Git was invented by Linus Torvalds [to version] the Linux kernel. That's where it started. It started making its way into the Ruby programming community, which was where I come from, so one of my friends introduced it to me and we started using it sort of surreptitiously at work.
The biggest thing Git does for you that's great is easy branching. This is fundamental to what makes GitHub powerful: It's easy to have your project, and then in your own sandbox, local to your own machine, you can create a new branch and work on an experiment. It frees you from the main line of development. In the Subversion world, you're pretty much always developing on the main line, because branching in Subversion is a huge pain in the ass.
Knorr: Why is that?
Preston-Werner: In Subversion, any changes that you make, you commit back to the main line. When you do that, it automatically syncs it up to the server; that is how Subversion works -- which is very dangerous, so everyone's always in fear of breaking the build.
Knorr: What in your experience made you decide easy branching was essential? There's not much out there about you or your background. Your Wikipedia entry has been deleted.
Preston-Werner: Oh, it just got deleted. I know. It's very sad. I'm no longer noteworthy. That's a bummer.
Knorr: It is. So what in your personal background led you to launch GitHub?
Preston-Werner: I come from a development background. I actually went to college for physics but switched to computer science when I realized that physics was just math and I'm not that big of a math fan. Then I dropped out to join a startup after my second year of college. I was in the startup world.
I discovered Git, which allows this really cool style of development with your friends, because you can all branch, you can all work together. It was very elegant, and yet it was still very hard to share that work because there wasn't anywhere online that you could just put your repositories and give other people access to them. That's what we saw as being missing.
Knorr: As a means of distribution, the cloud part of GitHub has obviously been huge. But in terms of the affinity the developers have for the product itself, you think it's probably more the branching and merging functionality?
Preston-Werner: I think the branching and the merging was the killer feature of Git in the beginning, and now GitHub is the killer feature of Git. I say that because people don't work alone anymore. All the easy problems have been solved. What remains are the hard problems, and in order to solve those hard problems we have to work together.
GitHub is about enabling people to work together better on code. That is what we do. That is what GitHub the product is designed to do, and it turns out that Git is an excellent technology upon which to build a collaborative layer, because it has things like branching that allow people to work simultaneously without stepping on each other's toes -- and not having to fear that they're going to lose their work or they're going to break the build for other people.
Back then it was a huge pain in the ass to get your repository back and forth between your friends. It's like -- where would you put it? There weren't any good services; you didn't want to set up your own Linux box. This is the whole SaaS revolution. We provide an easy way for you to just get your work online and decide who you want to share it with.
Knorr: What was the business model when you started?
Preston-Werner: Let's make it free for open source because we love open source and open source contributors don't want to have to pay money. That's kind of the whole point -- it's all free. Let's make the whole service free for open source and charge the people that have money -- that is, companies. So we charge for private code. If you want to do everything in the open, it's totally free. If you want to have your code accessed only by the people that you say and so it's private to your organization, then you pay us money. Enterprise is another level, which is an on-premises product that you purchase from us, install on your own hardware.
Knorr: It's my understanding that you've built quite a successful business.
Preston-Werner: That's correct.
Knorr: So why would you need such a big influx of capital? You have a successful company; you seem to have a company culture that everyone likes.
Preston-Werner: The biggest answer is that github.com and GitHub as a product are just the beginning of what we want to do. Step one is really doubling down on enterprise and pushing forward in enterprise and pushing forward in ways that the enterprise world hasn't seen before. That means the way that we sell it, the sales process. The way that you install it, we built from scratch technology that allows you to upgrade your enterprise installations very easily and we have releases very often, more often than most enterprise companies.
That's critical because we want people in enterprises using essentially the same version of GitHub they're using online. A lot of those enterprise users are also going to be github.com users, and they don't want to be switching back and forth and saying, "Oh, where are all the features? They're missing from my enterprise install and that makes me unhappy." Pushing for enterprise is huge. Also, there is some stuff we're going to be working on in the enterprise space that I can't really talk about, but some of the money will be going there.
Knorr: In this day and age lots of enterprises are subscribing to public cloud services. Why wouldn't you expect them to simply use the public cloud version of GitHub?
Preston-Werner: Well, they will go that direction eventually. But the problem is that this is people's code. People see their code as their most valuable intellectual property. They're still going to be very hesitant to put that outside of their own firewalls due to either their perception of the Internet as a scary place or legal requirements, SOX compliance issues, HIPAA compliance-type things.
Knorr: Obviously you still want it to be remotely accessible and collaborative, so when you install it, you're setting up a separate instance similar to what you're hosting, right?
Preston-Werner: That's exactly right. [The enterprise version] is a whole GitHub just for your company. But within a company you get those same benefits of having a social coding environment. People can see everything that's going on throughout all the projects they can access. You can follow and get updates when things happen to those projects. You can collaborate on the code through pull requests, where you create a branch, you do some development, you issue a pull request to that project -- which is where you can discuss the changes that you've made. Essentially it's a way to discuss what you've changed. That's huge because it allows for code reveal in a really natural way.
Knorr: Up until now your enterprise traction has been more or less organic?
Preston-Werner: We don't do a lot of external marketing. Really github.com is the marketing for GitHub Enterprise. All of the developers who are using github.com for open source or working on something with their friends, now they're working in an enterprise and they're using something terrible and to go their manager and say, "Hey, we need to get GitHub Enterprise."
Knorr: The classic pull model for software as a service. Individuals discover it and they sell it to management. So part of the investment is going to be for selling directly to management?
Preston-Werner: That's part of it -- marketing efforts. Money will be going into marketing efforts to get in touch with the CTOs and CIOs of larger companies just so that they know GitHub exists. When developers come to a manager and say, "Hey, we need GitHub," the managers have seen the marketing and can say, "OK, I know what GitHub is, I know it's legitimate and let's have a discussion about it," instead of saying, "I don't know what GitHub is, get back to work."
Knorr: How do you plan on making that pitch to the enterprise?
Preston-Werner: If we can demonstrate to managers of large companies that we can help them build software more quickly and with greater developer happiness, then they will buy GitHub products. Simple, right?
One of the big reasons that we took the investment from Andreessen Horowitz is its belief in software as the future of the world. You've probably seen Marc Andreessen's article, "Why software is eating the world." That was really big for us. We're a company that allows software to be written more efficiently with greater developer happiness. And they believe that so much, and we believe our side so much, that you look and you say: What if we were to combine our forces, where we're building the software that's going to allow software to eat the world even more voraciously, more quickly, by being able to put more resources into things?
Knorr: I know Andreessen believes software is eating everything. I want to hear more of how you see the future.
Preston-Werner: The future of software?
Preston-Werner: The future of the world?
Knorr: Yeah, right. Because you're talking about laying out what is potentially a huge infrastructure, an accelerator for the software-defined world.
Preston-Werner: The reason that people write software is to make a difference in the world, to change something, hopefully for the better. If we provide tools for people to create software better, faster, and with greater happiness, then we can hasten the arrival of the future, and that is essentially what the "software is eating the world" thing is saying.
Software is infiltrating basically everything that is done. You can point at anything in this room, and I can trace back how technology and software specifically allowed that thing to come into existence. If that's true and we can make it easier to write that software and make the future happen faster, then we've done something really powerful for the world. And people will pay because the future is going to be about who can write the best software first, essentially, to get that business advantage. So companies have a huge incentive to use the best tools. It's like -- are you going to use a power saw or are you going to use a hand saw? Well, if you have a power saw available to you and the pricing is reasonable, then you're going to buy the power saw. We want to be the power saw.
Knorr: The investment was characterized as a partnership. Would you agree with that?
Preston-Werner: Yeah, absolutely.
Knorr: What do the two partners do? It's an unusual sort of partnership, isn't it?
Preston-Werner: We didn't need money. We didn't have to raise money, so automatically you set the stage for it being more of a partnership than early-stage companies that raise money because it's the only way they can exist. What we did was grow the company to a place where we would only take money from an outside investor if they were going to be truly a partner and help us succeed. They want to help us succeed because it's in their best interest. We want to help them succeed because it's in our best interest. We both benefit from that relationship.