47
Agile Workflows for Version Control Lasse Koskela

Agile workflows for version control

  • Upload
    agileee

  • View
    2.830

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Agile workflows for version control

Agile Workflowsfor Version Control

Lasse Koskela

Page 2: Agile workflows for version control

Agile Workflowsfor Version Control

Lasse Koskela

Page 3: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

60 minutes

Page 4: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

60 minutes

1. common workflows

Page 5: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

60 minutes

1. common workflows

2. agile concerns

Page 6: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

60 minutes

1. common workflows

2. agile concerns

3. critical evaluation

Page 7: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

60 minutes

1. common workflows

2. agile concerns

3. critical evaluation

4. food for thought

Page 8: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

common workflows

Page 9: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Project X

Page 10: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 11: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 12: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 13: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 14: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 15: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 16: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 17: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Developer X

I just love it when we get to use the best tools there are. Subversion kicks ass like Chuck Norris.

Page 18: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Developer Y

Hey, what’s this? Linus has written his own version control system from scratch? Cool. Installing git-svn...

Page 19: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Developer Z

It’s Sprint #35 and we’re still breaking the build almost every day, especially when Mark gets his drink on, and we end up panicking on the release day over the f***ups, wondering whether all features are ready for show time.

Page 20: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Page 21: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

trunk development

Page 22: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

trunk development

private branches

Page 23: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

feature branches

trunk development

private branches

Page 24: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

feature branches

trunk development

Page 25: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

continuous integration

trunk development

feature branches

Page 26: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Agile Workflows?

✓ working software as measure of progress

➡ workflow aligned with continuous integration

✓ attention to technical excellence

➡ workflow supports refactoring

✓ early and continuous delivery

➡ workflow supports one-piece flow

✓ team reflecting on its behavior

➡ workflow highlights problems

Page 27: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Agile Manifesto

Working software is the primary measure of progress.

continuous integration

Page 28: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

continuous integration

Working software as measure of progress

Page 29: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

continuous integration

Trunk development is almost synonymous with continuous integration. All teams integrate with the trunk so teams see the true progress all the time.(Except when you break the build for everyone.)

Teams live in the fantasy world of their feature branch until they integrate and everybody else

integrates.(Integrating continuously is only possible in the

trunk, which is not continuous integration.)

Working software as measure of progress

Page 30: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Agile Manifesto

Continuous attention to technical excellence and good design enhances agility.

refactoring

Page 31: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

refactoring

Attention to technical excellence

Page 32: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

refactoring

Small changes are simple. Preference to wait until after hours for doing broader refactorings.

(Due to fear of breaking stuff.)

Simple refactorings are trouble-free within the feature branch. Broader refactorings are scary.

(Because I don’t know how far others have deviated from the trunk since our common starting point.)

Attention to technical excellence

Page 33: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Agile Manifesto

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

one-piece flow

Page 34: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

continuous integration

Early and continuous delivery

Page 35: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

one-piece flow

We can deploy the latest and greatest while the trunk is green or quickly fix what’s broken.

(Assuming we’re good at this software stuff.)

We can deploy what we had a few hours ago or quickly integrate that one feature you really wanted.

(Assuming we’re good at this software stuff.)

Early and continuous delivery

Page 36: Agile workflows for version control

”© Copyright Reaktor 2011 Confidential

Agile Manifesto

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

highlighting problems

Page 37: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

continuous integration

Reflecting on our way of working

Page 38: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

highlighting problems

Problems are visible right away. Pressure to fix the build. Pressure to find a way to collaborate on the same branch (trunk), same files, and same feature.

Focus is on finding ways to collaborate.

Option of deciding what goes into a release. Attention drawn to questions like enabling and

disabling incomplete features. Focus is on managing product development.

Reflecting on our way of working

Page 39: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Food for thought(stuff that might matter to you)

Page 40: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

(There.)

Page 41: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Code archaeology

Page 42: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

What goes into a release?

Page 43: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Balancing proximity and stability

Page 44: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Balancing proximity and stability

Stability =Team Size x Feedback Cycle

Discipline x Architecture

Page 45: Agile workflows for version control

© Copyright Reaktor 2011 Confidential

Branching by Abstraction

Page 47: Agile workflows for version control

questions? thoughts?