SlideShare a Scribd company logo
Coding Dojo Applied
         Vladimir Tarasow
What is Coding Dojo?
A Coding Dojo is a meeting
where a bunch of coders get together
to work on a programming challenge.


                              It is a gathering
          of programmers who come together
          to have fun and learn while coding.
Formats of Coding Dojos
Formats:
  ● Randori
  ● Prepared Kata
  ● Working in Pairs
  ● Invent your own style!
Randori
In brief:
● The facilitator introduces the programming kata to solve.
● The facilitator invites a partner to join him at the keyboard. The
  facilitator writes a first test, makes sure it runs red and invites
  someone else from the group to take his place.
● Each pair works on the problem for 5-10 minutes, the facilitator
  then makes sure that one person in the pair is switched out with
  someone in the audience.
● After about 45-60 minutes of working on the problem, call a break
  and review what’s happened.
● After the review, the group can work on another kata, try the
  same problem again or use another exercise form.
Prepared Kata
In brief:
● The other name — Parisian
● Focuses on coding in front of others, most often something from
  scratch, in a very short amount of time (1 to 1.5 hours).
● A presenter shows how to solve the challenge from scratch, using
  TDD and BabySteps.
● While the presenter creates their code he is constantly speaking to
  the audience letting them know exactly what they are doing and
  why.
● Any member of the audience is allowed to interrupt the presenter
  and ask them why they are coding in a certain pattern.
Working in Pairs
In brief:
● The group forms pairs of programmers.
● Pairs can choose their own programming language and
  environment to craft a solution in.
● All the pairs work in the fashion the group has agreed to work for
  30-60 minutes or more.
● After the coding session the pairs perform a short presentation on
  their code base, showing the progress and design they have made.
● Re-mixing of pairs or of pair's members can be applied so every
  person will work with other pair's code or programming language.
How to Cook Randori-style Dojo?
Roles
We suggest to use following roles:
● Pair
● Sensei
● Moderator
Pair
Pair of two working and talking at the PC in
order to complete the Kata.

Pair consists of a person who produces the
code — pilot, and a person who talks —
navigator.
Pair
Responsibilities:
● The pilot produces code.
● The navigator helps the pilot to understand what has been done
  during previous iterations and what the pair should do now.
● The navigator tells what the pair should do now.
Sensei
A person who interferes and facilitates the
Kata by helping with advice when the pair is
stuck or arguing without any progress in code.
Must not speak in any other case.

Responsible to facilitate attendees to produce
code according to Working Agreements (WA)
and the goal of the Kata.
Sensei
Responsibilities:
● Introduces a programming language, framework or IDE before the
  beginning.
● Introduces a Kata.
● Performs in the first iteration as a navigator.
● Working code by the end of the iteration.
● Some progress on fulfilling the Kata during the iteration.
● ‘Green’ tests by the end of the iteration, otherwise the next
  iteration begins from making tests ‘green’.
● Tests are written during the iteration.
● Tests are good and don’t repeat the code itself just to pass.
● No long discussions without the code.
Moderator
Responsibilities:
● Helps attendees to form Working Agreements.
● Facilitates attendees to obey the principles.
● Controls the time-boxing.
● Can make a break in case he or she observes some kind of
  misunderstanding or discomfort and ask questions in order to find
  out and remove any impediments.
● Conducts the retrospective.
Principles
Let's talk about the following things:
● Working on Kata
● Timeboxing
● Switching
● Respect
The Main Rule
At the Dojo
one can't discuss a form without code,
and one can't show code without tests.
Working on Kata
At the Dojo one can't discuss a form without
code, and one can't show code without tests.

So the person which is not on the stage can
give an idea, but can not fall into discussion
with the pair.

If he or she wants to implement the idea
mentioned, he or she can enter the pair at the
next iteration.
Timeboxing
Pair works during a fixed period of time.

It can be any period of time which attendees
have agreed to use. It can vary between 5 and
15 minutes.

