The XY Problem
How do I get the last
three characters
of a
fi
lename?
Did you mean, how
do you get
a
fi
le extension?
https://commons.wikimedia.org/wiki/File:Two_young_people_demonstrating_a_lively_conversation.jpg
Slide 11
Slide 11 text
Take your time
• Don’t just copy + paste from StackOver
fl
ow
• Understanding > working
• Solution might suck
• Easier to modify code later
• Build your knowledge base
Design
• Rarely one correct design
• Save time by avoiding perfectionism
• Prefer two-way doors
https://commons.wikimedia.org/wiki/File:Set_of_Crash_Bar_Doors.jpg
Slide 16
Slide 16 text
Divide & Conquer
• Multiple small tasks > one big task
• Easier to develop
• Easier to review code
• Easier to change direction
• Easier to merge code
Slide 17
Slide 17 text
Hiding Work
Avoid
fi
nal hookup
https://www.
fl
ickr.com/photos/43053584@N00/2395215000
Feature
fl
ags
Slide 18
Slide 18 text
Acronyms
• DRY - Don’t Repeat Yourself
• YAGNI - You Aren’t Gonna Need It
• KISS - Keep It Simple, Stupid
Slide 19
Slide 19 text
KISS Example
• More states -> more complex
• Examples…
• Enums > strings, numbers
• Immutability > mutation
• Pure functions > side e
ff
ects
Slide 20
Slide 20 text
Code Review Focus
API
Bugs
Architecture
Maintainability
Readability
Tests
Less important
More important
Two Testing Styles
https://www.
fl
ickr.com/photos/mike_grauer/16898327310/
Manual
https://commons.wikimedia.org/wiki/File:Multiple_Server_.jpg
Automated
Slide 25
Slide 25 text
Why automate?
Safer Refactoring
Fast
Repeatable
https://www.
fl
ickr.com/photos/14246866@N05/2207257172
Slide 26
Slide 26 text
Test-driven development
Verify un
fi
nished features Better architecture
Faster development
https://www.
fl
ickr.com/photos/katiekrueger/2351656805
Slide 27
Slide 27 text
Testing Thoughts
• Be tactical w/ test coverage
• Flakey tests are worthless
• Add manual testing tools
Slide 28
Slide 28 text
Debugging
• Print is okay
• Debuggers are better
• Debuggers are not (that) scary
https://www.wannapik.com/vectors/67772
Slide 29
Slide 29 text
Releasing
Slide 30
Slide 30 text
Hitting deadlines
• All estimates suck, so deadlines are often incorrect
• Better answers than “work harder”:
• Over-estimate
• Cut scope
• Let deadlines slip
Slide 31
Slide 31 text
Avoid releasing…
When fatigued In a rush
Before weekends