Planning and Review
-
Leaning on automations to build correct programs tends to:
- Result in circular workflows, where you write things and then figure out that they don't work.
- Pulls your attention towards the granular (the current failure) and away from the high-level.
-
Leaning on planning and review:
- Looks like thinking and then going where your attention takes you, rather
than going where test output takes you.
- Iterations should focus on reviewing what we've written, rather than compiler or test output; that's how we ensure that we've created a complete next step without needing to review test/compiler failures.
- Results in meaningful high-level improvements
- Develop better workflows by thinking about how to get things right before we start writing
- Makes us smarter: We have to figure out where we fucked up, and doing that means remembering it later.
- Makes us realize how much technical debt is slowing us down and making things harder to understand, and gets us to focus on it.
- Requires discipline to keep on track; if we always try to tackle whatever our thoughts wander to, then we might never end up with a finished product. So, we have to be intentional about reining our process in to produce tangible outcomes.
- Allows us to create middle layers like using symbolic notes (math) to build out ideas before we write. This can be a lot more precise than traditional whiteboarding techniques -- these can be basically full fledged programs.
- Even with discipline, time between successful compiles tends to be longer, because more work is being done mentally and on paper.
- Focus on movement and taking breaks -- don't get stuck.
- Looks like thinking and then going where your attention takes you, rather
than going where test output takes you.