SlideShare a Scribd company logo
Bashing Cultural Monsters in
Continuous Integration
Vivek Ganesan
Twitter: @vivek_ganesan
Running Jenkins is NOT Continuous
Integration!
Tools that you use ≠ What you do.
How do you use the tools? = What you do.
Then, What is CI?
For Continuous Integration to be useful,
following are ‘Mandatory’
➔ Continuous
Never ending. May be periodical. Good
to start with daily frequency.
➔ Integration
Different teams’/people’s codes are
integrated and tested
➔ Stimulus - Response
The adrenaline rush and events that
follow any build failure to bring it back
to green
Have you ever observed
what happens
during the
Stimulus-Response?
Tip
You can effectively
observe only when you
do not have stakes in
something.
If you have stakes, you
get ‘involved’ instead of
studying what happens.
Blame Game, Mostly!
● Raj broke the build. What a careless guy!
● Why should I fix it? It is Raj who broke the build!
● Dear Boss,
I am BLOCKED until Raj fixes the build. Why should I
suffer for someone else’s mistakes?
-The Escalator
● Poor soul Raj! He needs some more training.
● Raj, you are a good developer. But, you could have done
better at avoiding some build failures this year!
How does this
ADVERSELY
AFFECT Raj & the
organization?
What happens to the
following in this
situation?
● Commit frequency
● Size of each commit
● Ability to take risks
● Willingness to face uncertainty
● Bug count
● General motivation
● Anything else that we don’t know
about?
Does Raj really have
FULL control on
whether his commit
breaks the build or
not?
Tip
Contrary to the popular
belief, the build does
not have to be green all
the time.
However, the intention &
action to keep it green
must be present all the
time.
Code Commits & Roads
Code commits are very similar to
driving a car into a converging road.
Code Commits & Roads
Code commits are very similar to
driving a car into a converging road.
Your Commit
Code Commits & Roads
Code commits are very similar to
driving a car into a converging road.
Your Commit
Team mate’s
Pending
Commit
Your Commit
Team mate’s
Pending
Commit
Some commit
done after your
last pull
Your Commit
Team mate’s
Pending
Commit
Some commit
done after your
last pull
Challenge
Can you be 100% sure about driving
into the main road without an accident?
Your Commit
Team mate’s
Pending
Commit
Some commit
done after your
last pull
Challenge - 2
What would you do if you really have to
be sure not to hit another vehicle?
This is just a piece of ridiculous joke!
This is just a piece of ridiculous joke!
What if the car
could not run
properly even
before merge?
This is just a piece of ridiculous joke!
What if the car
could not run
properly even
before merge?
Tip
There are two types of
failures:
1. Avoidable
2. Unavoidable
What if a developer
creates an avoidable
failure?
Eg: Missed a semi-colon and checked-in
Solution: Find ways to help the
developer to avoid it
Best Case: Automate the avoidable
failure check before commit (using
pre-commit hooks or equivalent)
Worst Case: Police a checklist for
commit.
Tip
Developers don’t
intentionally cause
havoc, unless you steal
their coffee mug.
And, what after an
unavoidable failure? All
hell breaks loose?
No, my friend! You wait until someone
fixes the build.
Remember! This build fixer need not be
a build breaker.
After build fixed, publicly appreciate the
build fixer and exclaim “Woohoo!
Another integration issue fixed early!”
Tip
Instead of punishing the
build breaker,
appreciate the build
fixer, even if they both
are same :)
This motivates people to
fix broken builds
immediately.
What to track?
Don’t track who broke the build and how
many times.
Now that we care about who fixes the build,
track these:
➔ Total Build Red Time
Average time in a day for which build
was Red. Trend it transparently & aim
for reducing the same.
➔ No. of Unavoidable Failures
This is the no. of integration issues that
you fixed early :)
Questions???
Create an atmosphere free of
blame and full of trust and
transparency.
For more (free) agility tips visit
my
site
http://www.vivekganesan.co
m or follow me on Twitter at
@vivek_ganesan

More Related Content

What's hot

Lessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teamsLessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teams
ITEM
 
