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

A Question of Craftsmanship - Kevlin Henney - A...

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
Tweet

More Decks by Agile Singapore

Other Decks in Programming

Transcript

  1. Art. Craft. Engineering. Science. These are the swirling muses of

    design patterns. Art and science are stories; craft and engineering are actions. Wayne Cool
  2. RUD, noun  Rapid Unscheduled Disassembly  Rocket science and

    amateur rocketry jargon that's acronymous, euphemistic and explosively self-explanatory WordFriday.com
  3. If you want to learn how to build a house,

    build a house. Don't ask anybody, just build a house. Christopher Walken
  4. Programming is difficult business. It should never be undertaken in

    ignorance. Douglas Crockford JavaScript: The Good Parts
  5. 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
  6. 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
  7. 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
  8. David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah "Avoiding

    the Alignment Trap in Information Technology" MIT Sloan Management Review
  9. 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. [...]
  10. 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
  11. 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
  12. Craftsmanship has been used for centuries for the successful transmittal

    of skills and the development of communities of practice.
  13. 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"
  14. 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
  15. 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
  16. 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.