SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Feature Branching considered Evil
Thierry de Pauw, @tdpauw
Milan | November 29 - 30, 2018
@tdpauw thinkinglabs.io
A tale of 2 teams
@tdpauw thinkinglabs.io
“Like all powerful tools, there are many ways you can use them
(DVCS), and not all of them are good.”
-- On DVCS, continuous integration, and feature branches, Jez Humble
@tdpauw thinkinglabs.io
-- 2016 State of DevOps Report
@tdpauw thinkinglabs.io
Some definitions ...
@tdpauw thinkinglabs.io
Mainline is the line of development
which is the reference from which the
builds of your system are created that feed
into your deployment pipeline.
-- Jez Humble
@tdpauw thinkinglabs.io
Feature Branching is a practice where
people do not merge their code into
mainline until the feature they are working
on is "done" (but not “done done”).
-- Jez Humble
@tdpauw thinkinglabs.io
Continuous Integration is a practice
where members of a team integrate their
work frequently - usually each person
integrates at least daily - leading to multiple
integrations per day. Each integration is
verified by an automated build […].
-- Martin Fowler
@tdpauw thinkinglabs.io
The goal of an Organisation is
to sustainably minimise the lead time
to create positive business impact.
@tdpauw thinkinglabs.io
Why long-running branches ?
@tdpauw thinkinglabs.io
We can work in isolation
which makes us more productive.
@tdpauw thinkinglabs.io
"Developing in isolation can help an individual go faster but it does
not help a team go faster. Merge time and rework cannot be
estimated and will vary wildly, and the team can only go as fast as
the slowest merge."
-- Steve Smith
@tdpauw thinkinglabs.io
If a refactoring goes nowhere
we can just delete it.
@tdpauw thinkinglabs.io
“A spike solution is a very simple program to explore potential
solutions. Build the spike to only address the problem under
examination and ignore all other concerns. Most spikes are not
good enough to keep, so expect to throw it away.”
-- extremeprogramming.org, Don Wells
@tdpauw thinkinglabs.io
We can control the quality of
what goes into production.
@tdpauw thinkinglabs.io
"The objective is to eliminate unfit release candidates as early in the
process as we can ...
You are effectively prevented from releasing into production builds
that are not thoroughly tested and found to be fit for their intended
purpose."
-- Continuous Delivery,
Jez Humble and Dave Farley
@tdpauw thinkinglabs.io
We can control which features
get into production.
@tdpauw thinkinglabs.io
"Feature Branching is a poor man's modular architecture, instead
of building systems with the ability to easy swap in and out features
at runtime/deploy-time they couple themselves to the source control
providing this mechanism through manual merging."
-- Dan Bodart
@tdpauw thinkinglabs.io
Why is this a problem ?
@tdpauw thinkinglabs.io
Feature Branching delays feedback.
=> Continuous Isolation
@tdpauw thinkinglabs.io
Feature Branching
hinders integration of features.
Promiscuous Integration ???
@tdpauw thinkinglabs.io
Feature Branching hides work
for the rest of the team.
frequently merging back to mainline
= communicating with your team
@tdpauw thinkinglabs.io
Feature Branching works
against refactoring.
@tdpauw thinkinglabs.io
Feature Branching increases risk.
@tdpauw thinkinglabs.io
Feature Branching creates
cognitive overload.
@tdpauw thinkinglabs.io
How can we avoid this ?
@tdpauw thinkinglabs.io
Continuous Integration
Your application is always in a
releasable state on main line.
Trunk Based Development
@tdpauw thinkinglabs.io
always commit on Green.
decoupled code base.
lots of fast tests.
Break large changes into a set of
small incremental changes.
@tdpauw thinkinglabs.io
Hide unfinished new functionality.
@tdpauw thinkinglabs.io
Use Branch by Abstraction when
performing large refactorings.
@tdpauw thinkinglabs.io
@tdpauw thinkinglabs.io
Feature Toggles to decouple
feature release from code deployment.
@tdpauw thinkinglabs.io
Feature Toggles done badly are evil too !
@tdpauw thinkinglabs.io
Benefits
@tdpauw thinkinglabs.io
=> more frequent builds
=> more frequent deployments
=> reduced Time to Market
More frequent commits to mainline
@tdpauw thinkinglabs.io
=> more experiments
=> uncover more unmet needs
More frequent deployments
@tdpauw thinkinglabs.io
=> uncovers more problems earlier
=> fix problems immediately
=> build quality in
=> better Stability & Quality
More frequent builds
@tdpauw thinkinglabs.io
Where is the evilness ?
@tdpauw thinkinglabs.io
… and slow builds
@tdpauw thinkinglabs.io
"Trunk-based development requires a big mindset shift. Engineers
thought trunk-based development would never work, but once they
started, they could not imagine ever going back."
-- Gary Gruver,
Directory of Engineering for HP's LaserJet Firmware division
Lead Developer at fintech startup PaxFamilia
CI/CD advocate
Founder of ThinkingLabs
Hello, I am Thierry de Pauw
is shy, introvert, but opinionated
has a fantastic imposter syndrome
is just a kid standing on the shoulders of giants
likes dark chocolate
dark means > 50% cacao, prefers 70% and more
slides: http://thinkinglabs.io/talks/feature-branching-considered-evil@tdpauw thinkinglabs.io
@tdpauw thinkinglabs.io
Resources
SCM Patterns (ch 4 Mainline; ch 5 Active Development Line), Stephen Berczuk and Brad Appleton
Growing Object Oriented Software guided by Tests, p172 Keyhole Surgery for Software, Steve Freeman and Nat Pryce
Continuous Delivery (ch 14 Advanced Version Control), Jez Humble and Dave Farley
The Role of Continuous Delivery in IT and Organizational Performance, Nicole Forsgren and Jez Humble
The State of DevOps Report 2016, Alanna Brown, Nicole Forsgren, Jez Humble, Nigel Kersten and Gene Kim
DevOps Handbook (ch 11 Enable and Practice CI), Gene Kim, Jez Humble, Patrick Debois and John Willis
Accelerate (ch 4 Technical Practices), Nicole Forsgren, Jez Humbe and Gene Kim
Measuring Continuous Delivery (ch 7 The Mainline Throughput indicator), Steve Smith
trunkbaseddevelopment.com
ThoughtWorks Technology Radar on GitFlow
Continuous Integration on a dollar a day, James Shore
On DVCS and Continuous Delivery, Jez Humble
Why software development methodologies suck, Jez Humble
Don't Feature Branch, Dave Farley
Feature Branch, Martin Fowler
Version Control Stragies series, Steve Smith
@tdpauw thinkinglabs.io
More Resources
More Feature Branches means less Continuous Integration, InfoQ interview with Steve Smith
The Death of Continuous Integration, Steve Smith
Long-Running Branches Considered Harmfull, Jade Rubick
An e-mail conversation with Steve Smith on Trunk Based Development
Continuous Isolation, Paul Hammant
What is Trunk Based Development ?, Paul Hammant
Trunk Based Development, Jon Arild Tørresdal
You Are What You Eat, Dave Hounslow
Google's Scaled Trunk Based Development, Paul Hammant
Legacy App Rejuvenation, Paul Hammant
Why Google Stores Billions of Lines of Code in a Single Repository ?, Google
The history of “Taking Baby Steps”, Adrian Bolboaca
Baby Steps TDD approach, David Völkel
4 Simple Tricks to avoid Merge Conflicts, Robert Mißbach
From GitFlow to Trunk Based Development, Robert Mißbach
Short-lived branches, Corey Haines
@tdpauw thinkinglabs.io
Even More Resources
Introducing Branch by Abstraction, Paul Hammant
Branch by Abstraction, Martin Fowler
Make Large Scale Changes Incrementally with Branch by Abstraction, Jez Humble
branchbyabstraction.com
Feature Toggles, Pete Hodgson
#NoStaging - Pipeline Conf 2016, Dave Nolan
When Feature Flags go Wrong, Edith Harbaugh
Managing Feature Flag Debt with Split, Adil Aijaz
Continuous Delivery and Code Review from the Continuous Delivery Google Group
Theory X and Theory Y from Wikipedia
Continuous Review, Paul Hammant
Non-Continuous Review, Paul Hammant
Code Review: Why are we doing it ?, Sandro Mancuso
Code Reviews in Trunk Based Development, Robert Mißbach
A conversation in the SoCraTes Slack #codereview channel on … Code Reviews and Trunk Based Development
A reply on Twitter by Michiel Rook regarding When code reviews would not be required

