The Latest
CM Generations and a Vision for the Future[article] It was 1978 when I first introduced change packages (a.k.a. updates) as the central feature of an in-house CM system. It's still in use today supporting a 40 million LOC project. It was 1982 when I introduced the concept of streams to rationalize branching along the product roadmap. Little did I know that a quarter century later, these concepts would just be starting to move to the forefront. |
||
History: Confronting your Past[article] You may now be tired of hearing me say it, but I will say it again: Your repository contains every version of everything which has ever been checked in to the repository. This is a Good Thing. We sleep better at night because we know that our efforts are always additive, never subtractive. Nothing is ever lost. As the team regularly checks in more stuff, the complete historical record is preserved, just in case we ever need it. But this feature is also a Bad Thing. It turns out that keeping absolutely everything isn't all that useful if you can't find anything later. |
||
CM: The Nerve of Your Life Cycle Management[article] Most CM professionals, I think, would agree that the CM database is not just another component of Application Life-Cycle (ALC) management, it's really at the heart of the matter. I'd like to say that the CM function shares the same stature - it's not just another component of your ALC management - it's the nerve. In fact, I'd like to go one step further and say that the integration of CM and Data Management (DM) capabilities, when done properly, can transform your ALC management environment into a next generation engine that will empower each component of your environment. |
||
Makefile Assertions[article] Unfortunately, GNU Make does not have any form of assertions built in, but they are easy to create using existing GNU Make functions. |
||
Self-Documenting Makefiles[article] < |
||
The Road To Production Quality[article] My product is ready on CD. It's better than the previous release in respect to both quality and functionality perspectives. Does that mean it's ready to be released as a production product? How do I know when it's really ready? |
||
Is It Upward Compatible?[article] I want to touch on one of the most basic and fundamental issues of configuration management that developers have to deal with. A common question addressed early on in a project is: Do I need to branch this software and maintain a parallel version? A common answer is: Well, if it's not upward compatible. |
||
The Illusion of Control in Software Configuration Management[article] We explore why it is important to understand the context of agile techniques when you are trying to build a more agile software configuration environment and how people can fool themselves into thinking that their non-agile environment has more control. |
||
Evaluating CM Tools[article] How do you evaluate a CM tool? What's important to you? Did you know that a good CM tool could actually make the difference between success and failure? |
||
The Basics of Release Management[article] In the ever-growing complexity of dependencies amongst products at the build and run time level, there is the challenge of managing increasingly separate items that must work together upon release. This is where the concepts, disciplines, roles, and responsibilities of release management help. Release management focuses on both the engineering disciplines that must bring a specific project release together along with the management of external dependencies across products that must accompany a release. |
||
Makefile Optimization: $(shell) and := go Together[article] Ask Mr. Make discusses Makefile optimization: ow $(shell) and := go together. |
||
Why SCM Should be an Independent Entity[article] Why a Configuration Management (CM) department should be independent from Development, Test, and Production. When deciding where to organize an SCM team within a development organization it is helpful to keep in mind that the three most important characteristics of the SCM role are objectivity, skill set, and focus. This document will show that an independent SCM department is the only group with the right mix of these characteristics to successfully implement and support a full range of SCM services. |
||
Application, Project, and Organizational Configuration Management[article] To get to our destination, the road that we take is important. In order to navigate, the road must be built for our needs. In order to keep it safe, signs with meaningful messages must be added along the way. This should parallel our approach to configuration management (CM). The road in this CM example is the CM infrastructure: a combination of the CM environment (CM technology and systems) and the CM procedures. This car vehicle is the project which uses CM road to deliver a release to its destination. The signs on the road are the organizational policies and direction given to guide us in the right direction and on the right road. |
||
GNU Make Gotcha: ifndef and ?=[article] This month's article is about a little GNU Make Gotcha: an easy way to get tripped up by two pieces of GNU Make syntax that do similar things, yet one has a deceptive name. ifndef isn't really ifndef at all, it would better if it were called ifempty, while ?= does make its decision based on whether the variable is defined or not. |
||
Metrics and Process Maturity[article] In keeping with the season, I'll try to keep this month's article on the Light side (both Chanukah and Christmas are Festivals of Light). Not easy to do when talking about metrics. If you're serious about attaining SEI CMM Level 5 certification, or about improving your processes in an effective manner, metrics are critical. Changing processes based on gut feel, or even based on some other organization's best practices can lead you backwards. Metrics not only permit you to detect this, but give you the basic data you need to improve your processes. |