A Story of Software Configuration Management Migration in Large Scale Team

Source: Internet
Author: User

So I 'd like to tell another story -- a bigger team with 300 + developers and 100 + testers. Stories are different, something are common.

When we arrived, they were using ClearCase. as you know, we hate CC (not CruiseControl ). but we decided not changing it at first. the team had some problems. they knew that were their problems. but if you changed the SCM tools, and in case the problems got any worse, they wocould be the consultants 'problem. instead we used it, cautiously.

We chose a small team, found a good code base line (that compile, pass some tests. don't be surprised, it's not so easy to find a version that compiles .), and created a branch for that team, So that other teams wocould not infect them.

Then we added test script to that branch. Don't get me wrong. the test script were already there, just in another system. they had some mechanisms to keep the mapping between code revisions and test script suites. we decided to replace it with simply putting them together.

We helped the team build a continuous integration environment. (Normally, scm migration is part of the CI process improvement.) It was not so easy, but since the code compiles, we made it.

We trained the team of how to work in a CI process. Deleteams don't know what's the right way to work under CI process (though Martin published it several years ago ). they modify the code and submit and pray that the code wocould pass the commit build. we tought them, update, modify code, personal build, update, second person build, commit, commit build.

Till now, two or three week passed. we had showcase each two weeks, in which we will told the client what we had do in the last two weeks and what we wocould do in the next two weeks. most team leaders attended the showcase. as the showcase was on-site. they cocould see how that team work.

AndWe started the MIGRATION. In the real case, it's a BANG! We told the client, we wocould help them switch to SVN. and the next morning, they told us all teams (400 + people) had switched to SVN (they OT much more than TWers ). we all were astonished!

But everything seemed OK. they had one general CMO, and some developers and testers, who had got trained before our coming. and the had a guide document, telling them how to update, and commit (they use tortoise svn as their client ). we admitted that it was not our plan to switch in one night. we even had a plan, in which we designed a sandbox period. but everything just went well. the migration is sort of simple.They found a good code base from OUR TEAM, 'Cause we have told them code and test code (script) must be on the same branch. ThenThey created a repository and commit the code in, send out a mail told everyone to install tortoise svn and check out the codeTo their computer. the branching strategy is what we showed in a former showcase. the simplified branches is as below (since there were more than 20 teams, the branches strategy is 3-layer, not 2-layer as below. the publish branch are tags, not real branch. we call the strategy as stable main line with active braches ):

_ (Publish branch)

/-

/

========================================================== (Integration branch)
| \
| \ ____________________________________ (Branch of team)

\

\ __________________________________________ (Branch of team B)

Since they started using SVN, we were forcedStart the trainingAt once.What we told most was about merging. They used to use beyond compare to merge changes between branches. We told them as long as you do as we told, you cocould let SVN to merge them with good confidence.

About CI, there are still much to say, but for SCM migration, I didn't see magic trick or disasters.

Q &:

Specifically, how did you get the devs trained up?

They trained some people, at least one in each team. and then publish a guide document. when we trained them, we used the same strategy. since SVN is not so complex as ClearCase, it's not a big deal. what is more important is the process, described as before. in another consulting project, we had some internal coaches. we had them coach each developer (tester) when they wanted to commit in code in the beginning period.

How are they finding the transition?

TW has high reputation. Since all TWers keep talking the benefit of atomic committing, optimistic locking, easy branching, some will try it and more will see it works.

What are the teething troubles of running SVN for that particular people?

1. log. some (even some of ourselves) will challenge of the missed logs. I believe it will be a nightmare, if you try to import the history of each file to svn. so convince them, they are not that important, or just leave an approach for accessing the old logs.

2. Merging. People keep doing some wrong with SVN, especially merging two branches in hard way.

3. SVN is not perfect. sometime people broke their branches. let's say, it's just a folder in svn. creating a new branch is often the easiest way to fix it. I had spend one day to fix a strange problem, and then some other SVN expert another day. at last, creating a new branch, spent only several minutes. of course, since client pay us by time, it depends.

4. Cleaning. Jeff said enough about it.

5. Some kind of files need pessimistic, such as word document. Don't mess them up, or you will be sued.

6. big binary file cocould not be put into svn if they get changed a lot. as an exception, putting the whole CI environment into SVN is a very good idea. as someone told, perforce is good at handling big binary files.

7. Authentications. I don't have much experience on it. In my projects, they use the simple access control model based on folder control.

8. Some may delete. svn file. Stop them.

9. Teach them to write comments in right format. Add a hook to svn, so that code can't be commited without comments.

How have you split the repos amongst teams etc?

In fact, we don't do much on this. but we see that, their SVN supporting team set up several Linux servers and run a instance on each sever. more than one project's code are hosted in one SVN instance. they create a folder for one project. and truck/branches/tag folders for one project are created as sub folders. in fact, I know some team set up their own svn server, which I think is the most scalable way :), only if they can make sure the data are safe.

Why not Hg or Git?

For me, I think the learning curve is steep. and for some reason, having a local repository on developers 'computer is dangerous in some managers' mind. the third reason is that I still don't know how to host more than one projects in one Hg/Git instance.

A question, does anyone know how GitHub manage projects?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.