Transcript

Why we used Feature Branching

Alan ParkinsonCEO, Hindsight Software Ltd

we publish a

Universal Binary that

supports 7 platform versions

with breaking API changes

Deploy to Production

FunctionalTests

CommitStage

Deploy to UAT

Deploy to Dogfood

Every 3 weeks

Early Access Customers:Hourly or Daily release

A Feature Toggle Headache

Customers deploy to their own hardware=

Little control over data and feature toggles

Knight Capital lost $440 million in 30 minutes

“the problem might be a test program in production—or, possibly, a configuration flag that wasn't ready for production and

should have been turned off”

Rick Lane, CTO of Trading Technologies

Technical Support

Increased complexity and incidence rates

Disabled by Obscurity

“one danger with feature toggles is an accidental exposure, when someone forgets to

wrap the UI feature in a toggle tag”

Martin Fowler

Noisy Testing

Batching many unrelated commits together is a headache for risk based test analysis

FEATURE BRANCHING OUR WAY

Inexperienced Team

Junior team members are reassured by the safety net

No “jack of all trades”, people collaborate on branches

Pull Requests offer a learning opportunity

Our take on Feature Branching

• Build from master for releases• No direct commits to master• Each issue/feature/bugfix has a branch• No merges to master, open Pull Requests• Manual testing occurs on Pull Requests

Merging is HARD work

Refactoring code is bad for merging

Use a SCM with good merge support – git

Do small merges

Merging is a CHANGE to the codebase

Tests are run Before and After the merge

Feature Branches in CI?

Once upon a time you couldn’t get CI for feature branches. It’s now possible with Jenkins and

Bamboo

Branches can diverge massively

Every feature branch build merges from master before compiling

Summary

Loosing control of Feature Toggle configuration management significantly increased our

Technical Support costs

We went back to the drawing board and mitigated known issues with Feature Branching

Questions?

Alan Parkinson - @alan_parkinsonCEO, Hindsight Software

top related