The Software Craftsman (2nd edition)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

The Software Craftsman (2nd edition)

  • 2,821 views
Uploaded on

The Software Craftsman (2nd edition)

The Software Craftsman (2nd edition)

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,821
On Slideshare
2,798
From Embeds
23
Number of Embeds
4

Actions

Shares
Downloads
54
Comments
0
Likes
1

Embeds 23

http://calebesantos.wordpress.com 15
http://www.slideshare.net 5
http://www.linkedin.com 2
https://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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