Development Analysis Of ARK Project

In the following report, we will understand the ARK project’s progress using different development metrics.

Table of content

Purpose

Summary

Introduction to ARK project

Limitations

Terminology

Code contribution

Collaborators/Contributors

Development engagement

Code Quality

Compliance score

Conclusion

Visualizations

Purpose

The purpose of this report is to provide ARK’s development progress, health, and efforts. To accomplish this, we have analyzed 77 GitHub repositories of the ARK project.

Summary

More development in 2019 when compared to previous years

ARK client in multiple programming languages

Passes all code quality checks

Overall compliance score 56.9%

Development engagement increased significantly in 2019

Download the summary of the report. (PPT)

Introduction to ARK project

Launched in October 2016, the ARK project is a collection of DIY tools to “build your blockchain” and connect them with other blockchains (such as Ethereum, Lisk) using technologies like Smart bridges.

ARK also has its own blockchain and uses a Delegated Proof-of-Stake (DPoS) consensus algorithm.

ARK supports multiple programming languages. In our analysis, we found support for 11 programming languages.

Terminology

We will use the following keywords throughout our analysis.

Github Repository: A folder hosted on Github containing a software code/documentation.

Commit: A commit is saving some file changes into the Github repository.

Merge: Combining two different versions of one or multiple files.

Pull request: Notifying others about changes you have pushed on the codebase.

Contributors/Collaborators: Persons who work jointly on a project.

Fork: A fork is a copy of a repository. Forking a repository allows you to experiment with changes without affecting the original project freely.

Release: Releases are GitHub’s way of packaging and providing software to your users. You can think of it as a replacement for using downloads to provide the software.

Hotspot: Hotspot is a complicated code that you have to work with often.

Technical debt: Technical debt is the estimated time required to fix all Maintainability Issues/code smells.

Limitations

Our analysis only focused on development based on GitHub data, not on the technology.

Note

The timeframe for our analysis is from 2017 to September 2019.

To understand ARK’s code quality, we have analyzed ARK’s Core repository.

Overall Project overview

ARK has 84 repositories in total. In our analysis, we have analyzed a total of 77 repositories and found 272 collaborators and 44 different programming languages.

We measured the overall project health and focused on a few key points:

Code contribution Collaborators/Contributors Development engagement Code quality

Code Contribution

Releases are one of the essential metrics to understand the project’s development efforts. Releases are incremental changes in software, and a release usually means a new version of the software.

When we dove in ARK’s release data, we saw that ARK releases become much more frequent in the last 14 months. ARK did 51 new releases in the last 14 months in comparison to 25 releases in the previous 18 months.

Total releases in the last 32 months — 76

Total releases in the last 14 month — 51

The above release data corroborates with the commits’ activity. As the below image shows, ARK has increased its development efforts in the last 14 months and pushing more commits. These increased development efforts is a good sign for the project.

ARK is working simultaneously on multiple different repositories.

We tried to understand the direction of the team’s effort and found that ARK is working on multiple clients in different languages and wallets.

In the last 14-months, the ARK team worked on more than 20 repositories(at least) simultaneously every month, which is pretty impressive.

The ARK team is distributed all over the world and lives in multiple time zones, that’s why we see a commits every day of the week.

Collaborators/Contributors

As we mentioned above, we have found 272 collaborators across 77 repositories. The following image shows repositories with more than 20 contributors. Here is the complete list of repositories with their respective contributors.

Top Contributors

The following image shows top contributors across 77 repositories based on their contributions. Here is a complete list of Contributors and their Contribution to the ARK project.

Development engagement

In open-source development, whenever you want to contribute to any repository, you can create a pull request. Then the owner of the project reviews the pull request and either merges it or rejects it.

Merging Pull requests usually requires engagement as you need to understand the changes someone is trying to add in the codebase. That’s why pull requests are a great way to understand the development engagement of the project.

The below data shows that before 2018, the ARK team took more than ten days on average to merge pull requests, which is significantly high.

But in 2018-19, we noticed that the time to merge pull requests is now less than two days on average. At the same time, the number of pull requests increased at a significantly higher rate.

