SlideShare a Scribd company logo
1 of 12
Coding Dojo
Agile Mëtteg – 29 Nov 2012
BOW (REI)


   Who are we?
        Eric Ferrot (eferrot@agilepartner.net)
        Cédric Pontet (cpontet@agilepartner.net , @cpontet)
   Who are you?
        Name
        Company
        Experience
        Language




                     http://www.breakaway.cc/Asia/Japan/Japan-Bowing.php


29 Nov 2012                 Agile Mëtteg – Coding Dojo                     2
KATA

Kata is a Japanese word describing detailed
choreographed patterns of movements practiced
either solo or in pairs.
By practicing in a repetitive manner
the learner develops the ability to execute those
techniques and movements in a natural, reflex-
like manner.
The goal is to internalize the movements and
techniques of a kata so they can be executed and
adapted under different circumstances, without


                                               型
thought.


29 Nov 2012       Agile Mëtteg – Coding Dojo       3
DOJO


A dojo is a Japanese term which literally means
"place of the way".
The term can refer to a formal training place for
any of the Japanese do arts but typically it is
considered the formal gathering place for
students of any Japanese martial arts style such
as karate, judo, or samurai, to conduct training,
examinations and other related encounters.



                                               道場
29 Nov 2012       Agile Mëtteg – Coding Dojo        4
CODING DOJO / CODE KATA


   Wikipedia
        Kata (programming)
   Dave Thomas (Agile Manifesto)
        CodeKata
   Laurent Bossavit & Emmanuel Gaillot
        CodingDojo
   Emilie Bache
        Online resources for Coding Dojos
        Coding Dojo Handbook

29 Nov 2012          Agile Mëtteg – Coding Dojo     5
GOAL


   Practice of
        Test Driven Design
        Baby steps
        Refactoring
                                                       Test
   Acquire good
   developer habits

                                            Refactor          Code




29 Nov 2012          Agile Mëtteg – Coding Dojo                      6
FIZZBUZZ

Return “fizz”, “buzz” or “fizzbuzz”.
For a given natural number greater than zero return
   “fizz” if the number is dividable by 3
   “buzz” if the number is dividable by 5
   “fizzbuzz” if the number is dividable by 3 and 5
       Input                      Result
       1                          1
       2                          2
       3                          fizz
       4                          4
       5                          buzz
       6                          fizz
       10                         buzz
       15                         fizzbuzz
       30                         fizzbuzz
29 Nov 2012              Agile Mëtteg – Coding Dojo       7
TRANSFORMATION PRIORITY PREMISE

Transformation            Description
{}–>nil                   no code at all->code that employs nil
nil->constant
constant->constant+       a simple constant to a more complex constant
constant->scalar          replacing a constant with a variable or an argument
statement->statements adding more unconditional statements
unconditional->if         splitting the execution path
scalar->array
array->container
statement->recursion
if->while
expression->function      replacing an expression with a function or algorithm
variable->assignment      replacing the value of a variable

  http://cleancoder.posterous.com/the-transformation-priority-premise

  29 Nov 2012                 Agile Mëtteg – Coding Dojo                         8
PRIME FACTORS


Compute the prime factors of a given natural
number
         Input              Result ([…] denotes a list)
         1                  []
         2                  [2]
         3                  [3]
         4                  [2,2]
         5                  [5]
         6                  [2,3]
         7                  [7]
         8                  [2,2,2]
         9                  [3,3]



29 Nov 2012      Agile Mëtteg – Coding Dojo               9
REFACTORING KATA


   Emilie Bache
        Can you refactor ?                             Yahtzee
        In really small steps ?
        Can you turn some,
        frankly, ugly code into
        a paradigm of elegant,
        readable, extensible
        design?
                                         http://www.parentdish.com/2010/04/20/yahtzee-game/




29 Nov 2012           Agile Mëtteg – Coding Dojo                                          10
SAYONARA


   What do you think ?
        Feedback is welcome

   Where to find Katas ?
        Catalogs
         •    CodersDojo
         •    CodeKata
         •    CodingDojo
         •    Schuchert
        Samples
         • CodersDojo                           http://www.hoshuha.com/blog/japanese-bowing-etiquette.html

         • Refactoring Katas

29 Nov 2012                Agile Mëtteg – Coding Dojo                                             11
Follow us


Agile Partner web site
        http://www.agilepartner.net
Blog
        http://blog.agilepartner.net

        @agilepartner

        http://www.facebook.com/agilepartner

               http://www.slideshare.net/agilepartner
29 Nov 2012           Agile Mëtteg – Coding Dojo         12

More Related Content

Similar to Coding Dojo

Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017David Völkel
 
2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojoaschlapsi
 
8th pre alg -l34--nov15
8th pre alg -l34--nov158th pre alg -l34--nov15
8th pre alg -l34--nov15jdurst65
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesEdorian
 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationNicholas Tollervey
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)Peter Kofler
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Peter Kofler
 

Similar to Coding Dojo (10)

Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017Global Day of Coderetreat Munich 2017
Global Day of Coderetreat Munich 2017
 
2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo2014 05-14-pythoncodingdojo
2014 05-14-pythoncodingdojo
 
8th pre alg -l34--nov15
8th pre alg -l34--nov158th pre alg -l34--nov15
8th pre alg -l34--nov15
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principles
 
Coding Kwoon
Coding KwoonCoding Kwoon
Coding Kwoon
 
