Adopting Agile Methodology: 6 Steps to Improved Delivery
Dec 13, 2019
Software development has changed rapidly over the last several decades.
For the most part, companies would release software packages something like once a year. For example, PC DOS 1.0 came out in August 1981, PC DOS 2.0 came out in March 1983, and PC DOS 3.0 came out in August 1984.
That’s no longer the case. Anyone who has a smartphone or uses a computer often understands this perfectly, whether or not they’re aware. It’s the reason why apps receive constant updates and why many SaaS companies pump out new releases every month—or even sooner.
In large part, the evolution of software development traces its roots back to the agile manifesto, a document published in 2001, which gave birth to the agile software development movement.
What Is Agile?
As the manifesto points out, agile is an approach to software development that prioritizes:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Similar to lean philosophies, agile is all about figuring out how to ship better software faster, with fewer resources and less red tape. The agile movement is governed by a set of 12 principles, some of which include:
Satisfying customers by continuously delivering valuable software
Embracing change and leveraging it to build better solutions
Shipping new software frequently—as fast as every few weeks
Encouraging collaboration across teams and departments
Filling teams with motivated and talented people and giving them the tools and resources they need to reach their full potential
Measuring progress in terms of delivering working software—not in terms of how many hours you spend in the office, for example
Striving to continuously improve the team’s approach
Eliminating as much unnecessary work as possible
Since these principles are closely aligned with DevOps workflows, many people think of agile and DevOps as two peas in a pod. While all DevOps teams operate with agile principles, other kinds of teams—including insights teams, marketers, and even finance—can also be agile.
However, for the most part, when we talk about agile, we’re talking about software.
How to Adopt the Agile Methodology
Now that you understand why agile is becoming increasingly important, it’s time to figure out how to get agile off the ground at your organization.
Unfortunately, you can’t just snap your fingers and make agile happen. Like anything else, you need to take your time, do your due diligence, and get your whole team to buy in to the new way of working.
With that in mind, let’s take a look at six agile methodology steps your team can follow to transform its approach to software development and project management.
Step #1: Determine Whether Agile Is Right for Your Organization
While agile is great for many companies, it won’t work for everyone. For example, if you’re a two-person boutique development agency that works with three or four clients all year long on enterprise software, you might not have to pump out new releases every two weeks.
On the other hand, if you’re a startup or a larger organization that has a slew of customers, it may make sense to follow in the footsteps of companies like Amazon, Facebook, and Google and take an agile approach.
To do that, you first need to determine whether agile is right for your organization. One way to figure that out is by asking a trusted advisor. The ideal person will be able to look at your company’s structure, clientele, tools, processes, and people and make a judgment based on those factors.
When you don’t have a trusted advisor, you can make the call yourself. To do that, you need to understand why companies use agile in the first place and see if that sounds like you, too.
For the most part, organizations turn to agile to bring products to market faster, leverage feedback to ensure they’re building the right products, and bring more transparency to the development process.
If that sounds like what your company’s looking for, that’s great news! It makes sense to give agile a try.
Step #2: Get Everyone on Board With the New Way of Working
You’ve made the decision to try agile at your organization. But you’re just getting started. Most people are stuck in their ways and resist change. So, if you want to get great results with agile, you’re going to need to get your whole team on board.
It turns out that’s not anywhere near as hard as it might sound.
To do that, you first need to show your team how the new way of working benefits them. An easy way to do that is by using data. DevOps teams, for example, are guided by agile principles. One recent study found that companies that implement DevOps workflows experience an increase in the quality of their software, are able to ship software faster and more regularly, and benefit from improved collaboration.
So, selfishly, agile can help your developers produce better work in less time.
Agile for Professional Development
And at the same time, agile exposes your team to a new way of working—one that’s becoming increasingly popular at software companies. In that light, agile is often seen as a professional development opportunity. And that is a big deal because many of today’s workers consider professional development to be a key factor in determining where to work and whether to stick with a company or not.
Another way to sell agile is this: When implemented correctly, agile should help the organization become more profitable. Software is produced more efficiently and more rapidly, and due to the customer collaboration aspect of it, the end result should be happy users.
The happier your users are, the more likely they’ll be to recommend your products to the folks in their network—which could help your company get to the next level before you know it.
A stronger company is in a much better position to give developers raises, send them to conferences, and hire additional engineers to spread out the workload.
Because of these benefits, getting your team to buy in to the new way of working shouldn’t be that much of a challenge. You just need to spend a little time preparing and charting the best course forward.
Step #3: Identify the List of Projects Your Team Needs to Take Care of
Now that you’ve determined agile makes sense for your organization and have sold the merits of it to your team, it’s time to begin.
First things first: Identify the list of projects that are on your team’s plate. Using new project management tools—like Trello, Monday, and Asana—can help you start to visualize exactly what you’re working with. Of course, you’ll also have tools like Jira in tow, too.
As you begin visualizing your outstanding projects, you may begin to see that some of them have been collecting proverbial dust. At this point, you can decide which projects to kick to the wayside and which your team needs to take care of.
Once you’ve got your ducks in a row, you’re almost ready to get your first experience of what agile is like. This leads us to the next step.
Step #4: Prioritize Your Projects and Organize Your First Sprint
In Step 3, you began visualizing the extent of the work that’s on your team’s plate. You eliminated some of the lower-priority tasks and legacy projects. Now, you’re ready to zero in on your team’s most pressing priorities and start planning your first sprint.
Look at all the projects your team has on its plate. Some of them matter more than others. On one hand, one project might involve adding a transformative feature to your software suite that you’re bettering will be a game-changer. On the other hand, you might have a high-profile client that writes very big checks, and anything they ask of you becomes the most important thing in the world overnight.
Whatever the case may be, it’s safe to say that some projects are more important than others. But, at the end of the day, only you will be able to decide which ones carry the most weight.
After you’ve prioritized your projects, it’s time to organize your first sprint. You’re almost off to the races. Agile is so close you can almost taste it.
But wait a second. A sprint?
What Is a Sprint?
Sprints are predetermined periods of time—usually a week or two—during which specific people are expected to complete specific assignments to support the delivery lifecycle.
During sprints, projects are broken down into the smallest possible parts. This makes it easier to ensure that timelines are kept. At the same time, assignments are publicly posted so that everyone can see who’s responsible for what—and make sure no one has too much work on their plate.
Your company might have a good idea about what it’s overarching priorities are. For example, if you’re a gaming company, your overarching priority might be to ship a new release by the end of next year. That’s the macro view.
Sprints focus on the micro view—the smallest parts that add up to that new release. Over time, engineers will tick off each task one by one. Then, slowly but surely, they’ll tackle each sprint in the same manner. Ultimately, the macro goal will be achieved in a series of small steps.
Now that you have a better idea of what a sprint is and have assigned tasks to everyone on your team, it’s time to take off the training wheels and jump right in.
Step #5: Start Your Sprint and Hold Daily Standup Meetings
You’ve figured out which projects are most important. You’ve broken up every project into small tasks and you’ve assigned them to the best people. And remember, those people are folks who’ve already brought into the promise of the power of agile.
Now, it’s time to see what the fuss is all about. Kick off your inaugural sprint. Go into it with appropriate expectations. No one steps up to the plate for the first time expecting to hit a home run, after all. When you’re trying anything new, you’re bound to run into a few speed bumps along the way. Keep that in mind when you encounter hiccups.
As you kick off your sprint, you might be wondering how you’re going to keep everyone on the same page. A new way of working must mean no more meetings, right? After all, everyone wastes a ton of time in meetings, and you can’t expect to ship better software faster if you’re doing the same.
While agile does tone down the amount of time your team spends in meetings, it doesn’t get rid of it altogether. Many agile teams hold daily standup meetings, which are usually about 15 minutes long.
What Is a Daily Standup Meeting?
A daily standup meeting is a short meeting held every day where team members share quick status updates. During standups, everyone gets on the same page, and team members know where things stand at any given point in time.
Standup meetings get their name because team members typically—you guessed it—stand up during them. It’s one way to encourage shorter meetings, since no one is sitting down.
In the digital age, it comes as no surprise that standup meetings themselves are getting disrupted. Many software development teams hold their standup meetings virtually on collaboration platforms. That way, everyone can “check in” with their teams at their own convenience, freeing up even more time to spend on software development.
While many managers might be tempted to exert more control over their employees, remember that you’ve hired your developers to write code and build great software. The agile methodology isn’t conducive to micromanagers who expect to proverbially look over their employees’ shoulders all day long.
The Stages of Your Sprint
At this point, you’ve already planned your sprint and assigned tasks to specific people. As your sprint gets underway, it’s time to start actually developing your software.
Before you can ship it, you’ll need to test it and run QA to make sure you don’t prematurely pump out any buggy releases. Of course, when it comes to agile, bugs are part of the territory. But the last thing you want to do is push out a release that is spectacularly buggy. That’s not a way to inspire confidence in your users, after all.
Once your software passes your QA team, it’s time to ship it to your customers and take a deep breath. Your work is done. But only for a moment.
Step #6: Evaluate Your Progress and Continuously Optimize Your Approach
Agile involves collaborating with your end users. It also involves collaborating with your teammates. Agile, much like the software you build under agile principles, is always a work in progress. As such, once you wrap your inaugural sprint up, it’s time to reassess your progress and determine what worked, what didn’t, what you can do better, and how you might be able to improve your process.
Many companies that still operate the old-fashioned way are stuck in their ways. They’ve been doing the same thing forever. It’s worked well enough for a long enough time. So they figure it doesn’t make a whole lot of sense to reinvent the wheel.
There might be some sense in that. But, at the same time, an organization can’t expect to get exponentially incredible results by doing the same thing over and over again.
Under the agile methodology, once a sprint is done, your work is just beginning. At the end of each sprint, you need to hold a sprint review meeting where the team discusses successes and failures—and figures out how to continuously optimize your approach.
That’s the ticket to a team that gets better and better, moving faster and building better software along the way.
Is Your Team Ready to Give Agile Software Development a Try?
By now, you have a pretty good idea about why more and more organizations are adopting agile principles. And, since you’re reading these words, you’re likely itching to get started with agile development.
Before you jump the gun, spend some time assessing your team’s tech stack to determine whether you have the right tools in place to deliver on the promise of agile. To learn more about how the right tools can help your transition to agile become much smoother, take a look at Plutora.
Download our free eBook
Mastering Software Delivery with Value Stream Management
Discover how to optimize your software delivery with our comprehensive eBook on Value Stream Management (VSM). Learn how top organizations streamline pipelines, enhance quality, and accelerate delivery.