I am honored to present our guest blogger, Bob Aiello. Bob, author of the top-selling book, CM Best Practices: Practical Methods that Work in the Real World, (2010, Addison Wesley) is a well-respected industry expert on all matters CM. We share his passion for excellence in customizing CM implementations and welcome him to our forum:
Agile software development has taken the industry by storm with its focus on Individuals and interactions over processes and tools. But tools still matter and Agile developers typically use lightweight (low ceremony) processes to support rapid iterative development. Agile has enjoyed widespread and celebrated success. In configuration management, we see many technology professionals choosing lightweight open source solutions to complement their lean Agile development methodology. In my own “tools and process agnostic” CM/ALM consulting practice, I see some companies converting from commercial software configuration management systems to open source version control tools. But does this mean that you have to drop your powerful code management solution in order to be Agile? I think not and this article explains how to do Agile CM with IBM Rational ClearCase which, in many sectors, has been the backbone of automated source code management solutions for a very long time.
I have worked with ClearCase since version 2.1 (it’s now on 7.1) and watched the product as well as the entire discipline of CM mature over the last 20 years. ClearCase is an ideal platform for Agile development as it includes capabilities not often seen in open source version control systems. ClearCase can efficiently support continuous integration, baselined releases, multiple variants, traceability, secure repositories and extreme scalability. I will explain how to implement these potent capabilities and why they are valuable in your efforts to support Agile in this and future blog posts.
Support for Continuous Integration
Martin Fowler has done an amazing job of evangelizing Continuous Integration with explanations such as, “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible” (http://bit.ly/hzf8iN). Developers can iteratively rebase their workspaces (pulling in the latest changes from others) before delivering their changes back to the stream – automatically triggering a CI build.
Releases can be baselined by ClearCase version labels which may be secured by having the Version Labels independently “owned”. (This means that you cannot move the Label once it has been applied.) Baselines can be used to independently build the release which is a requirement in many compliance situations. I have personally trained corporate auditors to direct developers to demonstrate that their releases can be retrieved and built based upon a baselined release (persisted by a locked version label). Immutable (and secure) baselines are fundamental to CM Best Practices and creating a traceable variant from a baselined release is also essential. In fact, these practices give you a competitive edge and help boost both your productivity and the quality of your applications.
ClearCase supports branches (and UCM streams) which can be used to manage multiple variants in the code. This is a very useful feature when customers want customizations (requiring support for multiple variants of the codebase). ClearCase’s branching is based upon a delta of only the files that actually changed as opposed to some open source tools which use copybranches, making it more difficult to quickly see which files changed on the branch. ClearCase’s variant management makes it much easier to be customer centric and responsive to individual requirements. This is a core requirement for Agile CM.
Many source code management systems track and store a considerable amount of metadata that provides valuable information about “what” changed, “when” it changed and “who” changed it. While this information may be buried deep in the repository, it can be very difficult to access this information and understand it in an intelligent way. Sometimes, you can access the metadata, but there is just too much information being provided in an unorganized way and trying to understand what it all means can be a very difficult task indeed. This problem can adversely impact your ability to provide good traceability which, for many, is a regulatory requirement.
Many open source version control tools lack good traceability to ascertain exactly what has changed. This is especially important when code is branched and later merged. ClearCase allows you to see exactly what has changed on a branch and more importantly the results of a merge – including the contributors and resulting merged code.
I have trained and supported over 800 developers using ClearCase worldwide with over 1500 ClearCase repositories. The advanced features of ClearCase do require some training, but are well worth the investment. ClearCase can scale to support an enterprise software development effort.
ClearCase repositories have a number of essential tools that can be used to maintain and ensure the security and integrity of the repository. I always run “checkvob” on all my vobs on a nightly basis. Occasionally, we spotted problems (e.g. CIFS configuration issue) that were mostly at the operating systems level and completely independent of any source code management repository. The important thing was that we were able to detect and repair any repository issues immediately (before we had overwritten the backup tapes).
These are some of the basic things that you need to consider when supporting Agile development. I have utilized ClearCase in many different environments and believe that it is an excellent platform to support your Agile CM. R&D Reporter, a ClearCase add-on, provides better traceability for ClearCase UCM and makes ClearCase much easier to use. The GoMidjets product line greatly facilitates using ClearCase for Agile CM and I am pleased to partner with the GoMidjets team in supporting these products in the United States!
R&D Reporter: Area Chart (click to enlarge) R&D Reporter: Detailed Report (click to enlarge)
In my next blog post I will discuss implementing Agile ALM with ClearCase including support for toolchains. Please contact me to discuss your own best practices and existing challenges with using ClearCase for Agile (and non-Agile) software development.