Getting a team to work well together is a difficult task. When you have a variety of different personalities, dynamics, and roles working in the same environment, you need some processes, methodologies, and guidelines in place to help keep things moving forward. Even then, you’re going to encounter challenges.
Waterfall to Agile
In the world of software development, every product and project is different. Traditionally, software teams followed a sequential process called “waterfall”. Chances are you’ve heard of this.
In the past several years, many people have moved away from the waterfall model. This shift happened for a number of reasons. In short, waterfall was not flexible enough for the fast-paced, ever-changing world of software.
With waterfall, you defined all of your requirements up front, and for the most part, you stuck with them for the duration of the project. That meant you could be building something that was conceived several months in the past and it may not even be relevant anymore.
This linear approach to software development restricted software teams and the products they were building. But still, waterfall remained the norm for many decades.
Agile Is Iterative, Fast, and Flexible
Today, “agile” is all the the rage. It aims to solve many of the problems software teams encounter using the traditional waterfall methodology. In contrast to waterfall, agile is an iterative, responsive approach to building software. It provides designers and developers more freedom as they work on individual modules.
Instead of designing and building the entire software application from start to finish, teams work in sprints (usually 1 or 2 weeks) to build individual functional components. With this approach, both customer feedback and testing can happen simultaneously, instead of at the end of the project.
However, like any change or shift in process, many teams have struggled to adopt agile. It requires a new way of thinking, managing, and working. Here are some common challenges in adopting agile methodology and how to overcome them.
Common Challenges in Adopting Agile
Challenge #1: Agile is a cultural shift.
Agile methodology requires your organization to encompass certain values and beliefs. It requires a lot of trust from management that your team can not only do the work required, but do it in the best way possible. Your team needs to believe in providing value to both the customer and the product, and you need to empower your team to be creative, make decisions, and work together. Conversely, your team needs to be able to do these things – make decisions, work well together, and think outside the box.
Solution: Hire an agile coach.
If you’re new to agile or finding that your team is struggling with the change, it might be worth bringing in an experienced agile coach to iron out some of the issues. If that’s not an option for whatever reason, empower your team to get out in the community and learn from other agile experts.
Challenge #2: Getting the client on-board with agile.
It’s not uncommon for customers to be resistant to adopting agile. For many, it’s an unfamiliar way of working together which can be really uncomfortable. Just like software teams, customers are also resistant to change. There are ways you can overcome this fear of adopting agile though.
Solution: Build trust.
It’s important to build trust upfront, and continue building it sprint after sprint. By engaging the customer the right way, you’ll build that trust and they will become more comfortable and excited about working with you in this capacity. Worst case scenario is they don’t get on board with agile and you continue to practice agile internally, while bringing in the traditional project or account manager to take on the role of product owner.
Challenge #3: Many people think agile must be done exactly a certain way.
It’s often thought that in order to be agile, you need to follow every rule and guideline as instructed. Sure there are a lot of ideas, techniques and practices that go into “agile”, but the perception that there is only one way to be agile is not correct. In fact, it’s far from the truth.
“Agile is not a one-sized-fits-all methodology that works for every situation. It is a framework that is meant to be flexible.”
– Anjuan Simmons – Assemble Systems
Solution: Try different approaches.
There are many approaches to agile methodology. Scrum is by the most popular. But others are also fairly popular today. Read up on these approaches and see which one might work best for you. Once you settle on one, feel free to change it so that it works with you and your team. It’s ok to only implement some of the techniques.
For example, if planning poker isn’t working for estimation, try a different estimation technique. Maybe one week sprints are too short… try two weeks, or four weeks… whatever works for you team. If daily stand-ups are getting stale and lacking value, move to every other day. Try new things until you find what works for you.
Agile means to move quickly and easily. There are a number of advantages to working this way, but it can be a big undertaking and a significant shift in the way teams think and work together. When adopting agile, the more you prepare and the more you experiment with different techniques and ideas, the better off you’ll be. Don’t force it – find what works for you, your team, and your customers, and you’ll be on your way to a fast, flexible way of working.