43
The Software Craftsman Gøran Hansen Aspiring Software Craftsman @ Capgemini http://blog.goeran.no @goeran [email protected]

The Software Craftsman (2nd edition)

  • Upload
    goeran

  • View
    29

  • Download
    6

Embed Size (px)

DESCRIPTION

The Software Craftsman (2nd edition)

Citation preview

Page 1: The Software Craftsman (2nd edition)

The Software Craftsman Gøran Hansen Aspiring Software Craftsman @ Capgemini

http://blog.goeran.no @goeran [email protected]

Page 2: The Software Craftsman (2nd edition)

Outline

• Why do we need Software Craftsmen?• The Software Craftsman persona• How to become a Software Craftsman

Page 3: The Software Craftsman (2nd edition)

Why do we need Software Craftsmen?

Page 4: The Software Craftsman (2nd edition)

Have you ever been slowed down by bad code?

- Robert C. Martin aka. Unclebob

Page 5: The Software Craftsman (2nd edition)

“The best processes in the world will not save a project from failure if the people involved do not have the necessary skills to execute the process; conversely, really good developers can make any process work”

– Pete McBreen, Software Craftsmanship: The New Imperative

Page 6: The Software Craftsman (2nd edition)

Bad code amplifies the risk of project failure – even for agile projects!

Page 7: The Software Craftsman (2nd edition)

We need Software Craftsmen because they don’t write bad code…

Page 8: The Software Craftsman (2nd edition)
Page 9: The Software Craftsman (2nd edition)

When do we write bad code?

Page 10: The Software Craftsman (2nd edition)

Pressure

Page 11: The Software Craftsman (2nd edition)

When we have to “Get It Done”!

Page 12: The Software Craftsman (2nd edition)
Page 13: The Software Craftsman (2nd edition)

”Get It Done”vs.

”Get It Right”

Page 14: The Software Craftsman (2nd edition)

Skill deficiency

Page 15: The Software Craftsman (2nd edition)

A Software Craftsman will choose “Get It Right” (and get it done)!

Page 16: The Software Craftsman (2nd edition)

Because he has the skills to do so…

Page 17: The Software Craftsman (2nd edition)

The Software Craftsman persona

The Software Craftsman persona

Page 18: The Software Craftsman (2nd edition)

A Software Craftsman will always “Do It Right” – also under pressure

Page 19: The Software Craftsman (2nd edition)

A Software Craftsman takes responsibility

Page 20: The Software Craftsman (2nd edition)

A Software Craftsman takes pride in his work. Both the end product and the process towards it

Page 21: The Software Craftsman (2nd edition)

A Software Craftsman signs his work

Page 22: The Software Craftsman (2nd edition)

“Software Craftsmanship is all about putting responsibility and pride back into the software development process. As Hunt and Thomas (The Pragmatic Programmer) state, we need to start ‘signing our work’ again, just as other craftsmen do”

– Pete McBreen, Software Craftsmanship: The New Imperative

Page 23: The Software Craftsman (2nd edition)

A Software Craftsman is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and tools can refine him as a Software Craftsman

Page 24: The Software Craftsman (2nd edition)

“An investment in knowledge always pays the best interest”

- Benjamin Franklin

Page 25: The Software Craftsman (2nd edition)

A Software Craftsman practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work

Page 26: The Software Craftsman (2nd edition)

A Software Craftsman writes code

Page 27: The Software Craftsman (2nd edition)

“Knowledge is not the same as having the skills and practical ability to create software”

– Pete McBreen, Software Craftsmanship: The New Imperative

Page 28: The Software Craftsman (2nd edition)

A Software Craftsman has the right attitude towards Software Development

Page 29: The Software Craftsman (2nd edition)

A Software Craftsman contribute to the community

Page 30: The Software Craftsman (2nd edition)

A Software Craftsman don’t write bad code because he hones his skills

Page 31: The Software Craftsman (2nd edition)
Page 32: The Software Craftsman (2nd edition)

How to become a Software Craftsman?

Page 33: The Software Craftsman (2nd edition)

Tips from The Pragmatic Programmer:1. Care about your craft

2. Think about your work

Page 34: The Software Craftsman (2nd edition)

Start learning

Page 35: The Software Craftsman (2nd edition)

What should I learn?

• TDD – can be applied to all languages• Functional, dynamic and statically typed languages

– learn the different paradigms• Refactoring – learn how to change your code

efficiently• Design patterns• Tools (ReSharper, Visual Studio, Ndepend, Pex etc)• Frameworks (Nhibernate, Mongo db etc)

Page 36: The Software Craftsman (2nd edition)

Start training!

• Code Dojos• Code Katas• Pair programming with other fellow Craftsmen

Page 37: The Software Craftsman (2nd edition)

Practice – work on a real project

Page 38: The Software Craftsman (2nd edition)
Page 39: The Software Craftsman (2nd edition)

We need Software Craftsmen because they don’t write bad code

Page 40: The Software Craftsman (2nd edition)

A Software Craftsman don’t write bad code because he hones his skills

Page 41: The Software Craftsman (2nd edition)

And you can become a Software Craftsman by honing your skills (study, training and practice)

Page 42: The Software Craftsman (2nd edition)

A special thanks toCorey Haines, for letting me using his slides.

http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-world

http://www.coreyhaines.com

Page 43: The Software Craftsman (2nd edition)

The Software Craftsman Gøran Hansen Aspiring Software Craftsman @ Capgemini

http://blog.goeran.no @goeran [email protected]