Software Craftsmanship - JAX London 2011

34
Think you don't need Software Craftsmanship? http://www.londonswcraf @londonsw Sandro Mancuso @sandromancuso

Transcript of Software Craftsmanship - JAX London 2011

Page 1: Software Craftsmanship - JAX London 2011

Think you don't need Software Craftsmanship?

http://www.londonswcraft.com@londonswcraft

Sandro Mancuso@sandromancuso

Page 2: Software Craftsmanship - JAX London 2011

I'm an artist

I love my beautiful code

Customers, deadlines, adding value? You are kidding right?

Page 3: Software Craftsmanship - JAX London 2011

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 onthe right, we value the items on the left more.

Page 4: Software Craftsmanship - JAX London 2011

We adopted Agile and now things will be OK

… and the Agile Transformation Era began.

Page 5: Software Craftsmanship - JAX London 2011

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 - JAX London 2011

  

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

The Agile Hangover

Page 7: Software Craftsmanship - JAX London 2011

We want to get things done...

… but we are under pressure

Page 8: Software Craftsmanship - JAX London 2011

The wrong notion of time

Page 9: Software Craftsmanship - JAX London 2011

It's all about feedback!

Page 10: Software Craftsmanship - JAX London 2011

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 onthe right, we value the items on the left more.

Page 11: Software Craftsmanship - JAX London 2011

The invisible threat

Code quality

Time per feature

Page 12: Software Craftsmanship - JAX London 2011

Manifesto for Software Craftsmanshipraising 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 13: Software Craftsmanship - JAX London 2011

What is Software Craftsmanship?

Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development

Page 14: Software Craftsmanship - JAX London 2011

Does context matter?Does it always matter?

Page 15: Software Craftsmanship - JAX London 2011

How do we know we are building the right thing?

How do we know we are building the thing right?

Page 16: Software Craftsmanship - JAX London 2011
Page 17: Software Craftsmanship - JAX London 2011

Adding value through practice

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

Page 18: Software Craftsmanship - JAX London 2011

Don't discuss practices, discuss value.

Page 19: Software Craftsmanship - JAX London 2011

Healthy Intolerance

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

practices?

Page 20: Software Craftsmanship - JAX London 2011

Mastering the practices is hard …

… and that's why we practice

Page 21: Software Craftsmanship - JAX London 2011

Perfect practice(narrowing the gap)

Page 22: Software Craftsmanship - JAX London 2011

Software Craftsmanship is a long journey to mastery

Page 23: Software Craftsmanship - JAX London 2011

Software Craftsmanship Attitude

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

Page 24: Software Craftsmanship - JAX London 2011

The attitude towards legacy code

Page 25: Software Craftsmanship - JAX London 2011

Why do we want to be better developers?

Page 26: Software Craftsmanship - JAX London 2011

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 27: Software Craftsmanship - JAX London 2011

Software Craftsmanship is not...

… a church, trying to convert all developersIt's about leading by example and showing how we can

be better

… about beautiful codeIt's about continuously delivering value not writing

crap code

Page 28: Software Craftsmanship - JAX London 2011

Raising the Bar

Page 29: Software Craftsmanship - JAX London 2011

Stop...

… being miserable and negative… spreading your frustrations

Page 30: Software Craftsmanship - JAX London 2011

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

Page 31: Software Craftsmanship - JAX London 2011

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 32: Software Craftsmanship - JAX London 2011

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 33: Software Craftsmanship - JAX London 2011

London Software Craftsmanship Community - LSCC

http://www.londonswcraft.com

Page 34: Software Craftsmanship - JAX London 2011

Thank you

@sandromancuso

http://craftedsw.blogspot.com

http://www.londonswcraft.com