Feb. 7 Gateway JUG meeting: Putting Your Technical Debt Under Control with Sonar

1 view
Skip to first unread message

bachdot

unread,
Feb 2, 2012, 12:07:26 PM2/2/12
to Gateway JUG
Companies fail all the time because they accumulate more debt than
they can ever repay. Likewise, software projects fail all them time
when their technical debt gets out of control.

What is technical debt and how do you measure it?

Back in 1980, Meir Manny Lehman wrote that,

"As an evolving program is continually changed, its complexity,
reflecting deteriorating structure, increases unless work is done to
maintain or reduce it."

Ward Cunnigham is a renowned developer who invented the wiki and a
pioneer in Extreme Programming and design patterns. He expanded on
Lehman's observation in a 1992 experience report:

"Shipping first time code is like going into debt. A little debt
speeds development so long as it is paid back promptly with a
rewrite... The danger occurs when the debt is not repaid. Every minute
spent on not-quite-right code counts as interest on that debt. Entire
engineering organizations can be brought to a stand-still under the
debt load of an unconsolidated implementation, object-oriented or
otherwise."

(See this Wikipedia Technical Debt article for much more on the
subject.)

So how do we measure technical debt?

There are plenty of tools and APIs that help with this, but each tends
to focus on a narrow part of the problem. For instance, unit and
other automated tests inform us our code is working in the areas
covered by the tests. But what if we missed tests for some code? Code
coverage tools like Cobertura tell us how much test coverage we have.
Our IDEs usually offer some insights using code inspections to help
spot bad coding practices; e.g. Flagging an empty catch block. We can
also use code inspection tools like FindBugs to inform us of possible
bugs.

Wouldn't it be nice if there was a tool that would would bring all of
these technical debt measurements together in a consilidated view?
There is. It's called Sonar.

Sonar is an LGPL licensed, open source platform hosted at Codehaus.
It's what we can use to manage code quality to help us manage and
reduce our technical debt. It covers the 7 axes of code quality:

Architecture and Design
Duplications
Unit Tests
Complexity
Potential Bugs
Coding Rules
Comments

This presentation shows how you can Sonar today to first measure, and
then improve, code quality. In the presentation, I will cover

Downloading and configuring Sonar
The Sonar dashboard
Code quality metrics covered
Using The SQALE Ratings
Alerts
Hotspots
Time Machine
Cloud Views
Design issues
Timeline
All of these will be demonstrated with live demonstrations of this
remarkable tool.

We need to know you're coming, so please be sure to RSVP using the
link on the right sidebar.

Reply all
Reply to author
Forward
0 new messages