The Software Craftsman
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

The Software Craftsman

  • 4,006 views
Uploaded on

What does the Software Craftsman persona looks like?

What does the Software Craftsman persona looks like?

More in: Technology
  • 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
4,006
On Slideshare
3,507
From Embeds
499
Number of Embeds
22

Actions

Shares
Downloads
45
Comments
0
Likes
8

Embeds 499

http://albert-myptc.blogspot.tw 232
http://www.projekt-log.de 155
http://albert-myptc.blogspot.com 61
http://albert-myptc.blogspot.de 8
http://www.linkedin.com 7
http://albert-myptc.blogspot.in 6
http://www.slideshare.net 6
http://albert-myptc.blogspot.hk 4
http://albert-myptc.blogspot.fr 3
http://albert-myptc.blogspot.com.br 3
http://albert-myptc.blogspot.com.au 2
http://albert-myptc.blogspot.co.uk 2
http://albert-myptc.blogspot.ru 1
http://albert-myptc.blogspot.gr 1
http://albert-myptc.blogspot.it 1
http://albert-myptc.blogspot.hu 1
http://www.lmodules.com 1
http://albert-myptc.blogspot.no 1
http://albert-myptc.blogspot.ro 1
http://albert-myptc.blogspot.ch 1
http://albert-myptc.blogspot.com.ar 1
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 Hansen
    Aspiring Software Craftsman Senior Consultant @ Capgemini
    http://goeran.no
    mail@goeran.no
    http://twitter.com/goeran
  • 2. Outline
    Why do we need Software Craftsmen?
    Characterization of a Software Craftsman
    Manifesto of Software Craftsmanship
    How to become a Software Craftsman
  • 3. Why do we need Software Craftsmen?
  • 4. “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
  • 5. The Total Costofowning a Mess
    “You have probably been slowed down by messy code. The degree of the slowdown can be significant. Over the span of a year or two, teams that were moving very fast at the beginning of a project can find themselves moving at a snail's pace.”
    “Over time the mess becomes so big and so deep and so tall, they can not clean it up. There is no way at all”
    “As the mess builds, the productivity of the team continues to decrease, asymptotically approaching zero. As productivity decreases, management does the only thing they can; they add more staff to the project in hopes of increasing productivity.”
    “Furthermore, they, and everyone else on the team, are under horrific pressure to increase productivity. So they all make more and more messes, driving the productivity ever further toward zero”
    - Robert C. Martin, Clean Code
  • 6. How Scrum Can Fail
  • 7. “Agilists assume craftsmanship
    Only few people pursue craftsmanship”
    • JurgenAppelo
    http://www.noop.nl/2009/05/agile-wrongfully-assumes-craftsmanship.html
  • 8. Why do we need Software Craftsmen…?
  • 9. … Because crappy code amplify the risk of failure – even for agile projects!
  • 10. When do we write crappy code?
  • 11. Pressure
  • 12. When we have to “Get It Done”!
  • 13. ”Get It Done”
    vs.
    ”Get It Right”
  • 14. An idea
  • 15. ConstantPressure
  • 16. Every Week
  • 17. Pressure
  • 18. Every Month
  • 19. Pressure
  • 20. Every Year
  • 21. Pressure
  • 22.
  • 23. What differentiate between making the choice of “Get It Done” vs. “Get It Right”?
  • 24. Skill deficiency
  • 25. A Software Craftsman will choose “Get It Right”
  • 26. Because he has the skills to do so…
  • 27. Not only will he “Dot It Right”, he will also do it for the right reasons…
  • 28. The characterization of a Software Craftsman
  • 29. He will “Do It Right” – also under pressure
  • 30. He takes responsibility
  • 31. He takes pride in his work. Both the end product and the process towards it
  • 32. He signs his work
  • 33. “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
  • 34. He 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
  • 35. “An investment in knowledge always pays the best interest”
    - Benjamin Franklin
  • 36. He practice deliberately, and understands the difference between practice and work. He practices in order to be prepared for work
  • 37. He writes code
  • 38. “Knowledge is not the same as having the skills and practical ability to create software”
    – Pete McBreen, Software Craftsmanship: The New Imperative
  • 39. He has the right attitude towards Software Development
  • 40. He contribute to the community
  • 41. 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
  • 42.
  • 43. How to become a Software Craftsman…
  • 44. Tips from The Pragmatic Programmer:
    Care about your craft
    Think about your work
  • 45. Start learning
  • 46. Take responsibility for your professional career and apply what you’ve learned
  • 47. Start to Practice
    Code Dojos
    Code Katas
    Pair programming with other fellow Craftsmen
  • 48. What to practice?
    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)
  • 49. 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
  • 50. The Software Craftsman
    Gøran Hansen
    Aspiring Software Craftsman Senior Consultant @ Capgemini
    http://goeran.no
    mail@goeran.no
    http://twitter.com/goeran