Kev McCabe
CF Objective 2014
Thursday 15th May http://bit.ly/softwareCraft
Software Craftsmanship
Mentor @ General Electric
• ColdFusion since 1996 (v2)
• London CFML &Web
Community Leader
• Scrum ...
http://bit.ly/softwareCraft
 You may have questions to ask
 Please note them, and put your
email/twitter/name
 I’ll follow up with you at a later s...
Individuals and interactions over
processes and tools
Working software over
comprehensive documentation
Customer collabora...
We adoptedAgile and now things will be OK
… and the AgileTransformation Era began.
http://bit.ly/softwareCraft
… people, interactions, team building, the
ecosystem
Process and Interactions became more important
than technical practic...
 Many Agile projects are now, steadily and
iteratively, producing shit crap mediocre
software.
http://bit.ly/softwareCraft
We want to get things done...
… but we are under pressure
http://bit.ly/softwareCraft
But what is to be Agile anyway?
http://bit.ly/softwareCraft
We are uncovering better ways of developing software by doing
it and helping others do it. Through this work we have come ...
Code
quality
Time per
feature
http://bit.ly/softwareCraft
As aspiring Software Craftsmen we are raising the bar of professional
software development by practising it and helping ot...
Software Craftsmanship is all about putting
responsibility, professionalism, pragmatism
and pride back into software devel...
How do we know we are building
the right thing?
How do we know we are building
the thing right?
http://bit.ly/softwareCr...
http://bit.ly/softwareCraft
 Automated testing
 Test first
 Test-Driven Development
 Pair-programming
 Continuous Integration
http://bit.ly/softw...
Mastering the practices is
hard …
… and that's why we practice
http://bit.ly/softwareCraft
Perfect practice
 (narrowing the gap)
http://bit.ly/softwareCraft
Software Craftsmanship is a
long journey to mastery
http://bit.ly/softwareCraft
- Owning your career
- Not a 9 to 5 profession
- Practice
- Boy Scout rule
- Expecting promotions
http://bit.ly/softwareCr...
 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....
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 Seniority is subjective and
transient
http://bit.ly/softwareCraft
The attitude towards
legacy code
http://bit.ly/softwareCraft
Why would we want to be better
developers?
http://bit.ly/softwareCraft
… a church, trying to convert all developers
It's about leading by example and showing how we
can be better
… about beauti...
Raising the Bar
http://bit.ly/softwareCraft
 Stop...
 … being miserable and negative
 … spreading your frustrations
http://bit.ly/softwareCraft
 The only way to have people buying into
what you believe is if they see you happy.
http://bit.ly/softwareCraft
 Craftsmanship is not enough to guarantee
the success of a project but the lack of it
can be the main cause of its failur...
 Agile and Craftsmanship complement each other
and both are necessary.
 Agile processes assume technical excellence and ...
 Meaningful Names
 Short Functions
 Single Responsibility Principal
 Minimal Arguments
 Show intent
 No need for com...
http://bit.ly/softwareCraft
http://bit.ly/softwareCraft
 Easy to scan
 Expressive layout
 Compact format
 Code is written once and Read ∞
http://bit.ly/softwareCraft
 1st edition 1974
 2nd edition 1978
 56 lessons
 Most of which are still
valid today
 Book costs $150+
http://bit.ly/...
http://bit.ly/softwareCraft
1. Write clearly -- don't be too clever.
2. Say what you mean, simply and
directly.
3. Write clearly -- don't sacrifice cl...
 Ebook on Lean Pub
 Written by the London
Software Craftsmanship
Community Manager
 https://leanpub.com/socra
http://bi...
 Clean Code
 Robert “Uncle Bob”
Martin
 Changes your thought
process
 +Videos
 Also Clean Coders –
More about your
ca...
 Extreme Programming
Explained: Embrace
Change
 Kent Back
 GoodTechnical
Practices
http://bit.ly/softwareCraft
 Working Effectively
with Legacy Code
 Michael Feathers
http://bit.ly/softwareCraft
 Today @ 3pm
 In ad hoc room (next to lunch room)
 LearnTDD / BDD Principles without code
 Open to all
http://bit.ly/s...
http://bit.ly/softwareCraft
Happy to work with people over
Google hangout / Skype. UKTime
(After lunch EST/Before Lunch PST)
FREE / AmazonWish list 
...
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
Upcoming SlideShare
Loading in...5
×

Cf objective2014 software-craftsmanship

220

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
220
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
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
  1. A particular slide catching your eye?

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

×