<img src="https://secure.leadforensics.com/794635.png" style="display:none;">
Skip to content
Published at September 10, 2020
Refactoring

Guide Refactoring by Data

How to Visualize Technical Debt and Code Refactoring Progress to Management? Meet a senior software engineer who successfully tackled this challenge.

Graphs showing how CodeScene provides positive reinforcements on refactorings and design improvements via its code health metric.

 

How to Visualize Technical Debt and Refactoring Progress to Management

Refactoring is the art of improving existing code without changing its behavior. Most refactorings are small and a natural part of successful software. Continuous refactoring ensures that we can continue to grow our products with new features.

“I was able to demonstrate the cost of technical debt to management.”

Occasionally, a codebase might call for larger and more drastic measures. The trigger is often a specific situation. Perhaps you start to lose customer satisfaction due to a multitude of bugs where each change to the software is risky? Or you notice a negative impact on your product roadmap where promised features cannot be delivered on time due to a growing mountain of technical debt? Ironically, this is often driven by product success; only software that is being used is also being maintained.

When that happens, an organization needs to strike a balance between improving existing code versus adding new features. This means that each series of large-scale refactorings or re-designs have to be prioritized to ensure we get the largest bang for the buck.

In this article, we meet a senior software engineer at a health care technology brand who successfully tackled this challenge.

 

What’s the last action and outcome triggered by CodeScene within your team?

I relied on CodeScene heavily to guide my refactoring efforts on a medium sized codebase (~34K Loc). We had seen a few problems with this codebase - from regular culprits like low cohesion, duplication etc. to more serious ones. The project did not start out this way, but complexity kept increasing over time resulting in low team velocity and whack-a-mole defects.

CodeScene proved useful in three ways:

  1. First, its nifty metrics. I was able to demonstrate the cost of technical debt to management and present a strong case to allocate time and resources for refactoring.
  2. Secondly, during refactoring, CodeScene’s hotspots feature helped in triaging the work. The x-ray and virtual code review features provide an active feedback loop. Code Health score helps objectively demonstrate if refactoring led to a significant improvement and also track code health.
  3. Lastly, with CodeScene’s ability to dig through git history and display contribution statistics, the Senior Developers could identify struggling team members and mentor/coach them as needed.

There are many more features that I haven’t tried yet (Code age etc.) but overall, I found it a very useful tool. 10 out of 10 – I would definitely recommend it.

 

Can you share how you used CodeScene for technical debt measurement and visualization to management? Did you use the code health overall metric and trend?

Sure. Communicating technical debt to management was indeed the first challenge. I presented a detailed report and backed it with CodeScene’s code health score and hotspot figures comparing it with other teams' repositories.

The next question was of time and resources estimates considering this is a project with tight deadlines and dependencies. The trade-off was between how much to invest in new features vs. refactoring and gaining velocity.

CodeScenes dashboards present the core metrics that drive engineering intelligence.-3

CodeScene's dashboards present the core metrics that drive engineering intelligence.

 

How did you track refactoring progress/results?

CodeScene’s hotspot recommendations were spot on and are calculated pretty smartly based on defect count, complexity, code health, change frequency and other code biomarkers as the tool puts it. These hotspot recommendations would match what a software designer would analyze and conclude manually. We used that along with improved code health score to communicate refactoring progress.

CodeScene provides positive reinforcements
on refactorings and design improvements via its
code health metric..svg.svgCodeScene provides positive reinforcements on refactorings and design improvements via its code health metric.

 

Read More

We hope you enjoyed this user interview and are eager to learn more about CodeScene’s Hotspot analysis and how to visualize technical debt. So checkout this blog post by Adam Tornhill: Communicate the Effects of Technical Improvements to Non-Technical Stakeholders.

Adam Tornhill

Adam Tornhill

Adam Tornhill is a programmer who combines degrees in engineering and psychology. He’s the founder and CTO of CodeScene where he designs tools for code analysis. Adam is also a recognized international speaker and the author of multiple technical books, including the best selling Your Code as a Crime Scene and Software Design X-Rays. Adam’s other interests include modern history, music, retro computing, and martial arts.

Elements Image

Subscribe to our newsletter

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Semper neque enim rhoncus vestibulum at maecenas. Ut sociis dignissim.

Latest Articles

CodeScene Now Available on AWS Marketplace

CodeScene Now Available on AWS Marketplace

CodeScene is now on AWS Marketplace, offering engineering leaders and developers tools to prioritize improvements and reduce development ri...

Conflux and CodeScene Announce Strategic Partnership

Conflux and CodeScene Announce Strategic Partnership

An exciting partnership between Conflux and CodeScene is set to change how enterprises address workflow inefficiencies and improve team ali...

Wouldn’t It Be Great If You Could Automatically Pay Down Technical Debt Using AI?

Wouldn’t It Be Great If You Could Automatically Pay Down Technical Debt...

That’s exactly what CodeScene ACE can do for you — automatically fix technical debt and complex code with AI-driven refactoring.