|
| What's Best? What are industry best practices for Software Configuration Management (SCM)? Which best practices are best for your project - for your organization? How should these best practices be applied or implemented to solve your SCM problem domain? Is your project or organization prepared to use SCM best practices? Are there good best practices and not-so-good best practices, or are some SCM best practices better than others? What should you know before applying SCM best practices to your project or to your organization? Let's examine a collection of SCM best practices. Where's the Value? I have always believed in the installation of SCM as a critical and much-needed process during early stages of the development or product lifecycles. That is, recognizing its value and importance during the early stages of planning when the project manager is developing the project plan. A good understanding of what is to be built, the requisite resources, and the infrastructure needed to support product development is a good start in such planning. Knowing when software baselines are to be established and where they will be located are very important. Insight of the skills needed to support the development environment and the resources that will be required during each phase are key. The project must know how (and where) all product components and their relationships to other products will be managed and controlled. A change control authority must be identified. Responsibilities and roles of the SCM group must be defined and assigned. These are some of the activities and tasks that must be identified upstream - before any requirements are gathered, managed, defined, and developed - before design activities - and before any development work begins. Examples of SCM Best Practices So, what are these "SCM best practices?" Let's examine some institutionalized, recognized, and proven best practices in use. According to the AIRLIE Software Council [1]:
According to Anne Mette Jonassen Hass [4]:
Cisco [5], the hardware manufacturer recommends the following:
Stephen Berczuk and Brad Appleton [6] assert, "Although there are many "best practices" for SCM, to use them effectively, you must understand how they relate to other practices you use and the environment in which you use them." There are several "best practices" listed by Brad Appleton on the CM Crossroads website [7] including:
Senior management support: That is, nothing succeeds without their support! Senior management provides the resources, serves as liaison between executive management and staff, and must be in the communication loop. SCM planning: Should there be a SCM Plan or just SCM planning? SCM planning is performed first at the project level, and then it's communicated throughout the project. If a SCM plan is used, it must be meaningful, must be revised after each phase, and should be in sync with organizational planning. Change control and escalation procedures: Must be well documented, enforced by the Project Manager and supported by all levels of management; cannot hinder the project team; must be effective; must be efficient; and must be consistent and repeatable. Simple practices and tools: Practices should cause good things to happen and should be communicated and understood. Tools should be easy to use and pragmatic, and should enhance communication and reduce rework. Private workspaces: These are developer areas that must contain:
Communications: That is:
Prudent branching:
Intelligent builds:
Conclusion The SCM best practices examples listed in this article are not all-inclusive. That is, there are many other activities that can be termed as best practices. Much has been written and said about SCM best practices and a significant number of those practices are critical to the success of a project and the quality of the product or products being built. However, we need to keep in mind several things to ensure such practices remain in proper perspective. First, best practices are products of empirical experience. That is, a process or practice that has been used repeatedly and successfully by an organization can be considered as a best practice. Second, an automated solution is not always a best practice. If your SCM processes adversely affect the productivity of the development group or become a bottleneck, then a tool will only serve to automate those chaotic processes - making them occur more efficiently. Finally, the application of common sense should prevail. The use of logical, pragmatic practices in the execution of SCM tasks to produce strategic work products and conduct essential SCM activities should be the norm. The following are guidelines (or best practices) for successful SCM practitioners:
References [1] The Airlie Software Council - 2001; (http://www.spmn.com) [2] Brian A. White, SCM Strategies and Rational ClearCase, Addison-Wesley; 2001 [3] Laura Wingerd, Christopher Seiwald, High-level Best Practices in Software Configuration Management, presented at the Eighth International Workshop on Software Configuration Management, Brussels, July 1998 [4] Anne Mette Jonassen Hass, Configuration Management Principles and Practice, Addison-Wesley; 2003 [5] Cisco Systems - Configuration Management: Best Practices White Paper; http://www.cisco.com/warp/public/126/configmgmt.html [6] Stephan Berczuk and Brad Appleton, Software Configuration Management Patterns, Addison-Wesley, 2003 [7] Brad Appleton website (http://www.cmcrossroads.com/bradapp/acme/#ScmBestPractices) Dick Carlson is a process architect with more than 20 years of IT and software engineering experience that includes software development, software engineering training and mentoring, development and implementation of software/system lifecycle methodologies, software configuration management, software project management, software quality assurance, and software process improvement. Dick has trained and mentored teams and individuals on efficient techniques applied to SCM activities, project management, requirements management and development, risk management, business modeling, and business re-engineering. He has also implemented software process improvement initiatives preparing organizations for SEI CMM compliance. Dick is the current VP of Education with the Association for Configuration and Data Management (www.acdm.org) and can be reached at dcarlson@iascar.us.
Set as favorite
Bookmark
Email this
Hits: 6622 Trackback(0)Comments (0)
|
| Last Updated on Thursday, 13 July 2006 06:02 |



