The construct of a practice can be a good way to help an organization understand and execute on a process. A good practice construct will include the components that are needed to implement a process within an organization in a successful manner for adoption. To move forward on a practice, there are several areas of focus to attain a best practice.
These areas include: ensuring that a practice includes all of the key components for a successful adoption; understanding the difference between a practice and a best practice; and identifying the best practices that can make an organization successful, in this case practices specific to a successful Configuration Management (CM) implementation within an organization.
Components of a Practice
Often times an organization wants to implement a process and provides only parts of the components needed for a successful adoption. I have seen an organization create a procedure and place it on their website and consider this a success. However three months later, they find that while some people have reviewed the practice, very few have actually implemented it.
Another example is where a company has identified a tool and installed it on their central server for use. However, after 3 months they find only some usage and the way groups are using the tool varies dramatically. For a practice to be of value to an organization it should include a number of key components to ensure a successful adoption. The components include:
· Description of the topic within the practice this is to ensure people know what the practice is and the details therein:
- Problems that the practice is attempting to solve. This is to ensure people know why this practice is important and that it can actually reduce some of their pain.
- Goals that the practice aims to achieve. This is to ensure people know what the objectives are for implementing the practice.
- Measures that show if the practice is successful. This provides the people with what a measure of success would look like.
- Procedure that helps an organization execute the practice. This is to ensure that people understand the steps it takes to execute on a practice.
· Guides to help in the execution of the practice. This provides people with guidance in support of the practice.
· Tools and Templates that support the execution of the practice. This provides people with the tools and templates they need to more effectively, efficiently, and consistently execute on the practice.
· Roles involved in executing or facilitating the practice. This ensures people know what their roles are related to aspects of a practice.
· Training to assist in educating those in the practice. This provides people with a learning opportunity to educated themselves on the practice and shows the people that the company feels it is worth investing in the people and the practice.
· Tailoring to adjust the practice to work effectively in different groups. This provides people with an understanding that a practice can be tailored to fit their needs and guidance on how to do so.
· Support Personnel to contact for assistance in the practice. This ensure that people know who to contact for support on aspects of the practice.
I have seen these components be effective for adoption. However, other components may be added as needed. It is important to note that even if all of the key components of a practice are in place, a practice deployment will only as successful as the management commitment to the practice.
Difference Between a Practice and Best Practice
Many organizations have practices sprinkled throughout projects. However how do tell a best practice from a regular practice. Many organizations want to have best practices and often times this is initiated as a top down effort by Senior Management. The problem with this approach is that sometimes this is seen as something forced on people and there may only be limited success with this approach.
To establish an effective best practice, it must be supported from both the senior management level and the grass roots level (and all levels in between). In other words, in order to establish a best practice, it should be established collaboratively. However, do not make the mistake of interpreting this as creating a practice by committee. By collaboration, I mean identify subject matter experts (SMEs) who are on the ground and that know this type of practice well and has insight on what may work. Then look for that practice within the organization that is currently working for a group and harvest this as an example. This is effectively a best practice for that group. However, just because the practice works for a group and is "best" for them, does not mean it will scale to the organization level.
This is where the collaboration of the SMEs comes in. The SMEs can review the examples they have harvested, look for the commonalities, and then adjust it for a broader scope. The SMEs would also ensure that the practice has all appropriate components to ensure a more successful adoption.
The next step would then be to pilot it across several different groups to see if it works effectively in those areas. The goal of the pilot is to identify improvements and to see how much tailoring may be needed for adoption depending on the group size, type, or complexity. After some tweaking, it can be rolled out to a larger audience using the training component of the practice which provides education on the practice and its component parts. If adoption is seen in many parts of the organization, then the practice may be termed a "best practice" for the organization.
Potential Practices in Configuration Management (CM)
Within the CM field, there are a number of practices that are prevalent within organizations. If you are beginning CM within an organization, consider the following practice as a starting point.
The common CM practices include:
· Change control: for managing various important baselines
· Problem management: for tracking defect/issues to closure
· Version control: for checkout/checkin of code
· Build management: for build/compile of code into deliverables (this may include continuous build)
· Branching/merging: for parallel development (project, bug fix, special, patch, etc.)
· Release: for installation of deliverables into production
· Audit: to verify or validate items are on baseline and that people are following practices
· Reporting: for CM status reporting
· Planning: for constructing and executing on a configuration management plan
Before embarking on a practice initiative, it is important to determine the perceived value of the practices and prioritize the work from there.
In conclusion, practices are a great way to introduce organizations to processes that are important for success. However, to establish a practice for the greatest chance of adoption, certain components of a practice need to be included (aka, the practice package). Looking across an organization to harvest practices is a good way to start. Ensure that SMEs collaboratively build out the practice with the necessary components and consider piloting the practice in key areas to seek improvements. Then, a broader rollout of the practice may commence. If a number of folks are using the practice, it may then be consider a best practice.