Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Question of Craftsmanship - Kevlin Henney - Agile SG 2013

A Question of Craftsmanship - Kevlin Henney - Agile SG 2013

Presented in Agile Singapore 2013 Conference

Although a great deal of the enthusiasm for Agile development initially grew from software developers, the perception is that much of the current focus in Agile circles has moved to organisational aspects, product management and soft skills. Craftsmanship has long been a quality and a metaphor applied to software development, but more recently software craftsmanship has emerged as a more explicit movement and branding focused on reclaiming and re-emphasising the importance of the detail, of how to code and how to do it well.

There are many different perspectives on what the craftsmanship metaphor implies and what benefits and liabilities it may have. This talk lays out and explores the motivation, implications, pros and cons of a craftsmanship view of software development, as well as touching on other metaphors and their implied practices.

Agile Singapore

November 08, 2013

More Decks by Agile Singapore

Other Decks in Programming


  1. A Question of Craftsmanship @KevlinHenney kevlin@curbralan.com

  2. None
  3. None
  4. Art. Craft. Engineering. Science. These are the swirling muses of

    design patterns. Art and science are stories; craft and engineering are actions. Wayne Cool
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. RUD, noun  Rapid Unscheduled Disassembly  Rocket science and

    amateur rocketry jargon that's acronymous, euphemistic and explosively self-explanatory WordFriday.com
  12. None
  13. None
  14. None
  15. None
  16. None
  17. http://fragmental.tw/2009/04/29/tag-clouds-see-how-noisy-your-code-is/

  18. http://fragmental.tw/2009/04/29/tag-clouds-see-how-noisy-your-code-is/

  19. If you want to learn how to build a house,

    build a house. Don't ask anybody, just build a house. Christopher Walken
  20. None
  21. None
  22. None
  23. Programming is difficult business. It should never be undertaken in

    ignorance. Douglas Crockford JavaScript: The Good Parts
  24. None
  25. Agile methods balance two things. One is the maximizing of

    value creation. The other thing is the maximizing of the chances of actually delivering something. Niklas Bjørnerstedt http://www.leanway.no/?p=280
  26. These two goals are sometimes in conflict! Niklas Bjørnerstedt http://www.leanway.no/?p=280

  27. Projects that dogmatically focus on stakeholder value are working on

    the right things but still risk failing completely. Niklas Bjørnerstedt http://www.leanway.no/?p=280
  28. The simple reason agile focuses on “working software” is that

    this is one of the primary ways of insuring that the system being worked on will actually work. Niklas Bjørnerstedt http://www.leanway.no/?p=280
  29. David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah "Avoiding

    the Alignment Trap in Information Technology" MIT Sloan Management Review
  30. None
  31. None
  32. We have been up all night, my friends and I,

    [...] we have been discussing right up to the limits of logic and scrawling the paper with demented writing. Our hearts were filled with an immense pride at feeling ourselves standing quite alone [...]. We want to sing the love of danger, the habit of energy and rashness. The essential elements of our poetry will be courage, audacity and revolt. [...]
  33. None
  34. None
  35. None
  36. None
  37. None
  38. People in high tech take pride in their work. They

    are individuals who see the details of the things they produce in the light of the trials and triumphs they experience while creating products. In the courage of creation, they find a place to hang their individuality. Programmers and techno types appreciate elegant, spare code and the occasional well-turned architectural hack. Rick Levine, Christopher Locke, Doc Searles and David Weinberger The Cluetrain Manifesto
  39. Colleagues who worked with Mr. Ritchie were struck by his

    code — meticulous, clean and concise. His writing, according to Mr. Kernighan, was similar. “There was a remarkable precision to his writing,” Mr. Kernighan said, “no extra words, elegant and spare, much like his code.” http://www.nytimes.com/2011/10/14/technology/ dennis-ritchie-programming-trailblazer-dies-at-70.html
  40. None
  41. None
  42. Craftsmanship has been used for centuries for the successful transmittal

    of skills and the development of communities of practice.
  43. http://www.wordle.net/show/wrdl/1188918/SCTAGS2009

  44. None
  45. You do deliberate practice to improve your ability to perform

    a task. It’s about skill and technique. Deliberate practice means repetition. It means performing the task with the aim of increasing your mastery of one or more aspects of the task. You do deliberate practice to master the task, not to complete the task. Jon Jagger "Do Lots of Deliberate Practice"
  46. None
  47. None
  48. None
  49. A capsule definition of engineering, independent of any discipline, as

    you're likely to find: the set of practices and techniques that have been determined to work reliably through experience. Glenn Vanderburg http://confreaks.net/videos/282-lsrc2010-real-software-engineering
  50. Structural engineering is the science and art of designing and

    making, with economy and elegance, buildings, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected. The Institution of Structural Engineers
  51. Software engineering is the science and art of designing and

    making, with economy and elegance, applications, bridges, frameworks, and other similar structures so that they can safely resist the forces to which they may be subjected.
  52. None
  53. None
  54. None