Leveling Up Your Junior Developers
Leveling Up Your Junior DevelopersLeveling Up Your Junior Developers
Leveling Up Your Junior Developers
Gabby Spurling
 
Not Only Cars: AI, Please Test My App by Gil Tayar
Not Only Cars: AI, Please Test My App by Gil TayarNot Only Cars: AI, Please Test My App by Gil Tayar
Not Only Cars: AI, Please Test My App by Gil Tayar
Sauce Labs
 
Rilasciamo rilasciamo
Rilasciamo rilasciamoRilasciamo rilasciamo
Rilasciamo rilasciamo
Francesco Mapelli
 
Pointzi Android Developers Talk - June17
Pointzi Android Developers Talk - June17Pointzi Android Developers Talk - June17
Pointzi Android Developers Talk - June17
David Jones
 
Self-Selection: An Agile Approach to Forming Teams @ Scale
Self-Selection: An Agile Approach to  Forming Teams @ ScaleSelf-Selection: An Agile Approach to  Forming Teams @ Scale
Self-Selection: An Agile Approach to Forming Teams @ Scale
Em Campbell-Pretty
 
FusionConf 2018 - We're all designers
FusionConf 2018 - We're all designersFusionConf 2018 - We're all designers
FusionConf 2018 - We're all designers
Catt Small
 
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
Authoritas
 
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
AnalogFolk
 
Inspirational web Designs 2021
Inspirational web Designs 2021Inspirational web Designs 2021
Inspirational web Designs 2021
VirrgoTech
 
UnpluGGd Event
UnpluGGd EventUnpluGGd Event
UnpluGGd Event
NextBigWhat
 
Rapid Prototyping A Startup
Rapid Prototyping A StartupRapid Prototyping A Startup
Rapid Prototyping A Startup
Robert Fan
 
Danny Patterson: Slow Down
Danny Patterson: Slow DownDanny Patterson: Slow Down
Danny Patterson: Slow Down
sidneydekoning
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
Paul Gower
 

What's hot (14)

Lessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teamsLessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teams
 
Leveling Up Your Junior Developers
Leveling Up Your Junior DevelopersLeveling Up Your Junior Developers
Leveling Up Your Junior Developers
 
Not Only Cars: AI, Please Test My App by Gil Tayar
Not Only Cars: AI, Please Test My App by Gil TayarNot Only Cars: AI, Please Test My App by Gil Tayar
Not Only Cars: AI, Please Test My App by Gil Tayar
 
Rilasciamo rilasciamo
Rilasciamo rilasciamoRilasciamo rilasciamo
Rilasciamo rilasciamo
 
Pointzi Android Developers Talk - June17
Pointzi Android Developers Talk - June17Pointzi Android Developers Talk - June17
Pointzi Android Developers Talk - June17
 
Self-Selection: An Agile Approach to Forming Teams @ Scale
Self-Selection: An Agile Approach to  Forming Teams @ ScaleSelf-Selection: An Agile Approach to  Forming Teams @ Scale
Self-Selection: An Agile Approach to Forming Teams @ Scale
 
FusionConf 2018 - We're all designers
FusionConf 2018 - We're all designersFusionConf 2018 - We're all designers
FusionConf 2018 - We're all designers
 
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
Google Tag Manager - How to use it for SEO? - Tea-Time SEO Series of Daily SE...
 
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
Mat Clayton, Using technology decisions to move quickly and iterate to a bett...
 
Inspirational web Designs 2021
Inspirational web Designs 2021Inspirational web Designs 2021
Inspirational web Designs 2021
 
UnpluGGd Event
UnpluGGd EventUnpluGGd Event
UnpluGGd Event
 
Rapid Prototyping A Startup
Rapid Prototyping A StartupRapid Prototyping A Startup
Rapid Prototyping A Startup
 
Danny Patterson: Slow Down
Danny Patterson: Slow DownDanny Patterson: Slow Down
Danny Patterson: Slow Down
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
 

Viewers also liked

How to make .... google calendar
How to make .... google calendarHow to make .... google calendar
How to make .... google calendar
Joanna Soltysiak
 
