Thursday, September 18, 2003

Agile Manifesto: Who does it have in common with Open Source and Hacking?


Eric Raymond's analysis of the convergence of hacking, open source, and the agile movement is of interest. Eric is well known for writing two seminal open source articles that have strongly influenced the movement:

"[Hacker] is a very complex term, but more than anything else, it describes an attitude—an intentional stance that relates hackers to programming and other disciplines in a particular way. I have described the hacker stance and its cultural correlates in detail in How To Become A Hacker...

"Open source is a programming style with strong roots in the Unix tradition and the hacker culture. I wrote the modern manifesto for it in 1997, The Cathedral and the Bazaar, building on earlier thinking by Richard Stallman and others."

Hacking and Refactoring: "Discovering the Obvious"
by Eric S. Raymond
June 14, 2003

"The open-source movement and agile programming may be converging. While reading Martin Fowler's excellent book 'Refactoring', I realized development by refactoring is a sharp description of the normal style of open-source hackers. In this essay ... I explore the connection further.

"In 2001, there was a history-making conference of software-engineering thinkers in Snowbird, Colorado. The product of that meeting was a remarkable document called the Agile Manifesto, a call to overturn many of the assumptions of traditional software development. I was invited to be at Snowbird, but couldn't make it." (Sad story, I almost didn't make it but thought better of it at the last moment!)

Raymond sees "an enormous mutual potential, a gap across which an arc of enlightenment may be beginning to blaze."

"First, people who are excited by agile-programming ideas can look to open source and the Unix tradition and the hackers for the lessons of experience. We've been doing a lot of the stuff the agile movement is talking about for a long time. Doing it in a clumsy, unconscious, learned-by-osmosis way, but doing it nevertheless. I believe that we have learned things that you agile guys need to know to give your methodologies groundedness. Things like ... how to manage communication and hierarchy issues in distributed teams.

"Second, open-source hackers can learn from agile programmers how to wake up. The terminology and conceptual framework of agile programming sharpens and articulates our instincts. Learning to speak the language of open source, peer review, many eyeballs, and rapid iterations gave us a tremendous unifying boost in the late 1990s; I think becoming similarly conscious about agile-movement ideas like refactoring, unit testing, and story-centered design could be just as important for us in the new century."

No comments: