X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C7B2BC.931F72AC@onstor-exch02.onstor.net>; Tue, 19 Jun 2007 13:55:39 -0800
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C7B2BC.931F72AC"
Content-class: urn:content-classes:message
Subject: RE:  SCM Branching Models
Date: Tue, 19 Jun 2007 13:55:38 -0800
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E04360D1D@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E0221586E@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic:  SCM Branching Models
Thread-Index: AceytCjH1t4h6u09QBW5cQ34aHCGewAAA+HwAAEQFWA=
From: "Ken Renshaw" <ken.renshaw@onstor.com>
To: "Larry Scheer" <larry.scheer@onstor.com>,
	"Jay Michlin" <jay.michlin@onstor.com>,
	"Tim Gardner" <tim.gardner@onstor.com>,
	"Andy Sharp" <andy.sharp@onstor.com>,
	"Jerry Lopatin" <jerry.lopatin@onstor.com>
Cc: "Paul Hammer" <paul.hammer@onstor.com>,
	"Ken Renshaw" <ken.renshaw@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7B2BC.931F72AC
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

To take a step back and get a better overview of all the things that
need to be taken into account, here is an excellent paper by folks from
Perforce, Motorola, and others:

http://www.cmcrossroads.com/bradapp/acme/branching/#StreamedLines

It provides an excellent framework for evaluating decision options,
quantifying and managing risks, and methods to ensure smoothly flowing
projects, branching operations and integrations.=20

Here is a very interesting matrix for instance, denoting risk and other
factors to be weighed when making branching policy decisions:

Forces of Branching and Parallel Development
<http://www.cmcrossroads.com/bradapp/acme/branching/>=20
Parallel development raises several important issues and concerns for
the success of the development projects. These risk-factors are briefly
identified here, and are described in detail in a separate section
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>
.=20
Teamwork
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


*	Communication and Visibility
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Roles and Responsibility
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Workflow Organization
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


	Reusability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


*	Reproducibility
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Traceability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Separability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


=09
Safety
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


*	Codeline Consistency
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Codeline Reliability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Codeline Integrity and Stability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Lost Changes
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Reappearing Bugs
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


	Liveness
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


*	Increased Work Efficiency/Productivity
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Increased Coordination Efforts
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Contention and Work Stoppages
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Build Time
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Merge Complexity
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


=09
SCM Tool Support
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


*	Branching Support
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Merging Support
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Logical Change Grouping
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Derived Object Reuse
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Customizability
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>

*	Pluggable Event/Action Hooks
<http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.html>


=09



Here is my favorite quote, which should be remembered in any discussion
such as the recent ones, especially with regard to a defined quality
release:

Determine Your Risk Tolerance
Before making any important strategic decisions, probably the first and
most important thing to do is determine the amount and kind of risk your
project can tolerate within its environment. Look at all of the forces
of branching and parallel development
<http://www.cmcrossroads.com/bradapp/acme/branching/>  described earlier
and try to get a good picture of how and where each of them applies to
your project and its development environment. Which risks apply to you?
Which ones seem important and which ones seem secondary?

They very intelligently and comprehensively list many models, not only
in basic branching topology but the sub-steps of branch creation
policies, merge-back policies, etc. I am very risk-averse WRT codelines
and inflexibility, and I don't like branching late, i.e. a 'panic'
branch at the last minute...therefore I tend towards what they define as
a Stable Receiving Line model:

Stable Receiving-Line (a.k.a Stable Mainline, Main Integration Line,
Base Integration Line)=20
Keep a stable, reliable main development trunk that is used used solely
for importing (receiving) stable bases from other codelines. No
development work ever takes place directly on this codeline, and all
integrated changes must come from some other codeline (not a single
discrete activity branch). The only exception to this rule is that
integration changes may be performed for ensuring that the codeline
builds and functions consistently.=20

The cougar team has been advocating something like the following model:

S1.2=20
LAG Development Line (a.k.a. Main Development Line, Central Line, Main
Stream)=20
Use the trunk as the latest-and-greatest (LAG) development line which
evolves forever and to which all codelines for previous releases are
eventually merged after they have been "retired." The trunk gets used as
the development line for the next/latest development release (not
maintenance, but development, as in significant enhancements and new
features). Thus, when work for release B2 is ready to begin and work for
release A1 is completed or is tapering off, then a new branch is spawned
to finish up the A1 effort (see Deferred Branching) and the LAG-Line is
used for work toward release B2 (which is the new "latest and greatest"
development effort).=20

The process of doing merging for a particular codeline or branch to the
LAG-development line is sometimes referred to as "LAGging,"
"mainlining," "LAG-lining," or "mainstreaming."=20