Weitere ähnliche Inhalte

Was ist angesagt?

Principles of Technology Leadership
Principles of Technology LeadershipPrinciples of Technology Leadership
Principles of Technology Leadershipbcantrill
 
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...
Devops In The Enterprise:How Swarming Can Fix The Problem Of Becoming A 3rd-...Devops In The Enterprise:How Swarming Can Fix The Problem Of Becoming A 3rd-...
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...Jon Stevens-Hall
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering CultureUri Nativ
 
The Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentThe Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentMatt Stine
 
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Carol Smith
 
Phoenix project
Phoenix project Phoenix project
Phoenix project essbaih
 
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...Carol Smith
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent CerveauTheFamily
 
Teaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr SutterTeaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr SutterJudy Breedlove
 
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
DevOps Theory vs. Practice: A Song of Ice and Tire FireDevOps Theory vs. Practice: A Song of Ice and Tire Fire
DevOps Theory vs. Practice: A Song of Ice and Tire FireLeon Stigter
 
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right ModulesBadcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right ModulesMichael Miles
 
Product Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
Product Design in Agile Environments: Making it Work at ProductCamp PittsburghProduct Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
Product Design in Agile Environments: Making it Work at ProductCamp PittsburghCarol Smith
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recapTorben Dohrn
 
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI ResearchTutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI ResearchEd Chi
 
