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

Reasoning

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

Meta

  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 ""