| Configuration Management: Providing the Missing Link between Operations and Development in Mission Critical Software Projects
by Mans Shapshak, mshapshak@hotmail.com
© 2000, Mans Shapshak All Rights
Restricted
Software Configuration Management (SCM) has become an essential part of Software Engineering and for all but the smallest development teams and projects it a required tool of the trade. SCM is normally considered to be comprised of two parts, versioning which controls the versioning of software configuration items (components or specific parts of the code) in a collaborative development environment and a process control part which controls approvals and other issues assuring compliance with the software design processes being employed. Many SCM products also include Problem Management features for bug tracking and some are even integrated into the Quality Assurance (QA) test systems.
While software development quality has improved enormously with the advent of these tools there are still pockets of resistance or ignorance in web applications.
In large software companies software development projects implement SCM and continue to use the Problem Management features through out the product lifetime. Since the whole company uses the same system, programmers can easily switch from project to project with out having to relearn the tools. Traditional Enterprises on the other hand often encounter a major stumbling block in the release of software to the operating environment. Some of the major problems encountered in this phase include:
 | Operations not
accepting and/or receiving the documentation
delivered by the Software
Development Groups |
 | No Clear division
between configuration tasks of
Operations and Software
Development Groups |
 | Different bug
reporting and problem software
being used by Operations and
Software Development Groups |
These problems are exacerbated when the project is a web development project since some of these projects do not have SCM in place and tend to pass unorganised code snippets, server pages and components to the server creating a mess with no clear versioning.
SCM vendors have identified this need and have developed specialized SCM products for web components. Unfortunately these products have been released into the market in a period of reduced software spending and the benefits of more rigorous SCM approach in Web development will probably not be seen until 2004-2006.
Even with these tools in place in the development organization there is a lack of engineering discipline in the specification of operationally useful data from SCM to be passed to the operations division.
Our consulting work in the field of web applications and operational configuration management has concentrated on bridging this gap and developing the best way to assure that Operations can effectively manage and operate newly developed software.
In our experience the most effective integration tool to assure quality and reduce error response time in the operation of the software is to complete the SCM cycle by integrating it tightly with the Configuration Management (CM) tools of Operations.
The Change Management Database (CMDB) used by Operations is a key component of Service Management Delivery. It contains a database of all the hardware and software in the operating environment catalogued in a database of Configuration Items (CI)s. Each CI contains a list of attributes and has a series of related CIs.
Maintaining the CMDB for a large operation can be a daunting task and include thousands of CI and even more links between them and 10-20 attributes for each (CI). While this may sound like a large number indeed, it should be recognized that in a typical engineering application the number of components can be in the millions. In fact it is interesting to note that the concept of general configuration management has been around for some time and that the precursor of modern SCM systems, was developed from project to maintain a register of a large amount of variants in the configuration of jet engines for the United States Navy in the early 70's.
Just as subsystems configurations are integrated into the configuration of a complete system in mechanical engineering the CIs of SCM developed software to the CMDB used in operations means that hardware and software subsystems configurations are updated during a release and stabilization phase of the software implementation project.
SCM software contains configuration information including links of different software components, servers, users and other entities. Some systems only contain technical information such as required link libraries and package contents but most contain both a technical and a higher level architectural or conceptual design schema. These systems often have a graphical front end and many are compliant with open standards such as Unified Modelling Language (UML). The diagrams which are often used in the software development process include Component Diagrams, Deployment Diagrams, Interaction Diagrams, Use Case Diagrams and Class Diagrams.
In many cases the documentation delivered to Operations contains parts of the information contained in the SCM but in most cases very little of this Configuration information is transferred to Operations because of the cost involved to transfer such information from the SCM to the CMDB. This results in an incomplete CMDB which translates to slower response times for incident and problem resolution. It also means that most incidents must be escalated to Software Integration and Development teams who are working on other projects which is inherently inefficient organizationaly. Another common but wasteful scenario if software has been contracted from a 3rd Party it often occurs that when the contract is completed the Operations team losses access to the SCM.
These problems have been resolved in more mature engineering disciples where complete configurations are always required and provided in a rigorous approach coordinated by a Configuration Management Officer (CMO). As an example NASA and ESA require complete configuration information for components to be incorporated into missions so that rapid Problem and Change Management which might be mission threatening can be carried out with maximum efficiency.
An engineering approach is often used to develop the requirements of software and new systems but in all too many projects the product integration is not accompanied by detailed and digestible configuration information.
Our consulting efforts have developed processes for managing the transfer of Configuration Item details in post implementation from System Management tools and in software release cycles from SCMs.
Some of the best practices put in place are:
 | Appoint a Configuration Management Officer (CMO) who spans both Operations and Development, but be employed by the Operations Division for CMDB maintenance |
 | Make Design and Product Baselines that include the CIs to be included in the CMDB integration |
 | Develop a Configuration Audit Plan |
 | Outline the CIs required on project delivery and CMDB granularity before the project is started. |
 | Create a Document List and Specifications for Documents/Data sources to allow automated SCM-CMDB integration |
 | Educate both the Operational and Development Staff together in a Configuration Management Course or Seminars (We offer such a course which includes a Role Playing Game allowing Operational and Development Staff Members to Trade Roles) |
 | Automate SCM-CMDB integration so that as new software is installed the effort to maintain the CMDB up to date is minimized. |
 | As much as possible use Process Controls and Workflow applications for Configuration Management in both Operations and Development to assure Quality Control |
 | Integrate Problem Management and Bug reporting from the Development and Operations Groups |
The implementation and integration of SCM and CM in Development and Operations is a structured engineering approach to the implementation of information systems. It requires an initial investment and significant ramp-up time for developers and operations personnel but is a clear necessity for mission critical systems.
Web systems and distributed systems have created a lapse in the engineering approach because of the apparent simplicity of creating a web application or a database application. Current distributed web systems are anything but simple and their configurations are enormously complex. Because of the competitive pricing of distributed systems compared to host systems more and more mission critical applications are ported to web architectures with an implied increase in the number of CIs in any given architecture. In addition the number of variants produced to cope with different user environments increases with the use rapid development of new thin clients such as Browser versions, I mode, and WebTV.
Adapting a strategy for the integration of SCM and CMDB for Software Implementations in the entire software cycle from Development to Operations can provide the required solution for Service Delivery of Mission Critical applications.
Click
here to return to the articles page.
|