Mule soap web services
Mule soap web servicesMule soap web services
Mule soap web services
Naresh Naidu
 
Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
AbdulImrankhan7
 
Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares  Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares
tomasrodriguezreyes
 
mule salesforce
mule salesforcemule salesforce
mule salesforce
F K
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1
Jeison Barros
 
20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume
Carina Brunson
 
A LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELFA LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELF
Steffi Sharon
 
Mule data mapper
Mule data mapperMule data mapper
Mule data mapper
Naresh Naidu
 
Presentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNIPresentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNITim Schaap
 
Our Recipe Book
Our Recipe BookOur Recipe Book
Our Recipe Book
Lamia Büşra YEŞİL
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
Michel Azevedo
 
example of a project plan
example of a project planexample of a project plan
example of a project plan
Joanna Soltysiak
 
Prosklisi gs
Prosklisi gsProsklisi gs
Prosklisi gs
psaltakis
 
The Mule Agent
The Mule AgentThe Mule Agent
The Mule Agent
Shanky Gupta
 
αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!
Chrysa Arabatzoglou
 
Containerization (Export/Import Goods)
Containerization (Export/Import Goods)Containerization (Export/Import Goods)
Containerization (Export/Import Goods)
Dr. Sneha Sharma
 
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
psaltakis
 
Παχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοΠαχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοpsaltakis
 

Viewers also liked (20)

How to make .... google calendar
How to make .... google calendarHow to make .... google calendar
How to make .... google calendar
 
Mule soap web services
Mule soap web servicesMule soap web services
Mule soap web services
 
Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
 
Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares  Tarea interdisciplinar del curso Clásicos Escolares
Tarea interdisciplinar del curso Clásicos Escolares
 
mule salesforce
mule salesforcemule salesforce
mule salesforce
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1
 
20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume20150513_CarinaABrunson_Resume
20150513_CarinaABrunson_Resume
 
A LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELFA LITTLE ABOUT MYSELF
A LITTLE ABOUT MYSELF
 
Mule data mapper
Mule data mapperMule data mapper
Mule data mapper
 
Presentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNIPresentatie TIM Vastgoed - 10 minutes with BNI
Presentatie TIM Vastgoed - 10 minutes with BNI
 
Our Recipe Book
Our Recipe BookOur Recipe Book
Our Recipe Book
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
 
example of a project plan
example of a project planexample of a project plan
example of a project plan
 
Prosklisi gs
Prosklisi gsProsklisi gs
Prosklisi gs
 
The Mule Agent
The Mule AgentThe Mule Agent
The Mule Agent
 
αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!αυτόχθονες λαοί!!!
αυτόχθονες λαοί!!!
 
Containerization (Export/Import Goods)
Containerization (Export/Import Goods)Containerization (Export/Import Goods)
Containerization (Export/Import Goods)
 
Rinitida
RinitidaRinitida
Rinitida
 
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017μιηαιλιδου παγκρητιιο παιδιατρικο 2017
μιηαιλιδου παγκρητιιο παιδιατρικο 2017
 
Παχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομοΠαχυσαρκία και μεταβολικό σύνδρομο
Παχυσαρκία και μεταβολικό σύνδρομο
 

Similar to Bashing cultural monsters in continuous integration by Vivek Ganesan XP Conference 2016

Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
Josh Jeffryes
 
ASO Barcamp Talk 2: Top 10 ASO Questions
ASO Barcamp Talk 2: Top 10 ASO QuestionsASO Barcamp Talk 2: Top 10 ASO Questions
ASO Barcamp Talk 2: Top 10 ASO Questions
Adapt Worldwide
 
11 rules for programmer should live by
11 rules for programmer should live by11 rules for programmer should live by
11 rules for programmer should live by
Ye Win
 
Take the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstreamTake the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstream
Rico Lin
 
Take the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstreamTake the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstream
Rico Lin
 
Failing With Agile
Failing With AgileFailing With Agile
Failing With Agile
lazygolfer
 
