SlideShare a Scribd company logo
1 of 38
Software Craftsmanship




Sandro Mancuso       http://www.londonswcraft.com
@sandromancuso       @londonswcraft
Software Craftsmen just care about
          beautiful code
Agile Software Development

 We are uncovering better ways of developing software by doing it
 and helping others do it. Through this work we have come to value:

  Individuals and interactions over processes and tools
    Working software over comprehensive documentation
     Customer collaboration over contract negotiation
       Responding to change over following a plan
            That is, while there is value in the items on
            the right, we value the items on the left more.
We adopted Agile and now things will be OK



 … and the Agile Transformation Era began.
And then we spend 10 year focusing on...

 … people, interactions, team building, the ecosystem

Process and Interactions became more important than
 technical practices
The Agile Hangover


  Many Agile projects are now, steadily and
iteratively, producing crap mediocre software.
We want to get things done...

   … but we are under pressure
The wrong notion of time
But what is to be Agile anyway?
Agile Software Development

 We are uncovering better ways of developing software by doing it
 and helping others do it. Through this work we have come to value:

  Individuals and interactions over processes and tools
    Working software over comprehensive documentation
     Customer collaboration over contract negotiation
       Responding to change over following a plan
            That is, while there is value in the items on
            the right, we value the items on the left more.
The invisible threat


 Code
quality




                Time per feature
Manifesto for Software Craftsmanship
                               raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software
  development by practising it and helping others learn the craft. Through this
                          work we have come to value:
Manifesto for Software Craftsmanship
                               raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software
  development by practising it and helping others learn the craft. Through this
                          work we have come to value:

      Not only working software,
                but also well-crafted         software
Manifesto for Software Craftsmanship
                               raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software
  development by practising it and helping others learn the craft. Through this
                          work we have come to value:

      Not only working software,
                but also well-crafted software
      Not only responding to change,
                but also steadily adding value
Manifesto for Software Craftsmanship
                               raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software
  development by practising it and helping others learn the craft. Through this
                          work we have come to value:

      Not only working software,
                but also well-crafted software
      Not only responding to change,
                but also steadily adding value
      Not only individuals and interactions,
                  but also a community of professionals
Manifesto for Software Craftsmanship
                               raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software
  development by practising it and helping others learn the craft. Through this
                          work we have come to value:

      Not only working software,
                but also well-crafted software
      Not only responding to change,
                but also steadily adding value
      Not only individuals and interactions,
                  but also a community of professionals
      Not only customer collaboration,
                  but also productive partnerships
What is Software Craftsmanship?

Software Craftsmanship is all about putting
  responsibility, professionalism, pragmatism and
  pride back into software development
Does context matter?
Does it always matter?
How do we know we are building
        the right thing?

How do we know we are building
        the thing right?
Adding value through practice

   Automated testing
   Test first
   Test-Driven Development
   Pair-programming
   Continuous Integration
Don't discuss
practices, discuss value.
Healthy Intolerance

How can you add more value and/or have
smaller feedback cycles when not using our
                practices?
Mastering the practices is hard …

    … and that's why we practice
Perfect practice
  (narrowing the gap)
Software Craftsmanship is a
   long journey to mastery
Software Craftsmanship Attitude

- Owning your career
- Not a 9 to 5 profession
- Practice
- Boy scout rule
- Expecting promotions
The attitude towards
    legacy code
Why would we want to be better
        developers?
Software Craftsmanship Movement
- Pragmatic Programmer and Software Craftsmanship books are
   published (1999 and 2001)
- Dec, 2008: Meeting in US defining a set of principles for Sofware
   Craftsmanship
- Feb, 2009: First Software Craftsmanship Conference in London
- Mar, 2009: Software Craftsmanship Manifesto
- Apr, 2009: Craftsman swap between Obtiva and 8th Light
- Aug, 2009: First SCNA conference in Chicago
- Oct, 2009: Apprenticeship Patterns is published
- Aug, 2010: LSCC was founded
- Oct, 2010: Second edition of conferences in London and Chicago
- Sep, 2011: Software Craftsmanship Conference in Germany
Software Craftsmanship is not...


