Flylib.com

Books Software

 
 
 

A Note About Wiki Software


A Note About Wiki Software

When I first heard the term wiki or wikiwiki years ago, I ignored it thinking it wasn't worth my time (possibly because of the way it sounds). However, the use of wiki software has spread like wildfire , and it has become an extremely effective tool to use for collaborating and knowledge management in a project.

According to Ward Cunningham, the inventor of wiki software, wiki is the "simplest online database that could possibly work." Wiki is collaborative software that is essentially installed in a web server and enables you to edit web pages using plain text (with various formatting options). Although this might sound almost too simple, it is a powerful concept.

In a software project, a wiki website serves as a central dumping ground (so to speak) for content, which members of a software team can add or change, collaboratively. This fits very well with the Agile and XP style of working in an iterative fashion. For example, online help documentation for a software being built can be assembled using wiki, iteratively and incrementally, over a period of time (over a two-month release, for example). In fact, most of the personal opinions you see in this book were accumulated using my wiki site over a period of almost a year. It helped to have quick access to editable web pages for a quick brain dump when I had an idea.

There are literally hundreds of wiki engines (software) out there developed in almost every programming language you could think of. There are wiki engines that work with flat-file databases and others that work with relational databases. Some wiki engines provide robust authentication/authorization, whereas others are for personal use. Your biggest problem will likely be deciding on which one to use.



Summary

In this chapter, we accomplished the following:

  • Gained an understanding of what our sample application will do by looking at some business requirements.

  • Established a simple software methodology based on Extreme Programming (XP) and Agile Modeling Driven Development (AMDD).

  • Developed some high-level artifacts such as a domain model, UI prototypes , high-level architecture, and more.

  • Created a simple release plan based on our user stories.

Now it is time to begin getting our hands dirty with some design work.



Recommended Resources

The following websites are relevant to and provide additional information on the topics discussed in this chapter:

  • Agile Data http://www.agiledata.org

  • Agile Manifesto http://agilemanifesto.org

  • Agile Modeling http://www.agilemodeling.com

  • Extreme Programming http://extremeprogramming.org/

  • Article on PmWiki, a PHP-based wiki engine http://visualpatterns.com/resources.jsp

  • Wiki site http://wiki.org/

If XP isn't for you, you might want to check out Agile Unified Process (a lighter version of RUP) at http://www.ambysoft.com/unifiedprocess/agileUP.html.



II: Building the Sample Application

 

3 XP and AMDD-Based Architecture and Design Modeling

 

4 Environment Setup: JDK, Ant, and Junit

 

5 Using Hibernate for Persistent Objects

 

6 Overview of the Spring Framework

 

7 The Spring Web MVC Framework

 

8 The Eclipse Phenomenon!