The 10 min period seems to be optimal,
because it’s enough time to briefly discuss
the algorithm and to implement it.
Switching
The person who enters into the coding
timebox begins to act as a pilot.

The person who was the pilot during the
previous iteration switches his position to the
navigator, the one who talks.

The first iteration begins with the Sensei in
the position of the navigator.
Switching
The switching may be ordered so each of the
attendees will participate, or the ordered
switching can be interrupted if an attendee
wants to implement his or her idea right now.

The switching principle should be defined
within the Dojo’s Working Agreements.
Respect
Attendees of the Coding Dojo respect each
other and their willingness to learn so that:
● Ring tones of mobile phones are off; a person can answer a call,
  but he or she must leave the room to answer it.
● Only the pair at the PC can talk loud.
● All discussions away from the PC must be made in the way not to
  spoil the pair’s deep diving into the Kata.
● Sensei can interfere and talk loud by his/her own decision.
Respect
Attendees of the Coding Dojo respect each
other and their willingness to learn so that:
● If a person wants to ask or suggest something to the pair, he or
  she should raise the hand and wait for the moderator to allow him
  or her to talk.
● Only one person from the observers can talk at a time.
● It’s the pair who must decide how to proceed after receiving an
  advise or hint from an observer.
Prerequisites
In   order to succeed you should think about:
●    Hardware
●    Software
●    Kata
●    Working agreements
●    Snacks and drinks
Hardware
Minimum setup:
● PC where the Kata should be solved.
● Big screen and the projector to show the same picture that is on
  the PC screen.
● Whiteboard or flip chart to pinpoint the Kata rules and working
  agreements attendees agreed to obey.
Hardware
Recommended setup:
● PC where the Kata should be solved.
● 104-key keyboard so the pilot will not be distracted from coding
  with unfamiliar keyboard.
● Big external monitor for the PC.
● Big screen and the projector to show the same picture that is on
  the PC screen.
● Whiteboard or flip chart to pinpoint the Kata rules and working
  agreements attendees agreed to obey.
● Whiteboard or flip chart for the working pair to share their
  thoughts.

Additionally it’ll be great to have a Wi-Fi network and enough seats and
power outlets available for all attendees.
Software
Introduction into the tools that will be used
should be made beforehand, so that any
attendee has a sufficient amount of
knowledge to participate in the Dojo:
● Programming language — links to the language reference printed
  or opened in the browser on PC.
● Framework — links to the framework reference printed or opened
  in the browser on PC.
● IDE — printed version of most used keyboard shortcuts to make
  the work comfortable.
Kata
The task that should be solved during the
Coding Dojo.

Must be prepared beforehand, but presented
by the Sensei just before the beginning of the
Dojo, but not earlier.
Working agreements
Before the start the attendees with the help
of moderator have to decide what set of rules
to obey during the Coding Dojo.
Working agreements
Example:
● Length of the timebox.
● Application of unit tests.
● Application of test-first approach.
● Switching: by person’s will or by some order.
● Sensei can change the Kata during the Dojo by adding additional
  tasks to complete, or he can not change the Kata.
● Sensei can ask the pair to leave the PC before the time ends, or
  he can't.
● …
Snacks and drinks
Attendees are responsible to bring and share
some food and drinks.
Tips & Tricks
Use them as you like:
● Time-box can be visualized by a hourglass.
● The moderator can allow a person to talk by using ‘The Magic
  Wand’. A fairy wand suits well.
● When smelly code is detected the Sensei can wear a gas mask or
  signal the working pair about this fact in other way.
● You can use any kind of the task as a Kata. For example, an open
  issue/bug from an OSS project can be used as a Kata. However,
  using the classic Katas considered to be better to the audience
  unfamiliar with the Coding Dojo.
Tips & Tricks
Use them as you like:
● In order to return to the code previously deleted or changed by
  the other pair faster, the well-known version control system like
  Subversion or Git can be used.
● Each iteration should be committed into some VCS so the flow of
  fulfilling the Kata can be tracked and analyzed in the past.
