intro to sw craftsmanship
TRANSCRIPT
Introduction to Software Craftsmanship
Philips Healthcare, November 2010 Roy Nitert, Aron van Beurden
Philips Healthcare Best, SW Craftsmanship, November 2010 2
Content SW craftsmanship
• What is craftsmanship?
• Why are we bothered with it?
• Manifesto
• SW Craftsmanship book
• Conclusion
Philips Healthcare Best, SW Craftsmanship, November 2010 3
Strategic Direction Enablers Metrics / KPI’s Hoshins 2010
iXR, R&D Software - One Page Strategy 2010technologies effectively• Encourage craftsmanship., innovations and continuous
learning• Well defined and deployed SW architecture, supporting
Approved: 24-Feb- 2010
Encourage craftsmanship, innovations and continuous learning
Philips Healthcare Best, SW Craftsmanship, November 2010
What is craftsmanship?
A man who practices a craft with great skill.
Skill in an occupation or trade.
The skills to deliver high quality work
A person who practices or is highly skilled in a craft
Philips Healthcare Best, SW Craftsmanship, November 2010
Why are we bothered with it? (1/2)
Craftsmanship is about YOU!
Philips Healthcare Best, SW Craftsmanship, November 2010 6
Strategic Direction Enablers Metrics / KPI’s Hoshins 2010
iXR, R&D Software - One Page Strategy 2010Approved: 24-Feb- 2010
Strategy of SoftwareReach defined targets that exceed historical performance in the
following areas:• Product quality (reliability, maintainability)• Product scope in terms of functionality (application, service,
operations)• Process efficiency in terms of effort distributions (more core /
less appraisal & rework)• Project performance in terms of schedule & budget
Cost of non quality for IT worldwide in 2015
$1.000.000.000.000
Philips Healthcare Best, SW Craftsmanship, November 2010
SW Craftsmanship manifesto
http://manifesto.softwarecraftsmanship.org/
Philips Healthcare Best, SW Craftsmanship, November 2010
Manifesto’s combined
SW engineering
Processes and tools
Comprehensive documentation
Contract negotiation
Following a plan
Agile
Individuals and interactions
Working software
Customer collaboration
Responding to change
SW Craftsmanship
A community of professionals
Well-crafted software
Productive partnerships
Steadily adding value
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (1)
Problem of SW engineering
• Development is not a systematic quantified process
• At best it is an empirical process, because it involves people
• Engineering does not address the social aspects
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (2)
Traditional craft
Technical knowledge
Practiced skill
Aesthetics
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (3)Objective
Obtain mastery over science and engineering so that we can continually refine our craft
Raising the bar
Continually work to improve your skills
Perpetual learning
• encourage participation in conferences • create a learning environment
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (4)Master craftsman
• Leads a team of journeymen and apprentices• Infects the team with enthusiasm and passion for the craft• Has delivered many successful, robust, high-quality applications• Is recognized by users, customers and developers• Is responsible for passing on the craft• Chooses his own team
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (5)Journeyman
• Has worked for several years with a master• Small teams• Coach apprentices• Learn from masters• Spread knowledge between masters• Focused on delivering applications• Does not work without master or other journeyman
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (6)Apprentice
• Contribute to simple tasks• Learn from journeyman• Situated learning• Review work of the master• Progression through demonstrated progress
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (7)Put back pride into SW development
• Sign your work• Take credit• Accountability• Reputation
No licensing/certification
• Craftsmanship is personal• Peer recognition• Peer recommendation
Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (8)Management style
• No horde of average programmers• Small team of good developers
• No detailed instructions or command and control• Facilitating and coordinating
• Knowledge workers• Pay them well (3 times as much as average developers)
Philips Healthcare Best, SW Craftsmanship, November 2010
Concrete examples• Review: Review the code of experienced developers (to other way
around)• DRY: Don’t repeat yourself• Boy scout rule: Leave the campground cleaner than you entered it• Readable code: Always code as if the guy who ends up maintaining
your code will be a violent psychopath who knows where you live• TDD: Test driven development• Automatic build & continuous integration• Apprenticing: find a mentor• Learn: Read, visit conferences, join communities• Exercise: breakable toy, Dojo, Kata, workshops
Philips Healthcare Best, SW Craftsmanship, November 2010
ConclusionCurrently software development quality/profession is poor. And needs improvement.
Master-apprentice model will help to improve the quality/profession.
It is your responsibility to improve quality/profession.
Philips Healthcare Best, SW Craftsmanship, November 2010
Links• McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0201733862. • Martin, Robert C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Addison Wesley. ISBN
0132350882.• Hoover, Dave; Oshineye, Adewale. (2009) Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman.
O'Reilly. ISBN 0596518382.• Hunt, Andrew; Thomas, Dave (1999). The Pragmatic Programmer: From Journeyman to Master. ISBN 020161622X• Manifesto: http://manifesto.softwarecraftsmanship.org/• Wiki: http://en.wikipedia.org/wiki/Software_Craftsmanship• http://www.slideshare.net/urilavi/software-craftsmanship-1-meeting?src=related_normal&rel=4807795• http://www.slideshare.net/urilavi/software-craftsmanship-2• http://www.slideshare.net/urilavi/software-craftsmanship-3• http://www.slideshare.net/urilavi/software-craftsmanship-4• http://www.slideshare.net/bcoder/friday-final-test?src=related_normal&rel=4336926• http://www.slideshare.net/bcoder/it-is-a-sunny-day?src=related_normal&rel=3550699• http://www.slideshare.net/goeran/the-software-craftsman-2nd-edition-3550699?src=related_normal&rel=4010385• http://www.slideshare.net/goeran/software-craftsmanship-ntnu?src=related_normal&rel=3323035• http://www.slideshare.net/skillsmatter/coreyhaines?src=related_normal&rel=4439707• http://www.slideshare.net/giordano/better-software-developers-3989933• http://www.slideshare.net/CoryFoy/growing-and-fostering-software-craftsmanship• http://www.slideshare.net/DocOnDev/training-software-professionals-just-what-the-doctor-ordered• http://www.slideshare.net/DocOnDev/take-control-of-your-development-career• http://www.slideshare.net/henrydjacob/craftsmanship-the-meaning-of-life• http://www.slideshare.net/hebel/clean-code
Philips Healthcare Best, SW Craftsmanship, November 2010 20