SlideShare a Scribd company logo
1 of 44
Download to read offline
Slide #
2020 Michael Mahlberg
Continuous Integration
I Don't Think That Word Means
What You Think It Means
1
2020
Slide #
2020 Michael Mahlberg 2
Slide #
2020 Michael Mahlberg
The Princess Bride
3
15 Seconds fromYouTube.com
https://www.youtube.com/watch?v=dTRKCXC0JFg
Slide #
2020 Michael Mahlberg 4
Illustration:
Humpty
Dumpty
and
Alice.
From
Through
the
Looking-Glass.
Illustration
by
John
Tenniel.
Text;Lewis
Carroll's
Through
the
Looking-Glass
quoted
on
https://en.wikipedia.org/wiki/Humpty_Dumpty
"When I use a word," Humpty Dumpty
said, in rather a scornful tone, "it means
just what I choose it to mean—neither
more nor less."
Slide #
2020 Michael Mahlberg
The original Continuous Integration
5
Slides available at http://bit.ly/gtd2020di21
Slide #
2020 Michael Mahlberg 6
© 1997
…
Source:
http://www.extremeprogramming.org/rules/integrateoften.html
Slide #
2020 Michael Mahlberg
Continuous integration
on a dollar a day
James Shore, 2006
7
Slide #
2020 Michael Mahlberg 8
No worries - this ^ is a Rubber Chicken!
Source:
https://www.jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html
Slide #
2020 Michael Mahlberg 9
Start Task
Create Branch
set b_name=s123_t45
git branch %b_name%
git checkout %b_name%
git push origin %b_name%
git config branch.%b_name%.remote origin
git config branch.%b_name%.merge refs/heads/%b_name%
Coding
Of course this includes
specs and testing etc.
Pull & Merge
development
checkout
development
merge
task branch
precommit
Push
Merge
integration
Merge
development
into
development
into
development
Smoke Test
integration
test
deployment
„Reset“
development
checkout
integration
„Reset“
integration
Release Token
into
integration
Release Token
Acquire Token
[Error]
[Error]
[Error]
[Error]
Stop the
Line
Push
[Error]
checkout
task branch
migrate db up
migrate db down
Smoke Test
Exportieren der Daten aus „integrate“ via web-interface
rake yyy:db2drop_all_tables
rake db:migrate
server lokal starten
rake yyy:data:populate
Import der Daten von oben via web-interface
[Error]
migrate db up
integration
test
[Error]
git log | grep => sha
git checkout <sha>
git commit –m
Stop the Line – and
after we get here
for the first time we
write down how we
handle the situation!
[OK]
Stop the
Line
[Error]
[Error]
Slide #
2020 Michael Mahlberg
What (many) people think
today…
10
Photo
by
Daniel
Hjalmarsson
on
Unsplash
Slide #
2020 Michael Mahlberg 11
DZone
Source: https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch
Red Hat
Source https://www.redhat.com/en/topics/devops/what-is-ci-cd
A continuous delivery pipeline is an
automated expression of your process for
getting software from version control right
through to your users and customers.
Jenkins
Source: https://www.devops-certification.org/
How_Should_You_Design_Your_DevOps_Continuous_Delivery_And_
Deployment_Pipeline.php
DevOps Certifications
Source: https://jenkins.io/doc/pipeline/tour/hello-world/
Random
Sample
Slide #
2020 Michael Mahlberg
What is missing?
12
Photo
by
Irina
on
Unsplash
Slide #
2020 Michael Mahlberg 13
© 1997
…
Source:
http://www.extremeprogramming.org/rules/integrateoften.html
Slide #
2020 Michael Mahlberg 14
Each development pair is responsible for
integrating their own code when ever a
reasonable break presents itself. This may be
when the unit tests all run at 100% or some
smaller portion of the planned functionality
is finished. Only one pair integrates at any
given moment and after only a few hours of
coding to reduce the potential problem
location to almost nothing.
some
smaller portion of the planned functionality
is finished.
Slide #
2020 Michael Mahlberg 15
Photo
by
Christopher
Windus
on
Unsplash
True Story…
Slide #
2020 Michael Mahlberg 16
Photo
by
Christopher
Windus
on
Unsplash
3 Requirements
1 Increment
1 Environment
…
One “CI/CD”-System
Slide #
2020 Michael Mahlberg 17
Photo
by
Christopher
Windus
on
Unsplash
Req 1: Provide minimum
feedback to user (Using
the envisioned
frameworks)
Slide #
2020 Michael Mahlberg 18
Photo
by
Christopher
Windus
on
Unsplash
Req 2: Automatically
install the Application
(with the envisioned
frameworks) on
Windows
Slide #
2020 Michael Mahlberg 19
Photo
by
Christopher
Windus
on
Unsplash
Req 3: Automatically
install the Application
(with the envisioned
frameworks) on
Mac OS X
Slide #
2020 Michael Mahlberg 20
Photo
by
Christopher
Windus
on
Unsplash
Simple…
Slide #
2020 Michael Mahlberg 21
Photo
by
Christopher
Windus
on
Unsplash
But not easy…
Slide #
2020 Michael Mahlberg 22
Photo
by
Christopher
Windus
on
Unsplash
Feature 1 was demoed
on http://127.0.0.1/…
Slide #
2020 Michael Mahlberg 23
Photo
by
Christopher
Windus
on
Unsplash
Feature 2 was demoed
under C:data…
Slide #
2020 Michael Mahlberg 24
Photo
by
Christopher
Windus
on
Unsplash
Feature 3 was demoed
under /Users/demo/…
Slide #
2020 Michael Mahlberg 25
Photo
by
Christopher
Windus
on
Unsplash
All three features
- had been built automatically
- had unit and integration tests
- passed all tests
- used the envisioned frameworks
Slide #
2020 Michael Mahlberg 26
Photo
by
Christopher
Windus
on
Unsplash
But:
- Feature 2 and 3 used their own demo-
contents (not feature 1)
- Feature 2 and 3 used diffferent versions o
of the frameworks
Slide #
2020 Michael Mahlberg 27
Photo
by
Christopher
Windus
on
Unsplash
Therefore
Slide #
2020 Michael Mahlberg
All three features
- had been built automatically
- had unit and integration tests
- passed all tests
- used the envisioned frameworks
All three features
- had been built automatically
- had unit and integration tests
- passed all tests
- used the envisioned frameworks
28
Photo
by
Christopher
Windus
on
Unsplash
Not Integrated
-
Slide #
2020 Michael Mahlberg 29
You actually can have
continuous deployment
without actual
continuous integration.
Cargo	Cult
• […]	an	attempt	to	recreate	
successful	outcomes	by	replicating	
circumstances	associated	with	
those	outcomes,	although	those	
circumstances	are	either	unrelated	
to	the	causes	of	outcomes	or	
insufficient	to	produce	them	by	
themselves.
Slide #
2020 Michael Mahlberg
What To Do About It?
A little collection of things to
keep in mind…
31
Picture Source: https://flic.kr/p/3bNwZu
Slide #
2020 Michael Mahlberg
Use an ATDD/BDD Mindset
•Think in Scenarios
•Formulate from a user point of view
•Remember the original Continuous
Integration ideas
32
Photo
by
Mike
from
Pexels
Slide #
2020 Michael Mahlberg
Focus onValue
•«Implement X» is not a feature - it’s a work-order
•«Given the situation ABC, when the User XYZ does
MNO then Woosh happens» could be a feature.
•Using a ATDD/BDD approach doesn’t require
ATDD/BDD tools – it is about the original
Continuous Integration Mindset.
33
Image source: https://flic.kr/p/9cWWa2
Slide #
2020 Michael Mahlberg
Merge from upstream often
Regardless of your actual
development process
34
Slide #
2020 Michael Mahlberg
Don’t do this…
35
💣
💣
💣
Slide #
2020 Michael Mahlberg
Do that
36
💣
🗣 🗣
👂
👂
💣
🗣 🗣
👂
👂
Slide #
2020 Michael Mahlberg
Merge from upstream often
Regardless of your actual
development process:
make sure to integrate all the
changes from everyone else before
you try to integrate your own.
37
Slide #
2020 Michael Mahlberg
Use short lived
branches
Smaller than 4
hours would be
good
38
Photo
by
Aphiwat
chuangchoem
from
Pexels
Slide #
2020 Michael Mahlberg
Trunk based development?
• Shouldn’t it be called main-branch-based these days?
• And again: It probably doesn’t mean what many people
think.
• It’s more about short lived branches and…
wait for it ….
Continuous Integration….
39
Image: https://flic.kr/p/23W8iRC
Slide #
2020 Michael Mahlberg
Continuous integration is
• … about people consciously integrating things technically and
with respect to functionality.
• Build and Deployment Pipelines help with the technical side.
• BDD helps with automating parts of the integration
• Only after you have checked that the integrated system actually
does what you expect it to do, is your work done.
40
Slide #
2020 Michael Mahlberg 41
Slide #
2020 Michael Mahlberg
..
42
Slide #
2020 Michael Mahlberg 43
https://twitter.com/agile_memes/status/1247519535504056320?s=21
Slide #
2020 Michael Mahlberg
Contact Information
44
If you have questions,
don’t hesitate to contact me via mail at: mm@michaelmahlberg.com
You can also find me on Twitter as MMahlberg
I blog on http://agile-aspects.michaelmahlberg.com
My homepage is http://www.michaelmahlberg.de

