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?