A direct modification to this is the model I have been pushing for the
last week or so, this is a continuation of the text for the mainsteam
definition above  BTW:

Although often used as a Mainline, a LAG-Line may also be used in
conjunction with a Stable Receiving-Line as the mainline:=20



This I feel balances the risk-decision matrix at the top between an easy
to use model and a powerful and flexible one, while at the same time
satisfies most of the parallel development issues, e.g. Cougar and Zonda
development without forgetting the earlier quote:

"Before making any important strategic decisions, probably the first and
most important thing to do is determine the amount and kind of risk your
project can tolerate within its environment."

There are literally dozens of branching models defined and categorized
in meaningful ways, and during the last 5 years I have used at least a
half-dozen of these variants to meet the needs of the projects at the
time depending on weighing the decision matrix noted above. I like to
keep flexibility to react to the needs of the company so in any model we
choose I would like a stable separate main so we can shift gears in the
future if need be, or support multiple models at once ( something we've
done in the past as well ).=20

Just a couple cents thrown from my direction, and a few things to think
about.

Thanks,

-Ken

_____________________________________________
From: Larry Scheer=20
Sent: Tuesday, June 19, 2007 1:57 PM
To: Larry Scheer; Jay Michlin; Tim Gardner; Andy Sharp; Jerry Lopatin
Cc: Ken Renshaw; Paul Hammer
Subject: SCM Brnaching Models

Ok this time with the attachment... << File: SCMBranchingModels.pdf >>=20

_____________________________________________
From: Larry Scheer=20
Sent: Tuesday, June 19, 2007 1:55 PM
To: Jay Michlin; Tim Gardner; Andy Sharp; Jerry Lopatin
Cc: Ken Renshaw
Subject: SCM Brnaching Models

Here is an article a colleague of mine and his wife did for the IEEE
magazine.

I mentioned getting to you some "best practices" guides with respect to
branching, this is one of them.

Also Practical Perforce by Laura Wingerd O'Reilly and Associates has a
couple of chapters devoted to codelines which is a branching methodlogy.



