Adaptive planning. Evolutionary development. Early delivery. Continual improvement. It’s little wonder that agile has become the preeminent software development methodology over the years – the speed and flexibility facilitated by the approach make it the obvious choice for any tech organisation looking to get ahead.
But to simply announce yourself as an agile developer does not guarantee success. Far from it, in fact. Agile software development can be done well and it can be done badly, just like any other approach.
So, what are the keys to doing agile well? To find out, we spoke to six of Australia’s leading professionals in the space – the pioneers, innovators and thought-leaders who have helped to put agile at the centre of the tech stage, and who continue to push the boundaries of the methodology.
Here’s what they had to say.
What does it really mean to be ‘agile’?
Like saying the same word over and over until it sounds weird, ‘agile’ is a term thrown around so much in the tech sphere that it can begin to lose meaning. So what does it really mean to be an agile software developer?
“Agile is not a framework, tool or a process,” instructs Prabhath Perera, Software Engineer at ELMO. “It is a set of values that empower the team to make agile decisions on how to do the work of software development. Therefore, having a team with an agile mindset guided by these values is really important.” The Agile Manifesto, many a software developer’s bible, lists these values as follows:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
John McKim, VP of Product & Technology at A Cloud Guru, says that being agile doesn’t mean taking a militant approach to the methodology. According to him, it’s vital that an organisation “embraces the idea that each of your teams will operate slightly differently and will need some level of flexibility in their processes. Treat agile practices as guidelines rather than rules and allow teams to adapt them for their unique requirements.” Being agile about being agile, to coin a phrase. He highly recommends watching Spotify’s engineering culture videos for inspiration on doing just that.
Being agile should be in the DNA of any software development organisation looking to achieve success. But agile also needs to be recognised for what it is – a software methodology with its own set of strengths and weaknesses.
Key benefits of the agile methodology
Let’s first focus on the methodology’s strengths, of which there are many.
“We do one week sprints at OpenAgent, and the fast delivery lifecycle surprisingly results in high-quality output, because of the continuous rapid testing of the ‘backbone’. If there is an issue reported for a new feature deployed the previous week, it’s immediately rectified and released in the current sprint. Therefore on the completion of the agile project the system has already gone through rigorous testing, and the end result is a quality product.”
“Agile encourages teams to be flexible and adapt to that change while maintaining a high level of transparency with stakeholders and the business” says McKim. “Agile practices help teams focus in on business value and allow for changes, while encouraging a high level of transparency. This helps build trust with stakeholders despite regular changes through the delivery of a project.”
Perera sees reduced risk as one of agile’s most enticing perks. “Since the projects are delivered in stages (sprints) across an iterative process, customer feedback and reviews get done from the very beginning of the project. Hence failures happen sooner and you learn sooner.”
- Maintaining greater responsiveness to market volatility.
- Activating a company’s ability to solve customer issues iteratively.
- Harnessing the company’s capabilities through creating an environment where people feel empowered and purpose-driven.
“All of this drives greater profit and loss outcomes,” she advises. “[At Optus] agile has increased customer centricity, employee engagement, and speed to market with higher productivity.”
Roadblocks to agile project deployment
No methodology is perfect. According to our experts, the sunshine and rainbows of agile obscure some (admittedly minor) rain clouds. For an organisation to get all that they can from the agile approach, it’s vital that these potential roadblocks are recognised and addressed.
McKim warns against a by the book approach. “It’s easy for organisations to fall into the trap of implementing agile rituals in a dogmatic way, with no room for flexibility within teams. The problem with this is that each team is likely to have an operating environment, so a dogmatic set of agile practices will lead to suboptimal processes for different teams.”
Richard Williams, VP of Engineering at Plutora, says that the effective implementation of an agile approach starts at the top. “Without good leadership you lack good direction; no clear purpose or clarity of work. Good leadership is good for morale in that it provides a mechanism for motivation – a driving force behind why we need to do something. Without this, processes and standards tend to fall apart and the work will be badly managed, steered and delivered.”
And Perera warns against viewing the methodology as a cure for all your ills. “Agile is not the silver bullet. There are projects that you might want to consider other management methodologies such as waterfall, like projects with inter-dependencies and limited flexibility.”
Other agile challenges, issues and failures might include:
- A lack of agile experience within your team.
- A lack of understanding of the broader organisational change that a switch to agile necessitates.
- A company culture that is at odds with the tenets of the agile methodology.
Getting started with your agile project
Having armed yourself with a more holistic understanding of agile’s strengths, weaknesses and capabilities, you’re ready to implement the methodology. But where to begin? A great practical guide is laid out in this DZone article, which relays a six-step process for agile novices:
Determine goals: What are your reasons for shifting to the agile methodology? To deliver new features to your customers every month? To reduce software development re-work by X%? Define clear and measurable goals, and closely track them.
- Form a team: Once you know your goals it becomes far easier to identify the sort of personnel you’ll need in your team. A Scrum development team, for example, typically has 5-9 people, including a Scrum master, a product owner, developers and testers.
- Set expectations: Each of the team members must go into agile with the right expectations. Leaders need to know that forming habits and processes will take time. The broader team needs to know that leaders will require them to work effectively and efficiently, and may come across demanding at times.
- Define process ceremonies: Ceremonies ensure the agile process stays on track. Daily stand ups, sprint planning, mid-sprint reviews, sprint demos and sprint retrospectives are a great place to start. These should be locked into everybody’s calendar from day one.
- Set up an agile board: Set up a physical board in the team office. While digital tools are useful, having a physical meeting place, a group reference point and a spot to flesh out ideas can be invaluable.
- Open communication lines: The agile team should be able to communicate with the team leaders every bit as easily as the leaders can communicate with the team. Regular team catch-ups and an open workplace that encourages interaction are the keys to creating a collaborative and transparent environment.
And what advice do our experts have to impart regarding the successful implementation of the agile methodology?
“Clear product vision is a must – this will assist in defining the schedule for delivering multiple features of the product” advises Zhou. He also recommends forming a small, dedicated development team, and engaging stakeholders throughout the lifecycle to better manage scope.
More than anything though, getting started with agile is about forming a mindset. As McKim of A Cloud Guru says, “agile is an approach, not a set of rules.”
If your entire organisation subscribes to that line of thinking, you’re well on your way to agile software development success.
Looking for your next agile job opportunity? Check out career opportunities at some of Australia’s top companies: