We all know the name Thomas Edison. It’s likely that the first thought that comes to mind when seeing or hearing that name is, “the man who invented the lightbulb”. Without doing a bit of fact checking, it’s easy to take that statement quite literally. But with a little research you’ll learn that it’s not entirely the case. What Thomas Edison did do, was improve upon the concept of the electric incandescent lightbulb to such a degree that it became the household item that it is today, at least in the first world.
In 1835 British inventors were able to publicly display constant electric light. At the time, it was an absolute revelation. They did it! Light! Wow! An extraordinary piece of technology was born. Though, it wasn’t until 1879, nearly 50 years later, that Edison patented the light bulb as we know it. Interestingly, one of Edison’s greatest contributions was the concept and execution of the light bulb screw. Prior to that, light was 1. largely immobile and 2. difficult to repair and maintain. Without that screw, once the bulbs’ internal components stopped working, it couldn’t be easily replaced. It turns out that one of Edison’s most important and consequential strokes of genius was understanding the critical value of changeability and maintainability. At BonCode, we think the same goes for software engineering.
When it comes to writing and building software systems in line with the ISO 25010 quality measurement standard, there are several aspects to consider. Eight, to be exact.
And in a world of finite time and resources, you cannot expect a team of developers to excel in all of them. But there is a way to make sure that each of the eight categories can be easily supported. And that’s by prioritizing maintainability. According to ISO, maintainability is defined as “the degree of effectiveness and efficiency with which a product or system can be modified to improve it, correct it or adapt it to changes in environment”.
Just like the Brits who first harnessed electrical light, software developers cannot predict the future, or know how their systems might need to evolve over time. Therefore, one of the best ways to support evolution in software development is through building maintainability into code and design. Each of the other seven components of the ISO framework can trigger a need for change. Say a new security requirement emerges, or a need for a new piece of functionality, or you decide you want to take your system from domestic to global. Being able to change efficiently is at the heart of managing each of those evolutions. And this is why maintainability is the King of ISO 25010.
Luckily it’s not that difficult to measure, manage, and guarantee maintainability in software development. At BonCode, with our software analysis tool BonCat, we measure a few important metrics in support of maintainability. One of the key metrics we look at is the decomposition rating, or in simple terms, how easy the code is to breakdown. For example, imagine a piece of furniture with 50 screws, vs a piece of furniture with 20. Which is easier to disassemble in the face of inevitable change? The one with 20. The same goes for software components. 20 is better than 50. Our monitoring keeps an eye on your software components or “pieces of furniture”, and highlights where the complexity is too high, so that the developer can go back and simplify it.
As a software manager or lead architect it’s helpful to have a tool that monitors complexity as teams work under pressure. Good teams already use open source tools to manage and assess individual quality performance, we add a team layer to that good practice. By providing a dashboard with our findings, you can work towards supporting code that is strong, nimble, changeable and thus much easier to maintain.
At BonCode, we like to think of BonCat, as a watchdog overlooking the build and design phase of software construction. So when the screw count gets too large for example, we bark, and let you know where the issue is.
If you’re looking to build software which can adapt to an ever changing environment, hire us at BonCode to be your quality watch dog. We cannot guarantee eternal fame “Edison style”, but we can guarantee maintainable software.