Upload
goeran
View
29
Download
6
Tags:
Embed Size (px)
DESCRIPTION
The Software Craftsman (2nd edition)
Citation preview
The Software Craftsman Gøran Hansen Aspiring Software Craftsman @ Capgemini
http://blog.goeran.no @goeran [email protected]
Outline
• Why do we need Software Craftsmen?• The Software Craftsman persona• How to become a Software Craftsman
Why do we need Software Craftsmen?
Have you ever been slowed down by bad code?
- Robert C. Martin aka. Unclebob
“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
Bad code amplifies the risk of project failure – even for agile projects!
We need Software Craftsmen because they don’t write bad code…
When do we write bad code?
Pressure
When we have to “Get It Done”!
”Get It Done”vs.
”Get It Right”
Skill deficiency
A Software Craftsman will choose “Get It Right” (and get it done)!
Because he has the skills to do so…
The Software Craftsman persona
The Software Craftsman persona
A Software Craftsman will always “Do It Right” – also under pressure
A Software Craftsman takes responsibility
A Software Craftsman takes pride in his work. Both the end product and the process towards it
A Software Craftsman signs his work
“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
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
“An investment in knowledge always pays the best interest”
- Benjamin Franklin
A Software Craftsman practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work
A Software Craftsman writes code
“Knowledge is not the same as having the skills and practical ability to create software”
– Pete McBreen, Software Craftsmanship: The New Imperative
A Software Craftsman has the right attitude towards Software Development
A Software Craftsman contribute to the community
A Software Craftsman don’t write bad code because he hones his skills
How to become a Software Craftsman?
Tips from The Pragmatic Programmer:1. Care about your craft
2. Think about your work
Start learning
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)
Start training!
• Code Dojos• Code Katas• Pair programming with other fellow Craftsmen
Practice – work on a real project
We need Software Craftsmen because they don’t write bad code
A Software Craftsman don’t write bad code because he hones his skills
And you can become a Software Craftsman by honing your skills (study, training and practice)
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
The Software Craftsman Gøran Hansen Aspiring Software Craftsman @ Capgemini
http://blog.goeran.no @goeran [email protected]