------_=_NextPart_001_01C7B2BC.931F72AC
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7652.24">
<TITLE>RE:  SCM Branching Models</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">To =
take a step back and get a better overview of all the things that need =
to be taken into account, here is an excellent paper by folks from =
Perforce, Motorola,</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">and =
others</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">:</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><U></U></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><U><FONT COLOR=3D"#000080" SIZE=3D2 FACE=3D"Arial"><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/#StreamedLines=
">http://www.cmcrossroads.com/bradapp/acme/branching/#StreamedLines</A></=
FONT></U></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><U></U></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">It =
provides an excellent framework for evaluating decision =
options,</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B> <FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">quantifying and managing risks, and methods to ensure =
smoothly flowing projects, branching operations and integrations. =
</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">Here =
is a</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
very</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
interesting</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
matrix for instance</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">, denoting risk and other =
factors to be weighed when making branching policy =
decisions</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">:</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><A NAME=3D""><B><SPAN =
LANG=3D"en-us"></SPAN></B></A><B><SPAN LANG=3D"en-us"></SPAN></B><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/"><B><SPAN =
LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF" SIZE=3D5>Forces of Branching =
and Parallel Development</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></B></A><B><SPAN =
LANG=3D"en-us"></SPAN></B><B><SPAN LANG=3D"en-us"></SPAN></B></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us">Parallel =
development raises several important issues and concerns for the success =
of the development projects. These risk-factors are briefly identified =
here, and are </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">described in =
detail in a separate section</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us">. </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><B><U><FONT =
COLOR=3D"#0000FF">Teamwork</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Symbol">&#183;<FONT =
FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Communication and =
Visibility</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Roles and =
Responsibility</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Workflow =
Organization</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><A =
NAME=3D""><SPAN LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><B><U><FONT =
COLOR=3D"#0000FF">Reusability</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Symbol">&#183;<FONT =
FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT =
COLOR=3D"#0000FF">Reproducibility</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT =
COLOR=3D"#0000FF">Traceability</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT =
COLOR=3D"#0000FF">Separability</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN =
LANG=3D"en-us"><BR>
</SPAN><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><B><U><FONT =
COLOR=3D"#0000FF">Safety</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Symbol">&#183;<FONT =
FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Codeline =
Consistency</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Codeline =
Reliability</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Codeline Integrity =
and Stability</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Lost =
Changes</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Reappearing =
Bugs</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><A =
NAME=3D""><SPAN LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><B><U><FONT =
COLOR=3D"#0000FF">Liveness</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Symbol">&#183;<FONT =
FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Increased Work =
Efficiency/Productivity</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Increased =
Coordination Efforts</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Contention and =
Work Stoppages</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Build =
Time</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Merge =
Complexity</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN =
LANG=3D"en-us"><BR>
</SPAN><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"></SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><B><U><FONT COLOR=3D"#0000FF">SCM Tool =
Support</FONT></U></B></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Symbol">&#183;<FONT =
FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Branching =
Support</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Merging =
Support</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Logical Change =
Grouping</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Derived Object =
Reuse</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN></A><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT =
COLOR=3D"#0000FF">Customizability</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Symbol">&#183;<FONT FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/branch-forces.=
html"><SPAN LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">Pluggable =
Event/Action Hooks</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN =
LANG=3D"en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN =
LANG=3D"en-us"><BR>
</SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>
<BR>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">Here =
is my favorite quote, which should be remembered in any discussion such =
as the recent ones</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">, especially with regard to a =
defined quality release:</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"></SPAN></B><A NAME=3D""><B><SPAN LANG=3D"en-us"><FONT =
SIZE=3D4 FACE=3D"Arial">Determine Your Risk =
Tolerance</FONT></SPAN></B></A><B><SPAN LANG=3D"en-us"></SPAN></B></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us">Before =
making any important strategic decisions, probably the first and most =
important thing to do is determine the amount and kind of risk your =
project can tolerate within its environment. Look at all of the =
</SPAN><A =
HREF=3D"http://www.cmcrossroads.com/bradapp/acme/branching/"><SPAN =
LANG=3D"en-us"><U><FONT COLOR=3D"#0000FF">forces of branching and =
parallel development</FONT></U></SPAN><SPAN =
LANG=3D"en-us"></SPAN></A><SPAN LANG=3D"en-us"> described earlier and =
try to get a good picture of how and where each of them applies to your =
project and its development environment. Which risks apply to you? Which =
ones seem important and which ones seem secondary?</SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">They very =
intelligently and comprehensively list many models, not only in basic =
branching topology but the sub-steps of branch creation policies, =
merge-back</FONT></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF">policies</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">, etc. I am very risk-averse =
WRT codelines and inflexibility, and I don</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">&#8217;</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">t like branching late, i.e. =
a</FONT></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF">&#8216;</FONT></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF">panic</FONT></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF">&#8217;</FONT></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF"> branch at the last minute</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">&#8230;</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF">therefore I tend towards what =
they define as a Stable Receiving Line model:</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"><I></I></SPAN></B><A NAME=3D""><B><SPAN =
LANG=3D"en-us"><I><FONT SIZE=3D4>Stable Receiving-Line (a.k.a Stable =
Mainline, Main Integration Line, Base Integration =
Line)</FONT></I></SPAN></B></A><B><SPAN LANG=3D"en-us"> </SPAN></B></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us">Keep a =
stable, reliable main development trunk that is used used solely for =
importing (receiving) stable bases from other codelines. No development =
work ever takes place directly on this codeline, and all integrated =
changes must come from some other codeline (not a single discrete =
activity branch). The only exception to this rule is that integration =
changes may be performed for ensuring that the codeline builds and =
functions consistently. </SPAN></P>

<P DIR=3DLTR ALIGN=3DCENTER><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">The cougar team has been =
advocating</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B> <FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">something like th</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">e =
following</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
model:</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us">S1.2 </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><B><SPAN =
LANG=3D"en-us"><I></I></SPAN></B><A NAME=3D""><B><SPAN =
LANG=3D"en-us"><I><FONT SIZE=3D4>LAG Development Line (a.k.a. Main =
Development Line, Central Line, Main =
Stream)</FONT></I></SPAN></B></A><B><SPAN LANG=3D"en-us"> =
</SPAN></B></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us">Use the =
trunk as the latest-and-greatest (LAG) development line which evolves =
forever and to which all codelines for previous releases are eventually =
merged after they have been &quot;retired.&quot; The trunk gets used as =
the development line for the next/latest development release (not =
maintenance, but development, as in significant enhancements and new =
features). Thus, when work for release B2 is ready to begin and work for =
release A1 is completed or is tapering off, then a new branch is spawned =
to finish up the A1 effort (see<I> Deferred Branching</I>) and the =
LAG-Line is used for work toward release B2 (which is the new =
&quot;latest and greatest&quot; development effort). </SPAN></P>

