Whether you're a tester, developer or a regular Joe, you are probably familiar with the headache of booking flights...
and air travel in general. Software testers and developers often fall victim to similar deployment and iteration issues. Everyone just wants to get off the ground in the quickest, least stressful way while still enjoying the journey.
When British Airways (BA) experienced some take-off issues in software development, software engineer Mike Croucher was called in to find a way to sort them out quickly. He found that, despite having a willing and capable development team, there were serious organization and communication ailments. These ailments were delaying application delivery, prolonging tests and adding to a surplus of new functional features that were being forced to the back burners. In particular, BA needed to improve delivery schedules, employee tracking and numerous aspects of BA's website, BA.com.
Croucher already had a 30-year career in airline software development behind him. In fact, he was already working for BA as IT relationship manager. Taking on the role of chief software engineer, he analyzed BA's development process. "I recognized flaws in the way in which our iterations were constructed and deployed. We were missing the benefits of flexibility and predictability; everything seemed poorly scripted," he said.
Croucher recommended a move to agile development. He'd been keen on agile since first hearing of it in 2002. "In that time, there were many developers talking about going lean and providing scalability in iterations," he said.
Next, Croucher's team set about finding and hiring a reputable firm to handle BA's in a transition to agile. Five major agile consultancy firms were evaluated; but BA chose emergn, a smaller firm with familiar names and a positive track record.
Both Croucher and emergn's consultants agreed there are areas of development where agile is not an appropriate choice or, in some cases, even an option. "Approximately 25% of our organization has already changed over to agile. And we are still working to grow that number; but in the process of growing that number we've identified areas where we are certain waterfall development is our only choice," Croucher said.
BA chooses to use the waterfall methodology in areas where there are a lot of requirements that can't be altered; where user communities are long established and the existing infrastructure is functioning at a level that can't be easily topped; and where major operational integration software has been built around an SOA foundation. "These are the 'big bang' areas where a tremendous amount of continuous integration is required and there is no room for discussion or testing of barriers," said Croucher.
So the obvious question becomes, "How do you know when agile is the best choice for a development initiative?"
Go with agile when there's an area where your user base is requiring speed, flexibility and customer-oriented design; when you've identified an area where small functionality can be developed and deployed earlier, Croucher advises.
After the initial agile transition tasks were completed, the project changed gears, and the development team focused on improving other functions of BA.com, including improving online flight booking, air mile calculators and British Airways web channel. The guiding philosophy was not to alter the customer experience on BA.com, just to improve all aspects of it.
Moving development projects to agile helped BA bring an idea into production within eight weeks. Previously, projects took an average of nine months for delivery.