SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Coding Dojo
Working on Legacy Code
Geek Time - September 2016
Nizar GARRACHE
OLBATI CTO
OLBATI - Geek Time - September 2016 2
Top Gear Kata
● git clone https://github.com/olbati/ocd-top-gear
OLBATI - Geek Time - September 2016 3
Legacy application...
● Generate revenue
● Are difficult to maintain
OLBATI - Geek Time - September 2016 4
What’s a legacy code?
● Old code base?
● Outdated technology
● “Legacy code is code without tests” - M. Feathers
OLBATI - Geek Time - September 2016 5
Problems with legacy application
● Nothing… if you don’t need to change it
● It’s hard to add new features
● Changes may introduce regressions
● Code hard to understand
● Can’t be delivered as quickly as you would like
OLBATI - Geek Time - September 2016 6
The Boy Scout Rule
Leave the campground cleaner than you found it
OLBATI - Geek Time - September 2016 7
Thanks!
Any questions?
@ngarrache
nizar.garrache@gmail.com

Contenu connexe

Tendances

ATLRUG GiveBack Report (April 2014)
ATLRUG GiveBack Report (April 2014)ATLRUG GiveBack Report (April 2014)
ATLRUG GiveBack Report (April 2014)
jasnow
 

Tendances (19)

ATLRUG Announcements - July 2016
ATLRUG Announcements - July 2016ATLRUG Announcements - July 2016
ATLRUG Announcements - July 2016
 
ATLRUG Community Announcements - Sept. 2015
ATLRUG Community Announcements - Sept. 2015ATLRUG Community Announcements - Sept. 2015
ATLRUG Community Announcements - Sept. 2015
 
OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発OpenAPIを利用したPythonWebアプリケーション開発
OpenAPIを利用したPythonWebアプリケーション開発
 
Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10Elixir + GraphQL = Absinthe 2019.04.10
Elixir + GraphQL = Absinthe 2019.04.10
 
AngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic AssistantAngularJs - From Heedless Meddler to Superheroic Assistant
AngularJs - From Heedless Meddler to Superheroic Assistant
 
Linq (from the inside)
Linq (from the inside)Linq (from the inside)
Linq (from the inside)
 
Alexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummiesAlexa Skills Kit programing for dummies
Alexa Skills Kit programing for dummies
 
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
 
PHP Application Performance
PHP Application PerformancePHP Application Performance
PHP Application Performance
 
Who I am and What I have done ever since/自己紹介スライド
Who I am and What I have done ever since/自己紹介スライドWho I am and What I have done ever since/自己紹介スライド
Who I am and What I have done ever since/自己紹介スライド
 
How to Build APIs - MHacks 2016
How to Build APIs - MHacks 2016How to Build APIs - MHacks 2016
How to Build APIs - MHacks 2016
 
Using Go in DevOps
Using Go in DevOpsUsing Go in DevOps
Using Go in DevOps
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
Introduction to Algorithms and Data Structures in Swift 4: Get ready for prog...
Introduction to Algorithms and Data Structures in Swift 4: Get ready for prog...Introduction to Algorithms and Data Structures in Swift 4: Get ready for prog...
Introduction to Algorithms and Data Structures in Swift 4: Get ready for prog...
 
Intro to node.js
Intro to node.jsIntro to node.js
Intro to node.js
 
Last Month in PHP - October 2016
Last Month in PHP - October 2016Last Month in PHP - October 2016
Last Month in PHP - October 2016
 
ATLRUG GiveBack Report (April 2014)
ATLRUG GiveBack Report (April 2014)ATLRUG GiveBack Report (April 2014)
ATLRUG GiveBack Report (April 2014)
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
 
Graphlab Create 簡介
Graphlab Create 簡介Graphlab Create 簡介
Graphlab Create 簡介
 

Similaire à Geek Time September 2016 : Coding Dojo - Working on Legacy Code

QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Peter Kofler
 

Similaire à Geek Time September 2016 : Coding Dojo - Working on Legacy Code (20)

Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache Spark
 
Efficient Django
Efficient DjangoEfficient Django
Efficient Django
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
 
How to design your own chip?
How to design your own chip?How to design your own chip?
How to design your own chip?
 
Crowdlinker Engineering (year in review 2019)
Crowdlinker Engineering (year in review 2019)Crowdlinker Engineering (year in review 2019)
Crowdlinker Engineering (year in review 2019)
 
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and BeyondGetting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculator
 
Besut Kode - Workshop 1
Besut Kode - Workshop 1Besut Kode - Workshop 1
Besut Kode - Workshop 1
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDE
 
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt BowersHow to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
How to build an effective IoT demo with OSGi - Derek Baum & Walt Bowers
 
Groovy android
Groovy androidGroovy android
Groovy android
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low Code
 
GOTO Paris | @see Gopher
GOTO Paris | @see GopherGOTO Paris | @see Gopher
GOTO Paris | @see Gopher
 
