I recently penned a post titled “Stop Hiding Behind Complexity and Start Delivering Continuously,” and I want to expand on that idea here. The crux of my argument is straightforward: if anyone in your organisation claims that your software is too big or too complex for continuous delivery, they are either lying, being lazy, or simply don’t know how to make it happen. More often than not, it’s the latter, they just don’t understand how to transition from their outdated, cumbersome systems to a more agile, continuous delivery model.
The Path to Continuous Delivery
Let’s be clear: achieving continuous delivery is not an insurmountable challenge. It requires a genuine organisational commitment to improving both the quality of the product and the speed at which features are delivered. This isn’t about throwing more people at the problem; it’s about getting your product into shape.
- Assess Your Product: If your software resembles a lumbering, 500-pound gorilla, it’s time to rethink your approach. A bloated product cannot adapt quickly to new demands.
- Commit to Change: Just as you would if you were trying to get fit, you need to commit to changing your software’s architecture and processes. This means investing time and effort into making your product leaner and more responsive.
Drawing Parallels with Personal Fitness
Consider your own health. If you aspire to achieve a physique like Hugh Jackman in Wolverine, you wouldn’t expect to get there without significant lifestyle changes. You’d need to:
- Revamp Your Diet: Eating healthier is crucial.
- Exercise Regularly: A consistent workout routine is essential.
- Adjust Your Habits: You might need to change your daily schedule to accommodate your new lifestyle.
The same principles apply to your software. If you want it to be agile and capable of rapid feature delivery, you must put in the work to ensure it reaches that state.
The Challenge of Legacy Systems
I often see organisations, particularly in industries like aviation, struggle with legacy systems. These systems are like old mainframes that have been patched over the years but never truly updated. For instance, I’ve heard stories about American Airlines having to pull retired engineers out of retirement homes to fix their outdated systems. This is a clear sign of a knowledge gap and a lack of organisational will to modernise.
- Recognise the Risks: When systems are neglected, they become ticking time bombs. The recent outages at major airlines highlight this risk. They often stem from a failure to maintain and upgrade core systems, leading to catastrophic failures when external issues arise.
- Invest in Resilience: To avoid these pitfalls, organisations must invest in robust application lifecycle management. This means not just building a system and walking away but continuously improving and maintaining it.
The Importance of Continuous Improvement
The reality is that software development is an ongoing process. Just as maintaining fitness is easier than achieving it, keeping your software in good shape is less challenging than getting it there in the first place. However, it still requires consistent effort and investment.
- Learn from Others: Take a page from the Windows team’s playbook. They transformed their delivery process from a six-year cycle to continuous delivery by addressing long-standing issues in their codebase. This required a commitment to change and a willingness to tackle the technical debt that had accumulated over decades.
The Call to Action
So, what’s the takeaway? No matter how complex your systems may seem, you can move towards continuous delivery. It’s not just an engineering problem; it’s a cultural one.
- Foster Organisational Will: Leaders must recognise the value of investing in their systems. This means allocating resources, time, effort, and money, to fix existing problems and prevent future ones.
- Don’t Ignore the Signals: If you notice signs of trouble, such as frequent outages or slow delivery times, take them seriously. These are indicators that something needs to change.
In conclusion, the complexity of your software should not be an excuse for stagnation. With the right mindset and commitment, you can overcome these challenges and achieve a state of continuous delivery. Don’t hide behind complexity, embrace the work required to simplify and improve your systems. The rewards will be well worth the effort.
Smart Classifications
Each classification [Concepts, Categories, & Tags] was assigned using AI-powered semantic analysis and scored across relevance, depth, and alignment. Final decisions? Still human. Always traceable. Hover to see how it applies.
What to read next
Stop Hiding Behind Complexity and Start Delivering Continuously
Continuous delivery is achievable for any software, regardless of complexity. Success depends on investment in automation, quality, and …
Why Organisations Believe Their Software Is Too Complex for CD
Many organisations cite software complexity as a barrier to continuous delivery, but real obstacles are technical debt and lack of …
Rethinking Continuous Delivery: Why Best Practices Don't Exist in Complex Environments
Explores why fixed best practices don't suit complex continuous delivery, highlighting adaptive approaches like audience-based delivery, …
From Chaos to Clarity: My Journey Through DevOps and the Three Key Challenges to Overcome
Explores a developer’s transition to DevOps, highlighting key challenges: cultural change, toolchain automation, and continuous learning for …
Unmasking Agile: How to Spot Genuine Practices Amidst the Myths
Learn how to identify authentic agile practices, spot common myths, and understand cultural barriers that hinder true agility in modern …
Unlocking the True Power of Continuous Delivery: How Automation Transforms Software Development
Explains how automation in continuous delivery improves software reliability, reduces risk, and enables faster, safer deployments through …
Detecting agile theatre with real delivery signals
Why Most Companies Operating Models Fail in Dynamic Markets
A concise comparison of Predictive and Adaptive Operating Models, explaining why traditional structures fail in dynamic markets and how …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
Why Most Companies Operating Models Fail in Dynamic Markets
A concise comparison of Predictive and Adaptive Operating Models, explaining why traditional structures fail in dynamic markets and how …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Kendall Guide - A System of Work for AI Adoption
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …
Detecting agile theatre with real delivery signals
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …