Using Confluence for professional documentation

Confluence is a great medium to create and maintain documentation and keep documentation alive. It has several advantages over e.g. MS-Word.
Many organisations and companies have to comply with legal requirements or requirements of regulatory authorities regarding documentation standards. The current Confluence release does not meet all of these demands. It would be a great advantage to use Confluence (the enterprise wiki ) for the complete documentation process and not having to fall back to e.g. MS-Word for completing the documentation process. This should be achieved without destroying the purpose and idea of a wiki . There have been many postings and discussions regarding this issue (see below), maybe they can be consolidated in this posting?

What are the formal requirements for a documentation?

(In the following a version of a documentation is referenced as an artefact.)

  • An artefact needs to be consistent and closed
    This means, once an artefact is closed, any (even minor) change in the artefact results in a new version of the artefact, which has to be checked for consistency again. Maybe the comment-function can be improved to achieve this requirement.
  • Each artefact has to be approved
    Each documentational artefact has to be signed, approved or marked as ready by the author, auditors or any other person in charge.
  • Each approved artefact must be accessible and available to be referenced
  • Each approved artefact must be archivable
    Many legal requirements demand documentation to be archived for many years. This also requires the archiving of the information who has signed, approved etc. which version of the artefact.
  • Each version must be printable
    Often archiving the electronical version of a artefact is not sufficient, the printed version has to be archived as well.

How can all these requirements be implemented in Confluence?

Confluence as a wiki already has many basics implemented which are needed:

  • Versioning of content
  • Usermanagement

My ideas to implement the requirements mentioned:

  • Add function to tag page version (like tagging in CVS).
    This would allow to create a documentation baseline/snapshot by tagging all relevant page versions. Once a version of a page is tagged it can be updated  to create a new artefact.
  • Add multi pages tagging function.
    The tagging should be done similar to the "Export Space" function by selecting the pages to be tagged. May the labelling function can be improved to label page version.
  • Add function to approve or reject current version of page by login user.
    There is no formal approval mechanism required, only save approval or rejection information.
  • Show all users who approved/rejected a page version in page info tab (recent changes or page history)
  • Add function to export documentation baseline by tag to standard export formats (html, pdf, word). The exported artefact could be archived to meet any legal demands.
  • Show version and tag in page.
  • Add function to view and reference to tagged page version without restoring version.
  • Improve search by option to search in historical versions

Discussion in Confluence and JIRA

Some gardening has been performed on these issues.
To better track the importance of this issue, i've tried to break it up into distinct parts each with a single issue. There were duplicate issues created all with a fair number of votes. By combining them we can better manage their priority.
  • Approval Contains requests about the requested page approval process
  • Tagging Contains requests about the tagging of pages and/or spaces
  • Historical Contains requests about working with the historical versions of pages and spaces
  • Other Contains other similar issues that don't fall into the above categories.

There have been some discussions and issues regarding this issue:

Reference  
APPROVAL CONF-4333 Approve page version by user
  CONF-4153 Space/Page Approval Mecanism
  CONF-1675 Add review mechanism for pages
TAGGING CONF-4387 Support labelling specific versions of content
  CONF-1567 save version of this page with date
  CONF-1406 Page and space version tagging
  CONF-6763 Support for baselines or tagging and branches. Aka good versioning support
HISTORICAL CONF-1271 Export historical versions of pages
  CONF-1282 Make old versions of stuff searchable
  CONF-1271 Export historical versions of pages
  CONF-5572 Ability to work with a historical version of a space - source control like functionality
OTHER CONF-3078 Provide macro to display version of a page
  CONF-2079 More control over PDF exporting
  CONF-5055 Export an entire space as a word document
  CONF-5186 Space Channels - would allow different approval schemes within a space, eg. who can approve which section of content
Confluence Approval Macro - Macro idea
  Approval Workflow - Approval Workflow plugin (prototype)
  Versioning of dynamic content
  Importing and Exporting - space versioning or export by time

To avoid any misunderstandings, I don't judge the quality of any kind of documentation which does not meet these requirements. Meeting these requirements doesn't influence the quality of documentation.

Labels

idea idea Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 20, 2005

    Ed Horne says:

    When is the planned release to include DMS functionalty above into Confluence? H...

    When is the planned release to include DMS functionalty above into Confluence?
    How about CMS functionality?

  2. May 25, 2007

    Leo Przybylski says:

    When I was reading this page, I didn't see this come up. What I would like to se...

    When I was reading this page, I didn't see this come up. What I would like to see is some form of implementation of [http://www.literateprogramming.com|Literate Programming]. I would like to be able to merge my source code and my documentation and provide a medium for people to access it. In other words, it would be great if I could refer to source code in CVS/SVN from confluence by comment tag or whatever (not line number.) It would be also nice if I could embed confluence documentation directly into my source code and have a confluence page built from it.  That way I can have a central place for all my documentation.

    It is such a pain when I am presented with the need for documentation in source code, another copy in PDF, another in Word, another in LaTeX, and yet another in confluence with attachments to the rest. That's just ridiculous. This was actually an exhaggeration, but it wasn't very far from what I've seen. I've witnessed a requirement for a Word document as well as a confluence page where the documentation was identical. It also had to be maintained within the source code. I think  [http://www.literateprogramming.com|Literate Programming] is the way to go.

     I also think it good to mention that Pragmatic Programmers uses [http://www.literateprogramming.com|Literate Programming] which is one of the reasons why so many technical writers are going to Pragmatic. [http://www.literateprogramming.com|Literate Programming] is just a better way to go. It's probably where the future is heading.