Cf objective2014 software-craftsmanship

403 views

Published on

Published in: Software, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
403
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cf objective2014 software-craftsmanship

  1. 1. Kev McCabe CF Objective 2014 Thursday 15th May http://bit.ly/softwareCraft
  2. 2. Software Craftsmanship Mentor @ General Electric • ColdFusion since 1996 (v2) • London CFML &Web Community Leader • Scrum Master • Kanban Practitioner • Agile Coach T: @bigmadkev W: BigMadKev.com http://bit.ly/softwareCraft
  3. 3. http://bit.ly/softwareCraft
  4. 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. 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 http://bit.ly/softwareCraft
  6. 6. We adoptedAgile and now things will be OK … and the AgileTransformation Era began. http://bit.ly/softwareCraft
  7. 7. … people, interactions, team building, the ecosystem Process and Interactions became more important than technical practices http://bit.ly/softwareCraft
  8. 8.  Many Agile projects are now, steadily and iteratively, producing shit crap mediocre software. http://bit.ly/softwareCraft
  9. 9. We want to get things done... … but we are under pressure http://bit.ly/softwareCraft
  10. 10. But what is to be Agile anyway? http://bit.ly/softwareCraft
  11. 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. http://bit.ly/softwareCraft
  12. 12. Code quality Time per feature http://bit.ly/softwareCraft
  13. 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. 14. Software Craftsmanship is all about putting responsibility, professionalism, pragmatism and pride back into software development http://bit.ly/softwareCraft
  15. 15. How do we know we are building the right thing? How do we know we are building the thing right? http://bit.ly/softwareCraft
  16. 16. http://bit.ly/softwareCraft
  17. 17.  Automated testing  Test first  Test-Driven Development  Pair-programming  Continuous Integration http://bit.ly/softwareCraft
  18. 18. Mastering the practices is hard … … and that's why we practice http://bit.ly/softwareCraft
  19. 19. Perfect practice  (narrowing the gap) http://bit.ly/softwareCraft
  20. 20. Software Craftsmanship is a long journey to mastery http://bit.ly/softwareCraft
  21. 21. - Owning your career - Not a 9 to 5 profession - Practice - Boy Scout rule - Expecting promotions http://bit.ly/softwareCraft
  22. 22.  Learn stuff all the time  Small and often  You don’t want to be out of work and having a large learn curve http://bit.ly/softwareCraft
  23. 23. http://bit.ly/softwareCraft
  24. 24. http://bit.ly/softwareCraft
  25. 25.  Seniority is subjective and transient http://bit.ly/softwareCraft
  26. 26. The attitude towards legacy code http://bit.ly/softwareCraft
  27. 27. Why would we want to be better developers? http://bit.ly/softwareCraft
  28. 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 http://bit.ly/softwareCraft
  29. 29. Raising the Bar http://bit.ly/softwareCraft
  30. 30.  Stop...  … being miserable and negative  … spreading your frustrations http://bit.ly/softwareCraft
  31. 31.  The only way to have people buying into what you believe is if they see you happy. http://bit.ly/softwareCraft
  32. 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 http://bit.ly/softwareCraft
  33. 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. http://bit.ly/softwareCraft
  34. 34.  Meaningful Names  Short Functions  Single Responsibility Principal  Minimal Arguments  Show intent  No need for comments  Formatting  UnitTesting http://bit.ly/softwareCraft
  35. 35. http://bit.ly/softwareCraft
  36. 36. http://bit.ly/softwareCraft
  37. 37.  Easy to scan  Expressive layout  Compact format  Code is written once and Read ∞ http://bit.ly/softwareCraft
  38. 38.  1st edition 1974  2nd edition 1978  56 lessons  Most of which are still valid today  Book costs $150+ http://bit.ly/softwareCraft
  39. 39. http://bit.ly/softwareCraft
  40. 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. http://bit.ly/softwareCraft
  41. 41.  Ebook on Lean Pub  Written by the London Software Craftsmanship Community Manager  https://leanpub.com/socra http://bit.ly/softwareCraft
  42. 42.  Clean Code  Robert “Uncle Bob” Martin  Changes your thought process  +Videos  Also Clean Coders – More about your career http://bit.ly/softwareCraft
  43. 43.  Extreme Programming Explained: Embrace Change  Kent Back  GoodTechnical Practices http://bit.ly/softwareCraft
  44. 44.  Working Effectively with Legacy Code  Michael Feathers http://bit.ly/softwareCraft
  45. 45.  Today @ 3pm  In ad hoc room (next to lunch room)  LearnTDD / BDD Principles without code  Open to all http://bit.ly/softwareCraft
  46. 46. http://bit.ly/softwareCraft
  47. 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: BigMadKev.com http://bit.ly/softwareCraft

×