More Related Content

Similar to Continuous Integration - I Don't Think That Word Means What You Think It Means

Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docxAdobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
daniahendric
 
Prepare for the Mobilacalypse
Prepare for the MobilacalypsePrepare for the Mobilacalypse
Prepare for the Mobilacalypse
Jeff Eaton
 
Digital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D ScanningDigital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D Scanning
Massimo Menichinelli
 

Similar to Continuous Integration - I Don't Think That Word Means What You Think It Means (18)

AREAS OF INNOVATION: MIXED REALITY IN THE INDUSTRY AND OUR EVERYDAY LIFE
AREAS OF INNOVATION: MIXED REALITY IN THE INDUSTRY AND OUR EVERYDAY LIFEAREAS OF INNOVATION: MIXED REALITY IN THE INDUSTRY AND OUR EVERYDAY LIFE
AREAS OF INNOVATION: MIXED REALITY IN THE INDUSTRY AND OUR EVERYDAY LIFE
 
NodeSummit 2016 - WELCOME TO THE BLUE TEAM! CREATING “OH SHIT” MOMENTS FOR FU...
NodeSummit 2016 - WELCOME TO THE BLUE TEAM! CREATING “OH SHIT” MOMENTS FOR FU...NodeSummit 2016 - WELCOME TO THE BLUE TEAM! CREATING “OH SHIT” MOMENTS FOR FU...
NodeSummit 2016 - WELCOME TO THE BLUE TEAM! CREATING “OH SHIT” MOMENTS FOR FU...
 
