CTO Compass series
- Welcome to The CTO Compass
- Solving Problems with Precision: The Science of Structured Thinking
- Are you response-able?
- Keep Score and Watch Your Performance Soar
- The Importance of Software Maintenance For Successful Software
- How To Make Good Contracts With Yourself
- Does your business have an operating system?
- 🧹 Messy Code, Messy Kitchen – It’s time to do the washing up
- How to be 37 times better by this time next year
- Good Timber Does Not Grow With Ease
- Create a compelling vision for your organisation
- Why embracing Tsundoku will make you more insightful and a more interesting person
- The Maintenance Burden: What You Don’t See When Adding New Features
- 8 tips for improving your decision-making
- How to fix your time and attention leaks
- Faking It Until You Make It: Why You Don’t Have to Automate Everything (Yet)
- How to turn Positive Thinking into Positive Action
- How to take advantage of alignable differences to make change more acceptable
- Your chair may be trying to kill you – and what to do about it
- How to craft your day for maximum focus
- 1000 seconds to boost your focus, energy and well-being
Imagine walking into a messy kitchen with piles of dirty pots, pans, plates, and cutlery strewn across all the available surfaces.
The bin is overflowing, and you’re sure you just saw some creatures scuttle across the floor. If this were the state of a commercial kitchen in a restaurant, the health authorities would have shut them down long ago.
Now imagine you’ve been tasked with cooking a gourmet meal in this kitchen. You’ve got your ingredients in hand, you know what you need to cook, and you informed your guests when to arrive based on how long the meals you’ve chosen will take to cook.
That feeling you’ve got in the pit of your stomach right now? That’s how software developers feel way more often than they’d like when encountering a codebase that hasn’t been well-maintained.
Technical Debt is a common term software folk use when describing this phenomenon to less technical stakeholders, but it’s often misunderstood. While the debt analogy is good when you’re communicating with people who understand the financial uses of debt, many people see it as some kind of excuse or as an exercise in shaming. The term “debt” has negative connotations and can lead to resistance and a lack of progress. Many business people hear “mistakes”, “delay”, and “no progress” when they hear the term.
At Foxsoft, when auditing a codebase, it’s easy to assume that the previous developers weren’t very good, but we ultimately don’t know the circumstances around the code. They may have brought some of it on themselves through a lack of knowledge, expertise or process, but most often, it was because of external pressures.
“We just need to get these features shipped now; we can come back later and tidy up” “We don’t have the budget for that. Can you do a quick fix?”
A better term I came across recently, which more accurately conveys the message, is friction. In the same way that a messy kitchen doesn’t stop you from cooking, it adds friction to the process. You can still move forward, but the effort required is more significant.
While this directly relates to running successful software projects, the same idea applies more widely to the rest of our lives.
This great quote from Stuart Wilde in Infinite Self captures it perfectly:
“Messy surroundings and an untidy life reflect a weakened metaphysical and psychological state. If you are powerful, you will dominate your life, you will find time to clean up and order things, and you will want to do that as a part of your personal discipline. Mess is the external manifestation of the ego’s disquiet and laziness.” Stuart Wilde
To show up powerfully in all aspects of our work and our relationships with ourselves and those around us requires us to master the fundamentals through discipline.
Remove friction through discipline. In the case of software development, the solution is simple but challenging: constant refactoring by standing firm in a river of flexibility to keep in balance the desire to deliver value quickly but not allowing the level of quality to drop.
Think about where else you experience friction. Is there a physical mess that grates on your psyche or friction in essential processes that cause your team’s output to be lower than it could be?
This week, consider using your Thinking Time to identify an area of friction in your life and commit to reducing it through daily practice, and through that process, you will become a little more powerful.
⚡️ Thinking Time ⚡️
- What areas of your life have more friction than you’d like?
- What’s one area of your life that could use some dominating as a simple, metaphorical representation of you stepping into the next-best version of yourself? Can you make that practice part of your personal discipline?