Agile Methodology Implementation: An Ultimate Guide
Frustrated with the way your team is working right now? Turn it around with this winning guide to Agile implementation using Scrum or Kanban.
If you’re here, my guess is there are some inefficiencies in the way your team is working right now. And you’re likely looking to eliminate them by implementing agile within your team.
Of course, implementing agile isn’t just about firing up an agile software tool and collaborating with your teammates.
If it were that easy, you wouldn’t be reading this article, would you? 😉
That’s why I’ll walk you through every single step on how you can successfully implement agile within your team in this article.
Quick Context on Agile: The What & The Why
Waterfall: You can’t make changes to an ongoing project, certainly not to the business needs and expectations.
Agile: Hold my beer 😎
Agile is an extremely practical approach to developing great products. Unlike waterfall, where risks can’t be afforded and failure isn’t an option, agile embraces risks and is prepared to handle failure.
Agile has the willingness to learn throughout the product development process. And it has the openness to incorporate changes received via early feedback, at any stage. These qualities of agile attribute to its high success rates - 2x that of the waterfall method!
So, you needn’t worry about a project taking several months only to find out it is nothing like you visualized. No such bummers with agile!
It serves as the perfect medium for teams to learn and grow while satisfying the customer’s needs. Seriously, who doesn’t want that?
Now that you know what agile is and why it’s popular, let’s skip to the important part: how to implement the agile method successfully?
Successful Agile Implementation: Steps to get it right
Agile is receiving a lot of backslashes on the Internet of late. But when you take a closer look, you'll find there's only one major reason behind this - poor implementation of agile practices. So, to maximize agile’s potential, it is critical to implement it while following its principles and values as mentioned in the Agile Manifesto.
Now, let’s look at the key steps involved in the agile software development process and how to implement it.
Step 1: Envisioning the Product
The first and foremost thing to do before you begin your project is to clearly define what you intend to achieve through it. And then, to visualize it completely from start to end.
Picture it, draw it if you must, and jot down the important details regarding the project that will form its foundation. The details must cover:
- Addressing the Problem - problem statement, need for a solution, how the solution will address the problem
- Market Research - scope, target audience, competitor analysis, positioning
- Product Definition - name, features, benefits, value proposition
The purpose of this step is to gain clarity regarding the project’s vision and brainstorm for ideas to implement it. And also to ensure that your entire team is on the same page.
Example: Let’s assume that your project is to develop a mobile app for taxi services.
You do all the groundwork and market study. You identify your target audience, their deepest problems with the current solution, how your app solves it, and who your competitors are. You also visualize how your app will look and operate.
Once you visualize your app, you create the project by giving it a name, brainstorm and note down the features it will possess, and write user stories for each feature.
When kick-starting a project, you’ve got to begin with a bang. Because, as the Irish proverb goes, “Making the beginning is one-third of the work.”
To help you kick-start on the right note and set the pace for the rest of the project, use the right tool that’s perfect for you.
Step 2: Laying Out a Roadmap and Organizing the Releases
On attaining a clear picture of the project, the next thing to do is laying out the roadmap along with a rough plan of the releases.
Here, you and your team must discuss and design a plan of action for the product. This plan of action must include an overview of the product development iterations with tentative deadlines for each release.
Once you’ve designed your roadmap, it is essential to create a timetable with the set milestones i.e timeframes for each release of the product. These timeframes need not be exact dates but it is ideal to set realistic deadlines.
In doing so, neither will the team become lethargic nor will the product owner lose patience. So go ahead and create that timetable with all the release dates.
Example: You create a roadmap for the taxi service app with approximate, realistic timeframes.
You’ve divided your project into 4 milestones - Core UI design, maps with payment, taxi booking within your city, cab rentals for long-distance rides.
You now plan the releases for this project with loose timeframes and organize them in a timetable.
With this roadmap, you have successfully translated your vision into a plan of action for your team to follow.
Step 3: Choosing your framework - Go Scrum or go Kanban?
“We are who we choose to be.” – Green Goblin, from Spider-Man
Similarly, your project will be what we want it to be if you choose the right framework.
But to choose wisely, you would need to know the answers to the following questions:
- What are scrum and kanban?
- Why and when to choose them?
- How to implement them?
- Differences between scrum and kanban
Let’s dive right in, shall we?
When to choose Scrum?
Scrum is a widely used agile framework. In this method, complex problems are broken down into smaller workable solutions and are delivered in sprints. Each sprint is timeboxed to be released in 1 - 4 weeks, most commonly within 2 weeks.
Most teams pick scrum as their preferred agile methodology because it is the most popular and successful framework. According to Scrum Alliance’s 2015 survey, 62% of scrum projects were a success. I’m sure the numbers have gone up since then.
But how do you know if scrum is ideal for your project? Scrum is apt when your project calls for:
- Openness to incorporate changes in requirements, priorities, and even solutions after each iteration
- Working in cycles on limited features with guaranteed delivery at the end of each cycle
- Customer-centric testing and feedback is the priority
Does scrum seem impressive? Or are you thinking like hey it seems all good on paper but how does it fare in the real world?
To answer that, allow me to walk you through to implement agile with scrum.
When to choose Kanban?
Kanban is another popular methodology in agile. It is a progressive process that assures continuous delivery. There are no sprints here. Instead, the tasks in the project are prioritized and then completed a few items together at once, followed by the next set of remaining items.
Kanban board is used by teams to view the progress of the project at a micro-level.
Kanban is the one for your project if:
- There are many unrelated user stories and tasks
- Requirements and their priorities keep changing like the weather
- You wish to deploy multiple releases in less than a week, especially unscheduled ones
Kanban is extremely flexible and fairly simple in terms of implementing. If you think that seems to fit the bill for your project, here's how you can implement agile using kanban.
If you’re still debating between scrum and kanban, understand the differences between the two with the help of this article: Differences between scrum and kanban.
Implementing Agile the Scrum Way
If you get Scrum right, your project is guaranteed to be on its trajectory to success. 🚀
Take a quick look at the steps that go into successfully adopting scrum for your project.
Step 1: Gathering Requirements for Product Backlog
Before commencing your scrum project, you need to set the stage for it. That is, you need to gather all the business requirements and create a backlog called the product backlog with all the task items.
So go ahead, schedule a discussion with your product owner to get the business needs.
Your next priority is to get the product backlog items prioritized.
Example: From your meeting with the product owner regarding the taxi service app, you've gathered all the business requirements and stored them as user stories.
You now discuss with the product owner and assign priorities to each of the items in this backlog. You've laid the foundation.
Setting priorities to items, communicating them with your team, and keeping a track of them can be a bit exhausting, to be honest. So, would you believe me if I told you using simple hashtags can make your work much more straightforward?
Step 2: Planning the Sprints
Sprint planning is a crucial step if you’re following scrum framework to develop your product.
And here’s a peek into what happens during this planning:
- The product owner comes with an up-to-date list of prioritized user stories and task items.
- The entire development team, with inputs from the product owner, estimate each user story.
- The sprint goal is clearly defined.
- Based on the sprint goal, the sprint duration, and the estimates of each user story, the team collaboratively brainstorms and adds user stories to the sprint backlog.
While I can't get you Tony Stark to devise the perfect plan, like he always does, here is an informative article on mastering sprint planning that'll be a handy utility. So get cracking on your sprint plan.
Example: You are planning the sprints for your taxi service app. You place login, sign up, and basic app UI design in the first sprint.
You then put down the maps and payment activities in the second sprint, booking taxis in the third sprint, and so on until you've finished planning all the sprints covering all the tasks in the project.
Step 3: Reviewing the Sprint
The true beauty of agile scrum lies in the flexibility it provides to review, rectify, and improvise at any stage of the development cycle; particularly after each sprint, a review is held to assess its outcomes. And to verify whether the reality does indeed match the expectations or if it's far from it.
The entire team evaluates the end product to check if all business needs are met. You can also invite your beta customers to share feedback.
Any issues or missed requirements found are discussed and noted to be worked on later, in the forthcoming sprints.
Example: Let’s say your team has completed the booking functionality for the taxi app as part of the current sprint. And you run it by the customer during the sprint review.
During the review, you realize you haven’t included scheduled pickup to the booking feature. Also, the customer provides some valuable feedback regarding the touch and feel of the app. You note these down to work on them later.
Step 4: Gearing Up for What’s Next (Sprint Retrospective)
Post the sprint review, there’s an honest-to-goodness chance for changes to be incorporated in the product, which gets reflected in the product backlog and ultimately in the sprint plan.
Now, reassessing what to do next becomes pivotal to the project’s progress. This calls for a sprint retrospective meeting. During this discussion, the whole team reviews, reassesses, and re-prioritizes the sprint items, based on previous sprint outcomes, to make improvements to the upcoming sprint.
Example: You have a sit down with your team to get their perspective of what worked in the previous sprint, what didn’t, and what can be improved. Maybe you’ll identify that your prioritization was poor and it resulted in your team taking more on their plate than they could juggle.
You’ll be surprised by the insights you gain from your team on what can be improved.
We’ve put together a handful of retrospective templates you can use to uncover opportunities to improve within your team.
A Must-do: Holding Regular Standups
Apart from all the technical steps mentioned above, here's something you need to do to get scrum right — Daily Standups.
A standup is a short meeting conducted every day during the sprint. Its objective is to get updates regarding the progress of the project.
But here’s a common mistake that teams make. They don’t limit the duration of their standups to 15 minutes. As a result, they feel like they're spending more time attending meetings rather than developing the product. So, as long as you stick to this timeframe, you're good to go. 👍
If you're convinced that scrum’s for your project, learn the A-Z of scrum and how to implement it in-depth from this definitive guide.
Implementing Agile the Kanban Way
Implementing kanban is just as simple as understanding it. Here’s a high-level overview of how kanban is typically implemented.
Step 1: Workflow Visualization with Kanban Board
To get your project rolling with kanban, you need to visualize and have your workflow set. For this, you need to create columns in your kanban board for every stage of your project - from to-do to done.
You then assign all the task items, created from the business needs, to their respective performance stages.
If you’re waiting for a catch, there isn’t any. Kanban is, for a fact, this straightforward.
Example: Let’s assume that you have created a kanban board with 3 columns for your taxi service app. The 3 kanban columns are: to-do, in-progress, and done.
You've gathered all the business requirements and converted them into tasks such as designing UI, login/signup, booking, payment, etc. You now assign each of these items to corresponding workflow stages on the kanban board.
Say booking and payment are yet to begin and so they’re in to-do. Login/signup is completed so you move it to done. Meanwhile, designing UI is in-progress.
Step 2: Limiting the WIP Units
WIP units or Work In Progress units refer to the number of tasks currently in progress. Setting a limit on the number of units is a must-do. Because most often we get carried away with trying to move as many tasks from to-do to done.
And we end up overloading the in-progress column with more number of tasks than the number of hands available to implement them. In short, that’s a recipe for bottlenecks.
But taking too few on hand is again a problem as time is of the essence. So, finding the sweet spot between stuffing and selling short is imperative.
Example: You are working on fixing the WIP limit for your taxi service app. On assessing the number of tasks pending and the time needed to complete them, you calculate a WIP limit of 4 tasks at a time.
Most often, teams fix 3-4 tasks as the WIP limit. Because we'd choose quality > quantity any day. 💯
Step 3: Measuring and Managing the Workflow
Kanban is all about flexibility. That means you get the freedom to make changes to your workflow, as long as your project benefits from these changes of course.
But how do you figure out what changes to make?
Changes in the workflow are made by assessing the value that flows in your current workflow. That is, how smoothly do the tasks streamline from to-do to done, without bottlenecks.
And if any changes can be incorporated to improve this flow, those changes are made. Then, their impact on performance is measured to decide whether to finalize these changes or drop them.
Example: Let’s say your team has been completing tasks with a WIP limit of 3 tasks comfortably. You then increase the limit to 5.
You start to notice pending tasks piling up. So, you decide to change the WIP limit to 4 units and find out that it works to your advantage. You’re now able to deliver items quickly and at the same time maintain the quality.
To maintain this balance, you would need to measure and keep track of the number of items present in each column of the kanban board, at any given time.
This is where Cumulative Flow Diagrams come into play. You’ll now know not just the number of items in each column but also the time it will take for an item to move from one column to another.
Step 4: Making Policies Explicit
We’ve all got our own policies, our own way of doing what we do. But when we become a part of a team, not having common guidelines to adhere to often creates confusion and chaos.
For instance, how do we pull tasks from to-do to in-progress? If it is FIFO, what do we do when a high priority item gets stuck in the queue only because it was added late?
For your team to address such situations, which are very common in Kanban BTW, they require clarity. And to acquire such clarity, your team needs policies to be made explicit.
Example: You have the tasks UI design, maps, and taxi booking in the to-do column of your kanban board. Your following FIFO, in the same order as the tasks aforementioned. But a high priority task called payment gets added to this list.
Now, according to your explicit policies, high priority tasks must be completed first and hence payment gets moved to the in-progress column first.
Similarly, you can have explicit policies set for any activity in the workflow.
A Must-do: Optimization
Making changes and optimizing your workflow strategies for the better is one major perk that kanban offers. That’s why the term Kaizen, meaning to continually improve, is associated with kanban.
Through these optimizations, you can identify how best to provide valuable solutions by increasing your development speed at the same time.
To optimize your kanban workflow strategy for the better, you will need to take a scientific approach.
Essentially, you state a hypothesis to make a change to the board, defining what the desired outcome must be. You implement the change, allowing it to settle for a period of time. And finally, you measure the performance of this change to decide to either adopt it or undo it.
If you’re leaning towards kanban, have a look at these kanban board examples to help you make the final call.
On the other hand, if you’ve already made up your mind and are on the lookout for the perfect kanban software, check out this post on kanban software tools. Good luck kanbaning. You can thank us later.