I've taken the fairly linear progression through my career - from junior to dev manager. I've also worked as a Scrum Master across multiple squads. This journey has given me perspective on the challenges teams face at different levels and the importance of understanding both the technical and human sides of software development.
I put empathy first in leadership. I focus on motivating people and encouraging them to have agency and take ownership of their situations. I'm a strong believer in sheltering development teams from other departments—protecting them from constant interruptions, scope changes, and political pressures that can derail focussed development work.
I joined a struggling development project in a leadership role, tasked with bringing it back within budget and timeframe. I was told the problem was that the development team couldn't keep their commitments.
In reality, the issues were clear. A scattergun approach to feature development meant everything was in progress but nothing was finished. Scope creep and specification changes were constant. Mounting deadline pressure meant unit tests were no longer being developed and existing ones had quickly rotted into uselessness.
But what caught me off guard was the complete disenfranchisement of the development team. Some developers were at their breaking point, and their velocity had dropped so drastically that a six-day work week was delivering basically nothing. The loose development process, lack of protection from wider business pressures, and continued tolerance of lazy team members had pushed the good developers to their limits.
Over time, the dev process was tightened up, a firmer hand pushed back on scope creep, the bad developers were fired, and the good ones went back to a five-day week. The transformation was remarkable — not just in delivery metrics, but in team morale and code quality.