Intro to SW craftsmanship

Post on 16-Apr-2017

2.219 views 2 download

Transcript of Intro to SW craftsmanship

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