Drive has 700+ articles for digital transformation leaders written by StarCIO Digital Trailblazer, Isaac Sacolick. Learn more.

A few weeks ago, I reviewed my son’s C code that he and a classmate developed for their college first-year computer science class. The assignment required them to use a linked list to simulate shuffling a deck of cards, finding pairs, and exchanging cards between players.

They struggled to debug their code, and running it produced inconsistent results and null pointer exceptions.

"My senses awake to the smell of bad code" - Isaac Sacolick

So here I was, looking at C code with long procedures and hard-to-follow naming conventions. There was no logging, error checking, or code-level documentation. They had never heard of log files, but they assured me they would document the code before submitting the assignment.

My initial thought was, “Jeez, no wonder we’re still creating mounds of technical debt in our code.” Why weren’t professors teaching engineering students basic coding practices before getting into more complex data structures and algorithm design?

What is technical debt

Alas, it brought me back to chapter 2 of Digital Trailblazer, where I talk about the tech debt meaning in digital transformation, my stories of developing spaghetti code, and how technical debt is now your problem. Because as engineers graduate from hands-on roles to team leads, delivery managers, and transformation leaders, they have to take ownership of the growing tech debt problem in their organization.

Here’s what I say in the book:

Bad code comes in many flavors, sizes, and impacts. And every time I walk into a new job or am involved in acquiring a company with proprietary software, I open my nostrils to sniff out where the code smells bad and what impact it’s causing.

Bad code signals tech debt agile and scrum teams

And in the author interview series with Ginny Holden, I answered her question about what bad code smells like, a term used by many dev teams. My agile teams used it whenever they wanted to alert me about technical debt, and when the coding issues became so bad, here’s what it smelled like:

Bad code smells like rotten cheese. It’s like when you open the refrigerator and get that faint smell of stinky cheese going bad. Your instinctive reaction is to close the door– I don’t want to have anything to do with this problem, and you leave it for your housemate or roommate to deal with it. But of course, they don’t touch it, and so that cheese just gets worse and worse. Now the whole house smells bad, and you don’t know where it’s coming from, and a small problem gets harder to find and fix.

Digital Trailblazer - All developers know the feeling

I can envision developing tech debt metrics that equate the magnitude of the business impact with a rotten cheese descriptor. Maybe funky, rancid, rotting, reeking, and putrid. So if the scrum team must refactor poorly written code to develop a new feature, the code may be rancid. But if that code is causing performance problems, then it’s reeking, and if there are known security holes with it, then I’d call it putrid.

You can watch more in the two videos about Chapter 2 embedded below. In the first episode, I get in the weeds on how Digital Trailblazers must prioritize which areas of tech debt to fix. In the second video, I discuss communicating and partnering with product managers and stakeholders on fixing tech debt.

The two videos are available on the Driving Digital Standup videocast. You can get early access to the full video series by signing up for the Digital Trailblazer Community. Community members also get access to chapter-by-chapter reading lists, a career checklist, and a copy of my vision statement template.

Published on:

Leave a Reply


StarCIO

My company, StarCIO, provides leadership, learning, and advisory programs for companies looking to accelerate delivering business value from digital transformation. Contact me if you’d like to learn more about partnering opportunities.


Isaac Sacolick

Join us for a future session of Coffee with Digital Trailblazers, where we discuss topics for aspiring transformation leaders. If you enjoy my thought leadership, please sign up for the Driving Digital Newsletter and read all about my transformation stories in Digital Trailblazer.


Coffee with Digital Trailblazers hosted by Isaac Sacolick

Digital Trailblazers! Join us Fridays at 11am ET for a live audio discussion on digital transformation topics:  innovation, product management, agile, DevOps, data governance, and more!


Join the Community of StarCIO Digital Trailblazers

About Drive

Drive Agility, Innovation, Transformation

Drive is the blog for digital transformation leaders brought to you by StarCIO and Isaac Sacolick.

Agility, Innovation, and Transformation are the three primary digital transformation core competencies that every StarCIO Digital Trailblazer must champion in their organizations. Learn more About Drive.


About the StarCIO Digital Trailblazer Community

StarCIO Digital Trailblazer Community

Revolutionizing traditional learning, networking, and advising experiences.

Visit the community


About StarCIO

StarCIO

About Isaac Sacolick

Isaac Sacolick

Author, 1,000+ articles, keynote speaker, Chief StarCIO Digital Trailblazer. Full bio


Driving Digital Newsletter

Driving Digital Newsletter

StarCIO Guides

StarCIO Agile Planning Guides

Digital Trailblazer

Digital Trailblazer by Isaac Sacolick

Driving Digital

Driving Digital by Isaac Sacolick

Driving Digital Standup

Driving Digital Standup

Coffee with Digital Trailblazers

StarCIO Coffee With Digital Trailblazers

Recognition

InfoWorld 2025 Judge
InfoWorld Technology of the Year 2024 Judge
Thinkers360 Top 10 in IT Leadership
Thinkers360 Top Agile Thought Leader
Thinkers360 Top DevOps Leader
Thinkers360 Top in Digital Transfomation
Thinkers360 Top in Analytics
Thinkers360 Top in Product Management

Discover more from StarCIO Digital Trailblazer Community

Subscribe now to keep reading and get access to the full archive.

Continue reading