Your SlideShare is downloading. ×
  • Like
Cf objective2014 software-craftsmanship
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Cf objective2014 software-craftsmanship



Published in Software , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Kev McCabe CF Objective 2014 Thursday 15th May
  • 2. Software Craftsmanship Mentor @ General Electric • ColdFusion since 1996 (v2) • London CFML &Web Community Leader • Scrum Master • Kanban Practitioner • Agile Coach T: @bigmadkev W:
  • 3.
  • 4.  You may have questions to ask  Please note them, and put your email/twitter/name  I’ll follow up with you at a later stage  Or discuss here if time permits  Please place into the box at the front here
  • 5. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 6. We adoptedAgile and now things will be OK … and the AgileTransformation Era began.
  • 7. … people, interactions, team building, the ecosystem Process and Interactions became more important than technical practices
  • 8.  Many Agile projects are now, steadily and iteratively, producing shit crap mediocre software.
  • 9. We want to get things done... … but we are under pressure
  • 10. But what is to be Agile anyway?
  • 11. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 12. Code quality Time per feature
  • 13. As aspiring Software Craftsmen we are raising the bar of professional software development by practising it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships
  • 14. Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development
  • 15. How do we know we are building the right thing? How do we know we are building the thing right?
  • 16.
  • 17.  Automated testing  Test first  Test-Driven Development  Pair-programming  Continuous Integration
  • 18. Mastering the practices is hard … … and that's why we practice
  • 19. Perfect practice  (narrowing the gap)
  • 20. Software Craftsmanship is a long journey to mastery
  • 21. - Owning your career - Not a 9 to 5 profession - Practice - Boy Scout rule - Expecting promotions
  • 22.  Learn stuff all the time  Small and often  You don’t want to be out of work and having a large learn curve
  • 23.
  • 24.
  • 25.  Seniority is subjective and transient
  • 26. The attitude towards legacy code
  • 27. Why would we want to be better developers?
  • 28. … a church, trying to convert all developers It's about leading by example and showing how we can be better … about beautiful code It's about continuously delivering value not writing crap code
  • 29. Raising the Bar
  • 30.  Stop...  … being miserable and negative  … spreading your frustrations
  • 31.  The only way to have people buying into what you believe is if they see you happy.
  • 32.  Craftsmanship is not enough to guarantee the success of a project but the lack of it can be the main cause of its failure
  • 33.  Agile and Craftsmanship complement each other and both are necessary.  Agile processes assume technical excellence and a professional attitude.  SoftwareCraftsmanship takes technical excellence and professionalism to a whole new level.
  • 34.  Meaningful Names  Short Functions  Single Responsibility Principal  Minimal Arguments  Show intent  No need for comments  Formatting  UnitTesting
  • 35.
  • 36.
  • 37.  Easy to scan  Expressive layout  Compact format  Code is written once and Read ∞
  • 38.  1st edition 1974  2nd edition 1978  56 lessons  Most of which are still valid today  Book costs $150+
  • 39.
  • 40. 1. Write clearly -- don't be too clever. 2. Say what you mean, simply and directly. 3. Write clearly -- don't sacrifice clarity for efficiency. 4. Replace repetitive expressions by calls to common functions. 5. Parenthesize to avoid ambiguity. 6. Choose variable names that won't be confused. 7. Write first in easy-to-understand pseudo language; then translate into whatever language you have to use. 8. Modularize. Use procedures and functions. 9. Don't patch bad code -- rewrite it. 10. Write and test a big program in small pieces. 11. Check some answers by hand 11. Make it right before you make it faster. 12. Make it fail-safe before you make it faster. 13. Make it clear before you make it faster. 14. Don't sacrifice clarity for small gains in efficiency. 15. Don't strain to re-use code; reorganize instead. 16. Make sure special cases are truly special. 17. Keep it simple to make it faster. 18. Don't just echo the code with comments -- make every comment count. 19. Don't comment bad code -- rewrite it. 20. Use variable names that mean something. 21. Format a program to help the reader understand it. 22. Don't over-comment.
  • 41.  Ebook on Lean Pub  Written by the London Software Craftsmanship Community Manager 
  • 42.  Clean Code  Robert “Uncle Bob” Martin  Changes your thought process  +Videos  Also Clean Coders – More about your career
  • 43.  Extreme Programming Explained: Embrace Change  Kent Back  GoodTechnical Practices
  • 44.  Working Effectively with Legacy Code  Michael Feathers
  • 45.  Today @ 3pm  In ad hoc room (next to lunch room)  LearnTDD / BDD Principles without code  Open to all
  • 46.
  • 47. Happy to work with people over Google hangout / Skype. UKTime (After lunch EST/Before Lunch PST) FREE / AmazonWish list  T: @bigmadkev S:bigmadkev W: