Are your software development teams using Agile in name only and finding it difficult to make it work in reality?
Having spent 4 years helping our own teams adopt and evolve Agile software development approaches I can tell you that Agile adoption is hard. But with perseverance it is also incredibly rewarding.
Many New Zealand teams underestimate the difficulty of adopting Agile software development approaches. Unfortunately some of these teams give up as they hit hurdles and revert back to what they know. As such, Agile does not always have a great track record in New Zealand, despite the very real benefits that high performing Agile teams can deliver to your organisation.
In this post I share some ideas based on what has worked for me in the role of Software Development Director as we have adopted and continuously evolved our use of Agile at Equinox IT. 1: Adopt using a small-cycle incremental approach
It seems ironic, but our observation is that many New Zealand teams use a waterfall approach to adopt Agile. Given Agile adoption is hard, it is highly unlikely that Agile will work as intended first time, unless there is a good history of assimilating change in your organisation. Instead adopt Agile incrementally; starting small and then learning, evolving and continuously improving through each cycle. 2: Work within your organisational context
We are supporters of Agile software development approaches such as Scrum. But we have also found that any given best practice approach may not apply to your organisation’s unique context. At Equinox IT, we have continued to evolve our approach to software development, incorporating elements of Scrum, Lean, Kanban and Design Thinking as our understanding of our context has emerged. Your organisation will be the same. Don’t blindly follow best practice, but use what works the best, based on your experience of applying different approaches in your organisational context. In other words, solve your own problems. 3: Never give up in the face of resistance and chaos
You will face resistance and chaos as you adopt Agile. Resistance to change is human nature, so expect it. According to the Satir change model, from resistance performance will descend into chaos – even for the most well assimilated change. While this is difficult and uncomfortable, understand that it is a necessary part of any change and that past behaviours may no longer work in the changed context.
When in chaos, look for a transforming idea that your people can align with to help pull them out of the chaos. In our case at Equinox IT, it was the concept of ‘sustainable pace’ - the view that Agile adoption might ensure ‘normal’ working hours rather than the enormous hours that some project teams in our industry work, driven by immense pressure to deliver.
Once through the chaos your team can then optimise and move towards a new status quo that delivers higher performance to your organisation.4: Change your environment
According to Lewin’s heuristic ‘behaviour is a function of people and their environment’. Often it is easier to change the environment than your people. Moving your teams into collaborative work spaces may help facilitate the adoption of Agile. Alternatively, dropping an existing high performing Agile team into your environment, who your team can work with, will likely fast track your team’s successful adoption. 5: Manage business expectations
In a recent Equinox IT webinar, participants indicated that the biggest issue they face with Agile projects is business fatigue. Successful Agile teams require high involvement from the business throughout the duration of the project. Delivering the results the business needs relies on this involvement and the business needs to understand their important contribution and needs to commit to being available.
We’ve found that intentionally designing and iterating how you conduct your project’s interactions with your business, such as reviews, can yield a much greater degree of ongoing participation. Start with empathy and iterate from there.6: Be deliberate with your structures and roles
Ideally an Agile team is structured as cross-functional (all the skills you need to deliver the project) and self-organising (the team has the ability and authority to make decisions). How closely you are to this ‘ideal’ will depend on your organisational context. Our research shows that many New Zealand software development teams are still structured in functional groups and most project tasks are assigned by a manager role rather than the team self-organising these.
Be aware of what structure works within your organisation and the roles that are required for each structure. If your team is functional and managed, then you will need a management role that makes decisions and allocates work. As you transition to cross-functional and self-organising teams then you will need different leadership roles such as a coach and ultimately a facilitator. Bear in mind that in certain unexpected circumstances, such as a crisis, your self-organising team may not perform well, and in these instances a manager will need to step in and manage until the crisis has passed. Obviously the focus at this time would be to spend the least amount of time in crisis mode and return to self-organisation quickly. 7: Keep your performing teams together
The Dreyfus model of skill acquisition shows that people start off as novices and incrementally get better, ultimately becoming experts after many years refining their specific skills. The first time your team undertakes an Agile approach together, they will collectively be novices with regards to their interactions with other team members and how an Agile approach best applies in that context. Novices are not high performing, so avoid judging the success of your Agile adoption on the first few attempts.
Once your team does start to perform, do your best to keep the team together. Your team’s skill at interacting with their teammates in an Agile context matures through usage and the continuity allows you to build ‘expert’ Agile software development teams over time.
New Zealand software development teams often give insufficient time and attention to the process of adopting Agile. We see many teams that are positioned as being Agile but in reality are not achieving the real benefits that high performing Agile teams deliver. Adopting Agile is a serious change management process as shown in the 7 ideas presented in this post. Hopefully these ideas will assist you in making Agile more successful in your organisation.