personnel is typically a smaller overall expense, but a larger per
person expense. And how much can you really afford to have these key personnel absent? Ideally, this training should be graduated - you start off with a day or two (or a week or two with some tools), and are able to keep the team running. Another
session and you can start improvements and introduce some automation. Another session and you can eliminate the vendor loop for most issues and customizations.
As with all roles, the key for CM managers and administrators is ease-of-use. But even more important is automation. Automation eliminates the need for the CM
manager and administrator except in extraordinary situations. Does your CM manager have to do labelling and merging or is this automated? How are baseline definitions put together? What do you have to do to identify what has gone into a release? What about breaking out a new release? Nightly builds? Development environment support? The more that can be automated, the smaller the role for CM managers. And the same goes for administrators. How is the repository backed up? How much effort do upgrades involve? What about server operation, especially after outages? Are there special recovery procedures that have to be learned? The
more that is automated, the less need for administration, and the less chance of human error.
The Adminstrator's job should be to understand the tools enough so that if something does go wrong, it can be quickly resolved. It should not be a fire-fighting role or a tedious set of operations. It should not involve having to be a database administrator. And it should not be one of having to tune the tool and repository to
get adequate performance or scalability.
The CM manager's job should involve taking decisions and acting on them with the
fewest clicks/keystrokes possible. In a multiple product, stream-based change management environment, the CM manager would ideally signal only the out-of-the-ordinary procedures. Nightly builds should run automatically based on changes that have been promoted in each stream. Labelling should be automated based on the
actions and context/environments of the developers and based on decisions made
at the CRB. Perhaps the CM manager may have to ask the system to freeze a baseline. Perhaps ask the system to produce a set of tech-writer-ready release
notes. Perhaps kick-off a verification or release process. Perhaps troubleshoot
when a developer accidentally puts the right code into the wrong development
stream. But normal day-to-day operations should not require a lot of CM manager input. As such, there should not be a lot of training required up front. A
quick hands-on run-through of the daily operations and maybe some customization
training. The point is, if it's a lot more than that, then your small business is not going to be competitive because you're using a greater percentage of your resources for non-core business.
For customization, it may well be worth it to outsource customization to an expert,
if one can be found at SMB prices. But if the customization is complex, you may be binding yourself to long term contracts and costs. So look carefully at your tools to see how much effort it is to customize. If you're basically programming to do
customization, watch out.
6. Sufficient quality management to ensure the process is being followed and is beneficial
The final mile is the most difficult. And SMBs are pre-disposed to thinking that when they see the first working lab model, that they are into the final mile. The final mile is shortened primarily by introducing effective process and quality procedures into the first