The Care and Feeding of Software: Planning for Code Maintenance
Code doesn't change by itself, but the world around it does.Read More
Author: Richard Tyre
Change is an inconvenient reality for complex projects. Teams learn new things, assumptions fall apart, and priorities shift. Success requires quick and frequent adjustments as teams discover new information. In other words, agility.
This is the foundation of Agile project management – the backbone of software development for the past two decades. Agile is a powerful framework to support management through complexity. Implemented correctly, it can transform how businesses operate, however there is no one way to implement Agile.
Implementations, in fact, often bring chaos if done without regard to the distinctive aspects of the organization. Every organization has different people, different goals, and different cultures. Successful implementation requires close attention to these particularities.
Agile is a broad term for management approaches that embrace the Agile Manifesto. The principles are broad, perhaps common sense, yet sadly ignored in too many organizations.
One of Agile’s biggest advantages is its ability to adapt to change. The waterfall approach – named for the cascading tasks in a Gantt chart – sets the target at the start of the project and outlines tasks to reach that target. The problem is teams know the least about a project at its start. Targets placed, and assumptions made early, often prove wrong. With complex projects, new information inevitably forces change. So why pretend otherwise and base a project’s trajectory on assumptions everyone knows will fall apart?
Agile approaches break a project into short intervals with a software or prototype release often coming at the end of each interval, or sprint. Decision-makers then have a chance to interact with the prototype, offer feedback, and reexamine the project priorities. The approach isn’t faster than a typical waterfall approach; rather it allows for the inevitable change and provides structure to help manage it. A large benefit of Agile is that it helps uncover challenges sooner and keeps the team focused in the right direction.
When investing in large projects, it’s critical that the project team stays focused on the desired outcomes to bring value and justify the investment. Agile provides the guard rails to keep a project focused on what matters.
Agile emerged to counter the constrictive orthodoxy of traditional project management, where strict processes leach time, value, and morale. Yet, two decades on, many self-described agile practitioners are applying Agile with the same rigid stringency the movement opposes. This is a mistake.
Successful Agile implementations should focus on results – not blind adherence to processes. The underlying concepts should remain consistent, but implementation can vary greatly. A one-size-fits-all approach to Agile means it doesn’t fit anyone very well.
Sudden, drastic shifts in an organization often lead to confusion that can derail projects. The best way to implement Agile in an organization is through iterations – small steps in the right direction. It’s an agile approach to Agile.
When complexity grows with every passing year, your organization’s ability to adapt could be what defines its future. Agile is a powerful ally in achieving this.
Richard Tyre is a Certified Scrum Master who enables RevGen clients to adopt agile in a manner uniquely suited to drive outcomes for their business.