Programming Problem Solving Model

"All models are wrong but some are useful." - George Box

  1. Reinterpret the Problem
  2. Design a Solution
  3. Code
  4. Test
  5. Debug
  6. Evaluate & Reflect
  7. Repeat & Improve

Programming Problem Solving Cheat Sheet

Phases and Roles

Based on Eric Roberts version.

Phase Role
Problem Lawyer
Design Architect
Code Engineer & Essayist
Test Vandal & Hacker
Debug Detective
Evaluate & Reflect Critic & Coach
Repeat & Improve Boss


Model Life Cycle

Incremental (or Iterative) Development

Get something working and keep it working:

  1. Start small
  2. Keep it working

  3. Rapid cycles of Problem-Design-Code-Test-Debug phases

  4. Solving one sub-problem at a time
  5. Clean-up after solving one sub-problem (e.g., diagnostic print, extra comments, temporary variables)

Is the problem well-defined?

Planning Ahead (Insights) vs. Prototyping (Interactively)

The Model Can be Applied on Problems with various Magnitudes


  1. Metacognition
  2. Reflected Experience and Learning enable Pattern Matching from the Past

Copyright © 2020 Shlomi Hod.
All rights reserved.

results matching ""

    No results matching ""