Father of Wiki Speaks Out on Community and Collaborative Development
Father of Wiki Speaks Out on Community and Collaborative Development
Ward Cunningham, creator of the wiki, said the power of collaborative development has only just begun to be realized, and open-source software will continue to spur more collaboration and more innovation.
Cunningham, who is director of committer community development at the Eclipse Foundation, said open-source software will continue to grow and thrive because it enables user innovation. Cunningham will deliver a keynote address at the EclipseCon conference in Santa Clara, Calif., March 22.
"Im betting on open source being a big trend," Cunningham said, chuckling at his understatement. "And its not just because of cost, but because of end-user innovation. No end user wants to be a programmer; they just want to get their jobs done," he said. But more and more people with powerful tools and powerful languages will be able to work together to build better systems, he said.
"I think of software being a workvery much like a wiki being a workwhere people see an area thats weak and they make it stronger," Cunningham said.
Of his role as a community developer at Eclipse, Cunningham said, "The important thing for us is to recognize the message that needs to be spread."
Indeed, wiki is an example of that kind of thinking, he said. "Its a very small program but spread widely, and people find theyre writing and interacting with people differently."
A wiki is a type of Web site that enables visitors to add, remove or edit content, quickly and easily, without the need for registration.
"I had actually in the 70s worked with hypertext and it was in the 80s where HyperCard came out, an Apple product," Cunningham said. "It had graphics and a database."
HyperCard is an application program and a simple programming environment first produced by Apple Computer in 1987. It most closely resembles a database application in concept, in that it stores information, but unlike traditional database systems HyperCard is graphical, flexible and easy to modify, according to a Wikipedia description of the technology. HyperCard features an easy-to-use programming language, HyperTalk, to manipulate data and the user interface.
"On a fluke I said I want to do a project in HyperCard and it was based on irregular data, not rows and columns," Cunningham said. But he said he knew HyperCard could handle it because of its flexibility.
"So I said I could put together a little database and I made it in HyperCard," Cunningham said. "I programmed a button that would make links after the fact. And when I had that the ceiling just changed. People would come by my office and Id show them. And more people would come by and test it and put information in. And it just grew. I tried to get a network version, but that didnt work. But when the World Wide Web showed up, we were working on this pattern stuff." And Cunningham seized the opportunity to make his vision real.
"In my mind I said I know what works, and then I cooked up in a day or two, a wiki," Cunningham said. "So after I did about 25 pages, I said this is really quick. And I was going to call it QuickWeb, kind of like QuickBase. Then I remembered from my trips to Hawaii the term wikiwiki, which meant quickly, quickly. I liked that alliteration: wikiwiki Webkind of like the worldwide Web."
Cunningham said all through his career he has been interested in taking long-term looks at "how wisdom is collected in organizations, especially the wikiwiki Web style of talking about experiences, and the way that large groups of people can communicate."
Moreover, Cunningham said, "Eclipse is a shining example of the accomplishments of this methodology. My job at Eclipse is to help developers discover the breadth" of technology and resources available to them under the Eclipse umbrella. "We have a little bit of technology, a little bit of methodology, and a little bit of community. I can have an impact by producing small things. The big things in Eclipse are going to come from the projects. The important thing for us is to recognize how our message is spread and to capture that in pieces."
Prior to his role at Eclipse, Cunningham held a similar position in what he referred to as an open-source group inside Microsoft. But after two years of what he described as "hard" work for the Redmond, Wash., software giant, Cunningham said he was ready to move on.
When Cunningham said working at Microsoft was "hard," he said he meant geographically it was difficult because he lived in Portland, Ore., and had to travel a lot to work.
"Also they had a lot of expectations of me, as in lets do the community thing," Cunningham said. "The community thing is based on trust, but Microsoft was coming out of a period where people did not trust them," he said. "But Im happy to be working on something else, too. And in the end my interest is in developers being able to create and to try to add to that creation."
However, part of the attraction to work at Microsoft for Cunningham was "to get to know and understand Microsoft, and I have nothing but respect for them."
Indeed, Cunningham said of Microsoft: "They practice software development in its highest form."
And though Microsoft is slow to adopt the community model of development, they are headed for it, Cunningham said.
"They have to inch toward this community style development, otherwise it would be irresponsible to their stock holders," Cunningham said. "What they do and say is in the best interest of their stockholders. Microsoft has to be more cautious. And IBM has to be more cautious. Even as a developer in the Eclipse foundation theres a certain amount of busy work that a developer has to do, like keeping an intellectual property log and stuff like that. But this is what you have to do."
Meanwhile, Cunningham, who said he has spent years advising about developmental processes, is a major proponent of agile development. He is one of the creators of a collection of patterns that became known as extreme programming.
"This is the perfect job for me," Cunningham said of his position at Eclipse.
Essentially, agile programming is about getting developers to work together, he said.
"If youre a manager and you have 12 tasks and 12 people you are going to give each person a task," Cunningham said. "And you will tell them you want them to work together, but the message you send is not to work together."
Moreover, Cunningham said among the benefits of agile development is "the ability to track radically changing business needs."
Also, the "code base becomes a point of strength, not a burden to be ignored," he said. "We ask people to embrace the code and that creates a power in developers."
Another byproduct of agile development is "the members of an agile team become expert much faster than in traditional development," because they take on different roles and work with different parts of the code, Cunningham said. "It produces senior developers really quickly."
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.