<P DIR=3DLTR ALIGN=3DCENTER><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us">The process of doing merging for a =
particular codeline or branch to the LAG-development line is sometimes =
referred to as &quot;<I>LAGging</I>,&quot; =
&quot;<I>mainlining</I>,&quot; &quot;<I>LAG-lining</I>,&quot; or =
&quot;<I>mainstreaming</I>.&quot; </SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">A =
direct modification to this is the model I have been pushing for the =
last week or so, this is a continuation of the text for the mainsteam =
definition</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
above</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B>&nbsp;<FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> =
BTW:</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us">Although =
often used as a<I> Mainline</I>, a LAG-Line may also be used in =
conjunction with a<I> Stable Receiving-Line</I> as the mainline: =
</SPAN></P>

<P DIR=3DLTR ALIGN=3DCENTER><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">T</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">his I feel balances the =
risk-decision matrix at the top</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">between an easy to use model =
and a powerful and flexible one, while at the same time satisfies most =
of the parallel development issues, e.g. Cougar and Zonda development =
without forgetting the</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">earlier</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"> quote:</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><U><FONT COLOR=3D"#000000" SIZE=3D2 =
FACE=3D"Arial">&#8220;</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"><B><U><FONT COLOR=3D"#000000">Before making any important =
strategic decisions, probably the first and most important thing to do =
is determine the amount and kind of risk your project can tolerate =
within its environment.</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"><B><U><FONT =
COLOR=3D"#000000">&#8221;</FONT></U></B></SPAN><SPAN =
LANG=3D"en-us"><B><U></U></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">There =
are literally dozens of branching models defined and categorized in =
meaningful ways, and during the last 5 years I have used at least a =
half-dozen of these variants to meet the needs of the projects at the =
time depending on weighing the decision matrix noted above. I like to =
keep</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B> <FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">flexibility</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial"></FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B> <FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">to react to the needs of the =
company so in any model we choose I would like a stable separate main so =
we can shift gears in the future if need be, or support multiple models =
at once ( something we</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">&#8217;</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B><FONT =
COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">ve done in the past as well =
).</FONT></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B> </B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">Just a =
couple cents thrown from my direction, and a few things to think =
about.</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">Thanks,</FONT></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><B><FONT COLOR=3D"#0000FF" SIZE=3D2 =
FACE=3D"Arial">-Ken</FONT></B></SPAN><SPAN =
LANG=3D"en-us"><B></B></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
SIZE=3D2 =
FACE=3D"Tahoma">_____________________________________________<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">From:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Larry Scheer<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Sent:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Tuesday, June 19, 2007 =
1:57 PM<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">To:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Larry Scheer; Jay =
Michlin; Tim Gardner; Andy Sharp; Jerry Lopatin<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Cc:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Ken Renshaw; Paul =
Hammer<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Subject:</FONT></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Tahoma"> SCM Brnaching Models</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
COLOR=3D"#000080" SIZE=3D2 FACE=3D"Arial">Ok this time with the =
attachment&#8230; &lt;&lt; File: SCMBranchingModels.pdf &gt;&gt; =
</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
SIZE=3D2 =
FACE=3D"Tahoma">_____________________________________________<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">From:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Larry Scheer<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Sent:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Tuesday, June 19, 2007 =
1:55 PM<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">To:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Jay Michlin; Tim Gardner; =
Andy Sharp; Jerry Lopatin<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Cc:</FONT></B></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Tahoma"> Ken Renshaw<BR>
</FONT></SPAN><SPAN LANG=3D"en-us"><B></B></SPAN><SPAN =
LANG=3D"en-us"><B><FONT SIZE=3D2 =
FACE=3D"Tahoma">Subject:</FONT></B></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Tahoma"> SCM Brnaching Models</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
SIZE=3D2 FACE=3D"Arial">Here is an article a colleague of mine and his =
wife did for the IEEE magazine.</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">I =
mentioned getting to you some &#8220;best practices&#8221; guides with =
respect to branching, this is one of them.</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial">Also</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><U> <FONT SIZE=3D2 FACE=3D"Arial">Practical =
Perforce</FONT></U></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial"> by Laura Wingerd =
O&#8217;Reilly and Associates has a couple of chapters devoted =
to</FONT></SPAN><SPAN LANG=3D"en-us"><I></I></SPAN><SPAN =
LANG=3D"en-us"><I> <FONT SIZE=3D2 =
FACE=3D"Arial">codelines</FONT></I></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT SIZE=3D2 =
FACE=3D"Arial"> which is a branching methodlogy.</FONT></SPAN></P>

<P DIR=3DLTR><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

</BODY>
</HTML>
------_=_NextPart_001_01C7B2BC.931F72AC--
