Friday, July 17, 2009

CI, structural changes and merges

Be mindful of the amount of structural changes while in the period that will require more code merge effort.
This was the message I sent to the programmers on a large agile team I have been working with.

Scaling agile has a few caveats to it. This blog post is an awareness message for programmer, which I believe to be complementary to the Continuous Integration practice for large teams.

Below is the message sent to the large Agile team.

We are a large team (+120 programmers: devs and QAs)

Programmers are coding everyday; despite of release candidates and regression periods. How is it possible?

We branch (prior to a new release), then we merge back (after it has been released); all the time ( release branch strategy )…

Consider the following simplified example of a Release formed by 2 dev iterations and 1 regression iteration.

Sample Project Release and Iteration plan

Dev activity –-It1—It2—It3—It4—It5—It6—It7—It8—It9--ItN--
Regression –------------Reg 1----Reg2-----Reg3—-------------
Release sch –------------------Rel1-----Rel2—---Rel3----------


So let’s look at different moments in time:

It2:
Dev activity –-It1—It2
Regression –----------
Release sch –---------

All programmers are working in the main trunk. Any regression activity is happening in the main trunk. There is no release yet. The release candidate is the main trunk itself.


It3:
Dev activity –-It1—It2—It3
Regression –-----------Reg 1
Release sch –-----------------

The release is formed by two dev iteration and one regression iteration.
In this case, the work done for Rel1 is related to It1 , It2, and Reg1; but should not be impacted by It3 development. Therefore the need to branch out the codebase: main trunk, and R1 branch.

Humm… if there is a branch, there will be a merge later: structural changes will have to be merged back!

It4:
Dev activity –-It1—It2—It3—It4
Regression –------------Reg 1----
Release sch –-----------------Rel1

R1 has been released. The code is merged back to the main trunk. The R1 branch now should have very little activity (production support only), therefore it should not create any difficult merge.
Programmers are mainly working in the main trunk; no merge required (remember, we do Continuous Integration!). Go crazy, do the structural changes that you feel are amazing (btw, if it is not, CI will catch it).

It5:
Dev activity –-It1—It2—It3—It4—It5
Regression –------------Reg 1----Reg2
Release sch –-----------------Rel1-----

The development period for R2 is over (It 3 and It 4). The regression work should not be impacted by the development work from It5. A branch for R2 has been created. If there is a branch, the code will have to be merged later on… Please be mindful of structural changes as you will have to merge them.

Have you noticed the pattern?

In the sample presented above:
It 2, it4, It6 development is happening in the main trunk which won’t require large amount of merges later on.

It 3, it5, It7 development is happening in the main trunk, but there is lots of development happening for a release, and those will have to be merged back in the next Iteration.

So if you have a big restructure to be done; should you do it in It7 or It8? (Remember, there is no free lunch, you will have to merge it back!)

11 comments:

Jonsan said...
This comment has been removed by a blog administrator.
Jonsan said...
This comment has been removed by a blog administrator.
Maical clark said...

I really liked your blog! Please come visit my site chambers of commerse when you got time.

Maical clark said...

Can you provide more information on this? I am new to the subject. Please come visit my site gynecologist clinic and give me any valuable feedbacks.

aiai said...

For a pair of sleek gloves that would look great with your suit, pick up the Ross Gloves Italian Sheepskin Gloves with Cashmere lining. These gloves are perfect for those who live in metropolitan areas
spyder skiwhere the temperatures drop in the winter because these gloves are lined with extra warm and soft cashmere for that added layer of spyderwarmth and insulation. The premium Italian lambskin will mold to your hands in a close fit and the slim lines of this glove are convenient enough to slip into your pockets when not neededspyder jacket.

For a great pair of gloves that will keep up with you on the slopes even spyder ski wearin the harshest of temperatures, pick up the Burton' Gore-Tex Under Gloves for $64.95. The Thermacore insulation on these ski jacketgloves will keep your fingers warm even when the freezing wind and slate beats down on you. spyderThe DryRide Ultrashell combined with the Gore-Tex Insert ensures that nothing will get your fingers wet. spyderThe hidden heater and vent pocket stashes extra warmth on the cold days and dumps spyder jacketsexcess heat in the spring. spyder ski wearIf you are worried about your goggles getting steamed up, these gloves help solve that problem with the soft chamois goggle wipe which will keep your vision clear.

jessica said...

COMPAQ Presario 2149 Series Laptop Battery
COMPAQ Presario 2150 Series Laptop Battery
COMPAQ Presario 2151 Series Laptop Battery
COMPAQ Presario 2152 Series Laptop Battery
COMPAQ Presario 2153 Series Laptop Battery
COMPAQ Presario 2154 Series Laptop Battery
COMPAQ Presario 2155 Series Laptop Battery
COMPAQ Presario 2156 Series Laptop Battery
COMPAQ Presario 2157 Series Laptop Battery
COMPAQ Presario 2158 Series Laptop Battery
COMPAQ Presario 2159 Series Laptop Battery

贝贝 said...

The Tax Return Crack-Up<3>
Granted, there are usuallyMicrosoft Office 2010write-ups when presidential contenders make their tax returns available, but the coverage falls far short of the Office 2010
full court press (pardon the pun) that the Clintons have received. What's Microsoft Office 2007different now?Office 2007One possibility is that most upper middle class Democrats, and therefore most Microsoft OfficeOffice 2007 keyeditors and reporters of our nation's big papers as well as Office 2007 downloadtelevision producers, are Obama supporters who think that Hillary should hurry up Office 2007 Professionaland drop out of the race already.Microsoft outlook
Microsoft outlook 2010Whom elite liberals are pulling for really does shape political coverage in ways

GuildWars2Items said...

It takes strength to resist temptations and distractions Diablo iii Power Leveling, it takes strength to do what is right D3 PowerLeveling, it takes strength to do al these things. And all the while, these are the very things that build even more strength D3 Power Leveling.

GuildWars2Items said...

The minute you think of giving up, think of the reason why you held on so long EQ2 Plat, no matter when you start, it's important that you don't stop after you starting EQ2 Platinum, no matter when you end, it's more important that you don't regret after you ended EQ2 Gold.

dte said...

What gets us into trouble is not what we don't know.It's what we know for sure that just ain't so rs power leveling, Life is like a hot bath. It feels good while you're in it, but the longer you stay in, the more wrinkled you get rs item, life is too short to wake up in the morning with regrets. So, love the people who treat you rs items right and forget about the ones who do not.

dte said...

The past is gone and static. Nothing we can do will change it.scarlet blade gold, the future is before us and dynamic. Everything we do will affect it rs gold, You laugh at mescarlet blade gold for being different , but I laugh at you for being the same.