0
Growing And Fostering Craftsmanship
                                                            Cory Foy | Cory Foy, LLC
 ...
Wednesday, June 2, 2010   2
Problem




Wednesday, June 2, 2010                                             3

“IT is a pain in the ass” - Guy next to...
Wednesday, June 2, 2010                    4

How many of us are as happy as this guy?
Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS




Wednesday, June 2, 2010                        ...
Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS




Wednesday, June 2, 2010                        ...
Wednesday, June 2, 2010                                                                       7

Release July 10th. Next r...
Typing Is Not The Bottleneck




Wednesday, June 2, 2010              8
Wednesday, June 2, 2010   9
Wednesday, June 2, 2010   9
“In programming the hard part isn’t
                          solving problems, but deciding what
                        ...
Credit: http://www.flickr.com/photos/cdevers/4456481460/sizes/l/


Wednesday, June 2, 2010                                 ...
“...the intellectual bookkeeping challenge...has been replaced
          with the challenge of clearly expressing the desi...
Wednesday, June 2, 2010   13
Wednesday, June 2, 2010                                                                      14

This means there is a shi...
Code Quality




Wednesday, June 2, 2010                  15
Communicating Intent




Wednesday, June 2, 2010                          16

Readability
Collaboration




Wednesday, June 2, 2010                     17

We can’t be the stereotypical IT people
Wednesday, June 2, 2010                   18

We can’t be the stereotypical IT people
Sharing Knowledge




Wednesday, June 2, 2010                       19
Breaking Out Features




Wednesday, June 2, 2010                           20

Minimal Marketable Feature. Small Stories.
Responsibility




Wednesday, June 2, 2010                      21

Regression Test Assurance
How can Craftsmanship Help?




Wednesday, June 2, 2010                 22
Fix the problem at its source.




Wednesday, June 2, 2010                         23

And what’s the source?
Wednesday, June 2, 2010   24

We’ve let
Us




Wednesday, June 2, 2010        24

We’ve let
Fear




Wednesday, June 2, 2010          25

stagnate us.
“People can be trained not to innovate, not to explore, and not
           to reach. Many organizations value conformance ...
Fear
                          “Since my endeavors are not supported
                          by my organization, I'm lim...
Fear
      “When the manager saw our
       estimate for the project, he
       gave us a deadline without
      consideri...
“In my company, no code changes
                          can happen without the approval of
                             ...
Source: http://www.twistedsister.com/gallery.php




Wednesday, June 2, 2010                                              ...
Unacceptable




Wednesday, June 2, 2010                                                                       27

We have...
Passion




Wednesday, June 2, 2010                      28

And it was this passion which led to a
Manifesto




Wednesday, June 2, 2010                                                              29

Agile Manifesto out...
Individuals and Interactions




Wednesday, June 2, 2010                30

over processes and tools
Working Software




Wednesday, June 2, 2010                      31

over comprehensive documentation
Customer Collaboration




Wednesday, June 2, 2010                     32

over contract negotiation
Responding to Change




Wednesday, June 2, 2010                        33

over following a plan. And everything was...
Wednesday, June 2, 2010                      34

flowers, right?! Right?! No! It was all....
Wednesday, June 2, 2010                                                                  35

weird and distorted. Project ...
Source:http://gallery.me.com/pew#100134/IMG_0155&bgcolor=black




Wednesday, June 2, 2010                                ...
Craftsmanship
                               over
                               Crap


Wednesday, June 2, 2010           ...
Wednesday, June 2, 2010                                                                 38

Ah, much better! This statemen...
CRAFTSMANSHIP
                              OVER
                              CRAP!


Wednesday, June 2, 2010            ...
Wednesday, June 2, 2010                                                                   39

But the manifesto and the id...
Responsibility




Wednesday, June 2, 2010                    40

Whose Responsibility?
Wednesday, June 2, 2010                                                                         41

