Agile practices are becoming more and more widespread. An increasing number of organizations are jumping on the bandwagon to enjoy the benefits of increased flexibility, quicker turn-around times and lower risk. But going from a rigid waterfall approach (or even an ad hoc reactive process) to something that is adaptable and collaborative can be challenging. Making the shift isn’t just about implementing a new set of templates and processes but about changing the attitudes and the culture of the team and the supporting organization. It’s about changing the working practices and deeply embedded habits, which can take time.
So, how do you take the first steps towards a more Agile approach?
- Plan in stages, or iterations. One of the cornerstones of the Agile methodologies is the notion of iterations or discrete time boxes in which development and delivery happens. So, instead of delivering the entire product at one set time, you split your project into a logical set of stages that each conclude with a tangible deliverable or output. In this way you’re building and delivering your product gradually instead of using a big bang approach, which is more risky. What’s important is that each stage delivers something concrete to the end user.
- Consider the human aspect. As you begin to plan out the stages of your project, make an effort to include your team and user community as much as possible. Discuss the benefits of working in a more iterative way so that people can see the reasons why it’s a good initiative to support. You want to motivate your team so much that they ideally become the driver of creating an Agile environment.
- Make use of the 80:20 rule. The 80:20 rule comes in handy as your team begins to work in a more iterative way. It helps you prioritize which requirements to deliver by concentrating on the 20% of features that deliver 80% of the benefits to your end users. At the end of each iterative stage, hold a prioritization meeting where you identify what comprises 20% of the requirements and what will lead to 80% of the functionality in the next stage. Another rule of thumb is to deliver your core essential features and the highest-risk pieces of functionality in the earlier stages of and leave the nice-to-have features until the end.
- Create a prototype. To produce a prototype is not a practice that is limited to Agile projects, but it’s a natural step if you want your team to work more iteratively. Producing a prototype has many benefits, from proving the design and reducing project risk, to gaining early feedback from the user community. It’s an excellent way to create a tangible expression of what the project is aiming to achieve which can help unite the team around a common vision. Plan the prototype as early as you can during the project.
- Increase collaboration. When you work on a waterfall, or even an ad hoc project, the team often consists of separate entities and silos that only come together when they work on dependent activities. On more Agile and iterative projects however, collaboration and user involvement play a much bigger role because the team plays a significant role in shaping the project. You can begin to increase collaboration by planning with your team and by creating self-managing teams where you become a mentor and guide rather than the micromanager who tells everyone what to do. Begin by asking more questions of your team and listening to their answers, instead of just telling people what to do. Give people the authority to manage their part of the project to increase the benefits of teamwork.
- Continually review and adjust. We’ve all been taught that it’s good practice to carry out a post-project review at the end of the project and to write up a lessons-learned report. But on more iterative and Agile projects it’s too late to learn the lessons at the end! We want to continuously learn and adjust as the project progresses. An ideal way to do this is by collaboratively reviewing what is going well and not so well at the end of each stage, or iteration. Listen to the user’s feedback and to your own gut feelings. Ask yourself questions like: In which ways can you improve the product, the processes, collaboration and communication? What does the team say? Agility is all about the ability to rapidly and efficiently adapt to changes—whether they’re imposed by you or by your clients.
What are your tips for transitioning over to an Agile project management process?