SlideShare una empresa de Scribd logo
1 de 50
The Software Craftsman Gøran Hansen Aspiring Software Craftsman Senior Consultant @ Capgemini http://goeran.no mail@goeran.no  http://twitter.com/goeran
Outline Why do we need Software Craftsmen? Characterization of a Software Craftsman Manifesto of Software Craftsmanship How 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 craftsmanship Only few people pursue craftsmanship” ,[object Object],http://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
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 Craftsman Will “Do It Right” Take responsibility Take pride in his work Signs his work Continuous learner Practice deliberately Write code The right attitude  Contribute to the community
How to become a Software Craftsman…
Tips from The Pragmatic Programmer: Care about your craft Think about your work
Start learning
Take responsibility for your professional career and apply what you’ve learned
Start to Practice Code Dojos Code Katas Pair programming with other fellow Craftsmen
What to practice? TDD – can be applied to all languages Functional, dynamic and statically typed languages – learn the different paradigms Refactoring – learn how to change your code efficiently Design patterns Tools (ReSharper, Visual Studio, Ndepend, Pex etc) Frameworks (Nhibernate, Mongo db etc)
A special thanks to Corey Haines, for letting me using his slides. http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-world http://www.coreyhaines.com
The Software Craftsman Gøran Hansen Aspiring Software Craftsman Senior Consultant @ Capgemini http://goeran.no mail@goeran.no  http://twitter.com/goeran

Más contenido relacionado

La actualidad más candente

10x programmers - What lies beneath
10x programmers - What lies beneath10x programmers - What lies beneath
10x programmers - What lies beneathHrishikesh Karekar
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projectsbriley1
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobutionbownyboy
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsRehgan Avon
 
Optivem Framework
Optivem FrameworkOptivem Framework
Optivem FrameworkOptivem
 
Open Source Software Development Practices that Works
Open Source Software Development Practices that WorksOpen Source Software Development Practices that Works
Open Source Software Development Practices that WorksChoong Ping Teo
 
All Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAll Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAggregage
 
Taming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchMike Clement
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterTasktop
 
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015][XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]Agile đây Vietnam
 
Dave West (Tasktop Technologies) - Wizard of Oz
Dave West (Tasktop Technologies) - Wizard of OzDave West (Tasktop Technologies) - Wizard of Oz
Dave West (Tasktop Technologies) - Wizard of OzTasktop
 
Phoenix User Group Slides
Phoenix User Group SlidesPhoenix User Group Slides
Phoenix User Group Slidesagilebuddy
 
How agile is rails
 How agile is rails How agile is rails
How agile is railsJosé Mota
 
Moving Fast with XP
Moving Fast with XPMoving Fast with XP
Moving Fast with XPMike Mazur
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentSven Peters
 
Practical Programming It Awareness Advocacy
Practical Programming   It Awareness AdvocacyPractical Programming   It Awareness Advocacy
Practical Programming It Awareness AdvocacyMarie Claire Ponsaran
 
Presentation software testing
Presentation software testingPresentation software testing
Presentation software testingcegonsoft1999
 

La actualidad más candente (20)

10x programmers - What lies beneath
10x programmers - What lies beneath10x programmers - What lies beneath
10x programmers - What lies beneath
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobution
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
 
Optivem Framework
Optivem FrameworkOptivem Framework
Optivem Framework
 
Open Source Software Development Practices that Works
Open Source Software Development Practices that WorksOpen Source Software Development Practices that Works
Open Source Software Development Practices that Works
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
All Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through ResearchAll Method, No Madness: Guiding Agile Teams Through Research
All Method, No Madness: Guiding Agile Teams Through Research
 
Taming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touch
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it better
 
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015][XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
[XPday.vn] Legacy code workshop (at) [XP Day Vietnam 2015]
 
Dave West (Tasktop Technologies) - Wizard of Oz
Dave West (Tasktop Technologies) - Wizard of OzDave West (Tasktop Technologies) - Wizard of Oz
Dave West (Tasktop Technologies) - Wizard of Oz
 
Phoenix User Group Slides
Phoenix User Group SlidesPhoenix User Group Slides
Phoenix User Group Slides
 
How agile is rails
 How agile is rails How agile is rails
How agile is rails
 
Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
 
Moving Fast with XP
Moving Fast with XPMoving Fast with XP
Moving Fast with XP
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
 
Practical Programming It Awareness Advocacy
Practical Programming   It Awareness AdvocacyPractical Programming   It Awareness Advocacy
Practical Programming It Awareness Advocacy
 
Presentation software testing
Presentation software testingPresentation software testing
Presentation software testing
 

Destacado

Apprenticeship Patterns
Apprenticeship PatternsApprenticeship Patterns
Apprenticeship PatternsArturo Herrero
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningVitaliy Kulikov
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup finiSkills Matter
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsLemi Orhan Ergin
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software CraftsmanshipSandro Mancuso
 

Destacado (6)

Apprenticeship Patterns
Apprenticeship PatternsApprenticeship Patterns
Apprenticeship Patterns
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
 
Coreyhaines
CoreyhainesCoreyhaines
Coreyhaines
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup fini
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 

Similar a The Software Craftsman

The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)goeran
 
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...Skills Matter
 
Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Codemotion
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschapMartijn Dashorst
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developerjeetendra mandal
 
