An agile approach to rocket science
- By John K. Waters
Who says you can't use agile software development methodologies for large, complex projects with high assurance requirements? Certainly not the members of Lockheed Martin's flight software development team, who employ agile principles in combination with traditional, plan-driven processes to develop guidance software for the Atlas V rocket.
'To those who say you can't use agile methods on government and military projects, the Atlas flight software team says, 'Oh pooh!'' says Michael Bethancourt, flight software development laboratory manager for the Atlas program.
Bethancourt was in San Jose, Calif., last week to accept the 2004 Better Software Innovation Award for the Lockheed Martin team. His team's adoption of agile principles reflects its focus on 'ensuring perfect software before perfect documentation,' he told attendees at the Better Software Conference and Expo. 'We're flying rockets,' he said. 'We don't want to launch the world's fastest submarine.' Agile methods have helped his team to cut the costs of launching a vehicle by two-thirds, he added.
Unlike heavy or process-centric methodologies, agile methods focus on smaller units of work and tight team development as a way of coping with the inherent unruliness of software. Agile methods, such as the popular eXtreme Programming, emphasize principles over process, increase developer-customer interactions, and reduce the length of development and feedback cycles. The result (proponents say) is that development teams are freed to be more productive.
The knock against such agile or lightweight methods has been that they fail to provide adequate structure and documentation, which makes them unsuitable for large-scale projects.
And yet, the Lockheed Martin team found that when combined with traditional methods, agile principles proved to be invaluable on the Atlas V project. Essentially, team members rely on traditional processes until they get in the way. They use the capability maturity model and concepts such as ISO, for example, but only as benchmarks for comparison and team process improvement.
'Even before we heard about such things as agile practices, Atlas flight software had been evolving to what we call a 'traditionally non-standard' view of software development,' Jon Hagar, manager of the flight software test group, wrote in his award submission. His team's hybrid approach would probably make both agile and traditional proponents grit their teeth and shake their heads, he added.
Employing such agile tenets as 'people before process' came easily to an already close-knit team used to working cheek-by-jowl, Bethancourt tells Programmers Report. 'We code a little, test a little, work on requirements a little, all the way through,' he says. 'It's very iterative. Once we get to the end, if we have a problem, that's when we do the formal paperwork.'
The Lockheed Martin team's hybrid approach, which they began using on commercial projects and now also employ in government work, has succeeded in an industry in which failure is not an option. The group's software has guided rockets for such commercial projects as the launching of direct broadcast satellites for the Dish Network. It has also supported a range of missions for NASA. To date, there have been no operational failures in the Atlas launch vehicle, Bethancourt says.
'If a rocket, for whatever reason, should come apart in the air,' he says, 'you can bet that our software will still be flying the biggest piece.'
The award was given to the Lockheed team by Software Quality Engineering (SQE), a training, consulting and research firm, publisher of 'Better Software' magazine, and host of the StickyMinds.com Web site. The judges cited the team for its use of agile methods in a large, complex project; its 'open-minded' approach to development; and its ability to put new development-customer relations in place.
'We were looking for a company whose projects were implementing either existing practices in a new and different way or, as in this case, a new mix of practices that allow them to innovate their projects,' says SQE editorial director Pamela Young.
The team's willingness to use the best of both approaches impressed judge Ed Weller. 'This in itself is 'innovative,' and a cause for recognition,' Weller said in a statement. 'More often than not, proponents of one or the other views refuse to see merit in any but their own belief system.'
The panel of judges also included Lee Copeland, Payson Hall, Tim Lister and Johanna Rothman.
Links: For other Programmers Report articles, please go
John K. Waters is a freelance writer based in Silicon Valley. He can be reached
at [email protected].