The Documentation Debacle

I have read quite a few blog posts over the last few weeks on documentation. Some of the posts are specific to SQL Server, some are more general in their approach choosing to explain why documentation is good practice and indeed necessary, why it is not just important to have documentation, but to have good documentation. There are also those that try to explain why people choose not to do documentation. They are all good posts in their own right, but only a few of the posts I have read take a moment to actually detail HOW they go about creating (& maintaining) their documentation.

People will find excuses (I have been one of them) not to do their documentation – on whatever subject/system/process/application. These may be:

  1. I don’t have the time.
  2. It’s not my responsibility.
  3. I am not a technical writer.
  4. Where do I begin?

Whilst I am sure that there are organisations that have numerous procedures in place for rigorous documentation of systems & processes, coding standards & conventions, there are (I am sure) many many more (smaller) organisations that have little or no documentation. At the very least, it’s a collection of random text files, word docs, Visio diagrams placed in any number of directories. Most of the knowledge of the way things work is stored in a few key employees heads. Whilst this may seem like a position of power to the employee (they’re ‘irreplaceable’), the organisation is taking a huge risk. As an asides, someone once told me “If you can’t be replaced, you can’t be promoted”. It is worth remembering.

Excuse #1            I don’t have the time.

More than likely, this is a cover-up for Excuse #4. There is always pressure to get projects finished as soon as possible, and that means the solution needs to go into production yesterday. Documentation is sometimes relegated to a date beyond that of the ‘go live’ deadline. And then as soon as you begin putting ‘pen to paper’ on the handover documents a new project comes along and documentation, once again, becomes a dim-and-distant memory.

Excuse #2            It’s not my responsibility

Oh yes it is. Trust me, if you ever want a holiday where you are not on call, it’s your responsibility to ensure that whoever is to hold down the fort, has the information they need to do so. Hands up all those who have accrued two years’ worth of leave because they were the only ones capable of maintaining their systems? I have known several colleagues who were in this position.

If you are building or administrating a system, you are responsible for imparting that knowledge to others. How you do this is another matter entirely.

Excuse #3            I am not a technical writer

This doesn’t matter. Whilst it is important to have good documentation, it is better to have something rather than nothing. If your organisation is yet to standardize documentation practices, this is your chance to take the initiative and show what you are worth.

Excuse # 4           Where do I begin?

I am willing to wager that this is the category that a lot of people will fall into. What needs to be included in the documentation? What level of detail is required? Who is the target audience? There are so many questions. As a developer/DBA/sysadmin it can be difficult to imagine what it is other people need to know in order to accomplish certain tasks. Assumptions are made, and then it all goes terribly wrong.

What am I getting at?

I believe that all of the excuses outlined above can be dropped if it was easier to create documentation. This focuses on the How. I have searched high and low for templates that can be used for a number of things, ranging from Database dictionaries & descriptions, system processes and procedures, development standards & conventions, reporting services templates/design standards, integration services standards & consolidation, the list goes on. I have had to settle with creating my own, and they always being improved, but by no means are they perfect.

How many of you would complete documentation if it were a matter of checking boxes and filling in blanks? If you had a template for, say, technical details of an integration services package,  I am sure that you would be more inclined to fill it in and therefore share the knowledge of that particular solution.

I am asking the community to collaborate, in whatever your speciality is, to share your documentation methods, templates, best practices. I would like to start a wiki of sorts that provides this information to everyone. Something that can grow from the community, for the community.

If you are interested in helping to get this started, email me, Tweet about it, DM me, or simply leave a comment. I am certain this could be a huge resource and one that would ultimately assist many people/organisations to centralise their knowledge base.

Some links to other posts on documentation:

24 Hours of Free Learning

24 Hours of PASS

Since I am always up for anything that is free, and particularly when ‘Free’ includes learning, I signed up for a bunch of sessions from the 24 Hours of PASS, due to be held on September 2nd 2009. This event is a series of 24 hour-long SQL Server based sessions by a number of Industry professionals. I even took the day off work so that I could attend!

Registration opened yesterday and I have signed myself up for the following sessions:

  • Session 01 (Dev): 10 big ideas in Database Design (Paul Nielsen – site twitter)
  • Session 08 (Dev): Tips & tricks for writing SET based queries (Jacob Sebastian – blog)
  • Session 10 (Dev): Working with Spatial Data in SQL Server 2008 (Greg Low – blog twitter)
  • Session 11 (DBA): Effective Indexing (Gail Shaw – blog)
  • Session 12 (BI):  SSIS Tips & Tricks (Simon Sabin – blog twitter)
  • Session 14 (BI): Reporting from Analysis Services Cubes Using Excel 2007 (Peter Myers)
  • Session 15 (BI): Data Warehousing Laying the Foundation to Success (Erik Veerman – blog)
  • Session 17 (PD): Building a Better Blog (Steve Jones – blog twitter)
  • Session 18 (Dev): Building Flexible Data Services for the Web using ADO.NET Data Services Framework (Artemakis Artemiou – blog twitter)
  • Session 20 (BI): Loading a Data Warehouse in SSIS (Brian Knight – blog twitter)
  • Session 24 (BI): Embed reporting Services into your Applications (Jessica Moss – blog twitter)

I have chosen these as they are the ones I am most interested in (BI/Dev focus), as well as the fact that they are during a decent time slot (not 0100 – 0600). Am thoroughly looking forward to it!!

To see the speakers/sessions and register for 24 Hours of PASS go here

.