Times change, and so does building software

Since industry trends are always influencing best practices for creating software, we’re always evolving our model for measuring its quality.

A common saying amongst people working in IT is that everything you know becomes obsolete within two years. It’s not quite that extreme in practice, but the general sentiment is true: there’s an endless stream of technological advances in various areas, and many of them will permanently impact the way you work. And yes, that will render some of our previous knowledge irrelevant.

However, not every new technology ends up becoming a de-facto industry standard. The software industry, like any other industry, has its share of hype, fads, and grassroots movements. This makes it hard to tell new technologies that are truly groundbreaking apart from the ones that will slowly fizzle out.

Differentiating the two can be difficult, because the early adopters are often very vocal in the perceived advantages of the new technology. Simultaneously, there will always be a crowd of people claiming that the new technology is a fad and will “never work.” Your opinion will be shaped depending on who you believe. I remember saying around 2004 that this whole online video thing will never catch on. Two years later, I was working for an online video company.

In the long term, these industry trends also influence best practices for creating software. And since SIG measures software quality using a maintainability model based on those best practices, we need to keep evolving our model to reflect those changes.

However, one of the interesting dynamics of these new technologies is that many of them are based on new interpretations of older ideas. Making programming more accessible to non-programmers has always been a goal. And although they are very different technologies, both COBOL in the 1960s and “low code” technologies today are trying to achieve that very same thing.

Another major software architecture trend in recent years is the adoption of microservice architectures. Now, you might be thinking, “What?! You consider microservices new? That’s from like 2015!” And you would be correct, in the sense that that’s the year it started. However, this goes back to the point of industry best practices: there’s always a wave of early adopters, but it takes a while before a new technology becomes truly widespread.

Also, using a new technology does not automatically lead to a high-quality system. Again, people are adopting these technologies to achieve certain goals. The goal of microservices is to allow teams to work in parallel, operate more autonomously, and have less coupling between the different components. These principles aren’t new, this is simply an evolution from older ideas like Service Oriented Architectures. However, with microservices there is renewed focus and attention on these goals.

So that’s what we did. We added a new metric to our maintainability model that rewards people for using microservices in their intended way, while also rewarding those who don’t use the technique, but achieve the same goals with less fashionable technology choices.

We’re proud to say that the new 2020 version of our ISO 25010 quality model has been accredited by the German TÜViT quality institute and is now available for use. If you’re interested in learning more about our maintainability model and evaluation criteria, check out this page here.

Getting Software Right for a healthier digital world: https://softwareimprovementgroup.com

Recommended from Medium

Capture The Ether: token sale

CAP Theorem in Modern Distributed Systems

DevOps Enterprise Review #11

Eclipse Collections 10.4.0 Released

Serverless Computing With Amazon Web Services (AWS)

How to Auto Reload Golang Applications?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dennis Bijlsma

Dennis Bijlsma

Head of product at Software Improvement Group

More from Medium

Outdated Vendor Software, or, When You Know It’s Time To Upgrade

Design Principles -Evaluating the Structure of Software Solutions

A Goldilocks Approach to Reliability and Scalability Projects

Assumption driven development