The Software Craftsman                        Gøran HansenAspiring Software Craftsman @ Capgemini<br />  http://blog.goera...
Outline<br />Why do we need Software Craftsmen?<br />The Software Craftsman persona<br />How to become a Software Craftsma...
Why do we need Software Craftsmen?<br />
Have you ever been slowed down by bad code?<br />- Robert C. Martin aka. Unclebob<br />
“The best processes in the world will not save a project from failure if the people involved do not have the necessary ski...
Bad code amplifies the risk of project failure <br />– even for agile projects!<br />
We need Software Craftsmen because they don’t write bad code…<br />
When do we write bad code?<br />
Pressure<br />
When we have to “Get It Done”!<br />
”Get It Done”<br />vs.<br />”Get It Right”<br />
Skill deficiency<br />
A Software Craftsman will choose “Get It Right” (and get it done)!<br />
Because he has the skills to do so…<br />
The Software Craftsman persona<br />The Software Craftsman persona<br />
A Software Craftsman will always “Do It Right” – also under pressure<br />
A Software Craftsman takes responsibility<br />
A Software Craftsman takes pride in his work. Both the end product and the process towards it<br />
A Software Craftsman signs his work<br />
“Software Craftsmanship is all about putting responsibility and pride back into the software development process. As Hunt ...
A Software Craftsman is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and t...
“An investment in knowledge always pays the best interest”<br />- Benjamin Franklin<br />
A Software Craftsman practice deliberately, and understands the difference between practice and work. He practices in orde...
A Software Craftsman writes code<br />
“Knowledge is not the same as having the skills and practical ability to create software” <br />– Pete McBreen, Software C...
A Software Craftsman has the right attitude towards Software Development<br />
A Software Craftsman contribute to the community<br />
Characterization of a Software Craftsman<br />Will “Do It Right”<br />Take responsibility<br />Take pride in his work<br /...
A Software Craftsman don’t write bad code because he hones his skills<br />
How to become a Software Craftsman?<br />
Tips from The Pragmatic Programmer:<br />Care about your craft<br />Think about your work<br />
Start learning<br />
What should I learn?<br />TDD – can be applied to all languages<br />Functional, dynamic and statically typed languages – ...
Start training!<br />Code Dojos<br />Code Katas<br />Pair programming with other fellow Craftsmen<br />
Practice – work on a real project<br />
We need Software Craftsmen because they don’t write bad code<br />
A Software Craftsman don’t write bad code because he hones his skills<br />
And you can become a Software Craftsman by honing your skills (study, training and practice)<br />
A special thanks to<br />Corey Haines, for letting me using his slides.<br />http://www.slideshare.net/openagile/the-craft...
Upcoming SlideShare
Loading in...5
×

The Software Craftsman (2nd edition)

2,002

Published on

The Software Craftsman (2nd edition)

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,002
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
57
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The Software Craftsman (2nd edition)

  1. 1. The Software Craftsman Gøran HansenAspiring Software Craftsman @ Capgemini<br /> http://blog.goeran.no<br /> @goeran<br /> mail@goeran.no<br />
  2. 2. Outline<br />Why do we need Software Craftsmen?<br />The Software Craftsman persona<br />How to become a Software Craftsman<br />
  3. 3. Why do we need Software Craftsmen?<br />
  4. 4. Have you ever been slowed down by bad code?<br />- Robert C. Martin aka. Unclebob<br />
  5. 5. “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” <br />– Pete McBreen, Software Craftsmanship: The New Imperative<br />
  6. 6. Bad code amplifies the risk of project failure <br />– even for agile projects!<br />
  7. 7. We need Software Craftsmen because they don’t write bad code…<br />
  8. 8.
  9. 9. When do we write bad code?<br />
  10. 10. Pressure<br />
  11. 11. When we have to “Get It Done”!<br />
  12. 12.
  13. 13. ”Get It Done”<br />vs.<br />”Get It Right”<br />
  14. 14. Skill deficiency<br />
  15. 15. A Software Craftsman will choose “Get It Right” (and get it done)!<br />
  16. 16. Because he has the skills to do so…<br />
  17. 17. The Software Craftsman persona<br />The Software Craftsman persona<br />
  18. 18. A Software Craftsman will always “Do It Right” – also under pressure<br />
  19. 19. A Software Craftsman takes responsibility<br />
  20. 20. A Software Craftsman takes pride in his work. Both the end product and the process towards it<br />
  21. 21. A Software Craftsman signs his work<br />
  22. 22. “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” <br />– Pete McBreen, Software Craftsmanship: The New Imperative<br />
  23. 23. 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<br />
  24. 24. “An investment in knowledge always pays the best interest”<br />- Benjamin Franklin<br />
  25. 25. A Software Craftsman practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work<br />
  26. 26. A Software Craftsman writes code<br />
  27. 27. “Knowledge is not the same as having the skills and practical ability to create software” <br />– Pete McBreen, Software Craftsmanship: The New Imperative<br />
  28. 28. A Software Craftsman has the right attitude towards Software Development<br />
  29. 29. A Software Craftsman contribute to the community<br />
  30. 30. Characterization of a Software Craftsman<br />Will “Do It Right”<br />Take responsibility<br />Take pride in his work<br />Signs his work<br />Continuous learner<br />Practice deliberately<br />Write code<br />The right attitude <br />Contribute to the community<br />
  31. 31. A Software Craftsman don’t write bad code because he hones his skills<br />
  32. 32.
  33. 33. How to become a Software Craftsman?<br />
  34. 34. Tips from The Pragmatic Programmer:<br />Care about your craft<br />Think about your work<br />
  35. 35. Start learning<br />
  36. 36. What should I learn?<br />TDD – can be applied to all languages<br />Functional, dynamic and statically typed languages – learn the different paradigms<br />Refactoring – learn how to change your code efficiently<br />Design patterns<br />Tools (ReSharper, Visual Studio, Ndepend, Pex etc)<br />Frameworks (Nhibernate, Mongo db etc)<br />
  37. 37. Start training!<br />Code Dojos<br />Code Katas<br />Pair programming with other fellow Craftsmen<br />
  38. 38. Practice – work on a real project<br />
  39. 39.
  40. 40. We need Software Craftsmen because they don’t write bad code<br />
  41. 41. A Software Craftsman don’t write bad code because he hones his skills<br />
  42. 42. And you can become a Software Craftsman by honing your skills (study, training and practice)<br />
  43. 43. A special thanks to<br />Corey Haines, for letting me using his slides.<br />http://www.slideshare.net/openagile/the-craftsman-developer-in-an-agile-world<br />http://www.coreyhaines.com <br />
  44. 44. The Software Craftsman Gøran HansenAspiring Software Craftsman @ Capgemini<br /> http://blog.goeran.no<br /> @goeran<br /> mail@goeran.no<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×