SlideShare a Scribd company logo
The Software CraftsmanGøran HansenAspiring Software Craftsman Senior Consultant @ Capgeminihttp://goeran.nomail@goeran.no http://twitter.com/goeran
OutlineWhy do we need Software Craftsmen?Characterization of a Software CraftsmanManifesto of Software CraftsmanshipHow to become a Software Craftsman
Why do we need Software Craftsmen?
“The best processes in the world will not save a project from failure if the people involved do not have the necessary skills to execute the process; conversely, really good developers can make any process work” – Pete McBreen, Software Craftsmanship: The New Imperative
The Total Costofowning a Mess“You have probably been slowed down by messy code. The degree of the slowdown can be significant. Over the span of a year or two, teams that were moving very fast at the beginning of a project can find themselves moving at a snail's pace.”“Over time the mess becomes so big and so deep and so tall, they can not clean it up. There is no way at all”“As the mess builds, the productivity of the team continues to decrease, asymptotically approaching zero. As productivity decreases, management does the only thing they can; they add more staff to the project in hopes of increasing productivity.”“Furthermore, they, and everyone else on the team, are under horrific pressure to increase productivity. So they all make more and more messes, driving the productivity ever further toward zero”- Robert C. Martin, Clean Code
How Scrum Can Fail
“Agilists assume craftsmanshipOnly few people pursue craftsmanship”JurgenAppelohttp://www.noop.nl/2009/05/agile-wrongfully-assumes-craftsmanship.html
Why do we need Software Craftsmen…?
… Because crappy code amplify the risk of failure – even for agile projects!
When do we write crappy code?
Pressure
When we have to “Get It Done”!
”Get It Done”vs.”Get It Right”
An idea
ConstantPressure
Every Week
Pressure
Every Month
Pressure
Every Year
Pressure
The Software Craftsman
What differentiate between making the choice of “Get It Done” vs. “Get It Right”?
Skill deficiency
A Software Craftsman will choose “Get It Right”
Because he has the skills to do so…
Not only will he “Dot It Right”, he will also do it for the right reasons…
The characterization of a Software Craftsman
He will “Do It Right” – also under pressure
He takes responsibility
He takes pride in his work. Both the end product and the process towards it
He signs his work
“Software Craftsmanship is all about putting responsibility and pride back into the software development process. As Hunt and Thomas (The Pragmatic Programmer) state, we need to start ‘signing our work’ again, just as other craftsmen do” – Pete McBreen, Software Craftsmanship: The New Imperative
He is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and tools can refine him as a Software Craftsman
“An investment in knowledge always pays the best interest”- Benjamin Franklin
He practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work
He writes code
“Knowledge is not the same as having the skills and practical ability to create software” – Pete McBreen, Software Craftsmanship: The New Imperative
He has the right attitude towards Software Development
He contribute to the community
Characterization of a Software CraftsmanWill “Do It Right”Take responsibilityTake pride in his workSigns his workContinuous learnerPractice deliberatelyWrite codeThe right attitude Contribute to the community
The Software Craftsman
How to become a Software Craftsman…
Tips from The Pragmatic Programmer:Care about your craftThink about your work
Start learning
Take responsibility for your professional career and apply what you’ve learned
Start to PracticeCode DojosCode KatasPair programming with other fellow Craftsmen
What to practice?TDD – can be applied to all languagesFunctional, dynamic and statically typed languages – learn the different paradigmsRefactoring – learn how to change your code efficientlyDesign patternsTools (ReSharper, Visual Studio, Ndepend, Pex etc)Frameworks (Nhibernate, Mongo db etc)
A special thanks toCorey Haines, for letting me using his slides.http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-worldhttp://www.coreyhaines.com
The Software CraftsmanGøran HansenAspiring Software Craftsman Senior Consultant @ Capgeminihttp://goeran.nomail@goeran.no http://twitter.com/goeran

More Related Content

PPTX
Software Craftsmanship @ Ntnu
goeran
 
PDF
Software Craftsmanship vs Software Engineering (Lightning Talk)
Andy Maleh
 
PPTX
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
PPTX
Software Craftsmanship VS Software Engineering
Andy Maleh
 
PPT
Pair Programming: overview and concepts
Lior Kirshner-Shalom
 
PPT
Extreme & pair programming Slides ppt
Mr SMAK
 
KEY
Modern Continuous Software Delivery
Martin Logan
 
Software Craftsmanship @ Ntnu
goeran
 
Software Craftsmanship vs Software Engineering (Lightning Talk)
Andy Maleh
 
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
Software Craftsmanship VS Software Engineering
Andy Maleh
 
Pair Programming: overview and concepts
Lior Kirshner-Shalom
 
Extreme & pair programming Slides ppt
Mr SMAK
 
Modern Continuous Software Delivery
Martin Logan
 

What's hot (20)

PPTX
10x programmers - What lies beneath
Hrishikesh Karekar
 
