Coding Dojo: an environment for learning and sharing Agile practices Danilo Sato, Hugo Corbucci, Mariana Bravo Agile 2008 – Toronto - Canada 6th Aug 2008 © ThoughtWorks 2008
Who are we? Met Paris Dojo/Brighton Dojo @ XP2007 Since then: Dojo @ University of São Paulo Dojo @ FISL Dojo @ Campus Party Ruby Tuesdays @ ThoughtWorks Dojo @ Grenoble © ThoughtWorks 2008
Background Principles Rules Formats Dojo@SP Coding Dojo Background Principles Rules Formats Dojo@SP © ThoughtWorks 2008
Background Code Kata Coding Dojo Programming exercise Throwaway code Solving a Kata in a group Learning together © ThoughtWorks 2008
Principles Continuous Learning Safe Environment: Fail & Redundancy Non-competitive Collaborative Inclusive Fail & Redundancy Baby Steps © ThoughtWorks 2008
Rules Computer + Projector TDD (red » green » refactor) Everyone should understand Always start from scratch © ThoughtWorks 2008
Formats Prepared Kata Randori Presentation of someone’s solution from scratch Everyone should be able to reproduce Interruptions allowed Randori Pair programming Time-boxed rounds (5-7m): Interruptions only on green © ThoughtWorks 2008
Coding Dojo @ São Paulo Most active Dojo in Brazil Weekly since 12th July 2007 85 members (mailing list) 3~16 participants/meeting Roles: Moderator & Scribe Process Problem choosing Problem discussion Coding session Retrospective © ThoughtWorks 2008
What went well? What went less well? What is still puzzling? Lessons Learned What went well? What went less well? What is still puzzling? © ThoughtWorks 2008
What went well? Retrospectives What have we learned? What has hindered learning? © ThoughtWorks 2008
What went well? Retrospectives The goal is not to finish What have we learned? What has hindered learning? The goal is not to finish © ThoughtWorks 2008
What went well? Retrospectives The goal is not to finish Time-boxing What have we learned? What has hindered learning? The goal is not to finish Time-boxing © ThoughtWorks 2008
What went well? Retrospectives The goal is not to finish Time-boxing What have we learned? What has hindered learning? The goal is not to finish Time-boxing Information radiators © ThoughtWorks 2008
What went well? Retrospectives The goal is not to finish Time-boxing What have we learned? What has hindered learning? The goal is not to finish Time-boxing Information radiators Inspiration for the meeting © ThoughtWorks 2008
What went less well? Moderating Brazilians © ThoughtWorks 2008
What went less well? Moderating Brazilians TDD/BDD and algorithms © ThoughtWorks 2008
What went less well? Moderating Brazilians TDD/BDD and algorithms Balancing randoris/katas © ThoughtWorks 2008
What went less well? Moderating Brazilians TDD/BDD and algorithms Balancing randoris/katas Programming Environment © ThoughtWorks 2008
? What is still puzzling? How to reach a wider audience? © ThoughtWorks 2008
What is still puzzling? How to reach a wider audience? How to share efforts with the community? © ThoughtWorks 2008
What is still puzzling? How to reach a wider audience? How to share efforts with the community? How to keep attendees engaged? © ThoughtWorks 2008
Coding Dojo and Learning © ThoughtWorks 2008
Deliberate Practice Ericson et. Al Expert performance is the end result of prolonged effort More than 10 years © ThoughtWorks 2008
Dreyfus Model Novice Competence Proficient Expert Mastery © ThoughtWorks 2008
novice competent proficient Coding Dojo Collaboration Self-organization No single master Sharing knowledge novice competent proficient © ThoughtWorks 2008
Questions? © ThoughtWorks 2008