SlideShare a Scribd company logo
Code Retreat Graz
#CodeCopTour, Sept. 2013
Peter Kofler, ‘Code Cop’
@codecopkofler
www.code-cop.org
Copyright Peter Kofler, licensed under CC-BY.
Peter Kofler
• Ph.D. (Appl. Math.)
• Software Developer
for 14 years
• at various big corporations
• “fanatic about code quality”
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Thanks to Our Sponsors
●
INFONOVA GmbH, https://www.infonova.com/
●
FH Campus 02, http://www.campus02.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 30'
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Coding Dojo Mindset
●
Safe place outside work
●
Mistakes are ok
●
We are here to learn
●
Need to slow down
●
Focus on doing it right
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Code Retreat Principles
●
Learn through pairing (switch pairs)
●
Practice
●
Experiment
●
Have fun!
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Coderetreat, http://coderetreat.org/
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 practicing. 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
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
Don't Focus on
Getting it Done.
Focus on Doing
It Perfectly.
Sessions
Our Sessions
●
“Do your best”
●
No Naked Primitives (e.g. int/String)
●
Focus on Domain (names, biz rules)
●
Ping Pong Mute
●
Method does one thing (SRP/short)
●
No Conditionals
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
Wolfgang Kaufmann
@datentyp
http://datentyp.org
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/
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY

More Related Content

