Waltzing with Branches [ACCU]

Preview:

Citation preview

Waltzing with BranchesWaltzing with Branches

Chris OldwoodChris OldwoodACCU Conference 2016ACCU Conference 2016

@chrisoldwood | @chrisoldwood | gort@cix.co.ukgort@cix.co.uk

Cargo Cult Software Cargo Cult Software EngineeringEngineering

““They go through the motions of looking They go through the motions of looking like effective organizations that are like effective organizations that are stylistically similar. But without any real stylistically similar. But without any real understanding of why the practices work understanding of why the practices work […]” […]”

-- -- Steve McConnellSteve McConnell

Another cult is born…Another cult is born…

https://twitter.com/jezhumble/status/400071665482088448

Read the small print!Read the small print!

https://twitter.com/jezhumble/status/400071665482088448

Waltzing with BearsWaltzing with Bears

<<<<<<<<<<<<<<<<<<<<<<<<Knox in box.Knox in box.Fox in socks.Fox in socks.Knox on foxKnox on foxin socks in box.in socks in box.========================Socks on KnoxSocks on Knoxand Knox in box.and Knox in box.Fox in socksFox in sockson box on Knox.on box on Knox.>>>>>>>>>>>>>>>>>>>>>>>>

“RISK MANAGEMENT IS PROJECT MANAGEMENT FOR ADULTS”

““The business of believing only what you The business of believing only what you have the right to believe is called have the right to believe is called risk risk managementmanagement.” .”

-- -- Waltzing with BearsWaltzing with Bears

““Risk management is the process of Risk management is the process of thinking out corrective actions before a thinking out corrective actions before a problem occurs, while it’s still an problem occurs, while it’s still an abstraction.” abstraction.”

-- -- Waltzing with BearsWaltzing with Bears

Risk: Loss of ProductivityRisk: Loss of Productivity

https://commons.wikimedia.org/wiki/File:Mengniu-production-line.jpg

Risk: Loss of ConfidenceRisk: Loss of Confidence

http://melvillegroup.com/wp-content/uploads/2013/08/fear-man-biting-nails.jpg

Risk Management Risk Management StrategiesStrategies

Avoid itAvoid it Contain itContain it Mitigate itMitigate it Evade itEvade it

BranchingBranching

http://banyantreemassage.com/.../assets/images/the_banyan_tree_by_isacg-d42dm53.9851934_std.jpg

MergingMerging

https://static-secure.guim.co.uk/sys-images/.../2014/10/17/1413553453352/Clapham-Junction-in-south-014.jpg

Integration/Development Integration/Development BranchBranch

1 2 3 4 5

Release BranchRelease Branch

3 4 5 6 7

A B

Stable

Volatile

Branching From a LabelBranching From a Label

3 4 5 6 7

A B

v1 X Y

v1.1

Cherry PickingCherry Picking

3 4 5 6 7

A CB

Feature/Task/Private BranchFeature/Task/Private Branch

3 4 5 6 7

A B C

More Stable

More Volatile

ShelvingShelving

1 2 4 5 6

3

Integration PainsIntegration Pains

3 4 5 6 7

X Y Z

A B

No BranchNo Branch

1a 2 1b 3 1c

Gatekeeper WorkflowsGatekeeper Workflows

3 4 5 6 7

X Y

BAlice

Bob

C

GK

Z

D

ForkingForking

http://3.bp.blogspot.com/-ilala7_XSts/VXCchjYhv4I/.../wXYU7lmhWrs/s1600/fork%2Bin%2Bthe%2Broad.jpg

Branching is a technique for Branching is a technique for managing risk, but…managing risk, but…

Branching is Branching is not the onlynot the only technique for managing technique for managing

risk.risk.

ApproachApproach

Always Be Ready To ShipAlways Be Ready To Ship

Small Units of ChangeSmall Units of Change

https://upload.wikimedia.org/wikipedia/.../1280px-A_Sunday_on_La_Grande_Jatte,_Georges_Seurat,_1884.png

AutomationAutomation

http://trendingchannel.com/wp-content/uploads/2013/01/China-car-production.jpg

Continuous Integration is a Continuous Integration is a mindset, not a tool.mindset, not a tool.

TestsTests

https://twitter.com/whatpaulsaid/statuses/596693825432776704

RefactoringRefactoring

http://factmontster.com/wp-content/uploads/2015/03/interesting-facts-about-brazil-favelas.jpg

Pair/Mob ProgrammingPair/Mob Programming

https://i.ytimg.com/vi/VDYsipu7KZQ/maxresdefault.jpg

MonitoringMonitoring

https://i.ytimg.com/vi/ZKpFFD7aX3c/maxresdefault.jpg

Literature (Old & New)Literature (Old & New)

Branching Branching cancan be used to be used to manage manage somesome risks, but risks, but

there are more productive there are more productive ways.ways.

Questions?Questions?

Blog:Blog:http://chrisoldwood.blogspot.comhttp://chrisoldwood.blogspot.com

@chrisoldwood | @chrisoldwood | gort@cix.co.ukgort@cix.co.uk

Articles:Articles:http://www.chrisoldwood.com/http://www.chrisoldwood.com/

articles.htmarticles.htm

Recommended