GitHub
If we were to list down the tools that were the top contributors to the developer’s productivity in the last decade: GitHub would be at the top of the list. Founded in 2008 as a side project, the idea for GitHub was to provide hosting for your Git repository. Interestingly, GitHub was not the first company to provide the service. If anyone remembers: SourceForge? The demise of SourceForge and the rise of GitHub makes an interesting graph(below). SourceForge has a lot to blame themselves for it, but credit goes to GitHub in capturing the market share.
Google trends for the last 6 years of Github and Sourceforge
What is GitHub?
It provides hosting for your code ( also called: repository) and tracks changes done to it. How it does that? Based on an open-source distributed version control system: Git. There are other version control systems such as Mercurial (Distributed-VCS), Subversion( centralised-VCS), and others.
A key difference between distributed-VCS and central-VCS is that in D-VCS, you create a copy of the entire central file in your local machine. Changes are done to a local copy. But wait? You can’t rely on your local machine to keep your code. You still need a server where you keep track of the changes done to code. GitHub acts that central server.
GitHub’s success:
Other than providing hosting service for your code, a major part of GitHub’s success can be contributed to two factors.
An abstraction of Git
Making coding social.
An abstraction of Git:
Below is the snapshot of the early days of GitHub. They couldn’t have put more direct: Git repository hosting no longer pain in the a**.
GitHub allowed you to perform below actions with convenience as compared to Git.
Take a copy of someone’s code: Fork
Edit and track changes locally: Staging/Commit
Request the original author to add your changes in their codebase: Pull request
Now the original author has an option to add new changes it to their code: Merge
Making Coding Social:
GitHub started with a mission: The best place to build and share code.
The whole idea of developers to put their code in public and other developers contributing to the code triggered the network effect. Nobody wants to reinvent the wheel when someone has already written code for the same.
As a developer, I have an incentive to contribute as my contributions are public. I also have access to the public repository of other developer’s code. This accelerates my own development. It enabled recruiters to start using the GitHub profile for scouting talent based on contributions done to open source. The following features within GitHub helped in the mission of social coding.
Showing Trending top repositories, developers, and programming languages.
Adding contributions to the profile page. It shows your popular repositories and contributions based on stars and most viewed.
Top developers are based on stars received and total numbers of forks, commits, and page reviews.
All these pushed towards further collaboration and community aspect to coding.
Hyper-Growth
Bootstrap till July 2012, the first outside investment of 100M USD for GitHub came from Andreessen Horowitz. Interestingly, Andreessen Horowitz was younger than GitHub at that time and it was one of their biggest investments made till then. The focus for Series A investment was on sales and making GitHub enterprise-ready. They realized that enterprise organizations were not open to put their code outside the infra, hence came the need for enterprise on-prem solution.
When it comes to sales, GitHub at least for a long time didn’t have a commission for sales reps. In the blog in 2012:, PJ Hyett (one of cofounder) mentioned
Traditional sales tool that doesn’t really makes sense for us is paying commissions. Commissions are an incentive to churn and burn through orders as fast as possible, regardless of the consequences. They also introduce massive overhead and logistic problems amongst the salespeople and the company as a whole, so we’re happy to avoid all of that crap…At the end of the day, the key to sales at GitHub is the key to GitHub’s success in general: build an awesome product and treat people well.
It was a radical move at that time when enterprise organizations like Microsoft, HP, IBM grew because of the wine & dine culture of their dominant salesforce.
Business model
GitHub kept hosting open source projects free from the very beginning. This feeds into the network effect we discussed earlier. The profits came from a hosting private repository.
Pricing is a primary indicator of value. So you charge based on what is valued by your customer. GitHub understood that teams derive value by hosting more repositories. For hosting a private repository, charges were based on the per-repository by GitHub until 2016.
Post May-2016, GitHub changed the model from per-repository to per-users. This could have been done for two reasons:
Better Predictability for customers: As a software manager, it’s easier for me to keep track of users than the number of repositories used by my team in GitHub.
Replicating competitor: GitLab and Bitbucket had this model before 2016.
However, acquisition by Microsoft in October-2018 brought about a lot of changes to that as well.
GitHub made even private repository free with a maximum of 3 contributors per project. This was further revised in April-2020, to offer unlimited collaborators.
Now only the advanced features like code owners and Enterprise features were charged. Not to forget about huge slash on pricing from $9 per user per month to $4 per user per month.
This is vastly explained by the strategy of Microsoft to acquire GitHub.
Acquisition by Microsoft :
Microsoft was not into GitHub for its revenue. With approx revenue of 300M USD at the time of the acquisition, they paid 25x multiple for this 7.5B USD acquisition (staggering number by any standards).
If we look back, all the cloud giants have their versions of code hosting products. Google had Google Code which they killed and now have Cloud Source Repositories, Microsoft has VS Code, Amazon has CodeCommit.None of them is as successful as GitHub. So the acquisition of GitHub from one of them was expected.
GitHub is a platform for open-source, hence acquisition has to been seen in good light from open source community. Any effort to bias the neutrality of the platform would compel developers to move to other alternatives. Switching a code to a different platform is not a hard option for developers (It’s not Instagram or Facebook when it comes to network effect). Microsoft knows this and has done a good job of assuaging those fears.
In the 2019 annual report, Microsoft highlighted about GitHub acquisition:
The acquisition is expected to empower developers to achieve more at every stage of the development lifecycle, accelerate enterprise use of GitHub, and bring Microsoft’s developer tools and services to new audiences.
The key part is the last statement. Satya Nadela also mentioned in the last year Q3 earnings call:
…We have always said when we acquired GitHub that we want to be in the developer tools and developer services business as an end not as a means to some end. …One of the data points I love to use is the number of developers in the non-tech sector is now more than in the tech sector. This is software engineers, and that's going to only increase in the world going forward. So we want to build the best toolchain.
Both the above paragraph has to be read in conjunction. At one end, there is this huge new audience of developers that Microsoft wants to tap on, get their services to them. On the other end, they want to be clear to the GitHub community that they would keep the product as neutral, open, and independent as it is was when acquired.
GitHub is like a new lead generation tool for Microsoft. They would like to keep it that way. The idea will be to keep it cloud-agnostic and let developers decide the cloud they would prefer. Hence you see the partnership with Google still developing. But at the same time, they will not miss the opportunity to talk about Azure and other services while talking to new teams using GitHub. In the end, let Azure sell on its own merit.
Road ahead:
After getting acquired by Microsoft, GitHub announced the acquisition of npm (node package manager) in March 2020. npm hosts a repository of various packages ( code/dependencies) that is used by node.js developers. It aligns well with GitHub packages. I won’t be surprised to see more such acquisition coming from GitHub in the coming days that boosts Microsoft's vision to have complete developers’ toolkit independent of language, framework, or cloud.
Please subscribe for more such posts on high growth companies.