PPT
Planning Agile Projects
briley1
 
PPTX
Quality not-speed-for-distrobution
bownyboy
 
PDF
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Rehgan Avon
 
PDF
Optivem Framework
Optivem
 
PDF
Open Source Software Development Practices that Works
Choong Ping Teo
 
PPTX
Lean Software Development
Cristian Andreica
 
PDF
All Method, No Madness: Guiding Agile Teams Through Research
Aggregage
 
PPTX
Taming scary production code that nobody wants to touch
Mike Clement
 
PDF
Software Developer Productivity: What we know and how to make it better
Tasktop
 
PDF
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
Agile đây Vietnam
 
PPTX
Dave West (Tasktop Technologies) - Wizard of Oz
Tasktop
 
PPT
Phoenix User Group Slides
agilebuddy
 
KEY
How agile is rails
José Mota
 
PPTX
Lean Responsive
Josh Jeffryes
 
PPTX
Moving Fast with XP
Mike Mazur
 
PPT
What every developer can learn from startups
Oleg Podsechin
 
PDF
How To Do Kick-Ass Software Development
Sven Peters
 
PPT
Practical Programming It Awareness Advocacy
Marie Claire Ponsaran
 
PPTX
Presentation software testing
cegonsoft1999
 
10x programmers - What lies beneath
Hrishikesh Karekar
 
Planning Agile Projects
briley1
 
Quality not-speed-for-distrobution
bownyboy
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Rehgan Avon
 
Optivem Framework
Optivem
 
Open Source Software Development Practices that Works
Choong Ping Teo
 
Lean Software Development
Cristian Andreica
 
All Method, No Madness: Guiding Agile Teams Through Research
Aggregage
 
Taming scary production code that nobody wants to touch
Mike Clement
 
Software Developer Productivity: What we know and how to make it better
Tasktop
 
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
Agile đây Vietnam
 
Dave West (Tasktop Technologies) - Wizard of Oz
Tasktop
 
Phoenix User Group Slides
agilebuddy
 
How agile is rails
José Mota
 
Lean Responsive
Josh Jeffryes
 
Moving Fast with XP
Mike Mazur
 
What every developer can learn from startups
Oleg Podsechin
 
How To Do Kick-Ass Software Development
Sven Peters
 
Practical Programming It Awareness Advocacy
Marie Claire Ponsaran
 
Presentation software testing
cegonsoft1999
 
Ad

Viewers also liked (6)

PDF
Apprenticeship Patterns
Arturo Herrero
 
PDF
The Way of The Software Craftsman # Part One: The Beginning
Vitaliy Kulikov
 
PDF
Coreyhaines
Skills Matter
 
PDF
Acceptance startup fini
Skills Matter
 
PDF
Coderetreat - Practice to Master Your Crafts
Lemi Orhan Ergin
 
PPTX
Software Craftsmanship
Sandro Mancuso
 
Apprenticeship Patterns
Arturo Herrero
 
The Way of The Software Craftsman # Part One: The Beginning
Vitaliy Kulikov
 
Coreyhaines
Skills Matter
 
Acceptance startup fini
Skills Matter
 
Coderetreat - Practice to Master Your Crafts
Lemi Orhan Ergin
 
Software Craftsmanship
Sandro Mancuso
 
Ad

Similar to The Software Craftsman (20)

PPTX
The Software Craftsman (2nd edition)
goeran
 
PPTX
CF Camp 2013 Software Craftsmanship for CFML Developers
Kev McCabe
 
PPT
Software craftsmanshippresentation
Meagan Waller
 
PDF
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Mozaic Works
 
PDF
Software Craftsmanship
Pallav Kumar
 
PPTX
Software Craftsmanship
Rajesh Kumar
 
PPT
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Skills Matter
 
PPTX
Introduction to Software Craftsmanship
Rajat Singla
 
PDF
Software craftsmanship - Imperative or Hype
SUGSA
 
PDF
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
PPT
Software Craftsmanship - JAX London 2011
Sandro Mancuso
 
PPTX
Cf objective2014 software-craftsmanship
ColdFusionConference
 
PPTX
Cf objective2014 software-craftsmanship
Kev McCabe
 
PDF
It is a sunny day
bcoder
 
PDF
Friday final test
bcoder
 
PDF
Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG
Jose Casal-Gimenez FBCS CITP
 
PPTX
Software Craftsmanship
Mike Clement
 
PDF
Agile Engineering and Software Craftsmanship
Excella
 
PDF
Agile Engineering and Software Craftsmanship
DC Agile Engineering Conference
 
PDF
You Are Not a Craftsman
Alan Stevens
 
The Software Craftsman (2nd edition)
goeran
 
CF Camp 2013 Software Craftsmanship for CFML Developers
Kev McCabe
 
Software craftsmanshippresentation
Meagan Waller
 
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Mozaic Works
 