Icinga Camp San Diego 2016 - Unrealized Role of Monitoring
Icinga Camp San Diego 2016 - Unrealized Role of MonitoringIcinga Camp San Diego 2016 - Unrealized Role of Monitoring
Icinga Camp San Diego 2016 - Unrealized Role of MonitoringIcinga
 
I got 99 problems but tech aint one
I got 99 problems but tech aint oneI got 99 problems but tech aint one
I got 99 problems but tech aint oneNirmal Mehta
 
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealWhat can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealCarol Smith
 

Was ist angesagt? (19)

Principles of Technology Leadership
Principles of Technology LeadershipPrinciples of Technology Leadership
Principles of Technology Leadership
 
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...
Devops In The Enterprise:How Swarming Can Fix The Problem Of Becoming A 3rd-...Devops In The Enterprise:How Swarming Can Fix The Problem Of Becoming A 3rd-...
Devops In The Enterprise: How Swarming Can Fix The Problem Of Becoming A 3rd-...
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering Culture
 
The Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentThe Seven Wastes of Software Development
The Seven Wastes of Software Development
 
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
 
Phoenix project
Phoenix project Phoenix project
Phoenix project
 
DevOps
DevOpsDevOps
DevOps
 
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
Faster Usability Testing in an Agile World - Agile UX Virtual Summit 2017 by ...
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
Teaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr SutterTeaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr Sutter
 
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
DevOps Theory vs. Practice: A Song of Ice and Tire FireDevOps Theory vs. Practice: A Song of Ice and Tire Fire
DevOps Theory vs. Practice: A Song of Ice and Tire Fire
 
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right ModulesBadcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
Badcamp 2015 - R.E.A.D: Four Steps for Selecting The Right Modules
 
Product Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
Product Design in Agile Environments: Making it Work at ProductCamp PittsburghProduct Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
Product Design in Agile Environments: Making it Work at ProductCamp Pittsburgh
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
 
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI ResearchTutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
Tutorial on Using Amazon Mechanical Turk (MTurk) for HCI Research
 
01 (IDNOG01) Keynote 1 by Barry Greene
01 (IDNOG01) Keynote 1 by Barry Greene01 (IDNOG01) Keynote 1 by Barry Greene
01 (IDNOG01) Keynote 1 by Barry Greene
 
Icinga Camp San Diego 2016 - Unrealized Role of Monitoring
Icinga Camp San Diego 2016 - Unrealized Role of MonitoringIcinga Camp San Diego 2016 - Unrealized Role of Monitoring
Icinga Camp San Diego 2016 - Unrealized Role of Monitoring
 
