Courageous Software Development Through Craftsmanship

34
COURAGEOUS SOFTWARE DEVELOPMENT Through Craftsmanship

description

Slides from my workshop session on Courage in Software Development through Software Craftsmanship presented at Keep Austin Agile 2014. http://2014conf.agileaustin.org/?q=node/70

Transcript of Courageous Software Development Through Craftsmanship

Page 1: Courageous Software Development Through Craftsmanship

COURAGEOUS SOFTWARE DEVELOPMENT

Through Craftsmanship

Page 2: Courageous Software Development Through Craftsmanship
Page 3: Courageous Software Development Through Craftsmanship

Courage is the ability and willingness to confront fear, pain, danger, uncertainty,

or intimidation.

-- Wikipedia

Page 4: Courageous Software Development Through Craftsmanship
Page 5: Courageous Software Development Through Craftsmanship
Page 6: Courageous Software Development Through Craftsmanship
Page 7: Courageous Software Development Through Craftsmanship
Page 8: Courageous Software Development Through Craftsmanship
Page 9: Courageous Software Development Through Craftsmanship
Page 10: Courageous Software Development Through Craftsmanship
Page 11: Courageous Software Development Through Craftsmanship

What forces (in software) require us to respond with courage?

How does lack of courage in software manifest?

Page 12: Courageous Software Development Through Craftsmanship
Page 13: Courageous Software Development Through Craftsmanship
Page 14: Courageous Software Development Through Craftsmanship

Craftsmanship???

Page 15: Courageous Software Development Through Craftsmanship
Page 16: Courageous Software Development Through Craftsmanship
Page 17: Courageous Software Development Through Craftsmanship
Page 18: Courageous Software Development Through Craftsmanship
Page 19: Courageous Software Development Through Craftsmanship

Not only working software, But also well-crafted software

Page 20: Courageous Software Development Through Craftsmanship

Not only responding to change, But also steadily adding value

Page 21: Courageous Software Development Through Craftsmanship

Not only individuals and interactions, But also a community of professionals

Page 22: Courageous Software Development Through Craftsmanship

Not only customer collaboration, But also productive partnerships

Page 23: Courageous Software Development Through Craftsmanship

Software craftsmanship's not the "next big thing". It's an attempt to articulate what the

"thing" always was

-- @jasongorman

Page 24: Courageous Software Development Through Craftsmanship

Dangers….

•  Elitism •  Cargo Cults

Page 25: Courageous Software Development Through Craftsmanship

Developers are often frustrated saying "management wants more features, they don't

care about quality"

Page 26: Courageous Software Development Through Craftsmanship

Martin Fowler’s Design Stamina Hypothesis

Reducing internal quality slows us down

Page 27: Courageous Software Development Through Craftsmanship

Qualities of Software Craftsmanship

•  Place importance on skills and development

•  Focus on Quality •  Professionalism / Pride of Work /

Integrity

Page 28: Courageous Software Development Through Craftsmanship

Techniques of Software Craftsmanship

•  Mentoring (sometimes even formalized) •  Deliberate practice - Code katas, etc. •  Pair programming, review, etc. •  Strong testing, Clean Code, TDD, and

other design/quality practices

Page 29: Courageous Software Development Through Craftsmanship

A Source of Courage?

What courageous behaviors would you hope to see from

applying craftsmanship?

Page 30: Courageous Software Development Through Craftsmanship
Page 31: Courageous Software Development Through Craftsmanship
Page 32: Courageous Software Development Through Craftsmanship
Page 33: Courageous Software Development Through Craftsmanship
Page 34: Courageous Software Development Through Craftsmanship

Website/Blog – AgileVelocity.com Twitter - @ericstewart and @Agile_Velocity Upcoming Training: ¨  March 26: Certified Scrum Master Workshop ¨  April 24 – Advanced Product Planning Workshop ¨  May 7 – Cucumber QuickStart Workshop ¨  May 12 – Certified Product Owner Workshop ¨  May 20 – Software Technical Practices Crash Course

Transforming Technology Organizations Copyright © 2014 Agile Velocity, LLC.  All Rights Reserved. AGILE VELOCITY PROPRIETARY

Thanks!