Agile software development is reaching mainstream in many Australian IT organisations, according to ThoughtWorks director of client relations, Keith Dodds, who has seen growing adoption of the iterative and incremental-based software development methods worldwide.
As for why Agile, Dodds said it reflected the nature of systems building.
“It is about going from an inward focus, efficiency/cost reduction, and highly structured approach to one that is outwardly focused and fundamentally social,” he said.
With the Cloud, mobility, big data, and social business permeating the IT environment, Dodds sees Agile helping to drive management thinking far beyond the realm of software development.
According to Dodds, 37 per cent of software project outcomes in 2010 were found to be successful, while 42 per cent were considered challenged and the remaining 21 per cent were failed.
“Overall, that means 63 per cent of projects were challenged or failed,” he said.
This figure has remained relatively unchanged for many years, with 72 per cent of software project outcomes in 2000 falling under the same challenged/failed category.
Lean and mean
While Dodds said there is no silver bullet when it comes to software projects, he says Agile can help people with a lot of things they want to do.
“Agility is the ability to create change,” he said.
Within Agile, there is the “Scrum” project management approach, which is deliberately agnostic about technical practices.
“Not paying attention to technical practices will result in developers facing difficulties,” Dodds said.
“Extreme Programming” relates to a test driven development.
“You know where it’s at and you know when it works,” Dodds said.
“If you don’t maintain quality, technical dept will accumulate and cause problems over time.”
The “Lean” approach draws inspiration from the Toyota Production System for vehicle manufacturing, where the entire production line is shut down in the event of a defect.
“Lean is essentially about empowering coders and eliminating bugs early,” Dodds said.
What benefits Agile brings include better handling of changing requirements, encouraging higher quality, and lowering maintenance costs.
“It is about improving business alignment with IT,” he said.
He adds that Agile helps increase visibility into project progress and mitigating risk, while at the same time heightening staff engagement/alignment.
Room for improvement
Some of the recent adoption patterns Dodds has seen is people getting Scrum certified in two days, which he says is not enough, and engaging in training without turning the knowledge into practice and/or forgetting.
“If you hire a coach, there is a tendency for them to be spread out too thin and they can’t pay attention to everyone,” he said.
When it comes to bottom-up skunkworks, or projects developed by a small and loosely structured team mainly for the sake of innovation, Dodds said there is “no way that you can scale.”
Some of the results Dodds has seen is people justifying existing behaviours with a new label, not getting different outcomes, and change being isolated to a small area.
“There have also been good results on a project without meaningful business impact or risk, so there is no support for scaling,” he said.
When it comes to achieving a successful adoption pattern for implementing change, Dodds says a change program is required together with executive support.
“It needs to be meaningful for business with risk,” he said.
He adds that change is easier with modern technology, if you use your best people, and pair your team with experts.
According to Dodds, a successful software project requires executive sponsorship, a sense of urgency, and a clear understanding of the current state.
“Clear change goals, a roadmap, and a mobilising strategy are also key, not to mention having ways to measure progress,” he said.