● The code can be commented or a file with thoughts to be
  developed next can be used (ReadMe Driven Development) in
  order to share thoughts of the current pair to the next one.
Further Reading
● Coding Dojo
● Code Kata by Dave Thomas
● The Coding Dojo by Joe Wright
● How to start a Coding Dojo by Johannes Brodwall
● Real time coding competition with Extreme Startup by
  Johannes Brodwall
● Cyber-Dojo by Jon Jagger
● We Need Realistic Coding Dojos by Zsolt Fabók
Credits
Clipart for illustrations is taken from openclipart.org
Contacts
           Vladimir Tarasow
           About: http://about.me/netrat
           E-mail: netrat@netrat.eu
This work is licensed under the Creative Commons Attribution-
NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this
  license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/.

More Related Content

What's hot

Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
wolframkriesing
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014michaelag1971
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
Rachel M. Carmena
 
Legacy code rehab.
Legacy code rehab.Legacy code rehab.
Legacy code rehab.
johnnonolan
 
Python in 15 minutes
Python in 15 minutesPython in 15 minutes
Python in 15 minutes
Rodolfo Carvalho
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)Peter Kofler
 
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
OhSoAwesomeGirl
 
Are interpreters better respeakers? An exploratory study on respeaking compet...
Are interpreters better respeakers? An exploratory study on respeaking compet...Are interpreters better respeakers? An exploratory study on respeaking compet...
Are interpreters better respeakers? An exploratory study on respeaking compet...
University of Warsaw
 
1 cover page
1 cover page1 cover page
1 cover page
RahulJain1332
 
Brief Introduction to Spectacular
Brief Introduction to SpectacularBrief Introduction to Spectacular
Brief Introduction to Spectacular
Michael Dowling
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the Workshops
Russel Winder
 

What's hot (11)

Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 
Legacy code rehab.
Legacy code rehab.Legacy code rehab.
Legacy code rehab.
 
Python in 15 minutes
Python in 15 minutesPython in 15 minutes
Python in 15 minutes
 
Deliberate Practice (2014)
Deliberate Practice (2014)Deliberate Practice (2014)
Deliberate Practice (2014)
 
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...
 
Are interpreters better respeakers? An exploratory study on respeaking compet...
Are interpreters better respeakers? An exploratory study on respeaking compet...Are interpreters better respeakers? An exploratory study on respeaking compet...
Are interpreters better respeakers? An exploratory study on respeaking compet...
 
1 cover page
1 cover page1 cover page
1 cover page
 
Brief Introduction to Spectacular
Brief Introduction to SpectacularBrief Introduction to Spectacular
Brief Introduction to Spectacular
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the Workshops
 

Similar to Coding Dojo Applied

Pairing and mobbing
Pairing and mobbingPairing and mobbing
Pairing and mobbing
Sarah Dutkiewicz
 
Running a webinar - best practices
Running a webinar - best practicesRunning a webinar - best practices
Running a webinar - best practices
Peter Skillen
 
Mob Programming (2016)
Mob Programming (2016)Mob Programming (2016)
Mob Programming (2016)
Peter Kofler
 
U3 l4 using simple commands
U3 l4 using simple commandsU3 l4 using simple commands
U3 l4 using simple commands
Chapelgate Christian Academy
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
Petter Holmström
 
Effective Code Review
Effective Code ReviewEffective Code Review
Effective Code Review
Eyal Kenig
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancoding
saber tabatabaee
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentTomCooley
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
Steven Smith
 
Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)
Peter Kofler
 
Pair Programming Styles
Pair Programming StylesPair Programming Styles
Pair Programming Styles
Attila Bertók
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
Camille Bell
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
Asier Barrenetxea
 
How to code in the XXI century without losing your head
How to code in the XXI century without losing your headHow to code in the XXI century without losing your head
How to code in the XXI century without losing your head
René Olivo
 
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
André De Sousa
 