Continuous Integration for Citizens
Continuous Integration for CitizensContinuous Integration for Citizens
Continuous Integration for Citizens
Mikhail Zyatin
 
Design Thinking in the Product Development Process - Product tank oxford
Design Thinking in the Product Development Process - Product tank oxford Design Thinking in the Product Development Process - Product tank oxford
Design Thinking in the Product Development Process - Product tank oxford
AJ Justo
 
5 unspoke rules of contributing to open source software
5 unspoke rules of contributing to open source software5 unspoke rules of contributing to open source software
5 unspoke rules of contributing to open source software
Mike Nelson
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
Jorge López-Lago
 
Continuous Integration for Citizens
Continuous Integration for CitizensContinuous Integration for Citizens
Continuous Integration for Citizens
Mikhail Zyatin
 
Symptoms of Bad Quality Software
Symptoms of Bad Quality SoftwareSymptoms of Bad Quality Software
Symptoms of Bad Quality Software
ashokguduru
 
Agile?! Are You Crazy???
Agile?! Are You Crazy???Agile?! Are You Crazy???
Agile?! Are You Crazy???
lazygolfer
 
Kasten Engineering Culture Deck
Kasten Engineering Culture DeckKasten Engineering Culture Deck
Kasten Engineering Culture Deck
Niraj Tolia
 
How NOT to scale agile
How NOT to scale agileHow NOT to scale agile
How NOT to scale agile
Renato Willi
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
Dave Neary
 
Developers mindset
Developers mindsetDevelopers mindset
Developers mindset
Chioma James
 
Startup 101 for students and aspiring entrepreneurs
Startup 101 for students and aspiring entrepreneursStartup 101 for students and aspiring entrepreneurs
Startup 101 for students and aspiring entrepreneurs
Rakesh Soni
 
Ux4 indiedevs
Ux4 indiedevsUx4 indiedevs
Ux4 indiedevs
Juio Barros
 
7 Wastes of Software Development
7 Wastes of Software Development7 Wastes of Software Development
7 Wastes of Software Development
Sunil Bajari
 

Similar to Bashing cultural monsters in continuous integration by Vivek Ganesan XP Conference 2016 (20)

Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
 
ASO Barcamp Talk 2: Top 10 ASO Questions
ASO Barcamp Talk 2: Top 10 ASO QuestionsASO Barcamp Talk 2: Top 10 ASO Questions
ASO Barcamp Talk 2: Top 10 ASO Questions
 
11 rules for programmer should live by
11 rules for programmer should live by11 rules for programmer should live by
11 rules for programmer should live by
 
Take the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstreamTake the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstream
 
Take the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstreamTake the advantage and connect upstream to downstream
Take the advantage and connect upstream to downstream
 
Failing With Agile
Failing With AgileFailing With Agile
Failing With Agile
 
Continuous Integration for Citizens
Continuous Integration for CitizensContinuous Integration for Citizens
Continuous Integration for Citizens
 
Design Thinking in the Product Development Process - Product tank oxford
Design Thinking in the Product Development Process - Product tank oxford Design Thinking in the Product Development Process - Product tank oxford
Design Thinking in the Product Development Process - Product tank oxford
 
5 unspoke rules of contributing to open source software
5 unspoke rules of contributing to open source software5 unspoke rules of contributing to open source software
5 unspoke rules of contributing to open source software
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
Continuous Integration for Citizens
Continuous Integration for CitizensContinuous Integration for Citizens
Continuous Integration for Citizens
 
Symptoms of Bad Quality Software
Symptoms of Bad Quality SoftwareSymptoms of Bad Quality Software
Symptoms of Bad Quality Software
 
Agile?! Are You Crazy???
Agile?! Are You Crazy???Agile?! Are You Crazy???
Agile?! Are You Crazy???
 
Kasten Engineering Culture Deck
Kasten Engineering Culture DeckKasten Engineering Culture Deck
Kasten Engineering Culture Deck
 
How NOT to scale agile
How NOT to scale agileHow NOT to scale agile
How NOT to scale agile
 
