I’ve just updated the wiki for DocGen, my design automation system. There’s not much content there, but there’s now some, so enjoy.
DocGen was originally created after I finished a gig for a particular client. Once again, I’d set up some documentation templates in MSWord with some consistent styles, layout, etc. so that they could create technical design documentation that didn’t completely suck. It amazes me how many IT shops are full of people whose primary work output is documentation, and yet they can’t spell, let alone use tricky things like Styles.
But then, documentation is kinda boring to write, particularly when you’re just churning out templated designs like the ones I’d been doing. That gets really repetitive, and I have a short attention span when it comes to boring stuff. Plus, I’m lazy. So I did what any lazy and easily distracted geek does: I automated the sucker!
Automating a design process is tricky, because it relies on really good standards. Loose standards means the gains from automation are rapidly lost because you end up spending all your time customising the standard output to create bespoke designs. The model-T Ford, and the modern Toyota, rose to prominence because they standardised, automated, and then improved the steps in the automated process. By continually refining them, they managed to get more and more efficiency gains.
Now, you can get ‘customised’ cars built based on what you order. Note how you’re constrained as to what options you’re allowed to choose, though? You can’t have a convertible roof on a Prius. A VW Golf doesn’t come with dual exhausts and a front scoop. You have limited freedom of choice. And that’s a good thing.
Luckily, the underlying system the design documentation was built to work with was pretty well standardised. This meant I didn’t have to cater for a zillion different parameters when building the system, so I could abstract the common elements into a core system, and then feed in the limited parameters into it to generate the designs. Then, the process of designing went from “cut and paste this section into the other 5 documents needed for the design” to “edit 3 lines of XML and hit ‘compile'”. Easy.
So yeah, I built it myself in my spare time so I could get my work done in 1 day instead of 3 and spend my time at work doing more interesting things. The client I worked for after I built DocGen wasn’t interested in it, but the one after that seems to have liked it, which is kinda neat.
There’s still loads of scope for more features and functionality in the system, but it’s a pretty rare tool, as far as I’m aware. I want to abstract it away from a storage and backup related design system to cater for more generic server+software+network+storage combinations, but that’ll take some time.
Let me know what you think!