Organise a Code Dojo!
Organise a Code Dojo!Organise a Code Dojo!
Organise a Code Dojo!
 
The London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer EducationThe London Python Code Dojo - An Education in Developer Education
The London Python Code Dojo - An Education in Developer Education
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
 

More from Agile Partner S.A.

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationAgile Partner S.A.
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesAgile Partner S.A.
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Agile Partner S.A.
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaborationAgile Partner S.A.
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Agile Partner S.A.
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industryAgile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Partner S.A.
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Partner S.A.
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Partner S.A.
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéAgile Partner S.A.
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean StartupAgile Partner S.A.
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileAgile Partner S.A.
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamAgile Partner S.A.
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgile Partner S.A.
 

More from Agile Partner S.A. (20)

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementation
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétaires
 
Découverte de l'esprit agile
Découverte de l'esprit agileDécouverte de l'esprit agile
Découverte de l'esprit agile
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaboration
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePoint
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOps
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
 
Introduction to agile methods
Introduction to agile methodsIntroduction to agile methods
Introduction to agile methods
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilité
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean Startup
 
Agile testing games
Agile testing gamesAgile testing games
Agile testing games
 
Lkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à KanbanLkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à Kanban
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets Agile
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support team
 
It job day Henam 2011-06-20
It job day Henam 2011-06-20It job day Henam 2011-06-20
It job day Henam 2011-06-20
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years research
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Coding Dojo

  • 1. Coding Dojo Agile Mëtteg – 29 Nov 2012
  • 2. BOW (REI) Who are we? Eric Ferrot (eferrot@agilepartner.net) Cédric Pontet (cpontet@agilepartner.net , @cpontet) Who are you? Name Company Experience Language http://www.breakaway.cc/Asia/Japan/Japan-Bowing.php 29 Nov 2012 Agile Mëtteg – Coding Dojo 2
  • 3. KATA Kata is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs. By practicing in a repetitive manner the learner develops the ability to execute those techniques and movements in a natural, reflex- like manner. The goal is to internalize the movements and techniques of a kata so they can be executed and adapted under different circumstances, without 型 thought. 29 Nov 2012 Agile Mëtteg – Coding Dojo 3
  • 4. DOJO A dojo is a Japanese term which literally means "place of the way". The term can refer to a formal training place for any of the Japanese do arts but typically it is considered the formal gathering place for students of any Japanese martial arts style such as karate, judo, or samurai, to conduct training, examinations and other related encounters. 道場 29 Nov 2012 Agile Mëtteg – Coding Dojo 4
  • 5. CODING DOJO / CODE KATA Wikipedia Kata (programming) Dave Thomas (Agile Manifesto) CodeKata Laurent Bossavit & Emmanuel Gaillot CodingDojo Emilie Bache Online resources for Coding Dojos Coding Dojo Handbook 29 Nov 2012 Agile Mëtteg – Coding Dojo 5
  • 6. GOAL Practice of Test Driven Design Baby steps Refactoring Test Acquire good developer habits Refactor Code 29 Nov 2012 Agile Mëtteg – Coding Dojo 6
  • 7. FIZZBUZZ Return “fizz”, “buzz” or “fizzbuzz”. For a given natural number greater than zero return “fizz” if the number is dividable by 3 “buzz” if the number is dividable by 5 “fizzbuzz” if the number is dividable by 3 and 5 Input Result 1 1 2 2 3 fizz 4 4 5 buzz 6 fizz 10 buzz 15 fizzbuzz 30 fizzbuzz 29 Nov 2012 Agile Mëtteg – Coding Dojo 7
  • 8. TRANSFORMATION PRIORITY PREMISE Transformation Description {}–>nil no code at all->code that employs nil nil->constant constant->constant+ a simple constant to a more complex constant constant->scalar replacing a constant with a variable or an argument statement->statements adding more unconditional statements unconditional->if splitting the execution path scalar->array array->container statement->recursion if->while expression->function replacing an expression with a function or algorithm variable->assignment replacing the value of a variable http://cleancoder.posterous.com/the-transformation-priority-premise 29 Nov 2012 Agile Mëtteg – Coding Dojo 8
  • 9. PRIME FACTORS Compute the prime factors of a given natural number Input Result ([…] denotes a list) 1 [] 2 [2] 3 [3] 4 [2,2] 5 [5] 6 [2,3] 7 [7] 8 [2,2,2] 9 [3,3] 29 Nov 2012 Agile Mëtteg – Coding Dojo 9
  • 10. REFACTORING KATA Emilie Bache Can you refactor ? Yahtzee In really small steps ? Can you turn some, frankly, ugly code into a paradigm of elegant, readable, extensible design? http://www.parentdish.com/2010/04/20/yahtzee-game/ 29 Nov 2012 Agile Mëtteg – Coding Dojo 10
  • 11. SAYONARA What do you think ? Feedback is welcome Where to find Katas ? Catalogs • CodersDojo • CodeKata • CodingDojo • Schuchert Samples • CodersDojo http://www.hoshuha.com/blog/japanese-bowing-etiquette.html • Refactoring Katas 29 Nov 2012 Agile Mëtteg – Coding Dojo 11
  • 12. Follow us Agile Partner web site http://www.agilepartner.net Blog http://blog.agilepartner.net @agilepartner http://www.facebook.com/agilepartner http://www.slideshare.net/agilepartner 29 Nov 2012 Agile Mëtteg – Coding Dojo 12