Trevor Collins Visual Resume
Trevor Collins Visual ResumeTrevor Collins Visual Resume
Trevor Collins Visual Resume
 
Responsive Design for Complex Websites (IXDA Munich)
Responsive Design for Complex Websites (IXDA Munich)Responsive Design for Complex Websites (IXDA Munich)
Responsive Design for Complex Websites (IXDA Munich)
 
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris MaddernJuggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
 
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris MaddernJuggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
 
Creating a Promo Video using Your iPad and Editing with iMovie for iPad
Creating a Promo Video using Your iPad and Editing with iMovie for iPadCreating a Promo Video using Your iPad and Editing with iMovie for iPad
Creating a Promo Video using Your iPad and Editing with iMovie for iPad
 
Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docxAdobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
Adobe Captivate Monday, December 05, 2016 Page 1 of 24 .docx
 
Lean Startup Hardware Examples
Lean Startup Hardware ExamplesLean Startup Hardware Examples
Lean Startup Hardware Examples
 
Tech ed au 2012 dev212
Tech ed au 2012 dev212Tech ed au 2012 dev212
Tech ed au 2012 dev212
 
WORKSHOP: Content Marketing on a Shoestring Budget - 3XE Digital
WORKSHOP: Content Marketing on a Shoestring Budget - 3XE DigitalWORKSHOP: Content Marketing on a Shoestring Budget - 3XE Digital
WORKSHOP: Content Marketing on a Shoestring Budget - 3XE Digital
 
