Agile, adj. – able to move quickly and easily. Is that how you would describe a standard approach to project management? Probably not. However, the agile method is an increasingly popular mode of project management and software development that tears up the process rulebook. It represents a method that’s more suited to the fast pace of the modern business environment, where requirements and risks can change at a drop of a hat. Taking up an agile approach allows your organisation to adapt to these changes much more quickly than any traditional method.
What exactly is agile?
Agile describes a set of values and principles for software development, under which requirements and solutions evolve through the collaborative effort of self-organizing, cross-functional teams. That itself isn’t the most agile sentence, right? But the core philosophy is much simpler to explain, and applicable across all kinds of development processes, including learning. Let’s demystify the agile approach a little. For starters, the agile manifesto is based on the following 12 principles:
- Provide customer satisfaction through early and continuous delivery of valuable software
- Welcome changing requirements, even late on in development
- Deliver work on software frequently and iteratively (think weeks rather than months)
- Foster close, daily cooperation between clients and developers
- Build projects around motivated, trusted individuals
- Communicate face-to-face wherever possible (think co-location)
- Use working software as the primary measure of progress
- Maintain a constant pace through sustainable development
- Pay continuous attention to technical excellence and good design
- Make simplicity – the art of maximizing the amount of work not actually done – essential
- Allow the best architectures, requirements, and designs to emerge from self-organising teams
- Reflect regularly as a team on how to become more effective, and adjusts accordingly
The principles don’t necessarily need to function as a hefty tablet of commandments, but rather can be introduced gradually as your workplace development processes evolve. However, knowing the principles is all well and good, but how can we actually put them into practice?
How to implement an agile approach
The most effective way to start implementing an agile approach is through people transformation. After all, agile relies on trusting individuals to work in responsive, adaptable teams. Many people have been so used to following the “waterfall” lifecycle model for so long, it can be difficult to transform them and get them accustomed to agile methodologies. Aside from creating a transformative learning intervention (not a bad idea), there are some more gradual changes that your team can start with. In fact, methods to shift towards a more agile process were a hot topic at a recent agile development scrum I attended. Here are the key takeaways from our discussion. A transfer towards agile development can start by setting ourselves in the following mental modes:
- Mindset – Experience doesn’t matter with Agile. Every team member is equally important, with a mindset of “how can I help?” rather than “it’s not in my Job role” or “it’s Bob’s job.” Gear your team towards a collective responsibility to come up with solutions and build great products.
- Cross-domain skills – In agile development each team member should have skills that can contribute to a variety of the project functions. For example, a Developer or Quality analyst should have knowledge about UI/UX, and equally Designers should be aware of development technologies and limitations. You might not be a pro in everything, but cross-domain skills are absolutely necessary to get the work up and running in an agile team. Encourage your team members to learn more about the other roles by shadowing or even trying out something outside their comfort zone. The great thing about the agile approach is that team members will naturally start to pick up skills through the collaborative nature of the process. On that note…
- Communication and Collaboration – This is absolutely essential to the agile approach. Every team member must be involved from the start to finish of a project so that everyone understands what’s expected, who the end user is, and the project requirements can be fulfilled. For example, the Quality Analyst was traditionally the last part of the “waterfall” model, whereas using the agile methodology, they’re involved from the beginning. This means that they can take the perspective of an end user. From there, they can help set expectations or contribute to solutions with the team, rather than just appearing with a list of problems at the end of the process.
- Reflections – Every team member should create a process of self-reflection on what’s been done and how they can improve it. Collectively, the team should regularly discuss how they have learnt from their mistakes, and adjust themselves accordingly to become more effective, evolving and efficient.
Perhaps try and implement these four considerations into your next development project. Even just bearing them in mind can streamline the whole process into a lean, mean, developing machine. If you’re feeling particularly agile, though, why not jump straight in and try all 12 of the agile principles at once? Here at Saffron we’re experts at using agile approach for learning development. We’ve been doing it for years! Feel free to contact us with any questions you might have.