Practice Good Documentation

Posted by

Having worked on teams of Db2 DBAs, largely in consulting roles, the value of good documentation is huge. This is once again clear to me as I start a position with a new company. The documentation here happens to be excellent and it makes getting a new person (me!) up to speed so much faster.

Where to Document

Where to create documentation is often the first question. My favorite documentation tool is Confluence. I find it flexible and easy to use, with a lot of documentation available online on how to use it effectively. It is excellent for teams sharing documentation, and sharing the creation and maintenance of that documentation. I’ve also worked with Microsoft Sharepoint, and it is also decent. You can even use google documents or a folder on a shared drive. Converting between locations is time consuming, but it is much easier than having no documentation at all.

What to Document

I have seen both ends of the documentation spectrum. I have seen clients with no documentation and all knowledge is in someone’s head. I’ve also worked with a client that required documentation of every configuration parameter for every database. I don’t like either end of the spectrum. At one end, there’s nowhere to even start, and at the other end, you spend so much time documenting things that are likely to change.

The art is in finding the happy medium. Documenting server names, ip addresses, instance names, ports, and database names is really the minimum. On top of that, it makes sense to document any procedures that are customized. I also like documentation of organizational Db2/database best practices – what is your standard filesystem layout, critical configuration settings, where do you store maintenance scripts, what do your maintenance scripts do, what are your HA and DR plans? This is a great resource for those new to the company, and also for you to compare systems to your own standards and best practices.

I don’t like documenting all database and database manager configuration parameter settings, however, if you’re using a configuration manager it might actually be possible. Things that are likely to change are generally not worth documenting.

How to Document

Once you come up with what to document and where to document it, there are several elements that every good document should have. I like a change log near the top of any document – even the ones in systems that help you with change management like Confluence. This allows you to see who updated a document and when, and a general overview of their changes. Here is an example of one for a document I’ve been working on lately:

Also towards the top of a document it is important to note the purpose of the document in a sentence to two. Here is an example of one for a document I’ve been working on lately:

Noting the audience the document is directed at is important. A document is written differently if it is directed at fellow DBAs, at system administrators, at developers, or at managers or users. Here is an example of one for a document I’ve been working on lately:

I am a huge fan of including a table of contents for any document longer than a single screen of data. Here is an example of one for a document I’ve been working on lately:

The meat of the document needs to be well organized and separated with Section headers and sub-section headers. This makes the table of contents section easy to generate in Confluence, Google Documents, or MS Word.

At the end of any document, it makes sense to include links to useful references or to other related documents. Here is an example of one for a document I’ve been working on lately:

Using metadata structures available to you also helps. Categorizing or tagging documents doesn’t seem like a big deal when you only have a handful of documents, but anything over 20 documents or 3 people working on the same things and it is likely to make finding what you need easier.

Lead Database Administrator
Ember is always curious and thrives on change. Working in IT provides a lot of that change, but after 18 years developing a top-level expertise on Db2 for mid-range servers and more than 7 years blogging about it, Ember is hungry for new challenges and looks to expand her skill set to the Data Engineering role for Data Science. With in-depth SQL and RDBMS knowledge, Ember shares both posts about her core skill set and her journey into Data Science. Ember lives in Denver and work from home

2 comments

  1. The Screen shot shows that you have documented an implementation of DMC. Is there a way you can share the template for me to re-use?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.