If you can't do it by hand, then you can't automate it. Automation is a tool to increase consistency, but it is not in itself a substitute for a well-defined process or process control.
A Whirlwind Tour of Potential Solutions
There are many technical answers to a question like yours. Some include:
- macro languages like m4
- single-source document markup languages like AsciiDoc
- templating solutions
- integration of sub-documents
- database normalization for use with document merges
- commercial systems like Rational DOORS
- home-brewed scripts using sed, AWK, Perl, Python, or Ruby for find-and-replace
However, all of them miss the real point: when you talk about validating quality and consistency, you're talking about controls.
A Quick Overview of Controls
Controls come in various types:
- Physical controls
- Technical controls
- Administrative controls
and with varying objectives:
- Preventive controls
- Detective controls
- Corrective controls
You are currently implementing a manual process with at least some detective and corrective controls. If you didn't have any controls in place, you would not have detected or corrected your errors before documents were sent out. Q.E.D.
Document and Evaluate Your Process
You have a process; document that down to the procedural level. Your process has controls; document them, too.
Once you fully understand your current process, measure the effectiveness and costs of both your process and your controls. Perhaps you need a better process, or maybe an appropriate technical or administrative control will become obvious once you start analyzing your process more closely. Then again, maybe all the right pieces are already in place, and you just need to make sure the process or controls are actually operating as designed.
Administrative Controls Are Usually Easiest
In my personal experience, administrative controls are usually the easiest to implement, although (by definition) they are not automated. For example:
- Institute a formal document review process.
- Document a repeatable procedure for each set of changes made within the process.
- Implement a checklist of things to validate.
- Require sign-offs for each administrative control stage.
The automation you use, if any, should be selected based on how well it integrates with your defined process, and whether the automated controls have fewer false positives or false negatives than your manual controls. An unreliable automation is worse than no automation at all.