Skip to content

Instantly share code, notes, and snippets.

@acidtone
Last active June 23, 2021 22:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acidtone/271634bbc2c1b1b6b6ace82306480e2e to your computer and use it in GitHub Desktop.
Save acidtone/271634bbc2c1b1b6b6ace82306480e2e to your computer and use it in GitHub Desktop.
An iterative development process

A project/algorithm/feature iteration method

  1. Understand the problem
    • This step is often squishy but always important.
    • What is the goal of the project/algorithm/feature?
    • Note: bugs may be out of scope and require a different method. See bug hunting.
    • The definition of "done" starts here.
    • You will often bounce between Steps 1 and 2. Beware of starting Step 3 too early.
  2. Plan it out
    • Is the project/algorithm/feature documented? Pseudocode, drawings, flowcharts, etc.
    • This is a great time to get creative. Break out some markdown and watercolours.
    • Include all stakeholders that need to be included. The act of documenting is just as important as the documentation itself.
  3. Brute force a solution
    • Many coders get stuck here, especially under a deadline.
    • This is a great time for paired coding, code mobs, etc.
    • git commit when you've made progress that doesn't break anything.
    • Take a short break (within the day, preferably) before Step 4.
  4. Walk-through/test the solution
    • Add To Do comments directly to the code in case you leave the project on the shelf.
      • Is anything broken?
      • What can be improved?
    • This is a great time for a code review if there's time/preparation.
    • Don't change code unless it's quicker than writing a To Do to fix it later. Stay focused on the walk-through.
    • Perfect code doesn't exist! The level of optimization is up to you (or your boss/client/team).
    • git commit when you're ready to work on the To Dos.
    • Optional: take a break before Step 5.
  5. Optimize the solution and continue to the next project/algorithm/feature.
    • Prioritize the low hanging fruit (easiest improvements with the most impact) and work your way up.
    • Avoid the temptation to start a new project/algorithm/feature before you git commit your optimizations. Don't fall into any rabbit holes.
    • Take a break before continuing.

Attributions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment