- 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.
- 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.
- 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.
- 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.
- Add To Do comments directly to the code in case you leave the project on the shelf.
- 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.
Last active
June 23, 2021 22:19
-
-
Save acidtone/271634bbc2c1b1b6b6ace82306480e2e to your computer and use it in GitHub Desktop.
An iterative development process
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment