Some of our new users on CoinGecko find it hard to understand our Developer metrics. This blog post will hopefully help explain our Developer metrics clearly so you can make better use of the data on our website.
Why bother measuring Developer Activity?
The backbone of any successful coin is the strength of the developer team. Without developers, there will not be any coin. Developers are there to create new features and fix any bugs that can diminish the utility of the coin network.
One of the key characteristics of Bitcoin is that the source code is open-source. Anyone, anywhere in the world can take the code and improve it. The code is available for all to see on Github. Github is a website which hosts source code repositories and enables easy collaboration and code management among all the developers.
All the other coins with the exception of NXT hosts their source code on Github. NXT hosts theirs on Bitbucket, a website similar to Github.
Using Github, there are several statistics that are publicly accessible. CoinGecko has made use of the Github API and Bitbucket API to parse data for each coin to give a gauge of the development activity for each coin.
Explain the Github metrics to me like I am 5
Below is a screenshot of the Bitcoin's Github page.
To a non-developer this may seem alien and complicated but trust me it is actually pretty simple to understand. The metrics which CoinGecko use are in the red boxes. I have labelled the individual Bitcoin metrics which are used from 1 to 7 to explain them further here.
1. Watch - There are 750 people watching this code repository. These are developers with Github accounts who wants to keep track of the development of this source code repository and some of them are notified via email whenever there are updates to the source code. A Watch count will indicate that there is more developer interest in this coin and the developers have expressed an interest to be updated on the development of this coin so that they could potentially participate in the future.
2. Star - There are 5,524 people who clicked Star on this repo. This is the Github version of the Facebook Like button. Similar to the Facebook Like count, a higher Github Star count indicates that more developers appreciate the work that is being done on this code repository.
3. Fork - There are 3,931 people who have forked this code repository to potentially create other coins. Since the Bitcoin source code is open-source, anybody can copy the code and tweak some parameters to launch their own altcoin. For example, Litecoin and Peercoin are forks of Bitcoin, so these 2 forks count towards the 3,931 figure. Developers who are interested in contributing to the source code will also need to fork the source code first before they can contribute. A higher fork count indicates that there are more developers who are interested in copying or contributing to this source code. This indicates a higher developer interest in the source code and potentially some sort of technical innovation where developers are interested in forking the code to launch their own coin.
On Github website, if you compare the Fork count for Bitcoin and Litecoin (or other descendents of Bitcoin), you will notice that the Fork count for both repositories are similar. We at CoinGecko take the Fork count provided by the Github API which is a more accurate figure.
4. Commits - There are 6,092 commits to the Bitcoin source code repository. This is the number of times the source code has been updated. A higher commit count indicate that there are more development activity going into the repository. For CoinGecko, we traverse through the coin repository commit history and take the total number of commits in all branches for the past 4 weeks. Coins that are not active will not have any or have very little commits in the past 4 weeks.
5. Contributors - There are currently 216 contributors who have contributed code to the Bitcoin source code repository. For CoinGecko, we did some calculations to sift out only contributors for a particular coin. This is because we noticed that if we were to fork the Bitcoin repository now, our source code already includes the 216 contributors who worked on Bitcoin previously. After tweaking some parameter and publishing to Github, my repository will now read 217 contributors (the earlier 216 contributors and me). This is not a fair representation of the contributor count so we decided to subtract the original repository contributors from the count. So in my new repository case, the contributor count will read 1.
6. Issues - The 405 figure written here is the number of Open issues that are raised by developers with regards to the code. Clicking on this link takes you to the issue page below.
In the red box highlighted, you will notice that there are 403 Open and 4,037 Closed Issues. CoinGecko reports the number of Closed Issues and Total Number of Issues (Open and Closed Issues). In our algorithm, we also take into account the percentage of issues which are closed.
Coins that have the attention of developers will see a large number of Issue requests. There are developers who scrutinized the code and found bugs which needs to be fixed by the core team. Coins that have no Issue can indicate one of two things: either there is no bug with the repository or no one is interested in the coin to even file an Issue request. By looking at Bitcoin, even the most active coin in development has 405 Open Issues, we can safely disregard the first scenario of a totally bug-free coin. Hence coins which have low issue count usually indicate developer disinterest.
Coins that have a high fraction of Closed over Total issues will indicate that the core developer team is very active in fixing bugs. Coins that have an inactive core team will have a low fraction of Closed / Total Issues.
7. Pull Request - This is probably the hardest metric to explain to a non-developer in a non-technical term. In simple terms, a pull request is a way for contributors to tell the core developers that they have improved the source code and would like the core developer to Merge it into the source code.
The process goes something along this line if I want to contribute to the Bitcoin source code repository. First, I will need to Fork the repository. Then I add my codes and Commit them. Then I do a Pull Request to the Bitcoin repository. The core developers will review my codes and if they agree with what I have written, they will Merge it into the main codebase.
The 81 figure at the top image refers to Open Pull Requests, i.e. Pull Request by others who would like their codes to be Merged into the main repository.
For CoinGecko, we measure Merged Pull Requests, i.e. the number of Pull Requests that have been accepted to be part of the main source code repository. A higher Merged Pull Request figure indicate that more developers are contributing more features and code to the repository.
Github is a Developer Metrics Data Trove
There are a lot of data that is available on Github and we at CoinGecko have done some first level base analytics on these data. By aggregating these data into a single page, it is now possible to see and compare the development activity of various coins.
We hope that this blog post helps explain our Developer metrics in greater detail and you have better insights in understanding these metrics. Now that the developer metrics knowledge is in your tool belt, head over to CoinGecko to see the cryptocurrencies developer score. If you have further questions, feel free to drop us an email at firstname.lastname@example.org