Starting out with Agile.

light-read, takes 4 mins

Why should you read this?

When I started learning about Agile, I was confused on so many levels. There’s a lot of content out there and I had a tough time tracking through the fundamentals without getting too deep into it.
After knowing I was not the only one, I thought of introducing the basics as a stepping stone for people to go out and explore!

These are the very fundamentals in an easy-to-consume form, taken out directly from my first notes on Agile!

Doesn’t matter if you are into design, engineering, or business, you will cross paths with Agile sooner or later. So, it is definitely worth knowing the basic terms. (trust me I won’t get into the details in this one!)

What is Agile?

Agile is a development approach that focuses on delivery.

Traditionally, Agile was used for projects relevant to software development. With its widespread acceptance, it is used across industries to get work done.
Agile ensures that teams adapt to dynamic environments and do what’s required, when it is required.

In Waterfall approach (all oldschool projects), you first plan on all that you want to do and you precisely decide what you are going to make before you even start working!
It is great but what happens if the thing you planned for is no longer required? That’s where Agile shines.

This image depicts the waterfall approach to projects. It is a linear approach where you need to finish all planning before you get working.
A lot of time is spent before working and the planning makes this approach rigid

In Agile projects, you never sit down to decide what your final output should look like. You focus on what is the highest priority right now; and you do it! With time the goal may be constant or maybe not. One thing will be constant for sure, faster delivery.

In Agile, too, you plan work but you plan for shorter goals so that you deliver small things faster

The most important thing to remember is that your final scope is not defined. Scoping is done on a regular basis to re-prioritize our current work.

Agile is not a method, it is a way of thinking. Thinking what needs to be done and figuring out how we do it fast. The value is in learning quickly.

Learn fast, deliver faster.

This way of thinking/mindset has been adapted and used in many Agile frameworks, most popular being Scrum and Kanban. These frameworks are primarily based on constraints (like a limit on something). In Scrum, the constraint is time you take to work and in Kanban it is how much work you do at any given time.

You know the very basic concepts now. Here’s 5 important terms you would need to know.

1. The Agile Manifesto

17 people, 68 words

In 2001, 17 people met (in Snowbird, Utah) to discuss and improve the software development process. The goal was to find a common ground and understand what enables a software development project to succeed.
They came up with 4 values documented in the Manifesto.

The Snowbird 17’s Four values (in bold) that outline the Agile mindset.

12 Principles of Agile Software were later built to expand on these values.

2. Scrum

An Agile framework with time as constraint

Scrum is the most popular Agile framework that focuses on planning and implementing work in iterations. These iterations are called sprints.

The whole project is broken down into definite timeframes (usually 2 weeks) in which you plan and complete the work. One timeframe corresponds to one sprint. After a sprint ends, you plan and start the next one.

3. Kanban

An Agile framework with Work-In-Progress as constraint

Kanban is the Agile framework that focuses on completing highest priority tasks as soon as possible. Hence, in Kanban, there is a restriction on how much work can be undertaken.

Tasks are put up on Kanban Boards and belong to either of the 3 columns: TO-DO, IN PROGRESS, DONE.
There’s a limit on how many tasks can be put in the IN PROGRESS column at a time.

I put a limit of 3 tasks for WorkInProgress. Task 11 might be more important than 4, 5, and 6 but cannot be done until we finish either of those three.

TO DO column is re-organized every day to have the highest priority tasks on top. These are supposed to be undertaken first.

4. Self-Organizing

In Agile, the developers self-assign tasks

An Agile team is always self-organized. That is the project manager (or product manager) do not assign responsibilities and load on the team. The PM only prioritizes what needs to get done first. The team pulls the tasks based on the list and their capabilities.

5. Standups

Daily update meetings

Almost all Agile teams have daily standups. As the name suggests, everyone stands (to keep meetings short and the team focused) to discuss about their work and if there are any issues that need to get resolved.

This is all I am going to cover in this one. We haven’t even scratched the surface yet. But don’t worry, I am soon coming out with a series that will tell you everything you need to know about Agile!
Let me know if you liked this one.