Lesson Learned: Transforming from ClearCase to Git

19
Lessons Learned: Transforming from ClearCase to Git Tamir Gefen @almtoolbox almtoolbox.com

Transcript of Lesson Learned: Transforming from ClearCase to Git

Page 1: Lesson Learned: Transforming from ClearCase to Git

Lessons Learned: Transforming from ClearCase to Git

Tamir Gefen

@almtoolboxalmtoolbox.com

Page 2: Lesson Learned: Transforming from ClearCase to Git

Why Switching Tools? The Situation

Page 3: Lesson Learned: Transforming from ClearCase to Git

The Situation1. 100 developers (end-users); 5 groups

2. Working with Base ClearCase ; hundreds of branches

3. Users want to work from home in a convenient way

4. Users want to move to modern processes

z

Page 4: Lesson Learned: Transforming from ClearCase to Git

Why Switch Tools?

Page 5: Lesson Learned: Transforming from ClearCase to Git

Why Switch Tools?

1. Costs: licensing and maintenance

2. Ease of use for end-users

3. Consolidate the organization into one tool

Page 6: Lesson Learned: Transforming from ClearCase to Git

AgendaChallengesChallenges

Page 7: Lesson Learned: Transforming from ClearCase to Git

The Challenges

1. Different tools?

2. Train 100 developers in how to use a new system

3. New development concept. Set a new flow?

4. Integrated with IDEs?

5. How to move history? Should we take the whole history?

6. Train administrators in how to operate git

7. Limited (and short) timeframe

Page 8: Lesson Learned: Transforming from ClearCase to Git

Different Tools?

Page 9: Lesson Learned: Transforming from ClearCase to Git

Different Tools?

Not so different…

Similarities:

Project structure

Branching

Users and permissions

Differences:

Working copies

Work items

Are Git and ClearCase different tools?

Page 10: Lesson Learned: Transforming from ClearCase to Git

The Transition

Page 11: Lesson Learned: Transforming from ClearCase to Git

The Transition (Planning)

1. Migration strategy

2. New flow

3. Training

4. Limited timeframe

Page 12: Lesson Learned: Transforming from ClearCase to Git

The Transition

main (master) R1.0

R1.1

R2.0

R2.1

Migration strategy

Page 13: Lesson Learned: Transforming from ClearCase to Git

Lesson LearnedResults

Page 14: Lesson Learned: Transforming from ClearCase to Git

Results

1. Licensing costs: 0

2. New flow

3. Shorter learning curve (than before)

4. New options for integrating with modern tools, including issue-tracking; CI and more

Page 15: Lesson Learned: Transforming from ClearCase to Git

Lessons Learned

Page 16: Lesson Learned: Transforming from ClearCase to Git

Lessons Learned

1. You can move active baselines / labels only

2. Move each SW group separately

3. Allocate 1-2 days to accommodate developers (after migration)

4. The transition is an opportunity to improve SW processes

5. Transition should be planned by a person who knows BOTH ClearCase and Git

6. Define SUCCESS criteria (acceptance tests)

Page 17: Lesson Learned: Transforming from ClearCase to Git

Tips

Page 18: Lesson Learned: Transforming from ClearCase to Git

Tips

1. Build a table translating ClearCase-ish to Git-ish (e.g.: check-in -> commit, label -> tag(

2. Print the new flow (as a diagram) and share it with the end-users

3. Use strong and reliable infrastructures

4. Beware of ClearCase “evil twins” and hard links!