Configuration Management

Software Configuration Management is a critical component in any software development team. While I am well versed in many commercial and free-ware products in this area (including Perforce, Source Safe, PVCS, RCS, and CVS), my primary focus is on the ClearCase product family from Rational Software.

Background

I started performing CM tasks in 1985, when I worked at ComputerVision. I wrote wrappers around SCCS and performed Release Engineering functions for the CV-Unix operating system - an OEM version of SunOS 2.0 (yes, we're going back a bit here!). Since that time, I have been consistently involved in CM work, as an engineer, as a manager (for 3 years), and as an independent contractor.

Sample Project Descriptions

My client was closing a development office in Europe and moving the code base to the US. The code in question consisted of approximately 45,000 source and data files. Source control was provided by CVS. Product builds were based on a collection of home-grown shell scripts and Makefiles. There was no support available from the previous European development team. I was given an output log of a complete build on each UNIX platform. I imported the code into ClearCase VOBs, ported the build rules into the format required by the clients existing Makefile-generator, and wrote a new system build procedure to best leverage the clients existing tools and ClearCase. I then provided Release Engineering support and training for the first US-developed release of the product, which was shipped on time.

Environment Consolidation/Merger

My client had purchased a number of smaller companies during the past year. Once these diverse companies completed their prior development commitments, they needed to pull together and form a single team. I led a team that integrated the development environment merging all aspect of 4 very different ClearCase-based development teams. This involved many difficult technical issues, including hierarchical client/server systems structure vs. peer-to-peer systems structure, generated Makefiles vs. hand-crafted Makefiles, heavy reliance on development branches vs a "develop on /main" philosophy, and the folding of MultiSite-replicated environments into a single environment. This also involved many cultural changes, as are expected when acquired companies are fully integrated into the new parent. When we were done, we had an environment with over 60 VOBs, 250 client machines, and a consistent environment, including product builds and branching/release strategy.

Medical Software Environment Facing FDA Process Audit

My client was a start-up developing a software product for use by Radiologists. As part of their approval process, they were facing an FDA process audit for their software development process. I worked with the engineering team to develop and document the development and release process for the company. There were no issues in this area during the FDA process audit.

Government (Treasury Department) Contract

My client was a mid-size software contract house. Their normal project involved 2-3 engineers working on a project for 2-3 months, then turning the project over to their client. When they got a large contract with the US Government, they need to show expertise in configuration management for a 20 person, 2 year project. I joined the team to define Configuration Management Standards and implement Source Control and Product Build tools into the development environment.

Start-up Trying to Do It Right

My client was a start-up planning to use ClearCase. Past experience of the management team, both positive and negative, had convinced them that investing in a solid ClearCase environment from the start was the proper way to go. I was brought in to analyze everything about the existing environment and it's suitability for ClearCase. I worked with the IT team (read: person!) to implement many infrastructure changes to the network and systems environment to allow for smooth ClearCase operation. I helped to determine the proper configuration for a new VOB server. I worked with the development team to develop the directory tree structure and VOB layout. I then converted the tree from the initial CVS version to the new VOB layout. As part of this conversion, I updated the build process and makefiles to work in the new structure, and to work with ClearMake. The end result was a solid ClearCase environment operating on Solaris, Linux, and Windows.