Back to Workbench

Agile Frameworks

Different from traditional waterfall-style project management, agile frameworks are more suitable for environments with a high degree of uncertainties and fast-paced innovation and, hence, are more appropriate for software projects.

Dealing with Uncertainties

Agile refers to a practice, specifically in software development, involving the discovery of requirements and the development of solutions collaboratively with cross-functional teams working with customers. Agile advocates adaptive planning, evolutionary approaches, and early deliveries with continuous improvements such that it is possible to respond to changes quickly. There is no such thing as a prescribed linear plan as it exists for waterfall methods.

Agile Manifesto

The Agile Manifesto sets the foundation for any agile practices with just 4 core values:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Specifically for agile software projects, these four core values are refined with 12 guiding principles:

  • 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 for a 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 do the job.

  • Face-to-face conversation is the most efficient and effective method of conveying information to and within a development team.

  • Working software is the primary measure of progress.

  • Agile processes promote 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 work not done — is essential.

  • The best architectures, requirements, and designs emerge from self-organizing teams.

  • At regular intervals, the team reflects on becoming more effective, then tunes and adjusts its behavior accordingly.

Obviously, these principles stand in stark contrast to waterfall-based project management.

Scrum

Using an agile mindset, Scrum is one of the most popular frameworks for developing products (specifically software). Scrum can be summarized as simple as:

  • Let the Product Owner manage a Product Backlog with prioritized items to work on

  • Let the Scrum Team work on these items during a time-boxed cycle called Sprint, which is typically 2-4 weeks

  • Let the Scrum Team and stakeholders inspect the results and plan the next sprint

  • Repeat

The team shall be cross-functional and no larger than can be fed by two pizzas (as made popular by Jeff Bezos of Amazon). In reality, there are a few more artifacts (such as backlog items) and ceremonies (such as Sprint Refinements, Sprint Planning, Daily Scrums, Sprint Reviews, and Sprint Retrospectives). However, still, it’s a relatively easy and lightweight framework:

What is Scrum | Scrum.org
What is Scrum | Scrum.org

The name is borrowed from rugby, where a scrum is a strong formation of players. If you would like more information, please check one of the originals by Jeff Sutherland.

While relatively straightforward, Scrum still imposes some challenges:

  • Firstly, it often requires a cultural change in the organization, for example, to trust the team, to empower the Product Owner, and not interfere during a sprint — even as an executive person.

  • Secondly, while it sounds great for small teams, scalability issues arise for larger organizations when many of these two pizza teams need to be aligned.

Kanban

Kanban is another agile, lean method to manage and improve work across systems. It doesn’t apply time-boxed cycles, such as Scrum, but instead aims to balance demands with capacity and, thereby, handle bottlenecks.

A Kanban board is used to visualize the work of the team:

  • It consists of various columns, each representing a certain phase or stage of a work item, from adding it as an open to-do to completion.

  • Work in progress (WIP) is visualized by moving work items from left to right.

  • For each column (or stage), a WIP limit is applied, defining the maximum number of items allowed in that phase.

Kanban Board | By Jennifer Falco | Wikipedia
Kanban Board | By Jennifer Falco | Wikipedia

Contrary to Scrum, when work items are pushed to the team in Sprint Planning and the goal is to optimize velocity as measured in items delivered during a Sprint, work items are pulled from one stage to another based on the capacity limits and the main objective is to shorten lead times, i.e. the average time it needs to complete a task.

Kanban allows the application of agile principles even in environments when Sprint Planning isn’t appropriate, such as in an IT help desk when a customer calls and tickets arrive unpredictably. They might need resolution faster than a Sprint iteration.

Scaled Agile Framework

Scaled Agile Framework, or SAFe, is a complex set of patterns trying to guide larger organizations and enterprises in applying lean and agile principles. Several variations exist, from relatively small to enterprise organizations as well as portfolio companies. Still, it is a highly complex framework distributing work across multiple layers:

SAFe
SAFe

It’s a valid question of whether SAFe is still aligned with agile principles. For example, the agile teams appear to be very much decoupled from the original customers and users. Also, evil tongues might say that SAFe is primarily a money-printing machine with tons of training courses and certifications…

Further Reading

A pretty good summary of Lean, Agile, Scrum

A pretty good summary of Lean, Agile, Scrum

Agile emerged as a solution against the shortcomings of waterfall. It is a much faster, cost effective and less riskier approach for enterprises to cope with the many uncertainties surrounding its business.

Takeshi Yoshida | Medium