We also analyzed the most active repositories in the last 30 days, and as mentioned above, ARK is committed to multi-language support for its platform.

Code Quality

When it comes to cryptocurrency, Code quality is one of the most important metrics as the code directly represents wealth.

To understand the ARK’s code quality, we picked up its one of the most crucial repositories, Core.

Note:

We used the Core repository as a sample repository to understand the code quality.

While measuring the code quality, we didn’t analyze test files.

Code quality is measured by a static analysis of the project.

Analyzing ARK Core code quality

In our analysis, we found out that 6% code base has high complexity. A hotspot is a complicated code that you have to work with often. Higher the red hotspot percentage, the more problematic code you have in your project. We also measured ARK’s Core repository on different code quality metrics.

Reliability

Initially, we found 8 critical bugs in our analysis, but when we looked closely, we noticed that most of these bugs are in test files. (Which we shouldn’t account for). After removing them, we found no critical bug. That’s why the reliability rating is A.

Note: We did a static analysis of the project, which can’t identify logical bugs.

Security

We also didn’t find any potential vulnerabilities in the codebase, though we found 2 security hotspots in the same file. But both of these hotspots are not related to the main software code and inapplicable.

Maintainability

Software maintainability is essential. Notably, ARK’s core repository has only 1 hour of technical debt, which is 0.1% of its codebase.

Technical debt is the estimated time required to fix all Maintainability Issues/code smells.

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Code for readability.

Duplications

We found 0.6% code duplication, though most of these duplications are often used in adding configurations, dependencies. In our analysis, we didn’t find any problematic duplicate code.

Code Coverage

Testing is an integral part of the software lifecycle and is a vital part of software quality. We can measure it using the metrics called Code coverage.

Code coverage is a measurement of how many lines/blocks of your code are executed while the automated tests are running.

ARK’s Core codebase includes extensive test cases, including Integration and functional testing. ARK’s test suite indicates that the team is serious about the quality of their software and engage in best practices of software development.

Brooks’ Law

Brooks’ Law states that adding more people to a late software project makes it later. The reason for this is communication and coordination overhead.

While we add more people to a project, the total number of available hours increases linearly, but the coordination paths increase exponentially. Hence, there’s a point beyond which each additional person’s hours get consumed by the increased coordination efforts.

The below graph shows the Development Output; this is measured by taking all commits during a week and dividing them by the number of contributing authors. The resulting normalized output metric gives you an estimate of the organizations’ output.

For the ARK Core repository, you can notice that the authors (developers) number did not go down though development output went down. We usually find this trend either if the software gets matured or does not need more development for any reason.

Compliance Score

Our compliance score is based on the percentage of repositories that respect a given guideline. We looked into five crucial factors while calculating the compliance score, which adheres to standard open-source development. If any information below is missing, it impacts the score:

Readme

Changelog

Notice

License

Contributing

Here is the complete data for missing files.

Conclusion

In our analysis, we found that the ARK team is putting significant efforts into its development. The team is pretty constant and delivering on multiple ends. ARK is committed to multi-language support for its platform, and we verified it.

ARK has a total of 84 repositories in which only one repository is forked, which shows ARK is building a lot of tooling in house.

ARK also has a high-quality codebase and follows best practices of software development.

2019 has been the best year so far when it comes to ARK development. The team is pushing many more releases, and overall development efforts are applaudable.

Visualizations

We have created a visualization of changes made by ARK contributors in the past two years.

Here different colors show their contribution in the respective languages (See there is a language classification at top left)

Each particle is a file. It moves from developer to developer.

The size of the particle depends on the degree of changes.

Each user gathers files that he used over time.

ARK’s Core development since 2017

It shows file changes in every commit by different ARK contributors on the Core repository since 2017.

About CoinCodeCap

CoinCodeCap analyzes the codebase of various cryptocurrencies. Anyone can showcase development activity on their platform using our APIs.

We also help in development audit reports for Cryptocurrencies. If you are a crypto project or a crypto exchange, you can reach us at [email protected].