… a church, trying to convert all developers
  It's about leading by example and showing how we can
     be better


… about beautiful code
  It's about continuously delivering value not writing
     crap code
Raising the Bar
Stop...

    … being miserable and negative
    … spreading your frustrations
The only way to have people buying
 into what you believe is if they see
 you happy.
Craftsmanship is not enough to
 guarantee the success of a project
 but the lack of it can be the main
 cause of its failure
Agile and Craftsmanship complement each other
 and both are necessary.

Agile processes assume technical excellence and a
 professional attitude.

Software Craftsmanship takes technical excellence
  and professionalism to a whole new level.
London Software Craftsmanship
     Community - LSCC
    http://www.londonswcraft.com
Thank You




Sandro Mancuso           http://craftedsw.blogspot.com
@sandromancuso          http://www.londonswcraft.com

More Related Content

What's hot

Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaScrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaEdureka!
 
How to Misuse and Abuse DORA Metrics.pptx
How to Misuse and Abuse DORA Metrics.pptxHow to Misuse and Abuse DORA Metrics.pptx
How to Misuse and Abuse DORA Metrics.pptxBryan Finster
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile MethodologyHaresh Karkar
 
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...Edureka!
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for DevelopersSarah Dutkiewicz
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...Simplilearn
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowDevOps.com
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Simplilearn
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOpsRed Gate Software
 

What's hot (20)

Feature toggles
Feature togglesFeature toggles
Feature toggles
 
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaScrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
 
How to Misuse and Abuse DORA Metrics.pptx
How to Misuse and Abuse DORA Metrics.pptxHow to Misuse and Abuse DORA Metrics.pptx
How to Misuse and Abuse DORA Metrics.pptx
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
DevOps
DevOpsDevOps
DevOps
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile Methodology
 
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
Agile testing
Agile testingAgile testing
Agile testing
 
Devops
DevopsDevops
Devops
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
Devops insights
Devops insightsDevops insights
Devops insights
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream FlowLearn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
Learn from the Experts: Using DORA Metrics to Accelerate Value Stream Flow
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Postman
PostmanPostman
Postman
 
DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 

Viewers also liked

Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanshipAlexandru Bolboaca
 
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
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsmangoeran
 
Apprenticeship Patterns
Apprenticeship PatternsApprenticeship Patterns
Apprenticeship PatternsArturo Herrero
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup finiSkills Matter
 
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
 

Viewers also liked (7)

Introduction to software craftsmanship
Introduction to software craftsmanshipIntroduction to software craftsmanship
Introduction to software craftsmanship
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Coreyhaines
CoreyhainesCoreyhaines
Coreyhaines
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsman
 
Apprenticeship Patterns
Apprenticeship PatternsApprenticeship Patterns
Apprenticeship Patterns
 
Acceptance startup fini
Acceptance startup finiAcceptance startup fini
Acceptance startup fini
 
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
 

Similar to Software Craftsmanship Manifesto

Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, BucharestSandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, BucharestMozaic Works
 
Software Craftsmanship - JAX London 2011
Software Craftsmanship - JAX London 2011Software Craftsmanship - JAX London 2011
Software Craftsmanship - JAX London 2011Sandro Mancuso
 
CF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersCF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersKev McCabe
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software CraftsmanshipMike Clement
 
Best App Development Services in Australia
Best App Development Services in AustraliaBest App Development Services in Australia
Best App Development Services in AustraliaCode Heroes
 
Introduction to Software Craftsmanship
Introduction to Software CraftsmanshipIntroduction to Software Craftsmanship
Introduction to Software CraftsmanshipRajat Singla
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developerNetcetera
 
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
 
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...Dana Gardner
 
Freins à l'agilité
Freins à l'agilitéFreins à l'agilité
Freins à l'agilitéazeau
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSeasiaInfotech2
 
