====== Setting ====== The task of providing a collaborative environment brings to mind several ideas on how to proceed, but, overall, there is a common ground that immediately settles in: the web. Mainly, we are dealing with documentation artifacts that should be readily available, easily searchable and prone to modification, extension and enhancement. Equally, they should be, somewhat, structured and presented in a familiar fashion without too much overhead on the medium by which they are delivered. Therefore, the choice fell on a wiki. ===== Wiki ===== Earlier in 1995, Ward Cunningham wrote a set of scripts that allowed collaborative editing of webpages inside the very same browser used to view them [(:ref:Cun)]. He named this system WikiWikiWeb, due to the analogy between the meaning of the word wiki — quick((the expression //wikiwiki//, in Hawaiian, means //quick//.)) — and the underlying philosophy of its creation: a quick-web. Since then, wikis((after the creation of the WikiWikiWeb, several new sites and systems — or engines — emerged based on the same underlying principles, and are generally called wikis. Among them is the well-known Wikipedia (''wikipedia.org''), based on the MediaWiki (''mediawiki.org'') engine.)) have gradually become a popular tool on several domains, including that of software development [(:ref:Lou06)], e.g., to assist the creation of lightweight software documentation [(:ref:Agu03)]. They ease collaboration, provide generalised availability of information, and allow the combination of different types of content, e.g., text, images, models, and code, in a common substrate [(:ref:AD05b)]. As such, and from the extensive list of available wiki engines((This list can be found at ''http://www.wikimatrix.org'', where an extensive comparison between engines can be found.)), the author chose the //dokuwiki// engine((http://www.dokuwiki.org)), mainly for the following reasons: * **Lightweight**. A dokuwiki is simple, small (code-wise) and doesn’t require much effort to install and use. It is written in PHP and doesn’t require an auxiliary database as it resorts to a file-based architecture. * **Semi-structured**. Most wiki engines exhibit an unbalanced measure of structure, that is, some provide a heavily structured, heavily constrained scaffold for placing information, while others have no structure beyond the notion of a wiki page (similar to a web page). Dokuwiki provided a lightweight structure form, having two levels of structure: pages and sections (inside a page). As it will be seen later, this provided the sufficient amount of structure for the development of the required framework documentation artifacts repository. * **Extensible**. Dokuwiki is open-source and can be seamlessly extended by adding plug-ins, without tampering with the native wiki source-code. * **Familiar**. Previous contact with this wiki engine and its familiarity would prove essential to enable a sustainable pace when developing the required tools for the proposed collaborative environment. From the above stated, the wiki serves as a foundation for building the collaborative environment, providing a suitable set of building blocks to harbour, not only the documentation artefacts, but the toolset that will enhance the collaboration and support the learning knowledge cycle. ===== Framework documentation artefacts repository ===== The contents of the wiki compose the framework documentation artefacts repository (FDAR). These artefacts follow a series of formats according to the related set of patterns PATTERNS FOR EFFECTIVELY DOCUMENTING FRAMEWORKS[(:ref:AD11)]. The wiki contents are, therefore, composed of instantiations of these artefacts related to a specific framework, available for the learner to read, browse and enhance. Of course, //**it is the responsibility of the DRIVER tool setup user, to create and provide the specific artefacts for a specific framework**//. These can only be a initial set of artefacts that enables the learner to start using the framework. Later on, each learner/user can extend this repository with more artefacts, if it deeds necessary to register and share their usage knowledge about the framework. For an easier creation of these artefacts by the framework user, the wiki is enhanced with a plug-in((snippets plug-in, by Michael Klier (available at ''http://www.dokuwiki.org/plugin:snippets''))) that allows the definition of a set of templates that pre-formats the artefact with the most common sections and content holders it bears. These are, obviously, optional, but will guide the user in creating the most suitable format to accommodate both his, and the audience needs. Consequently, the user can easily create new artefacts and promptly improve the documentation repository. Additionally, there is a plug-in((tag plug-in, by Gina Häußge and Michael Klier (available at ''http://www.dokuwiki.org/plugin:tag''))) that allows the tagging of pages, so that the user can build a folksonomy for the documentation. These tags can prove useful later on, helping on the tagging of learning paths. ===== Patterns ===== Both sets of patterns for [[fudocs:start|understanding]] and [[fwdocs:start|documenting]] a framework are present in the wiki. The learner can read through both sets of patterns and become aware of their proposed solutions, as means to improve her learning experience. [[start|< back to start page]]