Agile Plus Open Source Equals Developer Success

Mark Shuttleworth, founder of Canonical and maintainer of Ubuntu Linux, said blending agile development practices with open-source community development is a key to successful software projects in the new world.

If you mix the best of agile with the best of what open-source development has to offer, you're looking at a recipe for a successful software development experience.

Mark Shuttleworth, founder of Canonical, essentially said as much in a packed session at the O'Reilly Open Source Convention recently. His words were timely, as the Agile 2008 conference is running the week of Aug. 4 in Toronto.

However, Shuttleworth said from the practices of his team at Canonical, things seem to work best when they incorporate development practices from the open-source community-in with the agile methods they use. That way the efforts tend to run even better than with simply agile practices alone, he said.

Shuttleworth spoke about "philosophy, principles, practices-things that work," and said Canonical has taken on "a community-inspired methodology." He said he was filling in for Ian Clatworthy, a senior software engineer at Canonical, who was scheduled to be at the event.

"Free software and the process we are learning from communities are changing the professional practice of software development," Shuttleworth said. He noted that James Dixon of Pentaho has come up with a process known as Open Scrum, which resembles the methods Canonical is adopting.

"I think free software is going to have a profound impact on the practice of software development in a community setting," he said, and I agree. "Even Microsoft is taking advantage of the practices."

Yeah, Microsoft and a whole lot of other companies, including IBM, which refers to its practice of pursuing an internal open-source development model as its "community source" effort.

"When worlds collide, wonderful things happen," Shuttleworth said, adding that most people who move toward agile development tend to look at Scrum, Extreme Programming and LD (Lean Development), to name a few styles. "So we try to synthesize some of these ideas" regarding free software, he said.

For instance, with LD, Shuttleworth said the lesson learned is to "eliminate waste, ruthlessly, measurably." He said "lessons learned in classic production environments can be applied to software development-like from the auto industry."

Moreover, if something is piling up-bug reports, tests or whatever-that is waste, he said. "When you look at open-source software, it's amazing how much waste there is."

Another practice to follow is to amplify learning, Shuttleworth said. "In the free software community, the most productive people are not the specialists. It's the ones who know a little bit about everything."

Another agile practice that can be adopted for open-source development is "decide late, deliver early," Shuttleworth said. "Decide late freaks me out but it works. You do a little bit and deliver it. You have smaller chunks of work moving fast through the system."