ParamiSoft Systems Pvt. Ltd. Profile
ParamiSoft Systems Pvt. Ltd. ProfileParamiSoft Systems Pvt. Ltd. Profile
ParamiSoft Systems Pvt. Ltd. Profileparamisoft
 
How Rapidsoft Technologies Modernizing Apps.
How Rapidsoft Technologies Modernizing Apps.How Rapidsoft Technologies Modernizing Apps.
How Rapidsoft Technologies Modernizing Apps.Rapidsoft Technologies
 
Software Development Company in Delhi – Team IHA LLP
Software Development Company in Delhi – Team IHA LLPSoftware Development Company in Delhi – Team IHA LLP
Software Development Company in Delhi – Team IHA LLPTeam IHA LLP
 
Process applied to software development
Process applied to software developmentProcess applied to software development
Process applied to software developmentRenan Huanca
 
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...Dana Gardner
 

Similar to Software Craftsmanship Manifesto (20)

Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, BucharestSandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
Sandro Mancuso - Software Craftmanship @ I T.A.K.E. Unconference 2013, Bucharest
 
Software Craftsmanship - JAX London 2011
Software Craftsmanship - JAX London 2011Software Craftsmanship - JAX London 2011
Software Craftsmanship - JAX London 2011
 
CF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersCF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML Developers
 
ColdFusion Craftsmanship
ColdFusion CraftsmanshipColdFusion Craftsmanship
ColdFusion Craftsmanship
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Best App Development Services in Australia
Best App Development Services in AustraliaBest App Development Services in Australia
Best App Development Services in Australia
 
Introduction to Software Craftsmanship
Introduction to Software CraftsmanshipIntroduction to Software Craftsmanship
Introduction to Software Craftsmanship
 
Software engineering in the agile manifesto
Software engineering in the agile manifestoSoftware engineering in the agile manifesto
Software engineering in the agile manifesto
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
 
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...
 
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...
How Low-Code Development Has Entered a Maturity Spurt Thanks to New Process-O...
 
Freins à l'agilité
Freins à l'agilitéFreins à l'agilité
Freins à l'agilité
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdf
 
ParamiSoft Systems Pvt. Ltd. Profile
ParamiSoft Systems Pvt. Ltd. ProfileParamiSoft Systems Pvt. Ltd. Profile
ParamiSoft Systems Pvt. Ltd. Profile
 
Nova Soft Profile.pdf
Nova Soft Profile.pdfNova Soft Profile.pdf
Nova Soft Profile.pdf
 
How Rapidsoft Technologies Modernizing Apps.
How Rapidsoft Technologies Modernizing Apps.How Rapidsoft Technologies Modernizing Apps.
How Rapidsoft Technologies Modernizing Apps.
 
Software Development Company in Delhi – Team IHA LLP
Software Development Company in Delhi – Team IHA LLPSoftware Development Company in Delhi – Team IHA LLP
Software Development Company in Delhi – Team IHA LLP
 
Process applied to software development
Process applied to software developmentProcess applied to software development
Process applied to software development
 
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
 

More from Sandro Mancuso

Software Modernisation: a strategic approach
Software Modernisation: a strategic approachSoftware Modernisation: a strategic approach
Software Modernisation: a strategic approachSandro Mancuso
 
Aligning Product and Software Design
Aligning Product and Software DesignAligning Product and Software Design
Aligning Product and Software DesignSandro Mancuso
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In DesignSandro Mancuso
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Sandro Mancuso
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Sandro Mancuso
 
Crafted Design - GeeCON 2014
Crafted Design - GeeCON 2014Crafted Design - GeeCON 2014
Crafted Design - GeeCON 2014Sandro Mancuso
 
Legacy Code Hands-on Session
Legacy Code Hands-on Session Legacy Code Hands-on Session
Legacy Code Hands-on Session Sandro Mancuso
 
How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?Sandro Mancuso
 

More from Sandro Mancuso (8)

Software Modernisation: a strategic approach
Software Modernisation: a strategic approachSoftware Modernisation: a strategic approach
Software Modernisation: a strategic approach
 
