What are Agile Methodologies?
What exactly do software teams mean when they speak about agile thinking? Is agile the same as Scrum Theory, or Kanban? Where do various agile software tools fall in the conversation? For starters, Agile Methodology is the umbrella concept by which each framework and tool exist. In the following article, we’ll break down the essence of Agile, its brief history, and the specific frameworks to pay attention to when adopting its principles in your organization.
What are Agile Methodologies?
When it comes to processes and principles in software development, we can think of “agile” as our true north; the vascular system of a highly efficient, human-centric team. It is the umbrella term for all other processes. Further, agile ideals and principles are the environments by which DevOps functions, and through which both Scrum and Kanban methodologies unite.
Agile Methodology is guided by values and principles that certainly aim to produce an efficient, working product in short increments, but more so emphasize the importance of human capabilities, such as adaptability and communication, within an interdependent team.
Today, Agile Methodology has grown so popular that in 2020, 95% of respondents in the 15th State of Agile Report reported their organizations to practice Agile development methods.
Brief History of Agile
Agile Methodology came to life as a result of the failures of the Waterfall Method in combination with a growing and competitive market. The Waterfall Method is a very linear A to B process, in which business analysts would write the business strategy and pass it along to technologists, who translate the business lingo into data structures, user interfaces, and various nonfunctional requirements. Finally, this spec was handed off to developers (the final stop of the waterfall), who began coding and integration.
Indeed an initial revolution in the industry, the waterfall method’s well-intentioned process became a siloed, drawn-out frustration, especially when the Internet came to life and telecommunication brought in new possibilities. In 2001, growing tired of the top-down, machine-like approach in a rapidly changing market that was moving faster than they could, 17 technologists met in Utah and developed the Agile Manifesto we know today.
What is the Agile Manifesto?
The Agile Manifesto’s small corner of the internet has served as the true north for dozens of adapted methodologies, which we will cover below. In the manifesto, the authors break down agile into 4 values and twelve key principles. We’ve outlined each component below.
Four Main Values of Agile
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Twelve Key Principles of Agile
- The highest priority is satisfying the customer through early and continuous product delivery
- Deliver working software frequently, from a couple of weeks to months, though preferring the shorter timescale.
- Welcome changing requirements, even late in development
- Daily cross-team collaboration
- Provide the team a supportive environment, and trust them to self manage to get the job done
- The best architectures, requirements, and designs emerge from self-organizing teams.
- Face to face conversation is the most efficient way of conveying information (*This has shifted now to include video calls.)
- Working software is the primary measure of progress
- Agile processes promote sustainable development at a consistent pace.
- Continuous attention to technical excellence and good design enhances agility
- Keep it simple
- The team meets on how to adjust and tune for more efficiency
Agile Frameworks
Scrum
Scrum is an agile framework helping teams collaborate within allocated roles, rules and artifacts throughout a series of four events: Sprint Planning, Daily Standup, Iteration Review, and Retrospective. Scrum is highly adaptable per industry, making it one of the most popular choices for teams. It’s process is certainly structured in roles and timelines, but within each event, the team — coached by a Scrum Master — can choose the communication style or process that works for their industry or dynamic. In the spirit of continuous improvement, once teams get comfortable with the Scrum framework, they usually start breaking the “rules” and start to make changes to adjust to their own particular style. For example, a team at PagerDuty taps into theories in psychotherapeutics as a Retrospective model to better understand each other and how their product will interact with the world.
Kanban
Teams may turn to Kanban if they have a large influx of work order requests that vary in length and size. Like Scrum, Kanban is a framework for helping teams work together, but unlike Scrum, it’s process has no defined roles, offers the ability for change at any time, and encourages a continuous working cadence and product release. Brought to life through a combination of Jim Benson’s work and David Anderson, Kanban allows teams to “go with the flow;” the hippie (if there were one) of the group, if we may.
Kanban’s primary goals are to be highly visual and reduce work in progress (WIP) while encouraging continuous movement. The central modality is the kanban board, which divides the work into five components:
- Visual signals
- Columns
- Work-in-progress limits
- A commitment point
- A delivery point.
The team will then determine quality by various metrics.
Extreme Programming (XP)
Extreme programming (XP) is an agile software framework that aims to provide higher quality life for developers and a higher quality product. As Don Wells explains, XP is not meant for large teams; he recommends teams of 2-12 people for optimal success. Similar to the values within the Agile Manifesto, XP really taps into the human nature of teams with core values of communication, simplicity, feedback, courage, and respect, and a series of “core practices” that are versatile for the many kinds of team dynamics. For example, members participate in the Planning Game, in which they ideate various iterations and releases to steer the process (Similar to Sprint Planning in Scrum).
Dynamic Software Development Method (DSDM)
Created in 1994 after project managers using RAD (Rapid Application Development) sought more structure and discipline, DSDM is an agile framework focusing on the product life cycle. Its philosophy purports that “any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business.” Similar to Scrum, DSDM is an interactive process of eight principles and four principles: feasibility and business study, prototype iteration, design, and build iteration, and implementation. This may be the most rigid of the agile frameworks, as the timeboxes are highly fixed, though still changeable.
Adaptive Project Framework (APF)
In 2010, Robert K. Wysocki, a well-known strategic leader in the field of project management, published the book Adaptive Project Framework: Managing Complexity in the Face of Uncertainty in which he defined the AFP approach. Also known as Adaptive Project Management (APM), APF is an agile framework that allows teams to anticipate and intercept challenges and disruptions throughout its phased process. It takes on a “learn by doing” approach, similar to continuous delivery with a specific emphasis: adjustments are made in real-time according to communication teams have with stakeholders along the way, rather than “fixes” at the end. In fact, APF requires that the client or customer is involved in the process from start to finish.
The process commences through various phases including the version scope — Project Overview Statement (POS) which summarizes the CdS, outlines what will be achieved and how, and further lists potential challenges — a cycle plan, the cycle, the client checkpoint, and the version review.
Additional
Resources
Webinar
Incident Responder Training | Webinar | PagerDuty
Webinar
Don't Be a Bystander, Be an Incident Commander