Version Control

Articles

To Branch or Not To Branch (and Merge/Test)

I don't like merging. When I merge I've got to retest. This is especially difficult if the merging occurs a few days/weeks after the original change. Come to think of it, I don't really like branching, but that depends. Do I have to merge whenever I branch? Do I use branching for a specific discipline or is it a catch-all operation which gives me all sorts of capabilities in return for a spaghetti-like spider web of branches and merges? What about all the labeling that goes with it? There must be a better way, a way to reduce branching, and merging, while increasing automation and reducing complexity. What is it?

Joe Farah's picture Joe Farah
The Trouble with Tracing: Traceability Dissected

Traceability! Some crave it. others cringe at the very mention of it. For hardcore configuration managers and requirements and systems engineers, it is a fundamental commandment of “responsible” software development. For many hardcore agilists and other developers, the very word evokes a strong “gag” reflex, along with feelings of pain and frustration. Traceability requires work and discipline! So how does traceability add value to our business and how can we make it easier?

Delivering On Expectations: The Benefits of Integrated Requirements & Configuration Management

The job of developing systems is a difficult and challenging one. In today’s business climate where the demand for capability is unparalleled and the expectation of quality ever increasing, taking a lifecycle perspective to the delivery of systems can provide a crucial advantage.

Louis Taborda
Consistent Quality Requires Consistent Processes

It was a restaurant my wife and I had passed many times, and we had always told each other, "We must try them some day." When we finally tried them, we were pleasantly surprised. The food, the service, the atmosphere, even the price were great! "This will be a regular stop for us," we agreed. But on our third visit, we had to send our food back twice. Another time, we waited nearly an hour for our order. Then, some time later, we were seated at a table that was not clean. Most of the time, things were great. But as we experienced sporadic problems, we visited that place less and less often.

Alan S. Koch
Automating CM or Application Lifecycle Management

Automation is at the heart of excellence in the field of configuration management. Unless a wider definition of CM is used, that of application lifecycle management, automation will fall far short of the mark. As we enter this still young millennium and look back at the progress of CM, it's clear that the industry has, for the most part, been creating tools to fight fires and to avoid them. Spot solutions originally dealing with version control, change management, problem/issue/defect tracking, etc., have given way to more integration. Yet as a whole, the industry has fallen far short of the mark required for CM, or ALM, automation.

Joe Farah's picture Joe Farah
Building a Configuration Management (CM) Capability for Test

 

As more test items exist, there is a tendency for them to evolve due to the changes to requirements and code and, therefore, must be managed effectively. When there are an increasing number of test items, this increases the risk of failing to accurately track all test items, particularly when this is done manually. This is where configuration management (CM) can help.

 

Mario  Moreira's picture Mario Moreira
The Journey Through Traceability to Process Control

Taking a team from an undisciplined product development strategy, through an organized process with visible tracks, to a mostly automated, self-improving process is a long journey. It requires a good understanding of change, an adequate SCM tool or tool suite, good people for sure, and a lot of common sense. The journey is well worth the effort, though. I've been down the road more than once. It leads you to the path where you can manage properly and let the configuration management be handled automatically.

Joe Farah's picture Joe Farah
ABCs of Requirements Engineering

Requirements engineering plays a fundamental role in the establishment of a release.  Requirements engineering can be described as having five key areas of focus.  This includes the ability to elicit requirements, document requirements, approve and baseline requirements, manage the requirements after approval, and trace from the requirements thru test.

 

Mario  Moreira's picture Mario Moreira
The Dimensions of SCM Planning

There are times when Software Configuration Management (SCM) gets implemented and the results may not be as positive as one would hope. There can certainly be many reasons for this, but some times, it comes down to whether or not due diligence was performed during SCM planning,an important criteria for successfully implementing SCM. Other success criteria include: sponsorship (management commitment to the SCM effort); funding (money to purchase appropriate SCM tools and infrastructure); and personnel (persons trained, skilled, and experienced in the areas of SCM tools and process). However, effective SCM Planning should cover sponsor, funding, and personnel tasks if structured appropriately.

Mario  Moreira's picture Mario Moreira
Process Perspective: The Earlier Your Release Management Works the More Stable Your Architecture

Chances are, we have probably all experienced nightmare release procedures. Put it this way, you’d be very fortunate if you hadn’t!  As projects mature, release procedures tend to get better, sometimes far too late in the life cycle of the project, though. The trick is to aim for getting the release management working as early as possible, ideally sometime in the Inception phase. The earlier the release management works, the more stable the architecture will tend to be. Let’s take a look at release managing a “Hello World” candidate architecture as an example of a starting point for the project release management.

Charles Edwards

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.