Agile in a Nutshell — Agile Project Management (Part 1)
Welcome to the first part of my Agile Project Management summary. In this reading, we’ll learn the fundamentals of Agile, including its history, values, and principles. Also, we’ll discover when and why to adopt an Agile mindset and an overview of the four popular Agile methodologies: XP, Kanban, Lean, & Scrum.
The references I used in this summary are from Agile Project Management by Google, Introduction to Software Product Management by UAlberta, Agile by Atlassian, and other websites.
Keep in mind that the summary presented in this article is based on my subjective interpretation and knowledge gained from the references above and do not necessarily reflect those of the organization.
“…the agile movement in software is part of a larger movement towards more humane and dynamic workplaces in the 21st century.”
— Rowan Bunning
What is Agile?
“Agile” refers to flexibility and the willingness and ability to change and adapt. It is a mindset of dealing with and succeeding in an uncertain and turbulent environment.
But what exactly is Agile as it relates to project management? Agile project management is an iterative project and team management approach based on the Agile Manifesto. Projects that adopt Agile project management take an iterative approach, which means the project processes are repeated many times during the project’s life cycle. During each iteration, the team takes a subset of all the project’s activities and does all the work required to complete that subset of activities. This iterative approach enables the project to move quickly, making it more adaptive to change.
History of Agile
On February 11–13, 2001, at The Lodge at Snowbird Ski Resort in the Wasatch mountains of Utah, seventeen software developers met to talk, ski, and discuss the better ways to manage the software development process at that time. These seventeen software developers are Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherland, Ken Schwaber, Jim Highsmith, Alistair Cockburn, Robert C. Martin, Mike Beedle, Arie van Bennekum, Martin Fowler, James Grenning, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, and Steve Mellor. They agreed that companies were so focused on planning and documenting the project that they lost sight of what mattered: Pleasing their customers.
These leaders combined several lightweight processes to create a set of values and principles we know today as the Agile Manifesto. They intended it to guide others on what they believe matters when developing software that would improve upon and transform existing software development processes, which is keeping the process flexible and focusing on people — both the team and the users — over the end products or deliverables.
Agile Values and Principles
There are four values and 12 principles of the Agile Manifesto that inform the why, how, and what of Agile project management planning and processes.
Four Agile values
- Individuals and interactions over processes and tools
Communicating with each other and using many processes and tools to force things to happen in a certain way. - Working software over comprehensive documentation
Spending more time on things that create value rather than debating, writing, or reviewing documents for longer than necessary. - Customer collaboration over contract negotiation
Having the freedom to collaborate with customers early and often, rather than waiting out the process of negotiating contract terms to make a few changes or request resources. - Responding to change by following a plan
Acknowledging that change is inevitable. If we embrace it, we win.
The Agile philosophy values the items on the left more than those on the right. This is not to suggest that you ignore processes and tools, comprehensive documentation, contract negotiation, or following a plan. It is merely that the items on the left are the more important things to focus on.
Twelve Principles of Agile
To make it easier to learn and remember, we can group the 12 principles into four categories. They are Value delivery, Business Collaboration, Team Culture, and Retrospectives.
Group 1: Value delivery — Deliver highly valuable products to the customer
Group 2: Business collaboration — collaborate with their business partners and stakeholders to create business value
Group 3: Team Culture — Create and maintain the proper interpersonal and team dynamics to deliver value for the customers and the business
Group 4: Retrospectives — learn to increase the performance of an organization and business continuously
When And Why To Adopt an Agile Mindset
When we start on a new project, it’s helpful to examine the environment and conditions in which the project exists before deciding the best approach. Remember, Agile is about delivering value in a world with high degrees of uncertainty, risk, and competition. It works best in industries or projects susceptible to or encouraging change and uncertainty. Then how do we know when and why to adopt an Agile mindset? This is where VUCA comes to the rescue.
VUCA is an acronym that defines the conditions that affect organizations in a changing and complex world. The U.S. Army War College first introduced it to describe the more volatile, uncertain, complex, and ambiguous multilateral world perceived as resulting from the end of the Cold War. VUCA stands for:
- Volatile — the rate of change and churn in a business or situation.
- Uncertain — the lack of predictability or high potential for surprise.
- Complex — the high number of interrelated forces, issues, organizations, and factors that would influence the project.
- Ambiguous — the possibility of misunderstanding the conditions and root causes of events or circumstances.
Interestingly, VUCA can be adapted for the business world to help factor in the forces of change and uncertainty in our projects and businesses. We can apply the concept of VUCA as a tool for determining how best to approach projects. If the project environment has high volatility, uncertainty, complexity, and ambiguity, then it’s a good sign that we should consider an Agile approach. Understanding these concepts will help with decision-making in all kinds of projects.
Popular Agile Methodologies
Extreme Programming (XP)
Extreme Programming (XP) is an Agile methodology consisting of effective development practices to achieve client satisfaction. It was named that because it took traditional software development activities to an extreme level. The practices focus on constantly delivering software, responding to change, effective teamwork, and self-organization. These practices follow the principles outlined in the Agile Manifesto. Besides encouraging simplicity, communication, and feedback, XP fosters respect and courage.
To apply XP, there are 12 practices to follow:
Kanban (カンバン)
Kanban is a methodology that can be applied straightforwardly or used to drive the entire project. It involves a technique to organize and track project progress visually, which is widely used even outside Agile or Lean software development. Kanban is a Japanese word that is loosely translated as board or signboard. So, the Kanban technique uses a board with a set of columns labeled by the stages of completion to maximize efficiency called flow, which is a core principle of Kanban.
Lean
One Agile methodology that has gained increasing attention is Lean Software Development. Its origin is inspired by the manufacturing industry, where Lean production grew out of the “Toyota Production System.” Toyota’s approach was used effectively to reduce waste in the production process and increase the quality of their vehicles.
Lean methodology consists of five principles that serve as a recipe for improving project outcomes. They are:
- Define value.
- Map value stream.
- Create flow.
- Establish pull.
- Pursue perfection.
Scrum
Scrum is an Agile methodology consisting of lightweight management practices with relatively little overhead. Scrum uses an approach that is both iterative and incremental, with a set of meetings, tools, and roles that work in concert to help teams structure and manage their work. Its practices are simple to understand and can be applied to all kinds of teamwork. This is one of the reasons Scrum is the most popular agile methodology.
Scrum is based on three pillars:
- Transparency.
- Inspection.
- Adaptation.
Congrats🎉, you’ve finished the first part of the Agile Project Management summary. I hope this will be helpful for you to understand Agile😁. Next up, we’ll deep dive into the most popular agile methodologies, Scrum.
Thank you for reading! If you found this article helpful, kindly share it with your friends and follow my profile for future updates. Your support is much appreciated! PS: It would mean even more if you donate a pizza 🍕 here. ✌️