Tuesday, August 7, 2012

IT cos adopting Agile for code development

Growing need for quicker and adaptive solutions to tech problems is pushing firms to adopt the Agile method of coding more and more. While less than 1 per cent of IT departments had even heard about Agile in 2000, statistics by Gartner and Forrester indicate that 60-80 per cent of software development teams today are using Agile as the primary method for creating software. This is higher than 2009 levels when Forrester research said 45 per cent of development teams were using Agile methods to write code or create products.

From behemoths like GE to online train ticket retailer thetrainline.com, difficult technology issues are being addressed by this iterative approach to software development.
Says Trevor Mather, chief executive at ThoughtWorks, which uses Agile tools to create software and solutions: "Gone are the days of three-year $50 million software programs. Now, I want returns on investment within three to five months. We need to change the way we develop software so that we can get things out into the market quicker. What we are seeing is in response to this."

"Adoption rates among IT departments are accelerating," says Phil Murphy, vice president and research director at Forrester in a 2011 report. "We're seeing business change at a pace we've never seen before and that is what's driving the approach," he adds.

The key is in the Agile technique compressing the five sequences of the conventional software development method - called the Waterfall method - to a one-week cycle. It manages to do this by developing a system through repeated cycles (iterative) and in smaller portions (incremental), allowing developers to test and review during development. Speed, lower cost and flexibility are key benefits.

Quicker time to market - reducing the time between code development and production -- is one aspect driving Agile growth. GE Healthcare's IT department managed to finish a project around business analytics using Agile tools within a year, much less than the 18 to 24 months it would have taken adopting traditional methods. British Airways, for one, saw Agile software as a faster way to create products that would generate sales.  
"For the thetrainline.com project, development was completed in small iterations, tackling the most important, high risk or troublesome areas first. Every two weeks, functionality was 'showcased' to the customer to review and re-prioritise work for the next iteration," Mather says. UK's biggest online train ticket retailer needed to move away from a huge monolithic system and legacy codebase and deliver value in a shorter time-scale, with reduced cost and increased scale. It got in touch with ThoughtWorks, which helped it rebuild its core processing and website platform in less than nine months. ThoughtWorks' products and solutions, Mather says, are oversold in the Western markets with Daimler, Chrysler and Barclays being big clients.

The approach gives companies a range of corporate benefits, not merely development efficiencies, says a Forrester Research survey of 205 IT professionals using Agile in November 2011. Senior tech managers say the pluses include improved quality, more opportunities for midcourse corrections, improved customer or business satisfaction, better alignment between business and IT and improved time to market. "The market for Agile is growing quickly. Agile technology can be of great help to banking and financial services firms as well as to the IT/ITeS segment," points out Sudhir Tiwari, ThoughtWorks' India MD.

In contrast to Agile, waterfall development completes project-wide work in one step before moving on to the next discipline. Business value is delivered all at once, and only at the very end of the project. Backtracking is possible in an iterative approach, but not in a waterfall one. Says Rajarshi Ray of PriceWaterhouse, who advises clients on which software to use: "Agile method favours 'working software' over over-complicated documentation before development gets underway."

ThoughWorks is right now working on a product called Continuous Delivery aiming to make software production-ready throughout its lifecycle, so that potentially every good build can be released into production. The goal is to "...minimise the cycle time from idea to delivery and allow the cycle to be repeated frequently and reliably," says Mather.

The adoption varies with much depending on the technologies where firms want to use Agile methods. Modern technologies like the .NET systems, the Java and RUBY platforms have tools that better support the Agile methodology while legacy systems are developed in the traditional way. And there can be a hybrid mode, integrating the two. Researchers suggest that software development teams are almost equally divided on the use of Agile method, the Waterfall method and an unified process.

Small firms and start-ups are, however, automatically moving to Agile. "They don't need to go through the waterfall mechanism or create a process legacy, and plunge straight into the lean world. So, we see huge takers among corporate and small enterprises," explains Mather.

But not everybody is happy about Agile though. Writes noted technology blogger Jason Stamper in Computer Business Review in late July: "One common criticism of Agile software development methods is that it is developer-centric rather than user-centric. Agile software development focusses on processes for getting requirements and developing code and does not focus on product design."

Other critics have said it can be inefficient in large organisations and certain types of projects. Agile methods seem best for developmental and non-sequential projects. Many organisations believe that Agile methodologies are too extreme and adopt a hybrid approach. Sudhir Tiwari counters saying Agile can help IT partner business needs. 

No comments:

Post a Comment