Coding io1-materials for teachers
Coding io1-materials for teachersCoding io1-materials for teachers
Coding io1-materials for teachers
Georgeta Manafu
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
Lemi Orhan Ergin
 
Training methdology testers to developers
Training methdology   testers to developersTraining methdology   testers to developers
Training methdology testers to developers
Gurumurthy Ramamurthy
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Technical Agility institute
 
Codesters
CodestersCodesters
Codesters
Barbara M. King
 

Similar to Coding Dojo Applied (20)

Pairing and mobbing
Pairing and mobbingPairing and mobbing
Pairing and mobbing
 
Running a webinar - best practices
Running a webinar - best practicesRunning a webinar - best practices
Running a webinar - best practices
 
Mob Programming (2016)
Mob Programming (2016)Mob Programming (2016)
Mob Programming (2016)
 
U3 l4 using simple commands
U3 l4 using simple commandsU3 l4 using simple commands
U3 l4 using simple commands
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
Effective Code Review
Effective Code ReviewEffective Code Review
Effective Code Review
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancoding
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)Coding Dojo: Functional Calisthenics (2016)
Coding Dojo: Functional Calisthenics (2016)
 
Pair Programming Styles
Pair Programming StylesPair Programming Styles
Pair Programming Styles
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)How to deliver the right software (Specification by example)
How to deliver the right software (Specification by example)
 
How to code in the XXI century without losing your head
How to code in the XXI century without losing your headHow to code in the XXI century without losing your head
How to code in the XXI century without losing your head
 
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
 
Coding io1-materials for teachers
Coding io1-materials for teachersCoding io1-materials for teachers
Coding io1-materials for teachers
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 
Training methdology testers to developers
Training methdology   testers to developersTraining methdology   testers to developers
Training methdology testers to developers
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
 
Codesters
CodestersCodesters
Codesters
 

More from Vladimir Tarasov

Teaming up with robot!
Teaming up with robot!Teaming up with robot!
Teaming up with robot!
Vladimir Tarasov
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?
Vladimir Tarasov
 
User Stories — The Nuclear Power
User Stories — The Nuclear PowerUser Stories — The Nuclear Power
User Stories — The Nuclear Power
Vladimir Tarasov
 
User stories — broken vision broke the knees
User stories — broken vision broke the kneesUser stories — broken vision broke the knees
User stories — broken vision broke the knees
Vladimir Tarasov
 
Agile contracts
Agile contractsAgile contracts
Agile contracts
Vladimir Tarasov
 
Hands-on practice: two ways to run a project
Hands-on practice: two ways to run a projectHands-on practice: two ways to run a project
Hands-on practice: two ways to run a project
Vladimir Tarasov
 

More from Vladimir Tarasov (6)

Teaming up with robot!
Teaming up with robot!Teaming up with robot!
Teaming up with robot!
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?
 
User Stories — The Nuclear Power
User Stories — The Nuclear PowerUser Stories — The Nuclear Power
User Stories — The Nuclear Power
 
User stories — broken vision broke the knees
User stories — broken vision broke the kneesUser stories — broken vision broke the knees
User stories — broken vision broke the knees
 
Agile contracts
Agile contractsAgile contracts
Agile contracts
 