Aligning Product and Software Design
Aligning Product and Software DesignAligning Product and Software Design
Aligning Product and Software Design
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In Design
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014
 
Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014Crafted Design - ITAKE 2014
Crafted Design - ITAKE 2014
 
Crafted Design - GeeCON 2014
Crafted Design - GeeCON 2014Crafted Design - GeeCON 2014
Crafted Design - GeeCON 2014
 
Legacy Code Hands-on Session
Legacy Code Hands-on Session Legacy Code Hands-on Session
Legacy Code Hands-on Session
 
How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?
 

Recently uploaded

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
 
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
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

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
 
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
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
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!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Software Craftsmanship Manifesto

  • 1. Software Craftsmanship Sandro Mancuso http://www.londonswcraft.com @sandromancuso @londonswcraft
  • 2. Software Craftsmen just care about beautiful code
  • 3. Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 4. We adopted Agile and now things will be OK … and the Agile Transformation Era began.
  • 5. And then we spend 10 year focusing on... … people, interactions, team building, the ecosystem Process and Interactions became more important than technical practices
  • 6. The Agile Hangover Many Agile projects are now, steadily and iteratively, producing crap mediocre software.
  • 7. We want to get things done... … but we are under pressure
  • 9. But what is to be Agile anyway?
  • 10. Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 11. The invisible threat Code quality Time per feature
  • 12. Manifesto for Software Craftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value:
  • 13. Manifesto for Software Craftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software
  • 14. Manifesto for Software Craftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value
  • 15. Manifesto for Software Craftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals
  • 16. Manifesto for Software Craftsmanship raising the bar As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships
  • 17. What is Software Craftsmanship? Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development
  • 18. Does context matter? Does it always matter?
  • 19. How do we know we are building the right thing? How do we know we are building the thing right?
  • 20.
  • 21. Adding value through practice  Automated testing  Test first  Test-Driven Development  Pair-programming  Continuous Integration
  • 23. Healthy Intolerance How can you add more value and/or have smaller feedback cycles when not using our practices?
  • 24. Mastering the practices is hard … … and that's why we practice
  • 25. Perfect practice (narrowing the gap)
  • 26. Software Craftsmanship is a long journey to mastery
  • 27. Software Craftsmanship Attitude - Owning your career - Not a 9 to 5 profession - Practice - Boy scout rule - Expecting promotions
  • 28. The attitude towards legacy code
  • 29. Why would we want to be better developers?
  • 30. Software Craftsmanship Movement - Pragmatic Programmer and Software Craftsmanship books are published (1999 and 2001) - Dec, 2008: Meeting in US defining a set of principles for Sofware Craftsmanship - Feb, 2009: First Software Craftsmanship Conference in London - Mar, 2009: Software Craftsmanship Manifesto - Apr, 2009: Craftsman swap between Obtiva and 8th Light - Aug, 2009: First SCNA conference in Chicago - Oct, 2009: Apprenticeship Patterns is published - Aug, 2010: LSCC was founded - Oct, 2010: Second edition of conferences in London and Chicago - Sep, 2011: Software Craftsmanship Conference in Germany
  • 31. Software Craftsmanship is not... … a church, trying to convert all developers It's about leading by example and showing how we can be better … about beautiful code It's about continuously delivering value not writing crap code
  • 33. Stop... … being miserable and negative … spreading your frustrations
  • 34. The only way to have people buying into what you believe is if they see you happy.
  • 35. Craftsmanship is not enough to guarantee the success of a project but the lack of it can be the main cause of its failure
  • 36. Agile and Craftsmanship complement each other and both are necessary. Agile processes assume technical excellence and a professional attitude. Software Craftsmanship takes technical excellence and professionalism to a whole new level.
  • 37. London Software Craftsmanship Community - LSCC http://www.londonswcraft.com
  • 38. Thank You Sandro Mancuso http://craftedsw.blogspot.com @sandromancuso http://www.londonswcraft.com