Community antipatterns
Community antipatternsCommunity antipatterns
Community antipatterns
 
Developers mindset
Developers mindsetDevelopers mindset
Developers mindset
 
Startup 101 for students and aspiring entrepreneurs
Startup 101 for students and aspiring entrepreneursStartup 101 for students and aspiring entrepreneurs
Startup 101 for students and aspiring entrepreneurs
 
Ux4 indiedevs
Ux4 indiedevsUx4 indiedevs
Ux4 indiedevs
 
7 Wastes of Software Development
7 Wastes of Software Development7 Wastes of Software Development
7 Wastes of Software Development
 

More from XP Conference India

Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora
XP Conference India
 
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni    Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
XP Conference India
 
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
XP Conference India
 
Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique
XP Conference India
 
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
XP Conference India
 
Building Big Architectures by Ramit Surana
Building Big Architectures by Ramit SuranaBuilding Big Architectures by Ramit Surana
Building Big Architectures by Ramit Surana
XP Conference India
 
Journey with XP a case study in embedded domain by Pradeep Kumar NR
Journey with XP a case study in embedded domain  by Pradeep Kumar NRJourney with XP a case study in embedded domain  by Pradeep Kumar NR
Journey with XP a case study in embedded domain by Pradeep Kumar NR
XP Conference India
 
Introduction to Docker - Learning containerization XP conference 2016
Introduction to Docker - Learning containerization  XP conference 2016Introduction to Docker - Learning containerization  XP conference 2016
Introduction to Docker - Learning containerization XP conference 2016
XP Conference India
 
XP in the full stack
XP in the full stackXP in the full stack
XP in the full stack
XP Conference India
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana Gulati
XP Conference India
 
Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016
XP Conference India
 
S.O.L.I.D xp
S.O.L.I.D xpS.O.L.I.D xp
S.O.L.I.D xp
XP Conference India
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
XP Conference India
 
Developer 2.0
Developer 2.0  Developer 2.0
Developer 2.0
XP Conference India
 
Play2 Java
Play2 JavaPlay2 Java
Utility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDDUtility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDD
XP Conference India
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
XP Conference India
 
Common blind spots on the journey to production vijay raghavan aravamudhan
Common blind spots on the journey to production  vijay raghavan aravamudhanCommon blind spots on the journey to production  vijay raghavan aravamudhan
Common blind spots on the journey to production vijay raghavan aravamudhan
XP Conference India
 
Who will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyaniWho will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyani
XP Conference India
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
XP Conference India
 

More from XP Conference India (20)

Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora
 
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni    Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
Devops like lance Armstrong by Yahya Poonawala & Siddharth Kulkarni
 
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
 
Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique
 
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
 
Building Big Architectures by Ramit Surana
Building Big Architectures by Ramit SuranaBuilding Big Architectures by Ramit Surana
Building Big Architectures by Ramit Surana
 
Journey with XP a case study in embedded domain by Pradeep Kumar NR
Journey with XP a case study in embedded domain  by Pradeep Kumar NRJourney with XP a case study in embedded domain  by Pradeep Kumar NR
Journey with XP a case study in embedded domain by Pradeep Kumar NR
 
Introduction to Docker - Learning containerization XP conference 2016
Introduction to Docker - Learning containerization  XP conference 2016Introduction to Docker - Learning containerization  XP conference 2016
Introduction to Docker - Learning containerization XP conference 2016
 
XP in the full stack
XP in the full stackXP in the full stack
XP in the full stack
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana Gulati
 
Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016
 
S.O.L.I.D xp
S.O.L.I.D xpS.O.L.I.D xp
S.O.L.I.D xp
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
 
Developer 2.0
Developer 2.0  Developer 2.0
Developer 2.0
 
Play2 Java
Play2 JavaPlay2 Java
Play2 Java
 
Utility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDDUtility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDD
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
Common blind spots on the journey to production vijay raghavan aravamudhan
Common blind spots on the journey to production  vijay raghavan aravamudhanCommon blind spots on the journey to production  vijay raghavan aravamudhan
Common blind spots on the journey to production vijay raghavan aravamudhan
 
