Agile Principles: Seeded in the true hacker ethic?
by Garrick West
A disclaimer on the term ‘hacker’
Unfortunately, the popular media has largely corrupted the original definition of the term hacker from its programming subculture grown out of MIT in the 1960s. My comparison here is to the true, original meaning of the term as it grew out of academic culture.
Re-reading: Seeing the world of a book through the eyes of new experiences
I’m not a frequent re-reader of books I pick up for pleasure. There’s a small list of books I have read multiple times, but Steven Levy’s Hackers: Heroes of the Computer Revolution was one book on the “must-re-read” list. I remembered enjoying it thoroughly as a college computer science student when I picked it up wanting to learn more about the history of computing outside the textbook pages. I planned to read it again one day, but that had been, well, ahem…let’s just say a few years ago. As I began reading again years later, I sensed something familiar, a similarity between some of the fundamentals of the hacker ethic being described and the principles of the Agile Manifesto I had been fortunate to operate under for many years. Here’s a summary of the hacker ethic and a comparison to a number of Agile Manifesto principles.
Levy’s principles of the hacker ethic
Levy’s hacker ethic is best summarized by the Wikipedia article on Levy’s book, which ascribes the following principles to the ethic:
- Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total. Always yield to the Hands-on Imperative!
- All information should be free.
- Mistrust authority—promote decentralization.
- Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race or position.
- You can create art and beauty on a computer.
- Computers can change your life for the better.
Comparison to the Agile Manifesto principles
Now let’s see how these match up to the principles behind the Agile Manifesto:
1. Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total. Always yield to the Hands-on Imperative!
The first principle matches fairly well in spirit with “build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” Motivated individuals, support and trust all resonate strongly with access and the ‘Hands-on Imperative’.
2. All information should be free.
3. Mistrust authority—promote decentralization.
These have a lot in common with “business people and developers must work together daily throughout the project” and “the most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” It’s hard to keep information locked away when you have constant communication (and high bandwidth communication at that). And in terms of organization, Agile is all about decentralizing.
4. Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race or position.
This theme of populist drive and democratization is specifically captured by two principles, “working software is the primary measure of progress” and “the best architectures, requirements, and designs emerge from self-organizing teams.” It’s all about what works, and the knowledge that any individual can make a strong contribution.
5. You can create art and beauty on a computer.
I think this is well-embodied in “simplicity—the art of maximizing the amount of work not done—is essential” and “continuous attention to technical excellence and good design enhances agility.” These principles both speak to the notes of craftsmanship in building software, where there is a place and a need for art and beauty.
6. Computers can change your life for the better.
Last but not least, the first Agile principle mentioned seems to match this hacker principle well: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” That is, of course, if you think that satisfying your customer and delivering valuable software early and continuously improves the part of your life spent in the creation of software.
Correlation, or just coincidence?
It’s not a direct adaptation by far. In fact, a lot of the classic hacker ethic displayed in early chapters of the book demonstrates things we don’t encourage in Agile principles, like 30-hour-day cycles. Also, there’s no mention of reflecting on how to become more effective, and the hacker ethic is of course a personal ethic as opposed to a set of principles shared by an Agile team. But all in all, I think there’s something to be said for the spirit shared between the two. Perhaps one day I’ll learn what members of either group think about comparison to the other. Until then, feel free to comment and talk amongst yourselves.
Image courtesy of believekevin