Project Management with Agile Principles
Early adopters of agile development were often small, self-contained teams working on small, self-contained projects. Agile project management promotes open communication, collaboration, adaptation, and trust amongst team members. The adopters proved the agile model can work, to the joy and improvement of software makers around the world. More recently, larger organizations are scaling agile beyond single teams or projects and seeking ways to apply it to whole programs. Agile has spread beyond development teams to include IT, marketing, business development, and more.
- What is agile project management?
Agile project management is an iterative approach to delivering a project, which focuses on continuous releases that incorporate customer feedback. The ability to adjust during each iteration promotes velocity and adaptability. This approach is different from a linear project management approach, which follows a set path with limited deviation. Agile project management is also a cornerstone of DevOps practices, where development and operations teams work collaboratively.
- Agile principles
An agile project is segmented into several incremental steps that include regular feedback intervals. A project requirement is segmented into smaller pieces, which are then prioritized by importance. Promotes collaboration, especially with the customer.
Adjusts at regular intervals to ensure a customer’s needs are met integrated planning with execution, which allows a team to effectively respond to changing requirements
- What to consider when moving to agile
Moving to agile can be challenging, especially when a team or organization is rooted in a more traditional project management approach. Moving to agile practices may require a number of process changes, especially when adopting a DevOps approach, where development and operations teams work closely together to develop and maintain software. When adopting agile principles, a team and the stakeholders must embrace two important concepts:
- The product owner’s focus is to optimize the value of the team’s output. The team relies on the product owner to prioritize the most important work first.
- The development team can only accept work that it has the capacity for. The product owner doesn’t push work to the team or commit them to arbitrary deadlines. The development team pulls work from the program’s backlog as it can accept new work. Let’s explore the mechanisms agile programs use to organize, run, and structure work in an iterative way.
A product roadmap outlines how a product or solution develops over time. A roadmap in agile development provides important context that empowers teams to reach both incremental and project-wide goals. Roadmaps are composed of initiatives, which are large areas of functionality, and include timelines that communicate when a feature will be available. As the work proceeds and teams learn more, it’s accepted that the roadmap will change to reflect that new information – possibly in subtle or broad ways. The goal is to keep the roadmap focused on current conditions that impact the project and long-term goals in order to effectively work with stakeholders and respond to the competitive landscape.
Each initiative in the roadmap breaks down into a set of requirements. Agile requirements are lightweight descriptions of required functionality, rather than the 100-page documents associated with traditional projects. They evolve over time and capitalize on the team’s shared understanding of the customer and the desired product. Agile requirements remain lean while everyone on the team develops a shared understanding via ongoing conversation and collaboration. Only when implementation is about to begin are they fleshed out with full details.
The backlog sets the priorities for the agile program. The team includes all work items in the backlog: new features, bugs, enhancements, technical or architectural tasks, etc. The product owner prioritizes the work on the backlog for the engineering team. The development team then uses the prioritized backlog as its single source of truth for what work needs to be done.
- Agile metrics
Agile teams thrive on metrics. Work in progress (WIP) limits keep the team, and the business focused on delivering the highest priority work. Graphs like burndown charts and control charts help the team predict their delivery cadence, and continuous flow diagrams help identify bottlenecks. These metrics and artifacts keep everyone focused on the big goals and boost confidence in the team’s ability to deliver future work.
- Agile runs on trust
Agile processes cannot function without a high level of trust amongst team members and therefore create trust. It requires candor to have difficult conversations regarding what’s right for the program and the product. Because conversations happen at regular intervals, ideas and concerns are regularly expressed. That means team members need to be confident in each other’s ability (and willingness) to execute on the decisions made during those conversations.
- Waterfall versus agile
Agile was first adopted by software teams, who moved from the traditional, sequential waterfall approach to a method that garnered consistent feedback and adjustment throughout the development lifecycle.
The waterfall project management approach entails a clearly defined sequence of execution with project phases that do not advance until a phase receives final approval. Once a phase is completed, it can be difficult and costly to revisit a previous stage. Agile teams may follow a similar sequence yet do so in smaller increments with regular feedback loops.
The waterfall project management approach follows a linear, sequential formula. It works well for work that has predictable, recurring processes, yet it can leave development teams flat-footed and unable to adjust faster than a competitor.
A single missed deadline or scope change during a waterfall project can cause outsized impacts on subsequent releases. Additionally, when a team is fully focused on the next phase of work, resolving technical debt or fixing bugs can be painful if the team is fully allocated to new feature work and always pressing forward to the next stage.
In conclusion, Agile project management is an innovative approach not only for software projects but for projects of all stripes. By providing the flexibility to respond to change during the development lifecycle, agile allows teams to ship higher-quality products that meet customers’ needs. Agile empowers teams, builds accountability, and encourages innovation while promoting continuous improvement. Agile gives you the ability to respond to change without going off the rails. And that’s great for any program.