Mobile Product Strategy Keynote Presentation for Mobile App Europe Conference...
Mobile Product Strategy Keynote Presentation for Mobile App Europe Conference...Mobile Product Strategy Keynote Presentation for Mobile App Europe Conference...
Mobile Product Strategy Keynote Presentation for Mobile App Europe Conference...
 
The Power of Canvases
The Power of CanvasesThe Power of Canvases
The Power of Canvases
 
Fmp proposal
Fmp proposalFmp proposal
Fmp proposal
 
a Sales Consultants guide to presenting and demos
a Sales Consultants guide to presenting and demosa Sales Consultants guide to presenting and demos
a Sales Consultants guide to presenting and demos
 
What to Expect From Digital Platforms in 2018 | #SpectrecomTalks
What to Expect From Digital Platforms in 2018 | #SpectrecomTalksWhat to Expect From Digital Platforms in 2018 | #SpectrecomTalks
What to Expect From Digital Platforms in 2018 | #SpectrecomTalks
 
Prepare for the Mobilacalypse
Prepare for the MobilacalypsePrepare for the Mobilacalypse
Prepare for the Mobilacalypse
 
Digital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D ScanningDigital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D Scanning
 

More from Michael Mahlberg

Flow – DAS Ziel von Kanban?
Flow – DAS Ziel von Kanban?Flow – DAS Ziel von Kanban?
Flow – DAS Ziel von Kanban?
Michael Mahlberg
 

More from Michael Mahlberg (20)

Heavyweight agile Processes? Let's make them leaner!
Heavyweight agile Processes? Let's make them leaner!Heavyweight agile Processes? Let's make them leaner!
Heavyweight agile Processes? Let's make them leaner!
 
Skaliert Arbeiten statt zu skalieren - 2022.pdf
Skaliert Arbeiten statt zu skalieren - 2022.pdfSkaliert Arbeiten statt zu skalieren - 2022.pdf
Skaliert Arbeiten statt zu skalieren - 2022.pdf
 
Agile Tuesday München: Was ist eigentlich aus Lean geworden?
Agile Tuesday München: Was ist eigentlich aus  Lean geworden?Agile Tuesday München: Was ist eigentlich aus  Lean geworden?
Agile Tuesday München: Was ist eigentlich aus Lean geworden?
 
Process-Tinder – Wenn ich mich nur nach den schönen Bildern entscheide…
Process-Tinder – Wenn ich mich nur nach den schönen Bildern entscheide…Process-Tinder – Wenn ich mich nur nach den schönen Bildern entscheide…
Process-Tinder – Wenn ich mich nur nach den schönen Bildern entscheide…
 
Was ist aus dem L-Wort (in Lean Kanban) geworden?
Was ist aus dem L-Wort (in Lean Kanban) geworden?Was ist aus dem L-Wort (in Lean Kanban) geworden?
Was ist aus dem L-Wort (in Lean Kanban) geworden?
 
Immer Ärger mit Jira - LWIPCGN#118 (2021)
Immer Ärger mit Jira - LWIPCGN#118 (2021)Immer Ärger mit Jira - LWIPCGN#118 (2021)
Immer Ärger mit Jira - LWIPCGN#118 (2021)
 
Flow – DAS Ziel von Kanban?
Flow – DAS Ziel von Kanban?Flow – DAS Ziel von Kanban?
Flow – DAS Ziel von Kanban?
 
