Presented at Agile on the Beach (16th September 2011)
Although a great deal of the enthusiasm for Agile development initially grew from software developers, 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 session lays out and explores the motivation, implications, pros and cons of a craftsmanship view of software development.
3. The engineering is the art, and the art is the engineering.
Cecil Balmond http://www.newscientist.com/article/ mg21128272.700-olympic-sculpture-is-a-marvel-of-mathematics.html
4.
5. There is an art, craft, and science to programming that extends far beyond
the program. The act of programming marries the discrete world of computers
with the fluid world of human affairs. Programmers mediate between the
negotiated and uncertain truths of business and the crisp, uncompromising
domain of bits and bytes and higher constructed types.
17. Anyway, the point I'm making is that we need to be very careful. Just as they're doing with management consultants, sooner or later our customers will figure out that the management practices of Agile don't deliver working software any more than they can grill cheese or power an electric bicycle.
Jason Gorman, "We Emulate Management Consultants at Our Peril"
http://parlezuml.com/blog/?postid=946
18. The business of software is software. We don't make bean bags and we don't sell ice cream, even if that's what will solve the customer's problems. We make working software. And the Manifesto for Agile Software Development is a manifesto for doing it better.
Jason Gorman, "We Emulate Management Consultants at Our Peril"
http://parlezuml.com/blog/?postid=946
19. If you don't know how to make software, then I'm afraid you've boarded the wrong train, my friend. This train is going to Better Software. The train for Management Snake Oil leaves from a different platform. You can't miss it. It's made of invisible gold and it runs on magic beans.
Jason Gorman, "We Emulate Management Consultants at Our Peril"
http://parlezuml.com/blog/?postid=946
20. Graphic by Sebastian Hermida
http://sbastn.com/2009/06/typing-is-not-the-bottleneck/
21. David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah
"Avoiding the Alignment Trap in Information Technology"
MIT Sloan Management Review
22.
23.
24. 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. [...]
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36. 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
37.
38.
39. Craftsmanship has been used for centuries for the successful transmittal of skills and the development of communities of practice.
44. 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
45. 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
46. 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.
51. TDD is fun! It’s like a game where you navigate a maze of technical decisions that lead to highly robust software while avoiding the quagmire of long debug sessions. With each test there is a renewed sense of accomplishment and clear progress toward the goal. Automated tests record assumptions, capture decisions, and free the mind to focus on the next challenge.
James Grenning Test-Driven Development for Embedded C
52. TDD is fun! It’s like a game where you navigate a maze of technical decisions that lead to highly robust software while avoiding the quagmire of long debug sessions. With each test there is a renewed sense of accomplishment and clear progress toward the goal. Automated tests record assumptions, capture decisions, and free the mind to focus on the next challenge.
James Grenning Test-Driven Development for Embedded C
53. Programming is difficult business. It should never be undertaken in ignorance.
Douglas Crockford JavaScript: The Good Parts