PDF
TDD as if You Meant It (2013)
PDF
The Brutal Refactoring Game (2013)
PDF
Software Craftsmanship Journeyman Tour (2013)
PDF
Designing Test Cases for the Gilded Rose Kata (2013)
PDF
Idiomatic R for Rosetta Code (2013)
PDF
Brutal Coding Constraints (ITAKE 2017)
PDF
Designing Test Cases for the Gilded Rose Kata v3 (2016)
PDF
JUnit Boot Camp (GeeCON 2016)
TDD as if You Meant It (2013)
The Brutal Refactoring Game (2013)
Software Craftsmanship Journeyman Tour (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
Idiomatic R for Rosetta Code (2013)
Brutal Coding Constraints (ITAKE 2017)
Designing Test Cases for the Gilded Rose Kata v3 (2016)
JUnit Boot Camp (GeeCON 2016)

What's hot (20)

PDF
Code Retreat Venice (2016)
PDF
Deliberate Practice (Agile Slovenia 2015)
PDF
Coding Dojo: Data Munging (2016)
PDF
Mob Programming (2016)
PDF
Refactoring the Tennis Kata v2 (2016)
PDF
Coding Dojo: Asynchronous Clock-In (2016)
PDF
Coding Dojo Object Calisthenics (2016)
PDF
Code Quality Assurance v4 (2013)
PDF
Clean Readable Specifications (ETC 2016)
PDF
Coding Dojo: Functional Calisthenics (2016)
PDF
Prime Factors Code Kata (2010)
PDF
Refactoring the Tennis Kata (2013)
PDF
TDD and Related Techniques for Non Developers (2012)
PDF
Coding Dojo: Mars Rover (2014)
PDF
Coding Dojo: Bank OCR Outside-In (2015)
PDF
Extract Method Refactoring Workshop (2016)
PDF
GDCR15 in Las Palmas, Gran Canaria
ODP
Coding Dojo - Refactoring Tennis Kata
PDF
Pair Programming (2015)
PDF
Coding Dojo: Baby Steps Push Challenge (2021)
Code Retreat Venice (2016)
Deliberate Practice (Agile Slovenia 2015)
Coding Dojo: Data Munging (2016)
Mob Programming (2016)
Refactoring the Tennis Kata v2 (2016)
Coding Dojo: Asynchronous Clock-In (2016)
Coding Dojo Object Calisthenics (2016)
Code Quality Assurance v4 (2013)
Clean Readable Specifications (ETC 2016)
Coding Dojo: Functional Calisthenics (2016)
Prime Factors Code Kata (2010)
Refactoring the Tennis Kata (2013)
TDD and Related Techniques for Non Developers (2012)
Coding Dojo: Mars Rover (2014)
Coding Dojo: Bank OCR Outside-In (2015)
Extract Method Refactoring Workshop (2016)
GDCR15 in Las Palmas, Gran Canaria
Coding Dojo - Refactoring Tennis Kata
Pair Programming (2015)
Coding Dojo: Baby Steps Push Challenge (2021)
Ad

Similar to Code Retreat Graz, Austria 2013 (20)

PDF
Global Day of Code Retreat (2013)
PDF
Deliberate Practice (2014)
PDF
Deliberate Practice, New Learning Styles (2015)
PDF
Coding Dojo: Baby Steps (2014)
PDF
Coding Dojo: Naming with Dices (2021)
PDF
Coding Dojo: Fun with Tic-Tac-Toe (2014)
PDF
Coderetreat - Practice to Master Your Crafts
PDF
coderetreat
PDF
Coderetreat @Vienna 2013 06 08
PDF
Coderetreat @Turku 2012 10 20
PDF
Designing Test Cases for the Gilded Rose Kata v2 (2015)
ODP
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
PDF
Code Retreat
PDF
My Favorite Topic: Me (2011)
PDF
Coding Dojo: Adding Tests to Legacy Code (2014)
PPTX
Code Retreat Vsetin 12/08/2012
ODP
Coderetreat @AgileFinland Helsinki 2014 11 13
PDF
Global Day of Coderetreat'14 - Istanbul Event
KEY
Adastral Park code retreat introduction
PDF
Coderetreat @AgileWorks Bucharest 2012 07 06
Global Day of Code Retreat (2013)
Deliberate Practice (2014)
Deliberate Practice, New Learning Styles (2015)
Coding Dojo: Baby Steps (2014)
Coding Dojo: Naming with Dices (2021)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coderetreat - Practice to Master Your Crafts
coderetreat
Coderetreat @Vienna 2013 06 08
Coderetreat @Turku 2012 10 20
Designing Test Cases for the Gilded Rose Kata v2 (2015)
Coderetreat Slides on the Global Day of Coderetreat, Bucharest, December 2013
Code Retreat
My Favorite Topic: Me (2011)
Coding Dojo: Adding Tests to Legacy Code (2014)
Code Retreat Vsetin 12/08/2012
Coderetreat @AgileFinland Helsinki 2014 11 13
Global Day of Coderetreat'14 - Istanbul Event
Adastral Park code retreat introduction
Coderetreat @AgileWorks Bucharest 2012 07 06
Ad

More from Peter Kofler (8)

PDF
Writing Tests with the Unity Test Framework
PDF
Outside-in Test Driven Development - the London School of TDD
PDF
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
PDF
Pragmatic Introduction to Python Unit Testing (PyDays 2018)
PDF
Pragmatic Introduction to PHP Unit Testing (2015)
PDF
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
PDF
Code Refactoring - Live Coding Demo (JavaDay 2014)
PDF
Coding Dojo: Bank OCR (2014)
Writing Tests with the Unity Test Framework
Outside-in Test Driven Development - the London School of TDD
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Pragmatic Introduction to Python Unit Testing (PyDays 2018)
Pragmatic Introduction to PHP Unit Testing (2015)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Code Refactoring - Live Coding Demo (JavaDay 2014)
Coding Dojo: Bank OCR (2014)

Recently uploaded (20)

PDF
August Patch Tuesday
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Encapsulation theory and applications.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
A Presentation on Touch Screen Technology
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Approach and Philosophy of On baking technology
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
project resource management chapter-09.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
1. Introduction to Computer Programming.pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
August Patch Tuesday
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Encapsulation theory and applications.pdf
Enhancing emotion recognition model for a student engagement use case through...
A Presentation on Touch Screen Technology
cloud_computing_Infrastucture_as_cloud_p
Approach and Philosophy of On baking technology
OMC Textile Division Presentation 2021.pptx
Hybrid model detection and classification of lung cancer
gpt5_lecture_notes_comprehensive_20250812015547.pdf
project resource management chapter-09.pdf
Group 1 Presentation -Planning and Decision Making .pptx
A novel scalable deep ensemble learning framework for big data classification...
1. Introduction to Computer Programming.pptx
Getting Started with Data Integration: FME Form 101
Chapter 5: Probability Theory and Statistics
Programs and apps: productivity, graphics, security and other tools
From MVP to Full-Scale Product A Startup’s Software Journey.pdf

Code Retreat Graz, Austria 2013

  • 1. Code Retreat Graz #CodeCopTour, Sept. 2013 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  • 2. Peter Kofler • Ph.D. (Appl. Math.) • Software Developer for 14 years • at various big corporations • “fanatic about code quality” PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 3. Thanks to Our Sponsors ● INFONOVA GmbH, https://www.infonova.com/ ● FH Campus 02, http://www.campus02.at/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 4. Day Structure ● Introduction 15' ● 3 Sessions ● coding 45' ● retro/break 15' ● Lunch ● 3 Sessions ● Retrospective 30' PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 5. Coding Dojo Mindset ● Safe place outside work ● Mistakes are ok ● We are here to learn ● Need to slow down ● Focus on doing it right PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 6. Code Retreat Principles ● Learn through pairing (switch pairs) ● Practice ● Experiment ● Have fun! PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Coderetreat, http://coderetreat.org/
  • 7. 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
  • 8. 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 practicing. 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
  • 9. Four Elements of Simple Design ● Passes its tests ● Minimizes duplication ● Maximizes clarity ● Has fewer elements PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 10. 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
  • 11. 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 PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 12. Don't Focus on Getting it Done. Focus on Doing It Perfectly.
  • 14. Our Sessions ● “Do your best” ● No Naked Primitives (e.g. int/String) ● Focus on Domain (names, biz rules) ● Ping Pong Mute ● Method does one thing (SRP/short) ● No Conditionals PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 15. 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
  • 16. Peter Kofler @codecopkofler www.code-cop.org organized by Wolfgang Kaufmann @datentyp http://datentyp.org PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY
  • 17. 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/ PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY