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.