Contributing to Apache Spark 3
Contributing to Apache Spark 3Contributing to Apache Spark 3
Contributing to Apache Spark 3
 
IPv6 on Mikrotik
IPv6 on MikrotikIPv6 on Mikrotik
IPv6 on Mikrotik
 
PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2
 
ATLRUG Community Announcements - Oct. 2015
ATLRUG Community Announcements - Oct. 2015ATLRUG Community Announcements - Oct. 2015
ATLRUG Community Announcements - Oct. 2015
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
 
Contributing to the Odoo Community Association (OCA)
Contributing to the Odoo Community Association (OCA)Contributing to the Odoo Community Association (OCA)
Contributing to the Odoo Community Association (OCA)
 

Plus de OLBATI

Plus de OLBATI (17)

Geek Time Juillet 2017 : TDD coté Front/JS
Geek Time Juillet 2017 : TDD coté Front/JSGeek Time Juillet 2017 : TDD coté Front/JS
Geek Time Juillet 2017 : TDD coté Front/JS
 
Geek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.jsGeek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.js
 
Geek Time Juin 2017 : Microservices Tracing
Geek Time Juin 2017 : Microservices TracingGeek Time Juin 2017 : Microservices Tracing
Geek Time Juin 2017 : Microservices Tracing
 
Geek Time Juin 2017 : GraphQL
Geek Time Juin 2017 : GraphQLGeek Time Juin 2017 : GraphQL
Geek Time Juin 2017 : GraphQL
 
Geek Time Mars 2017 : Les microservices
Geek Time Mars 2017 : Les microservicesGeek Time Mars 2017 : Les microservices
Geek Time Mars 2017 : Les microservices
 
Geek Time Janvier 2017 : Quiz Java
Geek Time Janvier 2017 : Quiz JavaGeek Time Janvier 2017 : Quiz Java
Geek Time Janvier 2017 : Quiz Java
 
Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8
 
Geek Time Janvier 2017 : Angular 2
Geek Time Janvier 2017 : Angular 2Geek Time Janvier 2017 : Angular 2
Geek Time Janvier 2017 : Angular 2
 
Geek Time December 2016 : Bitcoin/Blockchain
Geek Time December 2016 : Bitcoin/BlockchainGeek Time December 2016 : Bitcoin/Blockchain
Geek Time December 2016 : Bitcoin/Blockchain
 
Geek Time December 2016 : Quiz Java 8
Geek Time December 2016 : Quiz Java 8Geek Time December 2016 : Quiz Java 8
Geek Time December 2016 : Quiz Java 8
 
Geek Time December 2016 : Swagger II
Geek Time December 2016 : Swagger IIGeek Time December 2016 : Swagger II
Geek Time December 2016 : Swagger II
 
Geek Time Novembre 2016 : Quiz
Geek Time Novembre 2016 : QuizGeek Time Novembre 2016 : Quiz
Geek Time Novembre 2016 : Quiz
 
Geek Time Novembre 2016 : Neo4j
Geek Time Novembre 2016 : Neo4jGeek Time Novembre 2016 : Neo4j
Geek Time Novembre 2016 : Neo4j
 
Geek Time September 2016 : JavaScript Linting Tools
Geek Time September 2016 : JavaScript Linting ToolsGeek Time September 2016 : JavaScript Linting Tools
Geek Time September 2016 : JavaScript Linting Tools
 
Geek Time Août 2016 : Docker
Geek Time Août 2016 : DockerGeek Time Août 2016 : Docker
Geek Time Août 2016 : Docker
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.js
 
Geek Time Juin 2016 : React
Geek Time Juin 2016 : ReactGeek Time Juin 2016 : React
Geek Time Juin 2016 : React
 

Dernier

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Geek Time September 2016 : Coding Dojo - Working on Legacy Code

  • 1. Coding Dojo Working on Legacy Code Geek Time - September 2016 Nizar GARRACHE OLBATI CTO
  • 2. OLBATI - Geek Time - September 2016 2 Top Gear Kata ● git clone https://github.com/olbati/ocd-top-gear
  • 3. OLBATI - Geek Time - September 2016 3 Legacy application... ● Generate revenue ● Are difficult to maintain
  • 4. OLBATI - Geek Time - September 2016 4 What’s a legacy code? ● Old code base? ● Outdated technology ● “Legacy code is code without tests” - M. Feathers
  • 5. OLBATI - Geek Time - September 2016 5 Problems with legacy application ● Nothing… if you don’t need to change it ● It’s hard to add new features ● Changes may introduce regressions ● Code hard to understand ● Can’t be delivered as quickly as you would like
  • 6. OLBATI - Geek Time - September 2016 6 The Boy Scout Rule Leave the campground cleaner than you found it
  • 7. OLBATI - Geek Time - September 2016 7 Thanks! Any questions? @ngarrache nizar.garrache@gmail.com