2. 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
3. Philips Healthcare Best, SW Craftsmanship, November 2010 3
Strategic Direction Enablers Metrics / KPI’s Hoshins 2010
iXR, R&D Software - One Page Strategy 2010
technologies effectively
•Encourage craftsmanship., innovations and continuous
learning
•Well defined and deployed SW architecture, supporting
Approved: 24-Feb- 2010
Encourage craftsmanship,
innovations and continuous learning
4. 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
5. Philips Healthcare Best, SW Craftsmanship, November 2010
Why are we bothered with it? (1/2)
Craftsmanship
is about YOU!
6. Philips Healthcare Best, SW Craftsmanship, November 2010 6
Strategic Direction Enablers Metrics / KPI’s Hoshins 2010
iXR, R&D Software - One Page Strategy 2010
Approved: 24-Feb- 2010
Strategy of Software
Reach 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
8. 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
9. 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
10. Philips Healthcare Best, SW Craftsmanship, November 2010
Software Craftsmanship: The New Imperative (2)
Traditional craft
Technical knowledge
Practiced skill
Aesthetics
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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)
17. 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
18. Philips Healthcare Best, SW Craftsmanship, November 2010
Conclusion
Currently 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.
19. 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
At the beginning of 2010 the new OPS was presented. While reading the OPS I saw the sentence “Encourage craftsmanship, innovations and continuous learning”.
I start wondering what craftsmanship means? Why is craftsmanship so important to our management? What do they want to achieve with this by putting it on the OPS?
A lot of questions and no direct answers. A lot of people have ideas about craftsmanship, however, there are a lot of different ideas….
So, lets think about craftsmanship for a while. What do you think it is about. (have group discussion)
Title
Why are we telling you about this?
If you look at the OPS (pasted in this sheet) there are a lot of ways described how we can achieve our goals. They all affect you work, hopefully in a positive manner!
(Click)
However, I think craftsmanship is something about us as developers. It is really about you
(Click)
The others are items on process or architectural level. Not saying that these are less important…
I believe craftsmanship is about you.
It’s about you taking your profession seriously
It’s about you improving your skills
It’s about you standing for your quality
It’s about you using the black instead of the yellow-green wire
Why is this so important to Philips => next slide.
One of our main focus points for this year (and the coming years) is to improve the product quality. I’m sure craftsmanship can help in this area.
The cost of non-quality for IT worldwide is estimated at the end of 2010 to hit $500 billion. The projection is to hit $1 trillion by 2015!
(click)
If we say that only 10% of it is due to poor coding practice then we are looking at $100 billion. This is more that the complete year’s salary for every developer on earth!
For this several initiatives have been started. However, for craftsmanship is still unclear what concrete actions we should do.
After looking around on the craftsmanship subject, I found something about a software craftsmanship manifesto. Also, there is already a community of software craftsman. About this manifesto/community and their ideas Roy will tell you about.
$1 Trillion by 2015
On September 10, 2010, Gartner Group published a comprehensive study of IT Debt worldwide. The debt is estimated at $500 billion at the end of 2010 with a projection to hit $1 trillion by 2015. Many discussions on software quality meander their way into a debate about the lack of need for rigor when lives are not at stake. Given worldwide IT Debt at $1 trillion, even if only 10 percent of it is from code, we are looking at $100 billion due to poor coding practices. This is somewhere in the range of $14 for each living human. This is more than a complete year's salary for every developer on earth. While we may not be able to draw a straight line from this debt to the loss of human lives, I've no doubt the connection exists.Our profession is failing to deliver. We must do something.