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

What Does it Mean to Demand Technical Excellence?

DZone's Guide to

What Does it Mean to Demand Technical Excellence?

Ten years after the Agile Manifesto was signed into being, the original authors got back together to review the progress made in the last decade. It was Jeff Sutherland who said, “Demanding technical excellence is a top priority for the next ten years.”

· Agile Zone ·
Free Resource

See why over 50,000 companies trust Jira Software to plan, track, release, and report great software faster than ever before. Try the #1 software development tool used by agile teams.

But what is technical excellence? Given the state of the software industry and the lack of maintainability that most software’s produced with, I think it’s fair to assume that most of us don’t really know what “technical excellence” means when it’s applied to software.

Given that over 80% of the cost of software happens after its initial release, I would propose that a key aspect of technical excellence is being able to deliver software that is maintainable. I’ve asked developers what they do to increase the maintainability of their code, and often got back blank stares.

Maintainability of software is not a subject that is discussed in any depth in computer science curriculums or even in professional software development circles. As an industry, we’re just starting to become aware of the importance of writing maintainable software.

The nine practices I propose in my book, Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software, support the creation of maintainable software. When not only adopted but understood, these nine practices help us rapidly build maintainable software.

I propose that the core of maintainable software comes from practice five: Create CLEAN Code.

CLEAN is my acronym for five key code qualities that support maintainability: Cohesive, Loosely coupled, Encapsulated, Assertive, and Non-redundant. These certainly aren’t the only qualities we can look at, but they represent a set of code qualities that are easiest for most people to recognize and understand. I won’t go into detail of each of these qualities here, since I cover them in depth in my book, but though these qualities seem simple, almost trivial, we find that when they aren’t present in code, that code becomes difficult to work with and extend.

By paying attention to code quality and building testable behaviors, we can build software that is better adapted to the needs of the user and that’s easier to work with in the future.

The Best teams run on Jira. Here's how teams at a few of the world's most recognizable brands are teaming up in Jira to build great software that users love.  Learn More.

Topics:
agile manifesto ,maintainability

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}