Wikis are very appealing collaboration tools capable of effectively presenting and editing web-based information, using a very simple markup language, a powerful dynamic-linking mechanism based on lexical conventions, and support the notion of adaptive web pages.
As a result, wiki documents are usually open, can evolve in an incremental and organic way, are easy to edit and organize, promote consistency of terms and contents, are tolerant and easily observable by other users.
Due to their simplicity and effectiveness as a medium for collaborative authoring, wikis are now widely extremely popular, spread all over on the web. They run on many different platforms, and are used to publish pages of different knowledge domains.
Although it’s known that good documentation benefits every software development project, it is commonly accepted that producing and maintaining the documentation consume a high proportion of the software development costs, especially when done without appropriate tools and methods.
A large amount of the software documentation produced today is web-based. Since wikis provide a nice environment for collaborative authoring of web-based documents, at a minimum, wikis can be used as a tool to support the edition, organization and storage of software documentation.
But wikis can do more. They can also be used to support other software engineering activities, such as: project management, project communication, defect tracking, configuration management, requirements engineering, test-case management, and project portals.
Wiki is expected to take over more and more traditional software development works like documentation and issue tracking from project management perspective. On the other hand, some researchers begin to explore whether we can use Wiki as a software development platform to write, test and integrate software, just as what we doing in traditional integrated development environment like Eclipse. There are a lot of challenges for this research work, but we also can image how valuable it is when programmers or testers from different places can contribute their code or test case in a single Wiki site, just like today’s Wikipedia.
We coined WikiOrientedProgramming as systems and related methods to help developers and testers to write and test programs via Wiki site, no matter in on-line or off-line mode, and no matter in browser or richer tools.
In this specific domain, there are many wiki sites being used to cooperatively develop software documentation (drafts of designs and implementations, design tradeoff discussions, requirements gathering, user guides, etc.). However there are still several open issues requiring research and development to yield an even wider usage and better integration of wikis with other software engineering tools and infrastructures.