Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Code Katas<br />Practicing Your Craft<br />Mike Clement<br />@mdclement<br />mike@softwareontheside.com<br />http://blog.s...
“Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.”<br />-Dave Thomas<b...
Chad Fowler on Practice<br />“As a musician, I might spend a significant portion of my practice schedule playing things th...
But I “Practice” On the Job!<br />The Lie<br />
Dave Thomas on Practice<br />“It’s like taking a group of fit kids and telling them that they have four quarters to beat t...
Dave Thomas’s Keys to Practice<br />Pressure Off<br />Learn how to play with code<br />http://www.codekata.com/2007/01/cod...
Ceramics<br />Quantity or Quality?<br />
Shu Ha Ri<br />守 Shu – House of Laws; to abide by, to defend<br />破 Ha – Stone; to break<br />離 Ri – Bird; to leave, to de...
The rush past 守 (Shu)<br />I’m so Smart<br />
Code Katas are Shu<br />Slow down!<br />
So what arekatas?<br />
Katas aren’t the one true practice?<br />Other forms of practice<br />
Randori<br />Pair Programming<br />Pair changes with mechanism (Time box, Ping Pong)<br />Start from scratch<br />Use TDD<...
Koans<br />Koans are questions without absolute answers which are used to break down assumptions and reveal underlying tru...
Code Retreat<br />Problem: Conway's Game of Life<br />Length of Session: 45 minutes<br />Duration: 8.30am to 5 or 6pm<br /...
Let’s Try it Out<br />Guided or Prepared Kata<br />
“Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.”<br />-Dave Thomas<b...
Kata Lists<br />http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue<br />http://codekata.pragprog.com/2007/01/code_kata_ba...
My Contact Info<br />@mdclement<br />mike@softwareontheside.com<br />http://blog.softwareontheside.com<br />Utah Software ...
Upcoming SlideShare
Loading in …5
×

Code Katas: Practicing Your Craft

5,414 views

Published on

One of the key values as part of the Software Craftsmanship movement is to be "skill-centric" and as part of that, practicing our skills as software developers is key! The Code Kata format is a coding exercise that is repeated and perfected. It provides one of many ways to practice the craft of software development. We'll discuss the Code Kata format, introduce a few katas and discuss some other practice formats.

Published in: Technology
  • Be the first to like this

Code Katas: Practicing Your Craft

  1. 1. Code Katas<br />Practicing Your Craft<br />Mike Clement<br />@mdclement<br />mike@softwareontheside.com<br />http://blog.softwareontheside.com<br />Utah Code Camp Fall 2011<br />
  2. 2. “Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.”<br />-Dave Thomas<br />
  3. 3. Chad Fowler on Practice<br />“As a musician, I might spend a significant portion of my practice schedule playing things that nobody would want to listen to…. I would certainly never record them and release them on a CD. I wouldn’t even bore anyone with these sounds unless they either lived in my house and had no choice or were being paid to listen to them and offer suggestions for improvement. This is an example of “work” in which the action is far more valuable than the direct output.”<br />http://chadfowler.com/2003/03/25/valueless-software<br />
  4. 4.
  5. 5. But I “Practice” On the Job!<br />The Lie<br />
  6. 6. Dave Thomas on Practice<br />“It’s like taking a group of fit kids and telling them that they have four quarters to beat the Redskins (hey, we manage by objectives, right?). In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.”<br />http://codekata.pragprog.com/2007/01/code_kata_backg.html<br />
  7. 7. Dave Thomas’s Keys to Practice<br />Pressure Off<br />Learn how to play with code<br />http://www.codekata.com/2007/01/code_katahow_it.html<br />Fundamentally incompatible with “on the job”!<br />
  8. 8. Ceramics<br />Quantity or Quality?<br />
  9. 9. Shu Ha Ri<br />守 Shu – House of Laws; to abide by, to defend<br />破 Ha – Stone; to break<br />離 Ri – Bird; to leave, to depart<br />Similar to Dryfus model <br />Novice, Advanced Beginner, Competent, Proficient, Expert<br />Similar to Apprentice model<br />Apprentice, Craftsman, Master<br />
  10. 10. The rush past 守 (Shu)<br />I’m so Smart<br />
  11. 11. Code Katas are Shu<br />Slow down!<br />
  12. 12. So what arekatas?<br />
  13. 13. Katas aren’t the one true practice?<br />Other forms of practice<br />
  14. 14. Randori<br />Pair Programming<br />Pair changes with mechanism (Time box, Ping Pong)<br />Start from scratch<br />Use TDD<br />Everyone should be following<br />Pair should be explaining<br />Audience gives suggestions only with when Green<br />Example at http://vimeo.com/2499540<br />http://codingdojo.org/cgi-bin/wiki.pl?RandoriKata<br />
  15. 15. Koans<br />Koans are questions without absolute answers which are used to break down assumptions and reveal underlying truths<br />http://rubykoans.com/<br />
  16. 16. Code Retreat<br />Problem: Conway's Game of Life<br />Length of Session: 45 minutes<br />Duration: 8.30am to 5 or 6pm<br />Pair-programming is necessary, as the knowledge transfer contained in that activity is essential to the practice<br />Prefer using Test-Driven Development (TDD)<br />After each session, pairs should be swapped<br />After each session, code must be deleted, not put in a branch, not stashed, just deleted with no trace left<br />http://coderetreat.com/facilitation.html<br />
  17. 17. Let’s Try it Out<br />Guided or Prepared Kata<br />
  18. 18. “Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.”<br />-Dave Thomas<br />
  19. 19. Kata Lists<br />http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue<br />http://codekata.pragprog.com/2007/01/code_kata_backg.html<br />http://stackoverflow.com/questions/44533/your-favorite-code-kata<br />http://www.katacasts.com/<br />http://katas.softwarecraftsmanship.org/<br />
  20. 20. My Contact Info<br />@mdclement<br />mike@softwareontheside.com<br />http://blog.softwareontheside.com<br />Utah Software Craftsmanship Group<br />https://groups.google.com/forum/#!forum/ut-software-craftsmanship<br />@utahsc<br />

×