Who will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyaniWho will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyani
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
 

Recently uploaded

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

Bashing cultural monsters in continuous integration by Vivek Ganesan XP Conference 2016

  • 1.
  • 2. Bashing Cultural Monsters in Continuous Integration Vivek Ganesan Twitter: @vivek_ganesan
  • 3. Running Jenkins is NOT Continuous Integration! Tools that you use ≠ What you do. How do you use the tools? = What you do.
  • 4. Then, What is CI? For Continuous Integration to be useful, following are ‘Mandatory’ ➔ Continuous Never ending. May be periodical. Good to start with daily frequency. ➔ Integration Different teams’/people’s codes are integrated and tested ➔ Stimulus - Response The adrenaline rush and events that follow any build failure to bring it back to green
  • 5. Have you ever observed what happens during the Stimulus-Response? Tip You can effectively observe only when you do not have stakes in something. If you have stakes, you get ‘involved’ instead of studying what happens.
  • 6. Blame Game, Mostly! ● Raj broke the build. What a careless guy! ● Why should I fix it? It is Raj who broke the build! ● Dear Boss, I am BLOCKED until Raj fixes the build. Why should I suffer for someone else’s mistakes? -The Escalator ● Poor soul Raj! He needs some more training. ● Raj, you are a good developer. But, you could have done better at avoiding some build failures this year!
  • 7. How does this ADVERSELY AFFECT Raj & the organization?
  • 8. What happens to the following in this situation? ● Commit frequency ● Size of each commit ● Ability to take risks ● Willingness to face uncertainty ● Bug count ● General motivation ● Anything else that we don’t know about?
  • 9. Does Raj really have FULL control on whether his commit breaks the build or not? Tip Contrary to the popular belief, the build does not have to be green all the time. However, the intention & action to keep it green must be present all the time.
  • 10. Code Commits & Roads Code commits are very similar to driving a car into a converging road.
  • 11. Code Commits & Roads Code commits are very similar to driving a car into a converging road. Your Commit
  • 12. Code Commits & Roads Code commits are very similar to driving a car into a converging road. Your Commit Team mate’s Pending Commit
  • 13. Your Commit Team mate’s Pending Commit Some commit done after your last pull
  • 14. Your Commit Team mate’s Pending Commit Some commit done after your last pull Challenge Can you be 100% sure about driving into the main road without an accident?
  • 15. Your Commit Team mate’s Pending Commit Some commit done after your last pull Challenge - 2 What would you do if you really have to be sure not to hit another vehicle?
  • 16. This is just a piece of ridiculous joke!
  • 17. This is just a piece of ridiculous joke! What if the car could not run properly even before merge?
  • 18. This is just a piece of ridiculous joke! What if the car could not run properly even before merge? Tip There are two types of failures: 1. Avoidable 2. Unavoidable
  • 19. What if a developer creates an avoidable failure? Eg: Missed a semi-colon and checked-in Solution: Find ways to help the developer to avoid it Best Case: Automate the avoidable failure check before commit (using pre-commit hooks or equivalent) Worst Case: Police a checklist for commit. Tip Developers don’t intentionally cause havoc, unless you steal their coffee mug.
  • 20. And, what after an unavoidable failure? All hell breaks loose? No, my friend! You wait until someone fixes the build. Remember! This build fixer need not be a build breaker. After build fixed, publicly appreciate the build fixer and exclaim “Woohoo! Another integration issue fixed early!” Tip Instead of punishing the build breaker, appreciate the build fixer, even if they both are same :) This motivates people to fix broken builds immediately.
  • 21. What to track? Don’t track who broke the build and how many times. Now that we care about who fixes the build, track these: ➔ Total Build Red Time Average time in a day for which build was Red. Trend it transparently & aim for reducing the same. ➔ No. of Unavoidable Failures This is the no. of integration issues that you fixed early :)
  • 22. Questions??? Create an atmosphere free of blame and full of trust and transparency. For more (free) agility tips visit my site http://www.vivekganesan.co m or follow me on Twitter at @vivek_ganesan