How are you documenting your work, processes and environment

documentationprocess

Are you using a wiki format? If so, which product? (MediaWiki, Confluence, Sharepoint etc.)

Have you create a knowledge base? (Problem/solution-oriented short documents.)

What challenges do you find with creating documentation that works, so you don't get the call when you're off on holiday?

For me, I find there is often a certain amount of organisational "inertia" involved with getting documentation done. It seems to be a different kind of person who can do a task, then think about how they did the task and describe it so someone else can do it – kind of forces to you "go meta" and not everyone is comfortable doing that.

Update

Answers so far include

  • Confluence
  • Flexwiki
  • Fogbugz
  • Mediawiki (with plugins such as fckeditor)
  • Sharepoint
  • TWiki
  • Word/Excel/Visio Docs
  • Documented Scripts

Edit: Aren't you implicitly documenting your network with your monitoring system? Nagios has always encouraged the use of the parents directive to reflect your network's structure, and the notes_url directive is designed to allow you to link to a wiki or other browser-based documentation. So here the "documentation" is split between the "living document" of the monitoring system and more detailed, offline documentation in a wiki. Since I spend a lot of time staring at Nagios it makes sense to put effort into making it as informative as possible.

Best Answer

Commenting on the tooling.

We've tried online wiki's but found a number of limitations, which may be personal taste, but include document structure and most critically having to be connected to the documentation server.

Being connected is a serious problem if you are either offline or onsite (obviously you can mitigate the onsite with a secured SSL connection et. al.)

Our current documentation process is:

  • static html generator
  • markdown syntax
  • distributed versioning system

We have a 'formal' layout for the documentation and that provides the structure for the menus (and the associated CSS for visual styling etc.)

Static HTML Generator

We use an in house static html generator based on cubictemp and a number of other tools: pygments, docutils.

The generated pages are (not?)obviously ugly looking, as most of us/our sysadmins/programmers know what is aesthetically beautiful but have a total lack of coordination into building such.

But it affords/let's us include configuration files, sample scripts, pdf, etc, without having to worry about html formatting screwing it up or worrying about where to find it on the 'server' for downloading.

If it's not HTML, just drop it in the folder and add a url link to it.

HTML provides 'potential' structure for layout, and also critically provides 'linking' between knowledge/content items (as well as base structure mechanisms, such as being able to create menus, table's of content etc.) With HTML, each user can now run a small web server on their machine whether lighttpd or something small or just go full blown with Apache or IIS.

All our machines have the grunt for basic html serving, and works well enough for us.

MARKDOWN syntax.

We use a bastardised version of MARKDOWN, Textish and or reStructuredTEXT to let our 'creative' juices write documentation without having to worry about HTML.

It also means everyone get's to use their favourite editor (I use Scintilla on Windows and *Nix) while the others here use vi/vim.

Distributed Versioning System.

We use Git to 'distribute' the documentation between users. Oh, and we use it's versioning capacity too.

The key advantage for us is that we can all work on updating the documentation without having to be connected to the server, and without having to publish 'completed' works. We can all work on the same parts of the documentation, or different parts, or just consume the information.

Personally, I hate being tied to a server to update blogs let alone wiki's. Git works well for us.

Commenting on the Workflow

Wiki's seem to be the "fashion" for knowledge dissemination / codification, but as commented elsewhere all processes become difficult to sustain, and finding the mix of tools that best supports your teams needs and is sustainable will take time.

The better solutions just end up being discovered and not mandated.