In this article, Ronald Kandt describes ten basic principles that support configuration management activities, and then goes on to describe twenty three "fundamental" practices, which are split across the categories of: Management Practices, Quality Practices, Protection Practices, and Tool Practices.
In this entry, I'll simply enumerate the principles from the article. In subsequent entries I'll list the 4 different sets of best-practices.
Kandt's Ten Basic Principles of SCM are:
- Principle 1:
- Protect critical data and other resources
- Principle 2:
- Monitor and control software development procedures and processes
- Principle 3:
- Automate processes and procedures when cost-effective
- Principle 4:
- Provide value to customers
- Principle 5:
- Software artifacts should have high-quality
- Principle 6:
- Software systems should be reliable
- Principle 7:
- Products should provide only necessary features, or those having high value
- Principle 8:
- Software systems should be maintainable
- Principle 9:
- Use critical resources efficiently
- Principle 10:
- Minimize development effort
- All of them are certainly well aligned with agility, or any sound engineering practices for that matter. But #7 and #10 seem especially well aligned with agility, and are often not emphasized enough in many CM circles.
- #10 in particular might surprise some folks, because I'm sure many developers might perceive CM as trying to do anything but minimize development effort, and may feel #10 is often treated as secondary and subordinate to #2
I'll also note that these principles seem somewhat different from the kind of SCM Principles I've been trying to compile. The things I'm looking for are less about SCM process goals, and more about SCM solution design (e.g., design principles for how to design or select an SCM best-practice that most effectively preserves the above goals). In this regard, I might consider most of the above to be goals more than principles (but with a few exceptions.)
No comments:
Post a Comment