Agile Project Management
Seshne Govender PgMP, PMP, DASM, DASSM, PDM, BSc Eng
Founder and Director @ Fundamental Project Management | Project Management Professional (PMP)
Today's marketplace is moving rapidly as businesses compete for market share. To remain relevant and a profit-making enterprise, the business should be able to respond to changes in the marketplace with agility. This context has led to many organizations embracing the Agile Project Management Methodology. Agile project management is designed to be an elastic and adaptive method that enables teams to respond quickly to requirements or customer needs changes.?
How Agile Started: The Agile Manifesto
In February 2001, 17 people assembled at the Snowbird Ski Resort in the mountains of Salt Lake City, Utah, USA. They wanted to find better ways to deliver software projects focusing on what matters, i.e., pleasing customers. What emerged from these discussions is a 68-word document called the Agile Manifesto which is seen below:
We are uncovering better ways of developing software by doing it and helping others do it.?
Through this work, we have come to value:
? Individuals and interactions over processes and tools
? Working software over comprehensive documentation
? Customer collaboration over contract negotiation
? Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more. The above has revolutionized many industries and put pressure on traditional landing projects, which were more document and planning-heavy and delivered value to customers. Although the Agile methodology was originally aimed at software development projects, it is now used across many industries.
Incorporating Agile in Daily Life: The Principles of Agile
Agile's principles vary significantly from traditional practices, so a mindset shift is required to embrace and get value from Agile fully. The principles of Agile must be lived daily to achieve agility. There are 12 Agile Principles, and these are described below:
? Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
? Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
? Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
? Business people and developers must work together daily throughout the project.
? Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
? The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
? Working software is the primary measure of progress.
? Agile process promotes sustainable development. The Sponsors, developers, and users should be able to maintain a constant pace indefinitely.
? Continuous attention to technical excellence and good design enhances agility.
? Simplicity – the art of maximizing the amount of work not done – is essential.
? The best architectures, requirements, and designs emerge from self-organizing teams.
? At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile Project Management Frameworks
Now that we understand the origin of Agile and its guiding principles, we can explore the different frameworks that operate with this mindset. There are various frameworks and methodologies, but we will only cover the most popular ones here. For each, the key components and principles are listed.?
Methodology 1: Scrum?
Scrum is the most widespread of the Agile Methodologies. It is widely used in software development but can be applied to various industries. This methodology emphasizes iterative and incremental development, collaboration, and flexibility. The key components and principles of Scrum are listed below:
? The Scrum team includes the Product Owner, Scrum Master, and Development Team. The Scrum team is a self-organizing, cross-functional group working to deliver the product increment.
? The Product Owner holds the Product Backlog, a prioritized indexing of all the features, enhancements, and bug fixes that must be addressed in the product.?
? The team works in Sprints, 2 to 4 weeks timeboxed iterations.
? At the commencement of each Sprint, the team conducts a Sprint Planning meeting. They select items from the Product Backlog to work on during the Sprint. These selected items are called the Sprint Backlog.?
? During the Sprint, the Development Team works on the Sprint Backlog, aiming to deliver a potentially shippable product increment.?
? Every day during the Sprint, Daily Scrum meetings which are short (usually 15 minutes), are held. Each team member responds to three questions: What have I accomplished since the last meeting? What will I work on until the next meeting? Are there any obstacles blocking my progress?
? At the ending stage of each Sprint, a Sprint Review takes place. The team shows the completed work to the stakeholders, gathers feedback and discusses potential changes or adaptations. The Product Owner updates the Product Backlog based on the insights gained during the review.
? After the Sprint Review, the team conducts a Sprint Retrospective. They reflect on their processes, collaboration, and overall performance during the Sprint. The goal is to identify what went well and what could be improved and create an action plan for implementing those improvements in the next Sprint.
? To track progress and manage their work, A burndown chart is used. It is a graphical representation of the work remaining versus time.?
Methodology 2: Kanban
Kanban is a methodology that focuses on visualizing work, limiting work in progress (WIP), and optimizing flow. It originated in manufacturing but has been adapted for software development to improve productivity and efficiency. It provides a clear and transparent way to manage work, making it easier to identify and address bottlenecks and deliver high-quality software.
The key elements of the Kanban methodology are described below:
? The Kanban board visually represents the entire workflow, enabling the team to see the status of each work item. The board typically consists of columns representing different stages of work, such as "To Do," "In Progress," and "Done." Each work item, often represented by a card or sticky note, is placed on the board according to its status. It helps team members understand their priorities and provides transparency across the project.
? Kanban emphasizes limiting the number of tasks simultaneously in progress. This aspect prevents overloading team members and helps maintain focus and efficiency.?
? The aim is to optimize the flow of work through the system. By visualizing the workflow and limiting WIP, teams can identify and address bottlenecks that slow progress. The focus is on reducing cycle time and improving the overall delivery speed.
? Continuous improvement using feedback loops is encouraged. Teams regularly review their Kanban board and analyze metrics like lead time and throughput to identify areas for improvement. These insights are used to refine the workflow and adjust for greater efficiency.
? A pull-based system is used, where work is pulled into the system only when capacity is available. This move prevents work overloading and ensures that team members can focus on completing tasks before starting new ones.
? Kanban promotes collaboration and encourages teams to work together to solve problems and improve the process. It emphasizes open communication, shared responsibilities, and cross-functional collaboration.
? This methodology emphasizes delivering value incrementally and frequently. As work items move through the workflow, completed items are delivered to the customer or end-users, enabling faster feedback and iterative development.
Methodology 3: Lean?
The Lean methodology aims to maximize value while minimizing waste. It focuses on creating an efficient and streamlined development process. The key concepts and principles are described below:
? Lean strongly emphasizes delivering value to the customer. By identifying and understanding the customer's needs, preferences, and desired outcomes, teams can prioritize work that directly contributes to customer satisfaction.
? The end-to-end process of delivering value to customers (the value stream) is visualized and analyzed to identify areas of waste and inefficiency. Common types of waste include overproduction, unnecessary waiting, excessive inventory, defects, and unnecessary process steps. These are eliminated to optimize the development process.
? Teams are encouraged to regularly evaluate their processes, identify bottlenecks, and make incremental changes to increase efficiency and quality. (Continuous improvement)
? Work is done in small batches to reduce lead time and improve feedback cycles. By breaking down work into smaller, manageable units, teams can accelerate the flow of value and respond quickly to changes or feedback.
? A pull-based system rather than a push-based system is favored. Instead of pushing work onto team members based on schedules or assumptions, work is pulled by team members when they have the capacity and resources available. This aspect helps maintain a balanced workflow and reduces overburdening.
? Visual tools such as Kanban boards, task boards, and information radiators provide a clear and transparent view of work in progress, bottlenecks, and overall progress.
? Team members are encouraged to take ownership of their work, make decisions, and collaborate effectively. By empowering teams, Lean methodology fosters creativity, innovation, and accountability.
Methodology 4: Extreme Programming (XP)?
Extreme Programming (XP) is an Agile software development method that concentrates on producing high-quality software collaboratively and flexibly. XP emphasizes customer satisfaction, continuous feedback, and a disciplined approach to development.?
The key principles are described below:
? XP emphasizes close collaboration with customers or stakeholders throughout the development process. Customers actively participate in defining requirements, providing feedback, and prioritizing features.
? It follows an iterative approach where development occurs in short cycles called iterations or sprints. Each iteration typically lasts for a few weeks and results in a working increment of the software. This aspect allows for early and frequent delivery of value to the customer.
? Small, frequent releases of software are encouraged. This move helps gather feedback, validate assumptions, and adapt to changing requirements quickly. Small releases also reduce the risk associated with larger releases.
? Requirements and priorities can change throughout a project. Instead of resisting change, XP embraces and incorporates it into the development process. Requirements are continuously refined and reprioritized based on customer feedback and evolving needs.
? XP encourages pair programming, where two developers work together on a single task or code. This aspect promotes collaboration and knowledge sharing and improves code quality through constant code review.
? Test-driven development (TDD) is a fundamental practice in XP. It involves writing tests before writing the corresponding code. This approach ensures that code is thoroughly tested and reliable. The tests serve as documentation and provide a safety net for making changes in the future.
? Recurring integration of code modifications into a shared codebase is undertaken. Developers integrate their changes daily, allowing early detection and resolution of integration issues.
? XP promotes a sustainable pace of work, avoiding overworking and burnout. It recognizes the importance of a healthy work-life balance and emphasizes the long-term productivity and well-being of the team.
? The entire team shares ownership and responsibility for the codebase. Any team member can work on any part of the system, which promotes collective code ownership and knowledge sharing, reducing the bottlenecks.
? The team reflects on their practices, identifies areas for improvement, and adjusts to enhance their productivity and quality.
In conclusion, Agile Project Management has emerged as a response to the fast-paced and dynamic business environment. By embracing Agile principles and utilizing methodologies like Scrum, Kanban, Lean, and XP, teams can adapt quickly to changing requirements, collaborate effectively, and deliver value to customers incrementally and iteratively. Agile offers a more flexible and adaptive approach to project management, enabling businesses to stay competitive and meet customer needs effectively.
?