SlideShare a Scribd company logo
1 of 41
Software Craftsmanship
                           for better software




                      Phillip Oertel @ EuRuKo 2009

12.05.2009 (Di)
Overview

                  • Where does this term come from?
                  • How does it help us?
                  • What does it demand?


12.05.2009 (Di)
We‘ve compared
                   ourselves to ...


12.05.2009 (Di)
artists



12.05.2009 (Di)
musicians



12.05.2009 (Di)
writers



12.05.2009 (Di)
architects



12.05.2009 (Di)
engineers



12.05.2009 (Di)
We are professional
                  software developers.


12.05.2009 (Di)
craftsmen



12.05.2009 (Di)
12.05.2009 (Di)
schedule
                  requirements
                   code quality


12.05.2009 (Di)
It‘s our fault.



12.05.2009 (Di)
How does Software
                  Craftsmanship fix this?


12.05.2009 (Di)
Values



12.05.2009 (Di)
Responsibility



12.05.2009 (Di)
Practise




12.05.2009 (Di)
Discipline



12.05.2009 (Di)
Practises



12.05.2009 (Di)
Iterative
                  development


12.05.2009 (Di)
Automated tests



12.05.2009 (Di)
KISS
                  keep it simple, stupid.




12.05.2009 (Di)
Close customer
                   collaboration


12.05.2009 (Di)
Continuous small
                   improvements


12.05.2009 (Di)
12.05.2009 (Di)
Code for
                  other
                  humans,
                  not
                  machines.
12.05.2009 (Di)
Think of code
                  in flux.


12.05.2009 (Di)
Refactoring



12.05.2009 (Di)
Hard, Basic skills



12.05.2009 (Di)
Comments

                               Classes             Formatting
                  Unit Tests
                               Meaningful Names

                                                   Systems
                                  Functions

        Error Handling                          Objects and Data
                                                   Structures

                      Concurrency         Boundaries
12.05.2009 (Di)
Functions




12.05.2009 (Di)
Functions
                  •   small                      •   prefer exceptions

                  •   do one thing               •   don‘t repeat yourself

                  •   one level of abstraction

                  •   use descriptive names

                  •   function arguments

                  •   have no side effects




12.05.2009 (Di)
How we learn



12.05.2009 (Di)
12.05.2009 (Di)
learn like craftsmen:

                       apprentice
                      journeyman
                         master

12.05.2009 (Di)
we loose masters.



12.05.2009 (Di)
values and skills
                  are not enough.


12.05.2009 (Di)
12.05.2009 (Di)
12.05.2009 (Di)
some books
                  • Clean Code, Robert C. Martin, 2008
                  • The Pragmatic Programmer, Andy Hunt, Dave
                    Thomas, 1999
                  • Refactoring, Martin Fowler, 1999
                  • Software Craftsmanship, Pete McBreen, 2002


12.05.2009 (Di)
photo credits
                  •   Musician: http://www.flickr.com/photos/tommarcello/2250681391/

                  •   Fountain pen: http://www.flickr.com/photos/brightmeadow/281659324/

                  •   Architecture model: http://www.flickr.com/photos/blahflowers/2613241979/

                  •   F1 Engineers: http://www.flickr.com/photos/7480659@N06/2295266851/

                  •   Craftsman: http://www.flickr.com/photos/andreasej/3120849218/

                  •   Doctor: http://www.flickr.com/photos/orcoo/345583754/

                  •   Monkeying around: http://www.flickr.com/photos/practicalowl/661094024/




12.05.2009 (Di)

More Related Content

Viewers also liked

Digital Mediaina state
Digital Mediaina stateDigital Mediaina state
Digital Mediaina state
Sales Hub Pro
 
Recursos Per Les Llengues March 8th 2010
Recursos Per Les Llengues March 8th 2010Recursos Per Les Llengues March 8th 2010
Recursos Per Les Llengues March 8th 2010
Arnau Cerdà
 
HOT N´COLD
HOT N´COLD HOT N´COLD
HOT N´COLD
Sonia
 
Las realidades sociales_de_ivan
Las realidades sociales_de_ivanLas realidades sociales_de_ivan
Las realidades sociales_de_ivan
serveduc
 
Reinforcement unit 7
Reinforcement unit 7Reinforcement unit 7
Reinforcement unit 7
Sonia
 

Viewers also liked (20)

The future of_antivirals___broad_spectrum.15
The future of_antivirals___broad_spectrum.15The future of_antivirals___broad_spectrum.15
The future of_antivirals___broad_spectrum.15
 
5min setup of Salesforce files connect
5min setup of Salesforce files connect5min setup of Salesforce files connect
5min setup of Salesforce files connect
 
Visual Marketing
Visual MarketingVisual Marketing
Visual Marketing
 
Digital Mediaina state
Digital Mediaina stateDigital Mediaina state
Digital Mediaina state
 
