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 in a collaborative manner with cross-functional teams working together 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 4 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 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 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 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.

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

Scrum

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

  1. Let the Product Owner manage a Product Backlog with prioritized items to work on
  2. Let the Scrum Team work on these items during a time-boxed cycle, called Sprint which is typically 2-4 weeks
  3. Let the Scrum Team and stakeholders inspect the results and plan the next sprint
  4. 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) but, still, it’s a fairly easy and lightweight framework:
Source: What is Scrum
The name itself is borrowed from rugby, where a scrum is a strong formation of players. For more information, check one of the originals by Jeff Sutherland.

While fairly easy and 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 there are many of these 2 pizza teams who 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 rather aims at balancing demands with capacity and, thereby, handling bottlenecks.

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

  • It consists of various columns each of which represents a certain phase or stage of a work item, from adding it as an open to-do to final 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 that are allowed in that phase.
Source: 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 will arrive in an unpredictable manner and 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:

It’s a valid question of whether SAFe still is 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

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 |