WinSmart Technologies
WinSmart TechnologiesWinSmart Technologies
WinSmart Technologiesbijunairk
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Panu Kalliokoski, Solita “Why Custom Software Should Be Open Source” - Mindt...
Panu Kalliokoski, Solita  “Why Custom Software Should Be Open Source” - Mindt...Panu Kalliokoski, Solita  “Why Custom Software Should Be Open Source” - Mindt...
Panu Kalliokoski, Solita “Why Custom Software Should Be Open Source” - Mindt...Mindtrek
 
10 steps to becoming a professional software engineer
10 steps to becoming a professional software engineer10 steps to becoming a professional software engineer
10 steps to becoming a professional software engineerJimmy Sorensen
 
You call yourself a Senior Developer?
You call yourself a Senior Developer?You call yourself a Senior Developer?
You call yourself a Senior Developer?Antonio Peric-Mazar
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designsdavis6b
 
How to design a 'Good' Embedded Software?
How to design a 'Good' Embedded Software?How to design a 'Good' Embedded Software?
How to design a 'Good' Embedded Software?apurvaprabhakar
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Why do lazy developers write beautiful code?
Why do lazy developers write beautiful code?Why do lazy developers write beautiful code?
Why do lazy developers write beautiful code?Javier Arias Losada
 
Fearless IT Outsourcing
Fearless IT OutsourcingFearless IT Outsourcing
Fearless IT OutsourcingAndy Hilliard
 
Originate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsOriginate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsRob Meadows
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012jonathw
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumChristian Hujer
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer UsefulI Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer UsefulMaaret Pyhäjärvi
 

Similar a The Software Craftsman (20)

The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)
 
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
Sandro Mancuso and David Green: London Software Craftsmanship Community: What...
 
Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...Gluing it all together: How teams can build enterprise JavaScript application...
Gluing it all together: How teams can build enterprise JavaScript application...
 
Vakmanschap is meesterschap
Vakmanschap is meesterschapVakmanschap is meesterschap
Vakmanschap is meesterschap
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
WinSmart Technologies
WinSmart TechnologiesWinSmart Technologies
WinSmart Technologies
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Panu Kalliokoski, Solita “Why Custom Software Should Be Open Source” - Mindt...
Panu Kalliokoski, Solita  “Why Custom Software Should Be Open Source” - Mindt...Panu Kalliokoski, Solita  “Why Custom Software Should Be Open Source” - Mindt...
Panu Kalliokoski, Solita “Why Custom Software Should Be Open Source” - Mindt...
 
10 steps to becoming a professional software engineer
10 steps to becoming a professional software engineer10 steps to becoming a professional software engineer
10 steps to becoming a professional software engineer
 
You call yourself a Senior Developer?
You call yourself a Senior Developer?You call yourself a Senior Developer?
You call yourself a Senior Developer?
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction design
 
How to design a 'Good' Embedded Software?
How to design a 'Good' Embedded Software?How to design a 'Good' Embedded Software?
How to design a 'Good' Embedded Software?
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Why do lazy developers write beautiful code?
Why do lazy developers write beautiful code?Why do lazy developers write beautiful code?
Why do lazy developers write beautiful code?
 
Fearless IT Outsourcing
Fearless IT OutsourcingFearless IT Outsourcing
Fearless IT Outsourcing
 
Originate - Think In Hours Not Sprints
Originate - Think In Hours Not SprintsOriginate - Think In Hours Not Sprints
Originate - Think In Hours Not Sprints
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond Scrum
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer UsefulI Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
 

Último

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Último (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

The Software Craftsman

  • 1. The Software Craftsman Gøran Hansen Aspiring Software Craftsman Senior Consultant @ Capgemini http://goeran.no mail@goeran.no http://twitter.com/goeran
  • 2. Outline Why do we need Software Craftsmen? Characterization of a Software Craftsman Manifesto of Software Craftsmanship How 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.
  • 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”!
  • 13. ”Get It Done” vs. ”Get It Right”
  • 22.
  • 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
  • 32. He signs his work
  • 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 Craftsman Will “Do It Right” Take responsibility Take pride in his work Signs his work Continuous learner Practice deliberately Write code The right attitude Contribute to the community
  • 42.
  • 43. How to become a Software Craftsman…
  • 44. Tips from The Pragmatic Programmer: Care about your craft Think about your work
  • 46. Take responsibility for your professional career and apply what you’ve learned
  • 47. Start to Practice Code Dojos Code Katas Pair programming with other fellow Craftsmen
  • 48. What to practice? TDD – can be applied to all languages Functional, dynamic and statically typed languages – learn the different paradigms Refactoring – learn how to change your code efficiently Design patterns Tools (ReSharper, Visual Studio, Ndepend, Pex etc) Frameworks (Nhibernate, Mongo db etc)
  • 49. A special thanks to Corey Haines, for letting me using his slides. http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-world http://www.coreyhaines.com
  • 50. The Software Craftsman Gøran Hansen Aspiring Software Craftsman Senior Consultant @ Capgemini http://goeran.no mail@goeran.no http://twitter.com/goeran