Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

38
Software Craftsmanship http://www.londonswcraft.com @londonswcraft Sandro Mancuso @sandromancuso

Transcript of Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Page 1: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Software Craftsmanship

http://www.londonswcraft.com @londonswcraft

Sandro Mancuso @sandromancuso

Page 2: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Software Craftsmen just care about beautiful code

Page 3: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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.

Page 4: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

We adopted Agile and now things will be OK

… and the Agile Transformation Era began.

Page 5: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

And then we spend 10 year focusing on...

… people, interactions, team building, the ecosystem

Process and Interactions became more important than technical practices

Page 6: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Many Agile projects are now, steadily and iteratively, producing crap mediocre software.

The Agile Hangover

Page 7: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

We want to get things done...

… but we are under pressure

Page 8: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

The wrong notion of time

Page 9: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

But what is to be Agile anyway?

Page 10: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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.

Page 11: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

The invisible threat

Code quality

Time per feature

Page 12: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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:

Page 13: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 14: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 15: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 16: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 17: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

What is Software Craftsmanship?

Software Craftsmanship is all about putting

responsibility, professionalism, pragmatism and pride back into software development

Page 18: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Does context matter? Does it always matter?

Page 19: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

How do we know we are building the right thing?

How do we know we are building

the thing right?

Page 20: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG
Page 21: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Adding value through practice

l  Automated testing l  Test first l  Test-Driven Development l  Pair-programming l  Continuous Integration

Page 22: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Don't discuss practices, discuss value.

Page 23: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Healthy Intolerance

How can you add more value and/or have smaller feedback cycles when not using our

practices?

Page 24: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Mastering the practices is hard …

… and that's why we practice

Page 25: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Perfect practice (narrowing the gap)

Page 26: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Software Craftsmanship is a long journey to mastery

Page 27: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Software Craftsmanship Attitude

- Owning your career - Not a 9 to 5 profession - Practice - Boy scout rule - Expecting promotions

Page 28: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

The attitude towards legacy code

Page 29: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Why would we want to be better developers?

Page 30: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 31: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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

Page 32: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Raising the Bar

Page 33: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Stop...

… being miserable and negative … spreading your frustrations

Page 34: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

The only way to have people buying into what you believe is if they see you happy.

Page 35: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Craftsmanship is not enough to guarantee the success of a project but the lack of it can be the main cause of its failure

Page 36: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

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.

Page 37: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

London Software Craftsmanship Community - LSCC

http://www.londonswcraft.com

Page 38: Software Craftsmanship - Sandro Mancuso - BCS Agile Methods SG

Thank You

http://craftedsw.blogspot.com http://www.londonswcraft.com

Sandro Mancuso @sandromancuso