Using Wikis in Software Development
Total Page:16
File Type:pdf, Size:1020Kb
open source Editor: Christof Ebert ■ Alcatel ■ [email protected] Using Wikis in Software Development Panagiotis Louridas In only a few years, wikis have become one of the most popular tool shells imaginable based on open source software. You can find them just about everywhere that demands effective col- laboration and knowledge sharing at a low budget. Wikipedia has certainly enhanced their pop- ularity, but they also have a place in intranet-based applications such as defect tracking, re- quirements management, test-case management, and project portals. Panagiotis Louridas describes wiki essentials and nicely distinguishes a variety of types. You’ll find something useful, I’m sure. —Christof Ebert y 1995, Ward Cunningham, a promi- What is a wiki? nent member of the design patterns A wiki is actually two things: community, was experimenting with a hypertext environment to promote the ■ a program that makes it exceptionally easy exchange of the community’s ideas. for anybody to edit Web pages and B ■ The environment was based on the a philosophy regarding how users should then-popular Apple Hyper- go about that editing. Card application. That applica- tion worked well for individual Generally, Web pages are written in HTML. users, but Cunningham was While it’s not difficult to learn HTML, non- looking for a Web-based imple- programmers tend to shy away from it. Even mentation. On 25 March 1995, programmers find it easier to edit text than he posted the Web’s first-ever structured HTML, where linking between wiki, calling it “the simplest pages requires attention to things such as ad- online database that could pos- dresses and anchors. When many people edit sibly work.” the same Web site, you must also pay attention Wiki means “quick” in to how these people collaborate. Hawaiian. To describe the technology powering In a wiki, users write simple text following his Web site, Cunningham chose the name a small number of conventions. The system WikiWikiWeb, primarily because he found it creates the necessary links automatically, so more interesting than saying “quick Web.” Web page editors have much less to worry Also, Hawaiian words are doubled for empha- about. Wikis, however, move beyond offering sis, and Cunningham wanted to stress that his practical help to adopting a particular philos- program was very quick. Moreover, as we will ophy on who can edit material and under see, wikis use doublings as formatting markers. what circumstances. Specifically, just about Finally, he wanted an unusual word for an un- any system user can edit a page written by any usual technology. The fact is, both the technol- other user. ogy and the word have stuck with us ever since, This might seem like a recipe for chaos, but creating new forms of collaboration and knowl- it turns out not to be—primarily because edits edge sharing on the Web and empowering many are visible to all. So if somebody abuses his or people to contribute to online content. her editing rights, another person will edit the 88 IEEE SOFTWARE Published by the IEEE Computer Society 0740-7459/06/$20.00 © 2006 IEEE OPEN SOURCE inappropriate edit. We can witness how such a system works in practice by visiting Wikipedia (http://en.wikipedia. org), whose English version counts 965,042 articles as I write this—proba- bly more than a million by the time you read it. The vast majority of articles are of very high quality. There are many ways to implement a wiki, so we now have a multitude of wiki engines at our disposal—more than 200 at this time. All follow the same fundamental principles, but they differ in both the underlying technology and the assumptions about how they’ll be used. Here, plurality is strength, and somebody wishing to create a wiki is really spoiled for choice. Editing a wiki Figure 1 shows the current Wiki- WikiWeb front page (http://c2.com/ Figure 1. WikiWikiWeb front page. cgi/wiki). Apart from its content, the page includes a set of links for edit- ing it. (Figure 1 doesn’t show the links; they’re at the bottom of the page. Also, depending on the wiki engine, the edit- ing links might look like tabs, and the terminology might differ from what I use here.) Clicking on the edit link opens the wiki page’s source text. To edit the text, we write in a human language that fol- lows a few wiki conventions. For exam- ple, to end a paragraph, we use a blank line (double enter). We use doubled sin- gle-quotes for emphasis (usually italics) and tripled single-quotes for strong em- phasis (usually bold). Putting an asterisk in a line’s first column creates a bulleted item in a list; more asterisks create deeper indenting. Some wikis offer edit- ing tools like spell checkers and pre- viewers that make life even easier. Figure 2 shows the edit text for the Figure 2. WikiWikiWeb edit page. page in figure 1. After we’re done editing, we click much by itself. It must be linked to matically creates a link to the named on the save link (or another mechanism other pages. When we edit our text in page. If the page doesn’t already exist, with similar wording). This makes our the wiki, a joined capitalized word we can click on the link and the wiki changes permanent, and all users of the (LikeThisOne) is a link to a page of that engine will take us to a blank page to wiki will see our edited material from name. Again, the convention changes fill in. now on. This being a wiki, they can depending on the wiki engine; for ex- Wikis are very well documented. In also edit it themselves. This leads to a ample, it can be the name of the page fact, they’re usually documented in their live document, something between a surrounded by double square brackets own wikis. Learning the full conven- mailing list and a Web site. ([[Like This One]]). When we save a tions for formatting and editing is sim- Of course, no Web page is worth page that uses a convention, it auto- ply a matter of going through the wiki March/April 2006 IEEE SOFTWARE 89 OPEN SOURCE input from many participants, who Additional Resources on Wikis might not agree. Setting meeting agen- das and keeping minutes are good ex- The Wiki Way: Quick Collaboration on the Web, by Bo Leuf and Ward Cun- amples. Many projects use wikis for ningham (Addison-Wesley Longman, 2001), is the primary reference on wikis, these tasks. In fact, you can use the cowritten by the creator of the original wiki. same wiki for both these tasks—first Wiki: Web Collaboration, by Anja Ebersbach, Markus Glaser, and Richard to set the agenda, then to capture the Heigl (Springer, 2005), describes the wiki philosophy, presents the main fea- minutes. This is much more practical tures, demonstrates MediaWiki and TWiki, and shows how to use wikis as pro- than the usual procedure of circulat- ject management tools. ing e-mails soliciting input and com- Ward Cunningham’s Artima interview (www.artima.com/intv/wiki.html) is an ments and then trying to merge every- engaging firsthand account of the ideas behind wikis. body’s views. The Wiki Design Principles are available in WikiWikiWeb at http://c2.com/ Moving one step further in func- cgi/wiki?WikiDesignPrinciples. WikiWikiWeb also includes an annotated list of tionality, some platforms are available more than 230 wiki engines (at the time of this writing): http://c2.com/cgi/ that build on wikis and offer many ad- wiki?WikiEngines. ditional content management and proj- A site comparing different wiki engines, from which I gleaned the material in ect management goodies. The goodies table 1, is available at www.wikimatrix.org. range from RSS feeds and blogs to sur- The 2005 International Symposium on Wikis, which took place 16–18 Octo- veys, polls, and issue trackers. ber 2005 in San Diego, included presentations on various uses and aspects of wikis. The proceedings and discussions are available at www.wikisym.org. Rolling out a wiki For those who insist on doing every- thing by hand, you can roll out a cus- tom-made wiki that fits a project’s re- help pages. To assist novices, wikis At the simplest level, you can use quirements exactly. Given that a wiki is usually come with a sandbox—a place wikis as a project documentation repos- a Web-based application, you’ll just in the wiki where edits aren’t perma- itory. You can upload all documenta- have to write some server code to ac- nent, so everybody can experiment at tion to a wiki and link source code to cept and record users’ edit requests. their ease. it. This is straightforward if the devel- The original WikiWikiWeb engine oper team uses a version control sys- was a CGI application written in Perl. Using wikis in software tem that publishes code to the Web (see Today wikis are written in anything development “Version Control,” IEEE Software, from Java to Ruby, Perl, PHP, ASP, and No single correct way exists for us- Jan./Feb. 2006, pp. 104–107). Using a so on. At the minimalistic end of the ing a wiki in software development (nor wiki as a static documentation reposi- spectrum, it’s possible to create a wiki in any other activity, for that matter). tory, however, is missing too much of using only Unix shell commands and Wikis are especially useful in distrib- what it has to offer.