Why is Agile Software Development So Great?
At some point around 8 years ago, all the software projects I was involved in suddenly changed to use Agile development approaches. At the time, I worked for a large multinational that had decided this was the future across the company, and change came rapidly to us, though the company had been experimenting with it for years before that.
As a software development manager, the associated changes were moderately impactful to my teams and the way we worked. And there was certainly some trepidation as we adapted to this new way of working. But looking back, I see few downsides and a lot of benefits. I'm fully onboard the Agile train, and wouldn't go back.
Before this change, a product release involved a great deal of planning, resource allocation and tradeoffs many months in advance of the planned release date. And despite all the best planning, a high percentage of the intended content was typically late. Being late also tended to squeeze testing cycles, and the result was never as great as we hoped when we set out.
Agile didn't arrive unexpectedly, and in fact one of my staff had tried hard to get me to consider implementing it more than 10 years before that point. The Agile Manifesto made sense to me, but the details of Extreme Programming were challenging enough to keep me from jumping in too quickly. But the core ideas simmered and became more and more sensible to me over time.
One of the interesting things about Agile is that there's less real work for a line manager, whos responsibility becomes more limited to staff development and less about project control. As a result, besides coaching the team members to become better agile practitioners, I have had the fortune to be able to take on two different agile roles:
- As a Product Owner, I've had the opportunity to translate the high-level requirements from the product management organization into Epics, User Stories, etc. and work with Scrum teams to prioritize the implementation. I found this to be a tremendously fulfilling role, constantly striving to deliver the most real value possible.
- As a Scrum Master, the fun has been in coaching the team to better and more consistent performance one sprint at a time. Looking back, the team is able to take ongoing pride in the evolution of their processes to deliver better and more consistently over time.
As an experienced development manager, I can now look back at the agile projects with great admiration. With careful adherence to the values of Lean and Agile, the result is a far more predictable engine for product delivery than any of my prior experiences. Not everything you hope will get delivered, but you have early warning that things are off track, and you have the ability to prioritize the really important things to ensure they do get delivered, regardless of other things going off plan.
Oh, and you have the opportunity to quickly pivot the team to a different plan if business demands it.