Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Shu Ha Ri and Code Metrics

DZone's Guide to

Shu Ha Ri and Code Metrics

· Agile Zone
Free Resource

Speed up delivery cycles and improve software quality with TestComplete. Discover the most robust automated testing tool for end-to-end desktop, mobile, and web testing. Try TestComplete Free.

Code Metrics sure get mixed feelings by developers, especially when combined with thresholds to form checks that might make a CI build fail. Typical examples are:

Line based code coverage  must not fall below 80%.

A method must not be longer than 15 lines of code.


Arguments against such rules state there are cases where such checks limit the freedom of a developer.
During a discussion around these things it occurred to me that the metrics and checks come from a different skill level than the arguments against them.

Let me introduce Shuhari:

Shuhari is a Japanese martial arts concept describing the stages of learning to mastery.

Shu describes the strict adherence to rules as one does when one begins to learn. This is where metrics live. They are strict rules. As a practitioner you just follow the rules without really thinking about them.

Ha describes the bending, changing and breaking of rules, as you might do when you are quite experienced.

Ri finally is described as transcendence, i.e. the rules don’t really have a meaning to a master on this level. She just knows what to do.

I think one can easily see how metrics get in the way of a master at the higher levels. Right? But there is an interesting point in the short Wikipedia article for Shuhari:

Shuhari can be considered as concentric circles, with Shu within Ha, and both Shu and Ha within Ri. The fundamental techniques and knowledge do not change.


For me this means: While a master can and will break rules at will, most of the time she won’t because the rules align with what is the right thing to do ™.

So if you think those code metrics are stupid and shouldn’t apply to your code, you are welcome to prove to me that you are a Ri level master (I’m certainly not). A first indicator would be that you can follow those rules without them actually being enforced.

But if you are constantly breaking builds due to Checkstyle, PMD and Sonar violations, you are not demonstrating mastership but sloppy working.

Release quality software faster with TestComplete. Discover how to decrease testing times and expand test coverage with the most robust automated UI testing tool. Try free for 30 days.

Topics:

Published at DZone with permission of Jens Schauder, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}