Varying Degrees Of Software Quality And What To Do About It

Home » Blog » Business » Varying Degrees Of Software Quality And What To Do About It

When working on client projects I come across copious amounts of source code, which sometimes is very well-maintained, sometimes less so. The various code bases are as diverse as their owners and respective stakeholders:

A few come with an inherent sense of quality, lots of unit tests serving as the specification for the product. They’re typically delightful to maintain and extend.

Some though at times leave the impression of having been cobbled together in a rather haphazard, impromptu manner in order to solve an urgent problem with no time to devise a ‘proper’ software architecture or model. This isn’t bad per se, mind you. In fact, I presume there are just as many software projects that failed horribly due to over-engineering as there are duct-tape solutions based on Microsoft Excel that started their lives as a ‘prototype’ (and everybody knows that nothing lasts as long as a prototype in production …).

Most software products however, fall in-between those extremes: Mostly comprehensible source code, average test coverage, some weird stuff nobody on the current team really understands anymore but an overall low WTFs / minute ratio.

Always pursuing a constant improvement in code quality is a vital aspect of delivering a software product. It’s not the so much the absolute, objective code quality that matters – if such a thing does even exist – it’s the improvement process and the relative improvement achieved over time. In other words, a software project in a dismal state of quality isn’t a lost cause at all but a huge opportunity for changing it for the better.

Given this, it should come as no surprise that apart from commonplace (nowadays, that is … I remember a time long ago when production websites weren’t checked in and built via source code management tools but edits were made live on the production environment with FTP …) measures for ensuring software quality such as continuous deployment, I’m highly interested in new approaches that help you track down software bugs.

At Web Summit 2015 I met the founders of Codacy. Codacy is an automated code review tool that according to the website allows you to ship better code, faster. Codacy provides you with extensive static analysis, code coverage and complexity information for each commit. I’ve tried it out with some of my own open source projects, particularly ZenQuery, and I was quite impressed with results. While the overall code quality of ZenQuery doesn’t seem to be so bad, Codacy uncovered a few issues that could be improved upon:

1

Another similar product is Scrutinizer, which at first glimpse seems to be quite capable, too. I haven’t tested it yet, though, so I’ll have to leave that for you to try out yourselves.

Anyway, no matter if you’re using sophisticated tools such as the two mentioned above or just plain source code management, unit testing and continuous integration, the gist of this post is: Good software quality matters, improving software quality matters even more!

Leave a Comment

* Checkbox GDPR is required

*

I agree

By continuing to browse the site you agree to our use of cookies. Privacy Policy

Privacy Preference Center

Strictly necessary

These cookies are necessary for the site to function.

PHPSESSID: Preserves user session state across page requests.

__cfduid: Used by the content network, Cloudflare, to identify trusted web traffic.

PHPSESSID
__cfduid

Preferences

Remembers the user's submitted data when a comment is submitted in a blog post. The purpose is to aut o-populate form fields for subsequent comments, in order to save time for the user.

wfvt_#

Statistics

Statistic cookies help us to understand how visitors interact with our websites by collecting and reporting information anonymously.

_ga: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

_gat: Used by Google Analytics to throttle request rate.

_gid: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

collect: Used to send data to Google Analytics about the visitor's device and behaviour. Tracks the visitor across d evices and marketing channels.

_ga,_gat,_gid
collect

Security

We use Wordfence to secure our website against hacking attempts: https://www.wordfence.com/

wordfence_verifiedHuman

Close your account?

Your account will be closed and all data will be permanently deleted and cannot be recovered. Are you sure?