YOUR RESPONSIBILITY! (...
Yours!




Wednesday, June 2, 2010                                                         42

Whose Responsibility is it ...
Yours!




Wednesday, June 2, 2010                           43

Whose Responsibility is it for teaching others?
Yours!




Wednesday, June 2, 2010                                                    44

Whose Responsibility is it for m...
Yours!




Wednesday, June 2, 2010                               45

Indeed. (Next slide: Craftsmanship==Responsibility)
Craftsmanship ==
                           Responsibility



Wednesday, June 2, 2010                                     ...
Yours.




Wednesday, June 2, 2010            47
Wednesday, June 2, 2010                                                                       48

Come on, Cory. How the h...
Wednesday, June 2, 2010                                                                       48

Come on, Cory. How the h...
Fostering Craftsmanship in
               your Organization



Wednesday, June 2, 2010                 49
a.k.a.




Wednesday, June 2, 2010            50
Cory’s 5-step Plan to World
                  Domination



Wednesday, June 2, 2010                 51
Cory’s 5-step Plan to
                 Fostering Craftsmanship



Wednesday, June 2, 2010                    52
Step 1:
                          Start with you



Wednesday, June 2, 2010                    53

Katas. Learn them. Do t...
Wednesday, June 2, 2010                  54

Katas. Learn them. Do them. Love them.
Step 2:
                          Involve your team



Wednesday, June 2, 2010                                55

Brown Ba...
Step 3:
                          Get people talking



Wednesday, June 2, 2010                                           ...
Wednesday, June 2, 2010   57

Picture from Hashrocket
Step 4:
                          Get people learning
                            (and teaching)


Wednesday, June 2, 2010...
Wednesday, June 2, 2010   59

Dave and Adewale’s Book
Step 5:
                           Make it Clear



Wednesday, June 2, 2010                                               ...
This is Jason Gorman’s. Don’t blame me.
                                   http://qconlondon.com/london-2010/file?path=%2Fq...
Reference Application




Wednesday, June 2, 2010                                                                        6...
Learning Models




Wednesday, June 2, 2010                                                                  63

Thankfull...
Dreyfus Model of Skills Acquisition
                                Level                    Description

                ...
Level 1: Novice




Wednesday, June 2, 2010                                                                         65

No...
Level 2: Advanced Beginner




Wednesday, June 2, 2010                                                                    ...
Level 3: Competent




Wednesday, June 2, 2010                                                                     67

As ...
Level 4: Proficient




Wednesday, June 2, 2010                                                                       68

A...
Level 5: Expert




Wednesday, June 2, 2010                                                                      69

Final...
But Remember




Wednesday, June 2, 2010                  70
Individuals and Interactions




Wednesday, June 2, 2010                71
over




Wednesday, June 2, 2010          72
Processes and Tools




Wednesday, June 2, 2010                                                                    73

In ...
Summary




Wednesday, June 2, 2010             74

So, to summarize
Wednesday, June 2, 2010   75

Don’t let fear
Wednesday, June 2, 2010   76

Stagnate you
Wednesday, June 2, 2010         77

and keep you from being happy
Wednesday, June 2, 2010   78

Because only you
Wednesday, June 2, 2010   79

can raise the bar
Wednesday, June 2, 2010                                                                         80

stop valuing crap, and...
Upcoming SlideShare
Loading in...5
×

Growing and Fostering Software Craftsmanship

3,223

Published on

This is the slide deck for Cory's talk at XP2010 in Trondheim, Norway. You can see the video at http://vimeo.com/12244804

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,223
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
71
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Growing and Fostering Software Craftsmanship"

  1. 1. Growing And Fostering Craftsmanship Cory Foy | Cory Foy, LLC @cory_foy | foyc@coryfoy.com Wednesday, June 2, 2010 1 L: http://www.flickr.com/photos/cobalt/2712729687/sizes/l/ R: http://www.flickr.com/photos/jeffbelmonte/6406082/sizes/o/ C: http://www.flickr.com/photos/pepe50/3057465486/sizes/l/
  2. 2. Wednesday, June 2, 2010 2
  3. 3. Problem Wednesday, June 2, 2010 3 “IT is a pain in the ass” - Guy next to me on the flight to XP2010
  4. 4. Wednesday, June 2, 2010 4 How many of us are as happy as this guy?
  5. 5. Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS Wednesday, June 2, 2010 5 How can we be happy? 26% average succeeded rate in software projects. Success is measured solely by releasing on a specific date
  6. 6. Source: http://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS Wednesday, June 2, 2010 6 One year, 1 million dollar project is now a 1.8 million dollar project. And you’ll get it 6 months late. How ‘bout them apples?
  7. 7. Wednesday, June 2, 2010 7 Release July 10th. Next release planned for June. Pulled everything to one backlog planned for next release. Ran one 4-week iteration. Initial velocity showed release date August - 3 years later.
  8. 8. Typing Is Not The Bottleneck Wednesday, June 2, 2010 8
  9. 9. Wednesday, June 2, 2010 9
  10. 10. Wednesday, June 2, 2010 9
  11. 11. “In programming the hard part isn’t solving problems, but deciding what problems to solve.” Paul Graham Wednesday, June 2, 2010 10
  12. 12. Credit: http://www.flickr.com/photos/cdevers/4456481460/sizes/l/ Wednesday, June 2, 2010 11 There was a time when that was easy. Because the problem was engineering. And hardware.
  13. 13. “...the intellectual bookkeeping challenge...has been replaced with the challenge of clearly expressing the design intention to the rest of the team so the system can evolve.” - Pete McBreen, Software Craftsmanship: The New Imperative Wednesday, June 2, 2010 12
  14. 14. Wednesday, June 2, 2010 13
  15. 15. Wednesday, June 2, 2010 14 This means there is a shift happening in our industry. If typing isn’t the bottleneck, and hardware isn’t the problem, and the challenge is in expression - what are our weaknesses?
  16. 16. Code Quality Wednesday, June 2, 2010 15
  17. 17. Communicating Intent Wednesday, June 2, 2010 16 Readability
  18. 18. Collaboration Wednesday, June 2, 2010 17 We can’t be the stereotypical IT people
  19. 19. Wednesday, June 2, 2010 18 We can’t be the stereotypical IT people
  20. 20. Sharing Knowledge Wednesday, June 2, 2010 19
  21. 21. Breaking Out Features Wednesday, June 2, 2010 20 Minimal Marketable Feature. Small Stories.
  22. 22. Responsibility Wednesday, June 2, 2010 21 Regression Test Assurance
  23. 23. How can Craftsmanship Help? Wednesday, June 2, 2010 22
  24. 24. Fix the problem at its source. Wednesday, June 2, 2010 23 And what’s the source?
  25. 25. Wednesday, June 2, 2010 24 We’ve let
  26. 26. Us Wednesday, June 2, 2010 24 We’ve let
  27. 27. Fear Wednesday, June 2, 2010 25 stagnate us.
  28. 28. “People can be trained not to innovate, not to explore, and not to reach. Many organizations value conformance above all. They cut off the top and the bottom of the bell curve -- they like interchangeable cogs. You can achieve predictability through mediocrity in those places, and the best answer is to decide to either go along or get out.” Fear Wednesday, June 2, 2010 25 stagnate us.
  29. 29. Fear “Since my endeavors are not supported by my organization, I'm limited to TDD, and have no way of implementing acceptance tests without getting sacked. I'm pushing my luck to do TDD at all.” Wednesday, June 2, 2010 25 stagnate us.
  30. 30. Fear “When the manager saw our estimate for the project, he gave us a deadline without considering our suggestions. He is not a programmer and his reason was a political deadline.” Wednesday, June 2, 2010 25 stagnate us.
  31. 31. “In my company, no code changes can happen without the approval of the Board of Governors for the product involved” Fear Wednesday, June 2, 2010 25 stagnate us.
  32. 32. Source: http://www.twistedsister.com/gallery.php Wednesday, June 2, 2010 26 We have to say that we aren’t going to take it
  33. 33. Unacceptable Wednesday, June 2, 2010 27 We have to declare that it is unacceptable for us to be put in situations which destroy the one thing which drives each of us here
  34. 34. Passion Wednesday, June 2, 2010 28 And it was this passion which led to a
  35. 35. Manifesto Wednesday, June 2, 2010 29 Agile Manifesto outlining four key values for anyone adopting agile methodologies.
  36. 36. Individuals and Interactions Wednesday, June 2, 2010 30 over processes and tools
  37. 37. Working Software Wednesday, June 2, 2010 31 over comprehensive documentation
  38. 38. Customer Collaboration Wednesday, June 2, 2010 32 over contract negotiation
  39. 39. Responding to Change Wednesday, June 2, 2010 33 over following a plan. And everything was...
  40. 40. Wednesday, June 2, 2010 34 flowers, right?! Right?! No! It was all....
  41. 41. Wednesday, June 2, 2010 35 weird and distorted. Project Management seemed to be doing better, but developers were still pumping out garbage.
  42. 42. Source:http://gallery.me.com/pew#100134/IMG_0155&bgcolor=black Wednesday, June 2, 2010 36 But then this guy lulled us all in during dinner with 1500 of our closest friends at Agile 2008 and said the words that have stuck with me ever since.
  43. 43. Craftsmanship over Crap Wednesday, June 2, 2010 37 No wait. That’s not it. Let’s try again.
  44. 44. Wednesday, June 2, 2010 38 Ah, much better! This statement led to a manifesto focused at the software developers
  45. 45. CRAFTSMANSHIP OVER CRAP! Wednesday, June 2, 2010 38 Ah, much better! This statement led to a manifesto focused at the software developers
  46. 46. Wednesday, June 2, 2010 39 But the manifesto and the ideals behind it have an unspoken definition. Craftsmanship is about....
  47. 47. Responsibility Wednesday, June 2, 2010 40 Whose Responsibility?
  48. 48. Wednesday, June 2, 2010 41 YOUR RESPONSIBILITY! (And look! I found a hip bear!). Given that - whose responsibility is it for learning new technologies and techniques?
  49. 49. Yours! Wednesday, June 2, 2010 42 Whose Responsibility is it for growing in your profession? (All together now)
  50. 50. Yours! Wednesday, June 2, 2010 43 Whose Responsibility is it for teaching others?
  51. 51. Yours! Wednesday, June 2, 2010 44 Whose Responsibility is it for making what you build the best it can be?
  52. 52. Yours! Wednesday, June 2, 2010 45 Indeed. (Next slide: Craftsmanship==Responsibility)
  53. 53. Craftsmanship == Responsibility Wednesday, June 2, 2010 46 So, if craftsmanship is responsibility, whose job is it to foster craftsmanship in your organization?
  54. 54. Yours. Wednesday, June 2, 2010 47
  55. 55. Wednesday, June 2, 2010 48 Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell you. By showing you the guide to...
  56. 56. Wednesday, June 2, 2010 48 Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell you. By showing you the guide to...
  57. 57. Fostering Craftsmanship in your Organization Wednesday, June 2, 2010 49
  58. 58. a.k.a. Wednesday, June 2, 2010 50
  59. 59. Cory’s 5-step Plan to World Domination Wednesday, June 2, 2010 51
  60. 60. Cory’s 5-step Plan to Fostering Craftsmanship Wednesday, June 2, 2010 52
  61. 61. Step 1: Start with you Wednesday, June 2, 2010 53 Katas. Learn them. Do them. Love them.
  62. 62. Wednesday, June 2, 2010 54 Katas. Learn them. Do them. Love them.
  63. 63. Step 2: Involve your team Wednesday, June 2, 2010 55 Brown Bags. Show people what you’ve been working on.
  64. 64. Step 3: Get people talking Wednesday, June 2, 2010 56 Book Clubs. Doesn’t matter the topic - just get people meeting and talking. Do Food.
  65. 65. Wednesday, June 2, 2010 57 Picture from Hashrocket
  66. 66. Step 4: Get people learning (and teaching) Wednesday, June 2, 2010 58 Apprenticeships. Ask people to mentor you, and offer the same to those with you.
  67. 67. Wednesday, June 2, 2010 59 Dave and Adewale’s Book
  68. 68. Step 5: Make it Clear Wednesday, June 2, 2010 60 Profit! Or formalize the program. Create a training path for people to follow.
  69. 69. This is Jason Gorman’s. Don’t blame me. http://qconlondon.com/london-2010/file?path=%2Fqcon-london-2010%2Fslides %2FJasonGorman_BeyondMastersApprenticesAScalablePeerLedModelForBuildingGoodHabitsInLargeDiverseDevelopmentTeams.pdf Wednesday, June 2, 2010 61
  70. 70. Reference Application Wednesday, June 2, 2010 62 In fact, because I’ve only gotten 4 hours of sleep in the past 70 hours, I found a way to do all five steps using only Katas. I call this my “reference application”. To understand it we have to know about
  71. 71. Learning Models Wednesday, June 2, 2010 63 Thankfully, not every one. Just a specific one. It’s called the Dreyfus Model of Skills Acquisition
  72. 72. Dreyfus Model of Skills Acquisition Level Description Needs to be told exactly what to do. Novice No context to work from Has more context, but needs Advanced Beginner rigid guidelines Questions reasoning behind the tasks Competent and can see consequences Still relies on rules, but can Proficient separate what’s important Works mainly on intuition, Expert except when problems occur Wednesday, June 2, 2010 64 Using this model, we can create a path for team members to go from Novice to Expert using Katas. How?
  73. 73. Level 1: Novice Wednesday, June 2, 2010 65 Novices don’t have the context to make judgement calls. So for novices, we can provide the outline of a Kata with acceptance tests pre-filled out. This gives them context and structure. Show Corey’s String Calculator
  74. 74. Level 2: Advanced Beginner Wednesday, June 2, 2010 66 Advanced Beginners still need structure, so at level 2, they would still use pre-populated templates. However, they would only be partially filled out. For example, in the String Calculator, Roy defined additional requirements which aren’t in the tests
  75. 75. Level 3: Competent Wednesday, June 2, 2010 67 As developers reach competency, they need less context. At this stage, there still may be some structure predefined in the katas, but certainly no tests are filled in.
  76. 76. Level 4: Proficient Wednesday, June 2, 2010 68 At proficiency, developers should be able to tackle a Kata from scratch, including set-up of any necessary tools (RSpec, Cucumber, FitNesse, NUnit).
  77. 77. Level 5: Expert Wednesday, June 2, 2010 69 Finally, as they reach an expert stage, they should be able to develop their own katas for contribution back to the team.
  78. 78. But Remember Wednesday, June 2, 2010 70
  79. 79. Individuals and Interactions Wednesday, June 2, 2010 71
  80. 80. over Wednesday, June 2, 2010 72
  81. 81. Processes and Tools Wednesday, June 2, 2010 73 In other words, don’t let the kata structure become a replacement for individuals and interactions. Part of why programs and methodologies work is the learning that goes into implementing and customizing it. As it grows, it may stagnate. Don’t do that.
  82. 82. Summary Wednesday, June 2, 2010 74 So, to summarize
  83. 83. Wednesday, June 2, 2010 75 Don’t let fear
  84. 84. Wednesday, June 2, 2010 76 Stagnate you
  85. 85. Wednesday, June 2, 2010 77 and keep you from being happy
  86. 86. Wednesday, June 2, 2010 78 Because only you
  87. 87. Wednesday, June 2, 2010 79 can raise the bar
  88. 88. Wednesday, June 2, 2010 80 stop valuing crap, and instead deliver real value. And at the end of the day, that’s what our customers want, our organizations want, and I bet most of us want too.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×