I got 99 problems but tech aint one
I got 99 problems but tech aint oneI got 99 problems but tech aint one
I got 99 problems but tech aint one
 
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in MontrealWhat can DesignOps do for you? by Carol Smith at TLMUX in Montreal
What can DesignOps do for you? by Carol Smith at TLMUX in Montreal
 

Ähnlich wie Thierry de Pauw - Feature Branching considered Evil - Codemotion Milan 2018

Devops at scale is a hard problem challenges, insights and lessons learned
Devops at scale is a hard problem  challenges, insights and lessons learnedDevops at scale is a hard problem  challenges, insights and lessons learned
Devops at scale is a hard problem challenges, insights and lessons learnedkjalleda
 
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...David Walker
 
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
The Junior Developer Survival Guide -  GDI Ann Arbor 2/10/15The Junior Developer Survival Guide -  GDI Ann Arbor 2/10/15
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15James York
 
What business benefits from DevOps 2014
What business benefits from DevOps 2014What business benefits from DevOps 2014
What business benefits from DevOps 2014Erno Aapa
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowTechWell
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseJames Wickett
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Bill Scott
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at TwitterChris Aniszczyk
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to ProductionKarthik Gaekwad
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at TwitterChris Aniszczyk
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolutionSomenath Ghosh
 
Winnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsWinnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsGene Kim
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Wojciech Seliga
 
Jr devsurvivalguide
Jr devsurvivalguideJr devsurvivalguide
Jr devsurvivalguideJames York
 
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...Daniel Bryant
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD PipelineJames Wickett
 
Community building lessons from Ansible
Community building lessons from AnsibleCommunity building lessons from Ansible
Community building lessons from AnsibleGreg DeKoenigsberg
 
Technology has all the right answers - but we have to start thinking about wh...
Technology has all the right answers - but we have to start thinking about wh...Technology has all the right answers - but we have to start thinking about wh...
Technology has all the right answers - but we have to start thinking about wh...Andy Tattersall
 
CILIP Conference 2019 - Digital innovation - Andy Tattersall
CILIP Conference 2019 - Digital innovation - Andy TattersallCILIP Conference 2019 - Digital innovation - Andy Tattersall
CILIP Conference 2019 - Digital innovation - Andy TattersallCILIP
 

Ähnlich wie Thierry de Pauw - Feature Branching considered Evil - Codemotion Milan 2018 (20)

Devops at scale is a hard problem challenges, insights and lessons learned
Devops at scale is a hard problem  challenges, insights and lessons learnedDevops at scale is a hard problem  challenges, insights and lessons learned
Devops at scale is a hard problem challenges, insights and lessons learned
 
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
Devops & Agility - Build the Culture, Get the Tools, Win the Day - Dundee Tec...
 
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
The Junior Developer Survival Guide -  GDI Ann Arbor 2/10/15The Junior Developer Survival Guide -  GDI Ann Arbor 2/10/15
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
 
What business benefits from DevOps 2014
What business benefits from DevOps 2014What business benefits from DevOps 2014
What business benefits from DevOps 2014
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea Flow
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)Real World Lessons Using Lean UX (Workshop)
Real World Lessons Using Lean UX (Workshop)
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at Twitter
 
DevOps The Cultural revolution
DevOps The Cultural revolutionDevOps The Cultural revolution
DevOps The Cultural revolution
 
Winnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsWinnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOps
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Jr devsurvivalguide
Jr devsurvivalguideJr devsurvivalguide
Jr devsurvivalguide
 
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
DevoxxUK 2016: "DevOps: Microservices, containers, platforms, tooling... Oh y...
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
Community building lessons from Ansible
Community building lessons from AnsibleCommunity building lessons from Ansible
Community building lessons from Ansible
 
Technology has all the right answers - but we have to start thinking about wh...
Technology has all the right answers - but we have to start thinking about wh...Technology has all the right answers - but we have to start thinking about wh...
Technology has all the right answers - but we have to start thinking about wh...
 
