Software Craftsmanship

13
Software Craftsmanship Roundtable Discussion Utah Code Camp Mike Clement Spring 2011 [email protected] @mdclement @utahsc

Transcript of Software Craftsmanship

Page 1: Software Craftsmanship

Software Craftsmanship

Roundtable DiscussionUtah Code Camp

Mike ClementSpring 2011

[email protected]@mdclement

@utahsc

Page 2: Software Craftsmanship

Literature Roots (1999 and 2001)

Page 3: Software Craftsmanship

Uncle Bob at Agile 2008

CRAFTSMANSHIP OVER CRAP!

Page 4: Software Craftsmanship

August 2008

Page 5: Software Craftsmanship

Agile Manifesto

We are uncovering better ways of developingsoftware by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items onthe right, we value the items on the left more.

Page 6: Software Craftsmanship

Software Craftsmanship Manifesto (March 2009)

As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the

craft. Through this work we have come to value:

Not only working software, but also well-crafted softwareNot only responding to change, but also steadily adding valueNot only individuals and interactions, but also a community of

professionalsNot only customer collaboration, but also productive partnerships

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.

Page 7: Software Craftsmanship

October 2009

http://apprenticeship-patterns.labs.oreilly.com/

Released for free under Creative Commons license!

Page 8: Software Craftsmanship

Companies based on SC principles

Page 9: Software Craftsmanship

Values

• “growth mindset”• Adapting and changing• Pragmatic rather than dogmatic• Share over hoarding/scarcity• Experiment, can be wrong• Taking control for own destiny• Inclusiveness• Skill-centric over process-centric• “situated learning”

Page 10: Software Craftsmanship

Katas

• Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.

• A kata is a coding exercise that performed repeatedly and perfected.

• http://codekata.pragprog.com/• http://www.vimeo.com/2499161• http://katas.softwarecraftsmanship.org/

Page 11: Software Craftsmanship

Utah Software Craftsmanship Group

• Second Tuesday• Meeting Format– 2 or 3 Lightning Talks (5-10 minutes each)– Reading Discussion (30 minutes)– Kata (45 minutes)

• https://groups.google.com/forum/#!forum/ut-software-craftsmanship

• Twitter: @utahsc

Page 12: Software Craftsmanship

Software Craftsmanship Manifesto

As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the

craft. Through this work we have come to value:

Not only working software, but also well-crafted softwareNot only responding to change, but also steadily adding valueNot only individuals and interactions, but also a community of

professionalsNot only customer collaboration, but also productive partnerships

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.