Years ago, a company might have released a software suite and then proverbially kicked back in a chair with its feet on a desk basking in celebration.
Suffice it to say that the software world moves much faster today. It seems as though there are some companies that push out new updates every few days. And thanks to microservices architecture and the DevOps Mindset, there are many companies that are constantly updating their software or at least some feature in it.
Pumping out release after release isn’t easy. With so many moving parts and so much riding on each new update, companies need to do everything within their power to ensure that releases are well-received by users.
That starts with getting their development house in order through a process known as configuration management.
What Is Configuration Management?
Configuration management is the process in which organizations and development teams oversee new software updates to ensure they are working as designed when bugs are fixed, new features are introduced and old features are decommissioned.
Thanks to configuration management, organizations can gain full visibility into the development lifecycle and easily identify errors that may need to be fixed.
If you’re thinking about implementing configuration management, or CMDB*, at your organization, that’s great news. But like anything else, you can’t just expect configuration management to solve all of your problems on its own. You need the right approach.
What is a CMDB
A CMDB (Configuration Management Database) is a database that stores information about the IT assets and infrastructure of an organization. It is used to manage and track the configuration items (CIs) in an organization’s IT environment, including hardware, software, network devices, and other components.
A CMDB can include detailed information about the relationships between CIs, such as dependencies, dependencies, and interdependencies. This information can be used to help organizations plan changes to their IT environment, understand the impact of changes on other components, and maintain the integrity and availability of their IT services.
In addition to maintaining information about CIs, a CMDB can also be used to track service requests, incidents, problems, and changes related to the IT environment. It can help organizations improve their IT service management processes and make better decisions about their IT investments.
With that in mind, let’s take a look at seven different configuration management metrics you can track to increase the chances that your initiatives help you achieve results. Keep track of these metrics and work hard to improve them over time, and you’ll build better applications that are better received by your users.
1. Frequency of Updates
Some companies are perfectly fine with shipping updates once a quarter or even once a year. Other companies pride themselves on pumping out new updates every month, and some might aim to release even more new software packages than that.
Every software company has unique goals. It might not matter how regularly your software is updated, but it might matter how consistently it is. Your users will expect at least some rhyme and reason to the number of updates you pump out.
Keeping track of the frequency of updates metric will help you make sure you are meeting your company’s goals and satisfying customer expectations. If you’re not shipping releases as frequently as you’d like, you might want to drill deeper and find out why.
2. Release Downtime Metrics
We all know how applications should work. When they don’t work as designed, we’re unable to get things done quickly. Depending on how bad the problem gets, it’s easy to get frustrated to the point a user starts thinking about whether they should find a substitute solution.
End users depend on your software. For a business user, that might mean a platform they use to store information and communicate with colleagues. It might mean a place they store code for a developer. And for a regular customer it might be a social network they use every day to meet new people.
Whatever the case may be, the moment you are unable to meet user expectations might be the moment your users begin an exodus.
Worse than that, downtime can be prohibitively expensive. In fact, a recent Gartner report found that downtime can cost as much as $540,000 per hour.
Keeping track of how much downtime you incur (if any) while a new update is released can help you maintain positive and productive user experiences. In the event there is downtime during a new release, you can quickly identify what happened and take steps to reduce the chances it happens again.
Add it all up, and keeping tabs of this metric can help you provide better experiences while increasing profitability.
3. Average Number of Errors
In a perfect world, your developers would write flawless code every day, and each new release would ship with perfect code. But we live in the real world where people do make mistakes.
Of course, it’s in your best interest to work as hard as you can to keep those mistakes down to a minimum. By keeping track of the average number of errors in each new software release, you can identify areas in your workflow that could be improved. This may help you catch mistakes earlier in the process.
For example, you might realize that a new adding a new tool to your DevOps team’s arsenal can help your release smoother updates every time.
At the very least, tracking this metric provides an easy mechanism to determine whether your team is trending in the right direction, i.e., making fewer errors as time goes on.
4. Code Lines Per Update
The point of writing is to convey a point to your readers. Unless the author is getting paid per-word, writers should state their case in as little words as possible. The question is what day is it today? It’s not do you have any idea as to which 24-hour period we are currently in the middle of?
In the world of software development, the same maxim holds true. You don’t need 100 lines of code when a single line will do the same trick.
Keeping track of code lines per update can help you ensure that you are writing software efficiently. Depending on what your team’s workflows are like, you may be able to identify individual developers who are writing too many lines of code and have the more efficient coders give them a few pointers.
5. Rework Metrics
How many files does your team rework each month?
Developers don’t come cheap. The last thing you want to do is pay them to do the same work over and over again—whether that’s because someone did it incorrectly in the first place or because your team is struggling to communicate effectively.
Tracking rework metrics can help you make sure that the percent of rework your team does each month doesn’t increase in perpetuity. On the flipside, you may also be able to identify what you are doing that is decreasing rework. With that information on hand, you may be able to bake additional efficiencies into your development processes.
6. Frequently Changing Files
Track this metric to determine whether certain files are changing too frequently. If you find out that certain files are changing with each update, you may need to look into the issue a bit.
For example, you can determine why certain files are changing so often. Maybe it’s because developers aren’t sure of the requirements. Maybe it’s because there’s an issue with your testing and QA approach.
Whatever the case may be, this metric can help you add additional efficiencies into your development processes by reducing or eliminating duplicative work and rewriting inefficient code blocks as needed.
7. Root Causes for Late Delivery
As you optimize your release management workflows, everything should get more and more predictable.
Yet nobody can predict the future and nobody’s perfect. So things will invariably not go according to plan every now and again.
Configuration management lets you drill down into the root causes for late delivery.
Fingers crossed that you never run into any errors that slow down your releases. But in the event you do miss some deadlines, you may be able to start detecting a pattern as to why you are unable to meet them.
Armed with that information, you can begin working backward to identify what is causing delays and what you need to do to prevent that from happening in the future.
Are You Ready to Start Using Configuration Management?
Is your development team reaching its full potential and doing its best work? If not, it may be time to get started with configuration management. That way, you’ll be able to delight customers by meeting their expectations while avoiding downtime and increasing profitability.
And the best part? With the right tools in place, configuration management can largely be automated.
To learn more about how your DevOps team can integrate configuration management into their workflows to build better software more efficiently, take a look at Enov8.
Author Justin Reynolds
This post was written by Justin Reynolds. Justin is a freelance writer who enjoys telling stories about how technology, science, and creativity can help workers be more productive. In his spare time, he likes seeing or playing live music, hiking, and traveling.