This is about Legacy code. About how software becomes complex and hard to maintain over time. We all know of code bases like that, but do we understand what is stopping our teams from improving the code?In my work on many systems over a 4 decade-long career, I’ve found that very often, there are blockers that are actively getting in the way. Finding the blockers includes addressing low trust working environments and the fear of making mistakes, traveling deep into the architecture of the code (with the benefit of hindsight), and looking at the infrastructure, tools and skills available to the team.This talk will focus on systemic issues in Legacy systems, and how reframing the problem with a Systems Thinking lens can show us how the systems are getting in the way of letting good people do good work.We will look at strategies for dealing with system issues, and try to face the truth of why, over time, all code bases tend towards the unmaintainable big ball of mud.I always believe that developers want to do a good job, and if they’re being ground down and unable to fix the code, we should look for reasons beyond blaming the developers.