CILIP Conference 2019 - Digital innovation - Andy Tattersall
CILIP Conference 2019 - Digital innovation - Andy TattersallCILIP Conference 2019 - Digital innovation - Andy Tattersall
CILIP Conference 2019 - Digital innovation - Andy Tattersall
 

Mehr von Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Mehr von Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Thierry de Pauw - Feature Branching considered Evil - Codemotion Milan 2018

  • 1. Feature Branching considered Evil Thierry de Pauw, @tdpauw Milan | November 29 - 30, 2018
  • 3. @tdpauw thinkinglabs.io “Like all powerful tools, there are many ways you can use them (DVCS), and not all of them are good.” -- On DVCS, continuous integration, and feature branches, Jez Humble
  • 4. @tdpauw thinkinglabs.io -- 2016 State of DevOps Report
  • 6. @tdpauw thinkinglabs.io Mainline is the line of development which is the reference from which the builds of your system are created that feed into your deployment pipeline. -- Jez Humble
  • 7. @tdpauw thinkinglabs.io Feature Branching is a practice where people do not merge their code into mainline until the feature they are working on is "done" (but not “done done”). -- Jez Humble
  • 8. @tdpauw thinkinglabs.io Continuous Integration is a practice where members of a team integrate their work frequently - usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build […]. -- Martin Fowler
  • 9. @tdpauw thinkinglabs.io The goal of an Organisation is to sustainably minimise the lead time to create positive business impact.
  • 11. @tdpauw thinkinglabs.io We can work in isolation which makes us more productive.
  • 12. @tdpauw thinkinglabs.io "Developing in isolation can help an individual go faster but it does not help a team go faster. Merge time and rework cannot be estimated and will vary wildly, and the team can only go as fast as the slowest merge." -- Steve Smith
  • 13. @tdpauw thinkinglabs.io If a refactoring goes nowhere we can just delete it.
  • 14. @tdpauw thinkinglabs.io “A spike solution is a very simple program to explore potential solutions. Build the spike to only address the problem under examination and ignore all other concerns. Most spikes are not good enough to keep, so expect to throw it away.” -- extremeprogramming.org, Don Wells
  • 15. @tdpauw thinkinglabs.io We can control the quality of what goes into production.
  • 16. @tdpauw thinkinglabs.io "The objective is to eliminate unfit release candidates as early in the process as we can ... You are effectively prevented from releasing into production builds that are not thoroughly tested and found to be fit for their intended purpose." -- Continuous Delivery, Jez Humble and Dave Farley
  • 17. @tdpauw thinkinglabs.io We can control which features get into production.
  • 18. @tdpauw thinkinglabs.io "Feature Branching is a poor man's modular architecture, instead of building systems with the ability to easy swap in and out features at runtime/deploy-time they couple themselves to the source control providing this mechanism through manual merging." -- Dan Bodart
  • 19. @tdpauw thinkinglabs.io Why is this a problem ?
  • 20. @tdpauw thinkinglabs.io Feature Branching delays feedback. => Continuous Isolation
  • 21. @tdpauw thinkinglabs.io Feature Branching hinders integration of features. Promiscuous Integration ???
  • 22. @tdpauw thinkinglabs.io Feature Branching hides work for the rest of the team. frequently merging back to mainline = communicating with your team
  • 23. @tdpauw thinkinglabs.io Feature Branching works against refactoring.
  • 25. @tdpauw thinkinglabs.io Feature Branching creates cognitive overload.
  • 27. @tdpauw thinkinglabs.io Continuous Integration Your application is always in a releasable state on main line. Trunk Based Development
  • 28. @tdpauw thinkinglabs.io always commit on Green. decoupled code base. lots of fast tests. Break large changes into a set of small incremental changes.
  • 30. @tdpauw thinkinglabs.io Use Branch by Abstraction when performing large refactorings.
  • 32. @tdpauw thinkinglabs.io Feature Toggles to decouple feature release from code deployment.
  • 33. @tdpauw thinkinglabs.io Feature Toggles done badly are evil too !
  • 35. @tdpauw thinkinglabs.io => more frequent builds => more frequent deployments => reduced Time to Market More frequent commits to mainline
  • 36. @tdpauw thinkinglabs.io => more experiments => uncover more unmet needs More frequent deployments
  • 37. @tdpauw thinkinglabs.io => uncovers more problems earlier => fix problems immediately => build quality in => better Stability & Quality More frequent builds
  • 40. @tdpauw thinkinglabs.io "Trunk-based development requires a big mindset shift. Engineers thought trunk-based development would never work, but once they started, they could not imagine ever going back." -- Gary Gruver, Directory of Engineering for HP's LaserJet Firmware division
  • 41. Lead Developer at fintech startup PaxFamilia CI/CD advocate Founder of ThinkingLabs Hello, I am Thierry de Pauw is shy, introvert, but opinionated has a fantastic imposter syndrome is just a kid standing on the shoulders of giants likes dark chocolate dark means > 50% cacao, prefers 70% and more slides: http://thinkinglabs.io/talks/feature-branching-considered-evil@tdpauw thinkinglabs.io
  • 42. @tdpauw thinkinglabs.io Resources SCM Patterns (ch 4 Mainline; ch 5 Active Development Line), Stephen Berczuk and Brad Appleton Growing Object Oriented Software guided by Tests, p172 Keyhole Surgery for Software, Steve Freeman and Nat Pryce Continuous Delivery (ch 14 Advanced Version Control), Jez Humble and Dave Farley The Role of Continuous Delivery in IT and Organizational Performance, Nicole Forsgren and Jez Humble The State of DevOps Report 2016, Alanna Brown, Nicole Forsgren, Jez Humble, Nigel Kersten and Gene Kim DevOps Handbook (ch 11 Enable and Practice CI), Gene Kim, Jez Humble, Patrick Debois and John Willis Accelerate (ch 4 Technical Practices), Nicole Forsgren, Jez Humbe and Gene Kim Measuring Continuous Delivery (ch 7 The Mainline Throughput indicator), Steve Smith trunkbaseddevelopment.com ThoughtWorks Technology Radar on GitFlow Continuous Integration on a dollar a day, James Shore On DVCS and Continuous Delivery, Jez Humble Why software development methodologies suck, Jez Humble Don't Feature Branch, Dave Farley Feature Branch, Martin Fowler Version Control Stragies series, Steve Smith
  • 43. @tdpauw thinkinglabs.io More Resources More Feature Branches means less Continuous Integration, InfoQ interview with Steve Smith The Death of Continuous Integration, Steve Smith Long-Running Branches Considered Harmfull, Jade Rubick An e-mail conversation with Steve Smith on Trunk Based Development Continuous Isolation, Paul Hammant What is Trunk Based Development ?, Paul Hammant Trunk Based Development, Jon Arild Tørresdal You Are What You Eat, Dave Hounslow Google's Scaled Trunk Based Development, Paul Hammant Legacy App Rejuvenation, Paul Hammant Why Google Stores Billions of Lines of Code in a Single Repository ?, Google The history of “Taking Baby Steps”, Adrian Bolboaca Baby Steps TDD approach, David Völkel 4 Simple Tricks to avoid Merge Conflicts, Robert Mißbach From GitFlow to Trunk Based Development, Robert Mißbach Short-lived branches, Corey Haines
  • 44. @tdpauw thinkinglabs.io Even More Resources Introducing Branch by Abstraction, Paul Hammant Branch by Abstraction, Martin Fowler Make Large Scale Changes Incrementally with Branch by Abstraction, Jez Humble branchbyabstraction.com Feature Toggles, Pete Hodgson #NoStaging - Pipeline Conf 2016, Dave Nolan When Feature Flags go Wrong, Edith Harbaugh Managing Feature Flag Debt with Split, Adil Aijaz Continuous Delivery and Code Review from the Continuous Delivery Google Group Theory X and Theory Y from Wikipedia Continuous Review, Paul Hammant Non-Continuous Review, Paul Hammant Code Review: Why are we doing it ?, Sandro Mancuso Code Reviews in Trunk Based Development, Robert Mißbach A conversation in the SoCraTes Slack #codereview channel on … Code Reviews and Trunk Based Development A reply on Twitter by Michiel Rook regarding When code reviews would not be required