How CM's Best Practices Boost Processes and Quality

[article]
Summary:

In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior. Bob Aiello helps you enhance your existing CM best practices by applying the core principles that deliver excellent process and quality.

While many of my colleagues are expert build, release, or deployment engineers, there still are those who do not understand the underlying principles that focus so heavily on process and quality. This is true in both agile and non-agile environments. This article will help you enhance your existing CM best practices by applying the core principles that deliver excellent process and quality. We will also take a moment and make sure that we get our terminology straight.

So, what exactly does it mean to have a process? There are many times when I hear colleagues say, “Well, our process is...” while referring to a set of activities that I would never really consider to be a “process.” My favorite authoritative resource is the free IEEE online dictionary called Sevocab [1], which describes a process as a “set of interrelated or interacting activities that transforms inputs into outputs.” Sevocab also notes that the term "activities" covers use of resources and a process may have multiple starting points and multiple end points. I like to use Sevocab because it also notes the standard (e.g., IEEE) or framework (e.g., ITIL) where the term is used, which can be very helpful for understanding the term within a specific context. I usually describe a process as being a well-defined way of doing a particular set of worth-noting activities that are implicitly repeatable.

In configuration management, we often create processes that support the application build, release, and deployment engineering. It is essential that all processes be automated or at least “semi-automated,” which means that the script proceeds through each step—although this perhaps requires someone to verify each step based upon the information on the screen. Scripting the entire release process ensures that the process is repeatable and that errors are avoided. An error-free process also helps to ensure that we achieve a quality result. Manual procedures will always be sources of errors and mistakes. Automating the step, even if you need some human intervention, will go a long way toward improving your process and quality.

Sevocab defines quality as the degree to which a system, component, or process meets specified requirements and the ability of a product, service, system, component, or process to meet customer or user needs, expectations, or requirements. Configuration management principles help to ensure quality. Here are some of the guiding principles for source code management [2]:

1.    Code is locked down and can never be lost

2. Code is baselined, marking a specific milestone or other point in time

3.    Managing variants in the code should be easy with proper branching

4.    Code changed on a branch (variant) can be merged back onto the main trunk (or another variant)

5.    Source code management processes are repeatable

6.    Source code management provides traceability and tracking of all changes

7.    Source code management best practices help improve productivity and quality

About the author

Bob  Aiello's picture Bob Aiello

Technical Editor of CM Crossroads and author of Configuration Management Best Practices: Practical Methods that Work in the Real World, Bob Aiello is a consultant and software engineer specializing in software process improvement, including software configuration and release management. He has more than twenty-five years of experience as a technical manager at top New York City financial services firms, where he held company-wide responsibility for configuration management. He is vice chair of the IEEE 828 Standards Working Group on CM Planning and a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Management Board. Contact Bob at Bob.Aiello@ieee.org, via Linkedin linkedin.com/in/BobAiello, or visit cmbestpractices.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Oct 12
Oct 15
Nov 09
Nov 09