Emacs or VIM? Tabs or Spaces? GitHub or Bitbucket?
We recently started a project to understand how development teams build their apps. Our intention is to create a set of best practices and share those with the community.
We found the answers to questions similar to these — and many more that we discovered along the way — to be fascinating.
Over the next several weeks, we’ll be publishing a series of blog posts that share the data we’ve collected and analyzed from a sampling of ~1000 companies using buddybuild.
Here are just a few of the topics that we'll cover... and just a heads up, some of the results might be a bit surprising.
- What percentage of companies develop both for iOS, or for Android? For both?
- What percentage of apps are built using native iOS and Android vs. React Native or other 'cross platform' frameworks?
- Which Dependency Manager for iOS (CocoaPods, Carthage) is most prevalent?
- How many apps actually have tests?
- What's the average team size that build mobile apps?
- While the rate of consumer adoption of new OS versions is discussed often, at what rate do developers actually migrate their apps to support these new platforms / features?
This first blog post aims to provide insight into where and how mobile development teams are storing their source code. We’ll breakout our findings into two categories: cloud hosted and self-hosted source code providers.
As you might expect, GitHub and Bitbucket are the most common cloud hosted source code providers. However, at 52% and 45% respectively, we were surprised to see how close they were to each other.
Understanding why teams choose one provider over another is not something that can be inferred from the data.
For example, it’s commonly believed that many developers are drawn to Bitbucket’s unlimited private repositories for their free pricing plan.
Editorial note: It’s worth considering that Bitbucket adoption could also be driven by the larger Atlassian ecosystem. We tend to find a high correlation of Bitbucket teams who also make use of buddybuild’s built-it JIRA integration. Said another way, some teams might have started by using JIRA as a bug tracker and use Bitbucket because of their affinity to use the same software vendor for their development needs.
Further, GitHub tends to be the most popular choice within the open source community. Presumably this is for historical reasons, but modern (and popular!) iOS apps like Wordpress and Firefox are both open source and use buddybuild for their CI needs.
All that said, there are numerous reasons why development teams choose one provider over the other. The decision could even be based purely on personal preference!
Now, let’s take a look at the data for teams who decide to host their code themselves.
Similarly to cloud hosted solutions, we had anticipated that GitHub Enterprise or Bitbucket Server (previously / also known as Stash Server) would be the most prevalent self-hosted solution for app development teams.
As it turns out, we were wrong.
Of the development teams who host the code themselves, a significant majority have chosen GitLab as their solution of choice.
As a relatively new entrant to the space, GitLab has a strong presence amongst development teams who are looking to host their source code internally.
Cloud Hosted versus Self-Hosted
Buddybuild is used by a wide spectrum of customers that range from individual developers building apps in their spare time and agencies who build apps for their clients, to some of the best-recognized products / brands in the world, including many Fortune 500 companies.
How many of these companies have moved to ‘the cloud’ for their code repository needs?
Editorial Note: For this datapoint specifically, we expanded to a larger sample size.
It turns out, 95% of the teams we sampled are using a cloud based solution.
As we started to socialize this specific data point, many people (ourselves included) expected that large enterprises and their security requirements are those who comprise the self-hosted 5%.
When we analyzed the data, that hasn’t proven to be true. In fact, we have yet to devise a heuristic that accurately predicts if a team uses a cloud versus self-hosted solution.
Some smaller development teams / organizations prefer to self-host their code while large enterprises prefer cloud solutions.
Conclusion and Full Disclosure
The data compiled in this blog post (and forthcoming series) is based on a random sampling of ~1000 development teams who use buddybuild for the apps they create. Please keep in mind that these data points are at a point in time, and will be subject to some biases (e.g.: the data is not representative of the entire mobile developer ecosystem, just from those companies using buddybuild)
Over the next several weeks, we’ll continue to publish additional data in a series of blog posts.
Next in the series, we’ll take a look into Apple OS Platform adoption rates to give you a sense for just how many developers are keeping up with the latest version of Xcode, and what is the minimum iOS version your app should support.