What's in a Story? Drei Ansätze, um mit Anforderungen gemeinsam erfolgreich z...
What's in a Story? Drei Ansätze, um mit Anforderungen gemeinsam erfolgreich z...What's in a Story? Drei Ansätze, um mit Anforderungen gemeinsam erfolgreich z...
What's in a Story? Drei Ansätze, um mit Anforderungen gemeinsam erfolgreich z...
 
Lwipcgn#110 2020-die agilekeuleueberleben
Lwipcgn#110 2020-die agilekeuleueberlebenLwipcgn#110 2020-die agilekeuleueberleben
Lwipcgn#110 2020-die agilekeuleueberleben
 
The Trouble with Jira – TAG 2019
The Trouble with Jira – TAG 2019The Trouble with Jira – TAG 2019
The Trouble with Jira – TAG 2019
 
Michael Mahlberg - Leichtgewichtige Kanban-Metriken auf der LKCE 2018
Michael Mahlberg - Leichtgewichtige Kanban-Metriken auf der LKCE 2018Michael Mahlberg - Leichtgewichtige Kanban-Metriken auf der LKCE 2018
Michael Mahlberg - Leichtgewichtige Kanban-Metriken auf der LKCE 2018
 
From ceremonies to events
From ceremonies to eventsFrom ceremonies to events
From ceremonies to events
 
The Product Owner's Survival Kit - ein Überblick [DE]
The Product Owner's Survival Kit - ein Überblick [DE]The Product Owner's Survival Kit - ein Überblick [DE]
The Product Owner's Survival Kit - ein Überblick [DE]
 
What coaching stances can do for you in Kanban settings...
What coaching stances can do for you in Kanban settings... What coaching stances can do for you in Kanban settings...
What coaching stances can do for you in Kanban settings...
 
A3 thinking - background, process and examples
A3 thinking - background, process and examplesA3 thinking - background, process and examples
A3 thinking - background, process and examples
 
Lws cologne leansoftwaredevelopment
Lws cologne leansoftwaredevelopmentLws cologne leansoftwaredevelopment
Lws cologne leansoftwaredevelopment
 
Team models-t4 at2015
Team models-t4 at2015Team models-t4 at2015
Team models-t4 at2015
 
Ökonomie und Architektur als effektives Duo
Ökonomie und Architektur als effektives DuoÖkonomie und Architektur als effektives Duo
Ökonomie und Architektur als effektives Duo
 
Arbeitsorga2014 06-25-welcher hammer-handout
Arbeitsorga2014 06-25-welcher hammer-handoutArbeitsorga2014 06-25-welcher hammer-handout
Arbeitsorga2014 06-25-welcher hammer-handout
 
Agile,lean, and kanban – friends or foes
Agile,lean, and kanban – friends or foesAgile,lean, and kanban – friends or foes
Agile,lean, and kanban – friends or foes
 

Recently uploaded

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 

Recently uploaded (20)

Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 