Recursos Per Les Llengues March 8th 2010
Recursos Per Les Llengues March 8th 2010Recursos Per Les Llengues March 8th 2010
Recursos Per Les Llengues March 8th 2010
 
ZŠ a MŠ Brezovica
ZŠ a MŠ BrezovicaZŠ a MŠ Brezovica
ZŠ a MŠ Brezovica
 
Clin infect dis. 2015-o'neill-1871-7
Clin infect dis. 2015-o'neill-1871-7Clin infect dis. 2015-o'neill-1871-7
Clin infect dis. 2015-o'neill-1871-7
 
Hydrogen Progress, Priorities and Next Steps (Sept. 15)
Hydrogen Progress, Priorities and Next Steps (Sept. 15)Hydrogen Progress, Priorities and Next Steps (Sept. 15)
Hydrogen Progress, Priorities and Next Steps (Sept. 15)
 
Itgrammar
ItgrammarItgrammar
Itgrammar
 
Developing the startup (in Russian)
Developing the startup (in Russian)Developing the startup (in Russian)
Developing the startup (in Russian)
 
HOT N´COLD
HOT N´COLD HOT N´COLD
HOT N´COLD
 
Las realidades sociales_de_ivan
Las realidades sociales_de_ivanLas realidades sociales_de_ivan
Las realidades sociales_de_ivan
 
ZŠ a MŠ Nečtiny
ZŠ a MŠ NečtinyZŠ a MŠ Nečtiny
ZŠ a MŠ Nečtiny
 
ACTG 5273
ACTG 5273ACTG 5273
ACTG 5273
 
Heather Taylor - #smib presentation
Heather Taylor - #smib presentation Heather Taylor - #smib presentation
Heather Taylor - #smib presentation
 
Reinforcement unit 7
Reinforcement unit 7Reinforcement unit 7
Reinforcement unit 7
 
Guida all'Email Marketing
Guida all'Email MarketingGuida all'Email Marketing
Guida all'Email Marketing
 
Truvada kaletra o raltegravir pr ep
Truvada kaletra o raltegravir pr epTruvada kaletra o raltegravir pr ep
Truvada kaletra o raltegravir pr ep
 
¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?
 
Geotrails
GeotrailsGeotrails
Geotrails
 

Similar to Euruko 2009 - Software Craftsmanship

Aras and T-Systems: Supplier Management
Aras and T-Systems: Supplier ManagementAras and T-Systems: Supplier Management
Aras and T-Systems: Supplier Management
Aras
 
Practical Groovy Domain-Specific Languages
Practical Groovy Domain-Specific LanguagesPractical Groovy Domain-Specific Languages
Practical Groovy Domain-Specific Languages
Guillaume Laforge
 
Gluecon miller horizon
Gluecon miller horizonGluecon miller horizon
Gluecon miller horizon
Mike Miller
 
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
John Head
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Marco Brambilla
 

Similar to Euruko 2009 - Software Craftsmanship (20)

Sig A&D - Documentation And Communication
Sig A&D - Documentation And CommunicationSig A&D - Documentation And Communication
Sig A&D - Documentation And Communication
 
Feedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLPFeedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLP
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Design Types
Design TypesDesign Types
Design Types
 
Aras and T-Systems: Supplier Management
Aras and T-Systems: Supplier ManagementAras and T-Systems: Supplier Management
Aras and T-Systems: Supplier Management
 
Bern.jb
Bern.jbBern.jb
Bern.jb
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)
 
Successful Teams are Test-Driven Teams
Successful Teams are Test-Driven TeamsSuccessful Teams are Test-Driven Teams
Successful Teams are Test-Driven Teams
 
Practical Groovy Domain-Specific Languages
Practical Groovy Domain-Specific LanguagesPractical Groovy Domain-Specific Languages
Practical Groovy Domain-Specific Languages
 
Gluecon miller horizon
Gluecon miller horizonGluecon miller horizon
Gluecon miller horizon
 
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
Master Class: Integration in the world of Social Business (Lotusphere2012 JMP...
 
Fabio Sergio: Design Thinking for the Future
Fabio Sergio: Design Thinking for the FutureFabio Sergio: Design Thinking for the Future
Fabio Sergio: Design Thinking for the Future
 
Homework9
Homework9Homework9
Homework9
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
 
Advancing UX in Your Organization (TorCHI Talk - December 12, 2013)
Advancing UX in Your Organization (TorCHI Talk - December 12, 2013)Advancing UX in Your Organization (TorCHI Talk - December 12, 2013)
Advancing UX in Your Organization (TorCHI Talk - December 12, 2013)
 
Introducing Immutant
Introducing Immutant Introducing Immutant
Introducing Immutant
 
Notes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop MapreduceNotes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop Mapreduce
 
Hadoop.mapreduce
Hadoop.mapreduceHadoop.mapreduce
Hadoop.mapreduce
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Euruko 2009 - Software Craftsmanship