Software Craftsmanship
Pallav Kumar
 
Software Craftsmanship
Rajesh Kumar
 
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Skills Matter
 
Introduction to Software Craftsmanship
Rajat Singla
 
Software craftsmanship - Imperative or Hype
SUGSA
 
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
Software Craftsmanship - JAX London 2011
Sandro Mancuso
 
Cf objective2014 software-craftsmanship
ColdFusionConference
 
Cf objective2014 software-craftsmanship
Kev McCabe
 
It is a sunny day
bcoder
 
Friday final test
bcoder
 
Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG
Jose Casal-Gimenez FBCS CITP
 
Software Craftsmanship
Mike Clement
 
Agile Engineering and Software Craftsmanship
Excella
 
Agile Engineering and Software Craftsmanship
DC Agile Engineering Conference
 
You Are Not a Craftsman
Alan Stevens
 

Recently uploaded (20)

PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
The Future of Artificial Intelligence (AI)
Mukul
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Doc9.....................................
SofiaCollazos
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 

The Software Craftsman

  • 1. The Software CraftsmanGøran HansenAspiring Software Craftsman Senior Consultant @ Capgeminihttp://[email protected] http://twitter.com/goeran
  • 2. OutlineWhy do we need Software Craftsmen?Characterization of a Software CraftsmanManifesto of Software CraftsmanshipHow to become a Software Craftsman
  • 3. Why do we need Software Craftsmen?
  • 4. “The best processes in the world will not save a project from failure if the people involved do not have the necessary skills to execute the process; conversely, really good developers can make any process work” – Pete McBreen, Software Craftsmanship: The New Imperative
  • 5. The Total Costofowning a Mess“You have probably been slowed down by messy code. The degree of the slowdown can be significant. Over the span of a year or two, teams that were moving very fast at the beginning of a project can find themselves moving at a snail's pace.”“Over time the mess becomes so big and so deep and so tall, they can not clean it up. There is no way at all”“As the mess builds, the productivity of the team continues to decrease, asymptotically approaching zero. As productivity decreases, management does the only thing they can; they add more staff to the project in hopes of increasing productivity.”“Furthermore, they, and everyone else on the team, are under horrific pressure to increase productivity. So they all make more and more messes, driving the productivity ever further toward zero”- Robert C. Martin, Clean Code
  • 7. “Agilists assume craftsmanshipOnly few people pursue craftsmanship”JurgenAppelohttp://www.noop.nl/2009/05/agile-wrongfully-assumes-craftsmanship.html
  • 8. Why do we need Software Craftsmen…?
  • 9. … Because crappy code amplify the risk of failure – even for agile projects!
  • 10. When do we write crappy code?
  • 12. When we have to “Get It Done”!
  • 23. What differentiate between making the choice of “Get It Done” vs. “Get It Right”?
  • 25. A Software Craftsman will choose “Get It Right”
  • 26. Because he has the skills to do so…
  • 27. Not only will he “Dot It Right”, he will also do it for the right reasons…
  • 28. The characterization of a Software Craftsman
  • 29. He will “Do It Right” – also under pressure
  • 31. He takes pride in his work. Both the end product and the process towards it
  • 33. “Software Craftsmanship is all about putting responsibility and pride back into the software development process. As Hunt and Thomas (The Pragmatic Programmer) state, we need to start ‘signing our work’ again, just as other craftsmen do” – Pete McBreen, Software Craftsmanship: The New Imperative
  • 34. He is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and tools can refine him as a Software Craftsman
  • 35. “An investment in knowledge always pays the best interest”- Benjamin Franklin
  • 36. He practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work
  • 38. “Knowledge is not the same as having the skills and practical ability to create software” – Pete McBreen, Software Craftsmanship: The New Imperative
  • 39. He has the right attitude towards Software Development
  • 40. He contribute to the community
  • 41. Characterization of a Software CraftsmanWill “Do It Right”Take responsibilityTake pride in his workSigns his workContinuous learnerPractice deliberatelyWrite codeThe right attitude Contribute to the community
  • 43. How to become a Software Craftsman…
  • 44. Tips from The Pragmatic Programmer:Care about your craftThink about your work
  • 46. Take responsibility for your professional career and apply what you’ve learned
  • 47. Start to PracticeCode DojosCode KatasPair programming with other fellow Craftsmen
  • 48. What to practice?TDD – can be applied to all languagesFunctional, dynamic and statically typed languages – learn the different paradigmsRefactoring – learn how to change your code efficientlyDesign patternsTools (ReSharper, Visual Studio, Ndepend, Pex etc)Frameworks (Nhibernate, Mongo db etc)
  • 49. A special thanks toCorey Haines, for letting me using his slides.http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-worldhttp://www.coreyhaines.com
  • 50. The Software CraftsmanGøran HansenAspiring Software Craftsman Senior Consultant @ Capgeminihttp://[email protected] http://twitter.com/goeran