Ward Cunningham on Wikis, Patterns, Mashups and More
Ward Cunningham, best known as the inventor of the first wiki (WikiWikiWeb), is currently the director of Committer Community Development at the Eclipse Foundation. He has worked for Microsoft in the patterns and practices group, founded Cunningham & Cunningham Inc., and served as director of R&D at Wyatt Software and as principal engineer in the Tektronix Computer Research Laboratory. Application Development Trends Senior Web Editor Shawna McAlearney interviewed Cunningham to find out what he's up to and what he thinks of current application technologies.
ADT: How did you come to create WikiWikiWeb? What was your original impetus?
Cunningham: I have always been interested in how practice spreads in engineering communities. In the early '90s I wrote a HyperCard application made especially for collecting engineer's recollections regarding engineering projects within Tektronix. I asked visitors to describe how people carried ideas between projects and I found that participants were attracted to the authoring style (top-down hypertext) supported by the application.
In '95 I set out to duplicate the authoring experience of my previous application while using the forms capability of the Web. Two of my ideas I carried forward to Wiki were "recent changes" and "links to not-yet-written pages." I created the first wiki site, which I called the "People, Projects and Patterns" repository. This was to be a Web-based version of the Tektronix study. I substituted "pattern" for "idea." A software pattern is an idea written up in the form of an essay with many strict conventions.
ADT: Did you expect wikis to become so popular? What's your favorite wiki?
Cunningham: I thought my first wiki might grow to a 1,000 pages and last a year. Now, 11 years later, it is 30,000 pages and remains the world's largest single topic wiki. It remains my favorite.
ADT: How do wikis benefit software developers?
Cunningham: A wiki helps developers because knowledge accumulates in a wiki, rather than just passing by as it does in e-mail, news, blogs and instant messages. The accumulation is only possible because the community of users shares the responsibility for organizing the knowledge.
ADT: Wikis are a big part of Web 2.0. Can you share your thoughts on Web 2.0? Is it a useful concept or just a vague buzzword?
Cunningham: Wiki is the original Web 2.0 application. It is the first popular application to allow a community to contribute and organize content.
ADT: What do you think about the evolution of agile development or XP (Extreme Programming)? How do you think XP has fared?
Cunningham: I'm please to watch XP become mainstream even if it means some dilution of the practices. We have a second, third and emerging fourth generation of experts who tell the agile story. Each expert brings his own experience, which is a good thing, but it does mean that a little of original story gets lost every year.
ADT: What has been XP's influence on software development practices? How important is "agility" today?
Cunningham: The effect of agile methods has been and will continue to be profound. Our industry has been barking up the wrong tree for two decades. In essence, we have had a dysfunctional approach to risk. The Agile Manifesto sums up the change.
Our industry has also had a dysfunctional approach to intellectual property. Open source is an equally profound correction to 20 years of wrong thinking about IP. In the same way that agility's daring approach to risk is the only sound way to overcome it, open source's daring approach to property is the only way to ensure its continued creation.
ADT: What advice would you give to developers, in terms of methodologies they should understand?
Cunningham: It is very important as a professional to be able to observe and absorb technique from peers. An amateur can say, "I only do things my way." A professional must be able to say, "Let's try your way for a while and see what happens."
ADT: I understand you work with design patterns, where have those experiments led? What has been the influence on dev practices?
Cunningham: We've cataloged a huge number of patterns in all areas of software. They are the basis of applied (practical) software architecture. Unfortunately, we are at risk of losing this foundation as books go out of print. This is because the writing style, the pattern "form," is too dry to attract other than the most devoted reader.
The Creative Commons Attribution license is the "technology" we need to save patterns. If we'd known this 15 years ago we would not be in the mess we find ourselves in today. Instead creative individuals would be retelling the patterns in a way that resonates with every developer while still preserving a thread back to the analysis that led to each pattern's initial expression.
ADT: How have patterns helped developers? Where will they lead next?
Cunningham: Many times more developers are influenced by patterns than actually read them in their published form. It is just the way we talk now. Pattern this, pattern that. It saves a huge amount of time we use to spend at the white board explaining elementary things just so we knew we were talking about the same thing.
ADT: What projects are you working on these days?
Cunningham: For the Eclipse Foundation, my work focuses on the community of committers building the vendor neutral frameworks and exemplary tools that is Eclipse. This is difficult work because one does not just spend some money and make a community, not a long-lived and alive one that will create value not available any other way. I'm very proud of the way the so-called "Callisto" projects have worked together to simultaneously release their 3.2 versions. We'll be quietly working to build on this accomplishment while still granting every Eclipse project the autonomy they need to succeed.
I've become interested in what makes for "mashup" opportunities. I've always strived for designs that can gracefully accommodate unanticipated change. Unanticipated is a key word here. It is easy to design for that which can be anticipated. I see mashups as raising the unanticipation bar one notch higher. How can I design my thing, and you design your thing, such that they might work together even though that working was never part of the plan.
Here is a little mashup that worked out great. The "Talkie Throwie" is graffiti technology that combines the Graffiti Research Lab's taped together "Throwie" with the highly compartmentalized functionality of my own Cybord computers. It is the fact that I could assemble the mashup in my Maker Faire hotel room using only wire cutters and a soldering iron that intrigues me. There were a lot of contrarian design decisions on both of our parts that made the mashing possible.
ADT: Is there anything going on in the software dev world that you're excited about? Anything that's bugging you?
Cunningham: I'm excited to see the so-called "scripting" languages get some respect as a vehicle for enterprise applications. I notice that Ruby is the current darling among the dynamic alternatives with interest running about three times the usual suspects, which were all tied for second place in an informal poll I ran at Agile 2006.
Yes, I do have something new that is bugging me. Tom Love told me last week that he has found a free hand in staff change to be a necessity when doing large scale and fast paced agile conversions. This doesn't surprise me even though I remain committed to helping people adapt. The scary part Tom told me though was that the person most likely to go was often the person the team felt was most indispensable. I feigned a knowing smile as I agreed that I understood how that happens. But now I am not at all sure I know how experts fall into this trap of obstructionism. I want to figure it out though. There could be some small changes we could make that would make life much better for experts and the people around them.
ADT thanks John K. Waters for his contributions to this interview.