SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Global Day of
Code Retreat 2013
(#gdcr13)
Vienna, Dec. 2013

Peter Kofler, ‘Code Cop’
@codecopkofler
www.code-cop.org
Copyright Peter Kofler, licensed under CC-BY.
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Peter Kofler
• Ph.D. (Appl. Math.)
• Professional Software
Developer for 14 years
• “fanatic about code quality”
• I help development teams
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Thanks to Our Local Sponsors

http://www.frequentis.com/

http://www.agentex.at/

http://agileexperts.at/
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Day Structure
Introduction 15'
●
3 Sessions
●

coding 45'
●
retro/break 15'
●

Lunch
●
3 Sessions
●
Retrospective 45'
●
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Coding Dojo Mindset
●

Safe place outside
work

●

We are here to learn

●

Need to slow down

●

Focus on doing it right

●

Collaborative Game
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Code Retreat Principles
●

Learn through pairing (switch pairs)

●

Practice

●

Experiment

●

Have fun!
Coderetreat, http://coderetreat.org/
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Why repeat the same kata?
●

de-emphasise the generation of code

●

concentrate on
●

the process of writing the code

●

naming test cases

●

the Red/Green cycle
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Why delete the code?
No. Listen.
●
Stop trying to go faster, start trying to go
slower.
●
Don't think about finishing, think about
improving.
●
Think about practising. As a team.
●
That's what this day is for. Nothing else.
●

No. Listen. http://www.cyber-dojo.com/
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Four Elements
of Simple Design
●

Passes its tests

●

Minimizes duplication

●

Maximizes clarity

●

Has fewer elements
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Conway's Game of Live
●

infinite, two-dimensional grid of cells

●

interacts with its eight neighbours

●

at each step in time, transitions occur

●

four rules for cells depending on number
of live neighbours

http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Rules of Cell Interaction
Any live cell with fewer than two live
neighbours dies by under-population.
●
Any live cell with two or three live neighbours
lives on to the next generation.
●
Any live cell with more than three live
neighbours dies, as if by overcrowding.
●
Any dead cell with exactly three live neighbours
becomes a live cell, by reproduction.
●

http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
Don't Focus on
Getting it Done.
Focus on Doing
It Perfectly.
Sessions
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Our Sessions
“Do your best”
●
Ping Pong
●
TDD as if you meant it
●
Ping Pong Mute
●
No Data Structures
●
Evil Pair/Find Loophole
●
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Closing Circle
●

What did you learn today?

●

What surprised you today?

●

What will you do
differently in the
future?
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

Peter Kofler
@codecopkofler
www.code-cop.org

organized by

Mike Leber
@michael_leber
http://agileexperts.at/
PETER KOFLER, CODE-COP.ORG

FANATIC ABOUT CODE QUALITY

CC Images
●

Incense http://www.flickr.com/photos/cibomahto/7651263514/

●

List http://www.flickr.com/photos/kylesteeddesign/3724074594/

●

Dojo http://www.flickr.com/photos/49715404@N00/3267627038/

●

Wants you: http://www.flickr.com/photos/shutter/105497713/

Contenu connexe

Similaire à Global Day of Code Retreat (2013)

Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)
Peter Kofler
 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Peter Kofler
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
Peter Kofler
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
Peter Kofler
 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)
Peter Kofler
 
Coding Dojo: Roman Numerals (2014)
Coding Dojo: Roman Numerals (2014)Coding Dojo: Roman Numerals (2014)
Coding Dojo: Roman Numerals (2014)
Peter Kofler
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
Peter Kofler
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Peter Kofler
 
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 à Global Day of Code Retreat (2013) (20)

Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Tic-Tac-Toe (2014)
 
Coding Dojo: Baby Steps Push Challenge (2021)
Coding Dojo: Baby Steps Push Challenge (2021)Coding Dojo: Baby Steps Push Challenge (2021)
Coding Dojo: Baby Steps Push Challenge (2021)
 
Coding Dojo: Bank OCR Outside-In (2015)
Coding Dojo: Bank OCR Outside-In (2015)Coding Dojo: Bank OCR Outside-In (2015)
Coding Dojo: Bank OCR Outside-In (2015)
 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
 
Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)
 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)
 
Coding Dojo: Roman Numerals (2014)
Coding Dojo: Roman Numerals (2014)Coding Dojo: Roman Numerals (2014)
Coding Dojo: Roman Numerals (2014)
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
 
Outside-in Test Driven Development - the London School of TDD
Outside-in Test Driven Development - the London School of TDDOutside-in Test Driven Development - the London School of TDD
Outside-in Test Driven Development - the London School of TDD
 
TDD as if You Meant It (2013)
TDD as if You Meant It (2013)TDD as if You Meant It (2013)
TDD as if You Meant It (2013)
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
 
Prime Factors Code Kata - Practicing TDD (2014)
Prime Factors Code Kata - Practicing TDD (2014)Prime Factors Code Kata - Practicing TDD (2014)
Prime Factors Code Kata - Practicing TDD (2014)
 
Deliberate Practice (Agile Slovenia 2015)
Deliberate Practice (Agile Slovenia 2015)Deliberate Practice (Agile Slovenia 2015)
Deliberate Practice (Agile Slovenia 2015)
 
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)
 
Clean Readable Specifications (ETC 2016)
Clean Readable Specifications (ETC 2016)Clean Readable Specifications (ETC 2016)
Clean Readable Specifications (ETC 2016)
 
