(This blog post is brought to you by reposcore - hassle-free and qualified GitHub repository benchmarks)
Most branches do not compromise on quality. Superb quality saves lives, costs, and is ultimately a unique selling point. At reposcore, we believe that transparency on software quality is the key. Therefore, we are introducing scores to help you identify the high-quality software on GitHub for your needs.
Hardware Quality vs. Software Quality
Failures in medical equipment might lead to casualties. Deficiencies in cars might cause severe accidents. Defects in a cooling system might force a power plant to interrupt the production of electricity. This is why, several industry branches have introduced quality assurance processes like designed by six sigma, produced with outstanding process capabilities, and thorough failure analysis like 8D, lessons learned / kaizen, and continuous improvement. As a reference, the quality management methods in the automotive industry are described in here.
Worth mentioning, the quality first mindset predominately focusses on hardware development, i.e. electronics, sensors, actuators, metal parts, cars, refrigerators. All these goods cannot, once they are sold and shipped to the customer, be corrected, adjusted or updated. Costly recalls are the only option to get the hands back on the product but cause a loss of reputation and high expenses. Hence, maximum quality must be assured before shipment.
When it comes to software quality, however, the thinking is different. It is all about speed and early customer feedback. New features are often released during the development process. Failures are taken into account in this early stage. Customers tolerate nightly updates of their smart phones. Laptop computers receive regular patches. Digital shops renew their products and prices every minute. Many software vendors reduce the percentage of test coverage, compromise on unit tests, integration tests or system tests in order to meet project deadlines.
From the user perspective, the key is: transparency. Users want to know at all times what the software quality level is. They accept deficiencies in an early development state but need to know the truth. Therefore, reposcore aims to provide transparency by evaluating different aspects of software repositories on GitHub. Those aspects are summarized in frequently updated scores.
Consequences of poor software quality
The Consortium for Information & Software Quality (CISQ) estimated the cost of poor software quality at $2.0 trillion in 2020 (wikipedia.org).
Additionally, there are non-monetizable costs. Let us assume, you are an open source enthusiast. After a hard day in office, after dinner, family stuff and clean up, you enjoy your evening in front of your laptop computer searching for a nice software solution for your smart home. You find numerous potential solutions on GitHub. You start comparing the readme files, evaluate pros and cons, and eventually realize that time is running but you are not able to finally conclude which of the repositories offers the most mature solution. Not knowing the quality of a repository can cause a lot of frustration. What if there were easy to access metrics on software quality? What if experts did the evaluation of GitHub repositories for you? - This is what we are aiming for: Asses with one click if a project meets your [reliability | maturity | activity | security | license] requirements.
A software score is a measure of software characteristics which is quantifiable. Scores provide an objective view of the status of a software project (wikipedia.org). As software projects might be complex from a technical as well as from an organizational point of view, the selection of scores is decisive. In the software community, some argue that scores oversimplify reality. Others believe that scores are an integral part of the software development process (‘You cannot control what you cannot measure’). As a matter of fact, research shows that scores are widely used by successful organizations to ensure software quality.
Watch the following YouTube video on software scores (4:51 min)!
As an open source enthusiasts you are probably not interested if the project is ‘on budget’. Rather you would like to know functional and non-functional key data of the project. This includes how popular the project is, how active the contributing community is, how quickly bugs are fixed and how often issues are reopened, how complex a software project is, how the organization changes over time, how the level of code ownership is, how secure a repository is. We at reposcore are developing the scores step by step. Check out the popularity score and activity score already today: https://app.reposcore.dev!
Watch the following YouTube videos on software quality metrics (8:16 min and 51:36 min)!