The major SCM functions are:
-
Identify items for baselining
-
Implement Change Control
-
Perform Status Accounting
-
Conduct Configuration Audits
The level of formality increases as the project progresses, and it needs to be appropriate for the project's needs and the team culture.
Identify Items
Most developers remember to put source code under version control, but forget about the documents. So, who last had the requirements document? And does anybody know where the document's electronic file is kept?
Change Control
Most people think about change control after product launch, but not during development. Check out the reasons why change control is needed during development as well.
Status Accounting
It's 10pm - do you know where your source code is? Version control software is cheap. Use it. Know what's checked in and out, and who has it.
Configuration Audit
Oops! We forgot to include a major redistributable file! Customers are angry! And did a user manual ever get written?
|
True Horror Story
Customer: "Feature X of your software doesn't work correctly - it has
to be fixed."
Tech Service: "We have never produced a product with feature X."
Customer (getting angry): "Yes you did, and it's broken!"
Tech Service: "No we didn't!"
Customer: "Yes you did! I called your programmer three months ago and
asked for the feature. He wrote it and sent us the new disk last month.
But the feature doesn't work!"
Not only was there no
change control, but there was also no configuration management and no
way of identifying configuration items. The programmer had made the
change without telling anyone, had quit three weeks ago, and no one knew
where he might have kept his source code. There were LOTS of directories
with various versions of various programs, but no way to know which one
belonged to this particular program.
We were left with no way to fix the defect and no way to avoid the
blame! The result was a very unhappy customer, who told many people
what jerks we were!
|