No history yet

Agile Framework Basics

What Is Agile?

Agile isn't a strict set of rules or a specific process. It’s a mindset for managing projects, originally developed for software but now used in many industries. At its core, Agile is about flexibility, collaboration, and delivering value in small, consistent increments. Instead of creating a massive, detailed plan upfront that might become outdated, Agile teams work in short cycles, adapting to feedback and changes as they go.

Agile is an iterative approach to software development and project management that emphasizes incremental delivery, collaboration, and continuous improvement.

This approach helps teams respond quickly to new information or shifting customer needs. The goal is to avoid spending months building something only to find out it’s not what people wanted. With Agile, you build a little, get feedback, and adjust your course, ensuring the final product is useful and relevant.

The Agile Manifesto

In 2001, a group of software developers met to discuss how they could improve their development processes. They felt traditional methods were too rigid and slow. The result of their meeting was the "Manifesto for Agile Software Development," a document that outlines four core values.

We ValueOver
Individuals and interactionsprocesses and tools
Working softwarecomprehensive documentation
Customer collaborationcontract negotiation
Responding to changefollowing a plan

This doesn't mean the items on the right have no value. It simply means that Agile prioritizes the items on the left. For example, a detailed plan is useful, but being able to adapt when a better idea comes along is more valuable.

The Manifesto also includes 12 supporting principles. These principles emphasize things like satisfying the customer through early and continuous delivery, welcoming changing requirements, and building projects around motivated individuals.

Simplicity, the art of maximizing the amount of work not done, is essential.

Building in Cycles

The engine of Agile is iterative and incremental development. This is a fancy way of saying teams build things in small pieces and in repeating cycles.

  • Iterative development means work happens in cycles, or iterations. At the end of each cycle, the team reflects on what they did and how they can improve.
  • Incremental development means the product is built piece by piece. Each increment adds a new, usable chunk of functionality to what was already built.

Imagine building a car. A traditional, non-Agile approach (often called the Waterfall model) would involve designing the entire car, then building the entire frame, then adding all the engine parts, and so on. You wouldn't have a working vehicle until the very end.

Lesson image

An Agile approach would be different. The team might decide the first goal is to create something that moves. The first increment could be a skateboard. It's not a car, but it fulfills the basic need of transportation. The team gets feedback, and in the next iteration, they add a steering handle, turning it into a scooter. This process continues, adding a motor, seats, and a frame, with each increment delivering a more valuable and functional product. At every step, the team can test their creation and adjust the plan based on real-world feedback.

Common Agile Frameworks

Agile is the philosophy, while frameworks are the specific systems teams use to put that philosophy into practice. There are many different frameworks, but a few are especially common.

Scrum is perhaps the most popular Agile framework. Work is organized into short, time-boxed cycles called "sprints," which usually last from one to four weeks. Each sprint results in a usable increment of the product. Scrum defines specific roles, events, and artifacts to create a structure for the team.

Another popular framework is Kanban, which focuses on visualizing the workflow and improving efficiency.

Kanban

noun

A method for managing workflow that emphasizes visualizing work, limiting work in progress, and maximizing flow. Teams often use a Kanban board with columns representing stages of the work.

Other frameworks include Lean, Extreme Programming (XP), and Crystal. Teams often choose a framework and adapt it to fit their specific needs, or even combine elements from different frameworks. The key is to adhere to the Agile values and principles, regardless of the specific system used.