Hands-on practice: two ways to run a project
Hands-on practice: two ways to run a projectHands-on practice: two ways to run a project
Hands-on practice: two ways to run a project
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Coding Dojo Applied

  • 1. Coding Dojo Applied Vladimir Tarasow
  • 2. What is Coding Dojo? A Coding Dojo is a meeting where a bunch of coders get together to work on a programming challenge. It is a gathering of programmers who come together to have fun and learn while coding.
  • 3. Formats of Coding Dojos Formats: ● Randori ● Prepared Kata ● Working in Pairs ● Invent your own style!
  • 4. Randori In brief: ● The facilitator introduces the programming kata to solve. ● The facilitator invites a partner to join him at the keyboard. The facilitator writes a first test, makes sure it runs red and invites someone else from the group to take his place. ● Each pair works on the problem for 5-10 minutes, the facilitator then makes sure that one person in the pair is switched out with someone in the audience. ● After about 45-60 minutes of working on the problem, call a break and review what’s happened. ● After the review, the group can work on another kata, try the same problem again or use another exercise form.
  • 5. Prepared Kata In brief: ● The other name — Parisian ● Focuses on coding in front of others, most often something from scratch, in a very short amount of time (1 to 1.5 hours). ● A presenter shows how to solve the challenge from scratch, using TDD and BabySteps. ● While the presenter creates their code he is constantly speaking to the audience letting them know exactly what they are doing and why. ● Any member of the audience is allowed to interrupt the presenter and ask them why they are coding in a certain pattern.
  • 6. Working in Pairs In brief: ● The group forms pairs of programmers. ● Pairs can choose their own programming language and environment to craft a solution in. ● All the pairs work in the fashion the group has agreed to work for 30-60 minutes or more. ● After the coding session the pairs perform a short presentation on their code base, showing the progress and design they have made. ● Re-mixing of pairs or of pair's members can be applied so every person will work with other pair's code or programming language.
  • 7. How to Cook Randori-style Dojo?
  • 8. Roles We suggest to use following roles: ● Pair ● Sensei ● Moderator
  • 9. Pair Pair of two working and talking at the PC in order to complete the Kata. Pair consists of a person who produces the code — pilot, and a person who talks — navigator.
  • 10. Pair Responsibilities: ● The pilot produces code. ● The navigator helps the pilot to understand what has been done during previous iterations and what the pair should do now. ● The navigator tells what the pair should do now.
  • 11. Sensei A person who interferes and facilitates the Kata by helping with advice when the pair is stuck or arguing without any progress in code. Must not speak in any other case. Responsible to facilitate attendees to produce code according to Working Agreements (WA) and the goal of the Kata.
  • 12. Sensei Responsibilities: ● Introduces a programming language, framework or IDE before the beginning. ● Introduces a Kata. ● Performs in the first iteration as a navigator. ● Working code by the end of the iteration. ● Some progress on fulfilling the Kata during the iteration. ● ‘Green’ tests by the end of the iteration, otherwise the next iteration begins from making tests ‘green’. ● Tests are written during the iteration. ● Tests are good and don’t repeat the code itself just to pass. ● No long discussions without the code.
  • 13. Moderator Responsibilities: ● Helps attendees to form Working Agreements. ● Facilitates attendees to obey the principles. ● Controls the time-boxing. ● Can make a break in case he or she observes some kind of misunderstanding or discomfort and ask questions in order to find out and remove any impediments. ● Conducts the retrospective.
  • 14. Principles Let's talk about the following things: ● Working on Kata ● Timeboxing ● Switching ● Respect
  • 15. The Main Rule At the Dojo one can't discuss a form without code, and one can't show code without tests.
  • 16. Working on Kata At the Dojo one can't discuss a form without code, and one can't show code without tests. So the person which is not on the stage can give an idea, but can not fall into discussion with the pair. If he or she wants to implement the idea mentioned, he or she can enter the pair at the next iteration.
  • 17. Timeboxing Pair works during a fixed period of time. It can be any period of time which attendees have agreed to use. It can vary between 5 and 15 minutes. The 10 min period seems to be optimal, because it’s enough time to briefly discuss the algorithm and to implement it.
  • 18. Switching The person who enters into the coding timebox begins to act as a pilot. The person who was the pilot during the previous iteration switches his position to the navigator, the one who talks. The first iteration begins with the Sensei in the position of the navigator.
  • 19. Switching The switching may be ordered so each of the attendees will participate, or the ordered switching can be interrupted if an attendee wants to implement his or her idea right now. The switching principle should be defined within the Dojo’s Working Agreements.
  • 20. Respect Attendees of the Coding Dojo respect each other and their willingness to learn so that: ● Ring tones of mobile phones are off; a person can answer a call, but he or she must leave the room to answer it. ● Only the pair at the PC can talk loud. ● All discussions away from the PC must be made in the way not to spoil the pair’s deep diving into the Kata. ● Sensei can interfere and talk loud by his/her own decision.
  • 21. Respect Attendees of the Coding Dojo respect each other and their willingness to learn so that: ● If a person wants to ask or suggest something to the pair, he or she should raise the hand and wait for the moderator to allow him or her to talk. ● Only one person from the observers can talk at a time. ● It’s the pair who must decide how to proceed after receiving an advise or hint from an observer.
  • 22. Prerequisites In order to succeed you should think about: ● Hardware ● Software ● Kata ● Working agreements ● Snacks and drinks
  • 23. Hardware Minimum setup: ● PC where the Kata should be solved. ● Big screen and the projector to show the same picture that is on the PC screen. ● Whiteboard or flip chart to pinpoint the Kata rules and working agreements attendees agreed to obey.
  • 24. Hardware Recommended setup: ● PC where the Kata should be solved. ● 104-key keyboard so the pilot will not be distracted from coding with unfamiliar keyboard. ● Big external monitor for the PC. ● Big screen and the projector to show the same picture that is on the PC screen. ● Whiteboard or flip chart to pinpoint the Kata rules and working agreements attendees agreed to obey. ● Whiteboard or flip chart for the working pair to share their thoughts. Additionally it’ll be great to have a Wi-Fi network and enough seats and power outlets available for all attendees.
  • 25. Software Introduction into the tools that will be used should be made beforehand, so that any attendee has a sufficient amount of knowledge to participate in the Dojo: ● Programming language — links to the language reference printed or opened in the browser on PC. ● Framework — links to the framework reference printed or opened in the browser on PC. ● IDE — printed version of most used keyboard shortcuts to make the work comfortable.
  • 26. Kata The task that should be solved during the Coding Dojo. Must be prepared beforehand, but presented by the Sensei just before the beginning of the Dojo, but not earlier.
  • 27. Working agreements Before the start the attendees with the help of moderator have to decide what set of rules to obey during the Coding Dojo.
  • 28. Working agreements Example: ● Length of the timebox. ● Application of unit tests. ● Application of test-first approach. ● Switching: by person’s will or by some order. ● Sensei can change the Kata during the Dojo by adding additional tasks to complete, or he can not change the Kata. ● Sensei can ask the pair to leave the PC before the time ends, or he can't. ● …
  • 29. Snacks and drinks Attendees are responsible to bring and share some food and drinks.
  • 30. Tips & Tricks Use them as you like: ● Time-box can be visualized by a hourglass. ● The moderator can allow a person to talk by using ‘The Magic Wand’. A fairy wand suits well. ● When smelly code is detected the Sensei can wear a gas mask or signal the working pair about this fact in other way. ● You can use any kind of the task as a Kata. For example, an open issue/bug from an OSS project can be used as a Kata. However, using the classic Katas considered to be better to the audience unfamiliar with the Coding Dojo.
  • 31. Tips & Tricks Use them as you like: ● In order to return to the code previously deleted or changed by the other pair faster, the well-known version control system like Subversion or Git can be used. ● Each iteration should be committed into some VCS so the flow of fulfilling the Kata can be tracked and analyzed in the past. ● The code can be commented or a file with thoughts to be developed next can be used (ReadMe Driven Development) in order to share thoughts of the current pair to the next one.
  • 32. Further Reading ● Coding Dojo ● Code Kata by Dave Thomas ● The Coding Dojo by Joe Wright ● How to start a Coding Dojo by Johannes Brodwall ● Real time coding competition with Extreme Startup by Johannes Brodwall ● Cyber-Dojo by Jon Jagger ● We Need Realistic Coding Dojos by Zsolt Fabók
  • 33. Credits Clipart for illustrations is taken from openclipart.org
  • 34. Contacts Vladimir Tarasow About: http://about.me/netrat E-mail: netrat@netrat.eu
  • 35. This work is licensed under the Creative Commons Attribution- NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/.