The History of DocGen
Why was DocGen created?
DocGen was created to automate much of the tedious busywork associated with creating NetApp based IPSAN designs. After designing the standard document templates used for defining backup designs, the authors realised that the highly manual process of creating and maintaining hundreds of MSWord documents would not scale well.
XML as a First Step
The first version of DocGen was a proof on concept written in late 2006. It was written in XSLT, an XML transformation language designed to convert XML documents from one schema to another. The first versions of DocGen were used to create backup design definitions. The intention was to explore if a machine readable design definition could be used to streamline the creation of multiple output documents from a single, authoritative source.
The concept system worked, and design documents of hundreds of pages could be created in significantly less time than the previous MSWord method. Importantly, the time taken to perform documentation updates was vastly reduced; instead of making the same updates to 4 different documents, only 1 document needed to be changed, and all output documents would be created from the source design specification.
The concept system was shown to a couple of potential customers, but unfortunately the value of the system was not readily apparent. The authors also decided that the concept system was difficult to maintain and extend, which would prove problematic if a customer base were to be found.
Python for Power
The second, and current, iteration of DocGen was re-implemented in Python in April/May of 2007. Python proved to be a good choice, and library support for XPATH specifications meant that all the power of XSLT was still available when required. The system was updated to support storage definitions, rather than backups, and it was met with enthusiasm by a forward thinking customer who immediately saw the efficiency gains that could be achieved. The system enjoyed significant use, replacing the existing design process and allowing designs to be created, reviewed and activated in a matter of hours.
More importantly, inconsistency and error was vastly reduced. Implementation issues due to typographic errors dropped to near zero. Post-implementation issues were also reduced to negligible levels. DocGen was a quiet success.
