6. Axe Sharpening
Definition & Origin
“Give me six hours to chop down
a tree and I will spend the first
four sharpening the axe.”
― Abraham Lincoln
6
7. Axe Sharpening
➔ Directly related to task
➔ Exhaustive list of items
➔ Results are reusable
➔ Reduces execution time
Signs & Symptoms
7
8. Axe Sharpening
➔ Setting up the IDE
➔ Setting up the version control
➔ Setting up the environment
➔ Looking for libraries
Examples in software
development
8
9. Yak Shaving
What you are doing when you're
doing some stupid, fiddly little
task that bears no obvious
relationship to what you're
supposed to be working on, but
yet a chain of twelve causal
relations links what you're doing
to the original meta-task.
― Jeremy H. Brown
Definition & Origin
9
10. Yak Shaving
➔ No direct relation to task
➔ Non-exhaustive list of items,
no clear roadmap
➔ Issues getting added up on
the way
Signs & Symptoms
10
11. Yak Shaving
1. Need a helper script
2. It requires latest lib_xyz
3. But some other package
depend on lib_xyz
4. You start updating the
packages and end up with
new kernel
5. VGA acts up on new kernel
6. Need to compile driver
7. Source code is restricted
8. ...
Example
11
12. ➔ Am I axe sharpening or yak
shaving?
➔ Am I picking right, necessary
tools or doing an overkill?
Key Questions
To know which is which!
12
13. ➔ Project objectives
➔ Project scope and lifetime
➔ Project constraints and
resources
➔ Experience in subject
➔ Roadmap with clear
milestones
Systematic
Approach
Because it works!
13
14. ➔ Feedback loop
➔ Yak shaving for learning and
exploration
Side Notes
For newbies!
14