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

l  Automated testing
l  Test first


l  Test-Driven Development


l  Pair-programming


l  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

Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

  • 1.
    Software Craftsmanship Sandro Mancuso http://www.londonswcraft.com @sandromancuso @londonswcraft
  • 2.
    Software Craftsmen justcare about beautiful code
  • 3.
    Agile Software Development Weare 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 Agileand now things will be OK … and the Agile Transformation Era began.
  • 5.
    And then wespend 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 toget things done... … but we are under pressure
  • 8.
  • 9.
    But what isto be Agile anyway?
  • 10.
    Agile Software Development Weare 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 SoftwareCraftsmanship 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 SoftwareCraftsmanship 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 SoftwareCraftsmanship 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 SoftwareCraftsmanship 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 SoftwareCraftsmanship 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 SoftwareCraftsmanship? Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development
  • 18.
    Does context matter? Doesit always matter?
  • 19.
    How do weknow we are building the right thing? How do we know we are building the thing right?
  • 21.
    Adding value throughpractice l  Automated testing l  Test first l  Test-Driven Development l  Pair-programming l  Continuous Integration
  • 22.
  • 23.
    Healthy Intolerance How canyou add more value and/or have smaller feedback cycles when not using our practices?
  • 24.
    Mastering the practicesis hard … … and that's why we practice
  • 25.
    Perfect practice (narrowing the gap)
  • 26.
    Software Craftsmanship isa long journey to mastery
  • 27.
    Software Craftsmanship Attitude -Owning your career - Not a 9 to 5 profession - Practice - Boy scout rule - Expecting promotions
  • 28.
  • 29.
    Why would wewant 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 isnot... … 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
  • 32.
  • 33.
    Stop... … being miserable and negative … spreading your frustrations
  • 34.
    The only wayto have people buying into what you believe is if they see you happy.
  • 35.
    Craftsmanship is notenough to guarantee the success of a project but the lack of it can be the main cause of its failure
  • 36.
    Agile and Craftsmanshipcomplement 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