Designing Test Cases for the Gilded Rose Kata v3 (2016)
Designing Test Cases for the Gilded Rose Kata v3 (2016)Designing Test Cases for the Gilded Rose Kata v3 (2016)
Designing Test Cases for the Gilded Rose Kata v3 (2016)
 

Plus de Peter Kofler

Code Refactoring - Live Coding Demo (JavaDay 2014)
Code Refactoring - Live Coding Demo (JavaDay 2014)Code Refactoring - Live Coding Demo (JavaDay 2014)
Code Refactoring - Live Coding Demo (JavaDay 2014)
Peter Kofler
 
Coding Dojo: Bank OCR (2014)
Coding Dojo: Bank OCR (2014)Coding Dojo: Bank OCR (2014)
Coding Dojo: Bank OCR (2014)
Peter Kofler
 

Plus de Peter Kofler (13)

Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
 
Pragmatic Introduction to Python Unit Testing (PyDays 2018)
Pragmatic Introduction to Python Unit Testing (PyDays 2018)Pragmatic Introduction to Python Unit Testing (PyDays 2018)
Pragmatic Introduction to Python Unit Testing (PyDays 2018)
 
Coding Dojo: Asynchronous Clock-In (2016)
Coding Dojo: Asynchronous Clock-In (2016)Coding Dojo: Asynchronous Clock-In (2016)
Coding Dojo: Asynchronous Clock-In (2016)
 
Mob Programming (2016)
Mob Programming (2016)Mob Programming (2016)
Mob Programming (2016)
 
Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)Coding Dojo: Data Munging (2016)
Coding Dojo: Data Munging (2016)
 
Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)
 
Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)
 
Pair Programming (2015)
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
 
Deliberate Practice, New Learning Styles (2015)
Deliberate Practice, New Learning Styles (2015)Deliberate Practice, New Learning Styles (2015)
Deliberate Practice, New Learning Styles (2015)
 
Pragmatic Introduction to PHP Unit Testing (2015)
Pragmatic Introduction to PHP Unit Testing (2015)Pragmatic Introduction to PHP Unit Testing (2015)
Pragmatic Introduction to PHP Unit Testing (2015)
 
Code Refactoring - Live Coding Demo (JavaDay 2014)
Code Refactoring - Live Coding Demo (JavaDay 2014)Code Refactoring - Live Coding Demo (JavaDay 2014)
Code Refactoring - Live Coding Demo (JavaDay 2014)
 
Coding Dojo: Bank OCR (2014)
Coding Dojo: Bank OCR (2014)Coding Dojo: Bank OCR (2014)
Coding Dojo: Bank OCR (2014)
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Global Day of Code Retreat (2013)

  • 1. Global Day of Code Retreat 2013 (#gdcr13) Vienna, Dec. 2013 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  • 2. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Peter Kofler • Ph.D. (Appl. Math.) • Professional Software Developer for 14 years • “fanatic about code quality” • I help development teams
  • 3. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Thanks to Our Local Sponsors http://www.frequentis.com/ http://www.agentex.at/ http://agileexperts.at/
  • 4. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Day Structure Introduction 15' ● 3 Sessions ● coding 45' ● retro/break 15' ● Lunch ● 3 Sessions ● Retrospective 45' ●
  • 5. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Coding Dojo Mindset ● Safe place outside work ● We are here to learn ● Need to slow down ● Focus on doing it right ● Collaborative Game
  • 6. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Code Retreat Principles ● Learn through pairing (switch pairs) ● Practice ● Experiment ● Have fun! Coderetreat, http://coderetreat.org/
  • 7. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Why repeat the same kata? ● de-emphasise the generation of code ● concentrate on ● the process of writing the code ● naming test cases ● the Red/Green cycle
  • 8. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Why delete the code? No. Listen. ● Stop trying to go faster, start trying to go slower. ● Don't think about finishing, think about improving. ● Think about practising. As a team. ● That's what this day is for. Nothing else. ● No. Listen. http://www.cyber-dojo.com/
  • 9. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Four Elements of Simple Design ● Passes its tests ● Minimizes duplication ● Maximizes clarity ● Has fewer elements
  • 10. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Conway's Game of Live ● infinite, two-dimensional grid of cells ● interacts with its eight neighbours ● at each step in time, transitions occur ● four rules for cells depending on number of live neighbours http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
  • 11. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Rules of Cell Interaction Any live cell with fewer than two live neighbours dies by under-population. ● Any live cell with two or three live neighbours lives on to the next generation. ● Any live cell with more than three live neighbours dies, as if by overcrowding. ● Any dead cell with exactly three live neighbours becomes a live cell, by reproduction. ● http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
  • 12. Don't Focus on Getting it Done. Focus on Doing It Perfectly.
  • 14. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Our Sessions “Do your best” ● Ping Pong ● TDD as if you meant it ● Ping Pong Mute ● No Data Structures ● Evil Pair/Find Loophole ●
  • 15. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Closing Circle ● What did you learn today? ● What surprised you today? ● What will you do differently in the future?
  • 16. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Peter Kofler @codecopkofler www.code-cop.org organized by Mike Leber @michael_leber http://agileexperts.at/
  • 17. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY CC Images ● Incense http://www.flickr.com/photos/cibomahto/7651263514/ ● List http://www.flickr.com/photos/kylesteeddesign/3724074594/ ● Dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● Wants you: http://www.flickr.com/photos/shutter/105497713/