Continuous Integration - I Don't Think That Word Means What You Think It Means

  • 1. Slide # 2020 Michael Mahlberg Continuous Integration I Don't Think That Word Means What You Think It Means 1 2020
  • 2. Slide # 2020 Michael Mahlberg 2
  • 3. Slide # 2020 Michael Mahlberg The Princess Bride 3 15 Seconds fromYouTube.com https://www.youtube.com/watch?v=dTRKCXC0JFg
  • 4. Slide # 2020 Michael Mahlberg 4 Illustration: Humpty Dumpty and Alice. From Through the Looking-Glass. Illustration by John Tenniel. Text;Lewis Carroll's Through the Looking-Glass quoted on https://en.wikipedia.org/wiki/Humpty_Dumpty "When I use a word," Humpty Dumpty said, in rather a scornful tone, "it means just what I choose it to mean—neither more nor less."
  • 5. Slide # 2020 Michael Mahlberg The original Continuous Integration 5 Slides available at http://bit.ly/gtd2020di21
  • 6. Slide # 2020 Michael Mahlberg 6 © 1997 … Source: http://www.extremeprogramming.org/rules/integrateoften.html
  • 7. Slide # 2020 Michael Mahlberg Continuous integration on a dollar a day James Shore, 2006 7
  • 8. Slide # 2020 Michael Mahlberg 8 No worries - this ^ is a Rubber Chicken! Source: https://www.jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html
  • 9. Slide # 2020 Michael Mahlberg 9 Start Task Create Branch set b_name=s123_t45 git branch %b_name% git checkout %b_name% git push origin %b_name% git config branch.%b_name%.remote origin git config branch.%b_name%.merge refs/heads/%b_name% Coding Of course this includes specs and testing etc. Pull & Merge development checkout development merge task branch precommit Push Merge integration Merge development into development into development Smoke Test integration test deployment „Reset“ development checkout integration „Reset“ integration Release Token into integration Release Token Acquire Token [Error] [Error] [Error] [Error] Stop the Line Push [Error] checkout task branch migrate db up migrate db down Smoke Test Exportieren der Daten aus „integrate“ via web-interface rake yyy:db2drop_all_tables rake db:migrate server lokal starten rake yyy:data:populate Import der Daten von oben via web-interface [Error] migrate db up integration test [Error] git log | grep => sha git checkout <sha> git commit –m Stop the Line – and after we get here for the first time we write down how we handle the situation! [OK] Stop the Line [Error] [Error]
  • 10. Slide # 2020 Michael Mahlberg What (many) people think today… 10 Photo by Daniel Hjalmarsson on Unsplash
  • 11. Slide # 2020 Michael Mahlberg 11 DZone Source: https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch Red Hat Source https://www.redhat.com/en/topics/devops/what-is-ci-cd A continuous delivery pipeline is an automated expression of your process for getting software from version control right through to your users and customers. Jenkins Source: https://www.devops-certification.org/ How_Should_You_Design_Your_DevOps_Continuous_Delivery_And_ Deployment_Pipeline.php DevOps Certifications Source: https://jenkins.io/doc/pipeline/tour/hello-world/ Random Sample
  • 12. Slide # 2020 Michael Mahlberg What is missing? 12 Photo by Irina on Unsplash
  • 13. Slide # 2020 Michael Mahlberg 13 © 1997 … Source: http://www.extremeprogramming.org/rules/integrateoften.html
  • 14. Slide # 2020 Michael Mahlberg 14 Each development pair is responsible for integrating their own code when ever a reasonable break presents itself. This may be when the unit tests all run at 100% or some smaller portion of the planned functionality is finished. Only one pair integrates at any given moment and after only a few hours of coding to reduce the potential problem location to almost nothing. some smaller portion of the planned functionality is finished.
  • 15. Slide # 2020 Michael Mahlberg 15 Photo by Christopher Windus on Unsplash True Story…
  • 16. Slide # 2020 Michael Mahlberg 16 Photo by Christopher Windus on Unsplash 3 Requirements 1 Increment 1 Environment … One “CI/CD”-System
  • 17. Slide # 2020 Michael Mahlberg 17 Photo by Christopher Windus on Unsplash Req 1: Provide minimum feedback to user (Using the envisioned frameworks)
  • 18. Slide # 2020 Michael Mahlberg 18 Photo by Christopher Windus on Unsplash Req 2: Automatically install the Application (with the envisioned frameworks) on Windows
  • 19. Slide # 2020 Michael Mahlberg 19 Photo by Christopher Windus on Unsplash Req 3: Automatically install the Application (with the envisioned frameworks) on Mac OS X
  • 20. Slide # 2020 Michael Mahlberg 20 Photo by Christopher Windus on Unsplash Simple…
  • 21. Slide # 2020 Michael Mahlberg 21 Photo by Christopher Windus on Unsplash But not easy…
  • 22. Slide # 2020 Michael Mahlberg 22 Photo by Christopher Windus on Unsplash Feature 1 was demoed on http://127.0.0.1/…
  • 23. Slide # 2020 Michael Mahlberg 23 Photo by Christopher Windus on Unsplash Feature 2 was demoed under C:data…
  • 24. Slide # 2020 Michael Mahlberg 24 Photo by Christopher Windus on Unsplash Feature 3 was demoed under /Users/demo/…
  • 25. Slide # 2020 Michael Mahlberg 25 Photo by Christopher Windus on Unsplash All three features - had been built automatically - had unit and integration tests - passed all tests - used the envisioned frameworks
  • 26. Slide # 2020 Michael Mahlberg 26 Photo by Christopher Windus on Unsplash But: - Feature 2 and 3 used their own demo- contents (not feature 1) - Feature 2 and 3 used diffferent versions o of the frameworks
  • 27. Slide # 2020 Michael Mahlberg 27 Photo by Christopher Windus on Unsplash Therefore
  • 28. Slide # 2020 Michael Mahlberg All three features - had been built automatically - had unit and integration tests - passed all tests - used the envisioned frameworks All three features - had been built automatically - had unit and integration tests - passed all tests - used the envisioned frameworks 28 Photo by Christopher Windus on Unsplash Not Integrated -
  • 29. Slide # 2020 Michael Mahlberg 29 You actually can have continuous deployment without actual continuous integration.
  • 31. Slide # 2020 Michael Mahlberg What To Do About It? A little collection of things to keep in mind… 31 Picture Source: https://flic.kr/p/3bNwZu
  • 32. Slide # 2020 Michael Mahlberg Use an ATDD/BDD Mindset •Think in Scenarios •Formulate from a user point of view •Remember the original Continuous Integration ideas 32 Photo by Mike from Pexels
  • 33. Slide # 2020 Michael Mahlberg Focus onValue •«Implement X» is not a feature - it’s a work-order •«Given the situation ABC, when the User XYZ does MNO then Woosh happens» could be a feature. •Using a ATDD/BDD approach doesn’t require ATDD/BDD tools – it is about the original Continuous Integration Mindset. 33 Image source: https://flic.kr/p/9cWWa2
  • 34. Slide # 2020 Michael Mahlberg Merge from upstream often Regardless of your actual development process 34
  • 35. Slide # 2020 Michael Mahlberg Don’t do this… 35 💣 💣 💣
  • 36. Slide # 2020 Michael Mahlberg Do that 36 💣 🗣 🗣 👂 👂 💣 🗣 🗣 👂 👂
  • 37. Slide # 2020 Michael Mahlberg Merge from upstream often Regardless of your actual development process: make sure to integrate all the changes from everyone else before you try to integrate your own. 37
  • 38. Slide # 2020 Michael Mahlberg Use short lived branches Smaller than 4 hours would be good 38 Photo by Aphiwat chuangchoem from Pexels
  • 39. Slide # 2020 Michael Mahlberg Trunk based development? • Shouldn’t it be called main-branch-based these days? • And again: It probably doesn’t mean what many people think. • It’s more about short lived branches and… wait for it …. Continuous Integration…. 39 Image: https://flic.kr/p/23W8iRC
  • 40. Slide # 2020 Michael Mahlberg Continuous integration is • … about people consciously integrating things technically and with respect to functionality. • Build and Deployment Pipelines help with the technical side. • BDD helps with automating parts of the integration • Only after you have checked that the integrated system actually does what you expect it to do, is your work done. 40
  • 41. Slide # 2020 Michael Mahlberg 41
  • 42. Slide # 2020 Michael Mahlberg .. 42
  • 43. Slide # 2020 Michael Mahlberg 43 https://twitter.com/agile_memes/status/1247519535504056320?s=21
  • 44. Slide # 2020 Michael Mahlberg Contact Information 44 If you have questions, don’t hesitate to contact me via mail at: mm@michaelmahlberg.com You can also find me on Twitter as MMahlberg I blog on http://agile-aspects.michaelmahlberg.com My homepage is http://www.michaelmahlberg.de