1. Crafting Great Code
Harold Shinsato, Montana Code School, Open Space Institute
BigSkyDevCon June 10, 2017
2. Overview
ď‚´Why Bother?
ď‚´Mastery
ď‚´ Modern Agile & the Software Craftsmanship Manifesto
ď‚´ Frontiers of Psychology & Education
ď‚´Leading Practices
ď‚´ Test Drive Development, Design Patterns, S.O.L.I.D
ď‚´Culture
ď‚´ Team Sport
ď‚´ Social Tech
ď‚´Taking it Home
6. Legacy & Modern Agile
We are uncovering
better ways of
developing software
by doing and
helping others do it.
Through this work
we have come to
value …
http://agilemanifesto.org
http://modernagile.org
15. Meta learning & Metacognition
Timothy Ferris – 6 months to mastery -
http://sebastianmarshall.com/community/110017
John Flavel – > 35+ years research
Thinking About Learning = More Learning
23. Code Smells
ď‚´ Duplicate Code (DRY Principle)
ď‚´ Long Methods and Classes
ď‚´ Long Parameter Lists
ď‚´ Comments
24. Clever Code
“Debugging is twice as hard as writing the code
in the first place. Therefore, if you write the code
as cleverly as possible, you are, by definition, not
smart enough to debug it.”
- Brian Kernigan
25. Optimizing Code
“We should forget about small efficiencies,
say about 97% of the time: premature
optimization is the root of all evil.”
- Donald Knuth
26. S.O.L.I.D. Principles
ď‚´ SRP: Single Responsibility Principle -
Do One Thing Well
ď‚´ OCP: Open Closed Principle -
Open for Extension/Closed for Modification
ď‚´ LSP: Liskov Substitution Principle -
Make subclasses usable where the superclass is
 ISP: Interface Segregation Principle –
Separate functionality that might change independently
 DIP: Dependency Inversion Principle –
High level modules independent of lower level with abstractions
34. Google’s Project Aristotle
ď‚´ Harvard Business School Professor - Amy Edmondson
ď‚´ https://www.nytimes.com/2016/02/28/magazine/what-google-learned-from-its-
quest-to-build-the-perfect-team.html
ď‚´ 180 Team From Across Google
 SUCCESS FACTORS – Team Norms & Culture
ď‚´ Psychological Safety
 Turn Taking – Overall Equal Participation
42. Conversations
ď‚´ Non-Violent Communication - Marshall Rosenberg
 Crucial Conversations – Patterson et. al.
 Fierce Conversations – Susan Scott
 Clean Language – David Grove
https://www.infoq.com/interviews/andrea-chiou-clean-language-clean-questions-
agile2014
 Language of Emotions – Karla McClaren
 The Five Love Languages – Gary Chapman
43. THANKS!
ď‚´ Slideshare Link To Be Posted to my Blog
ď‚´ http://shinsato.com
ď‚´ harold@shinsato.com
Questions?
Comments?