Another way to frame it is thinking about Marr’s three levels of analysis. The computational (what are we even trying to do?), the algorithmic (what algorithms/heuristics should we run given we want to accomplish that?), and implementation (what, concretely should our next actions be to implement those algorithms in reality?). Cleanly separating which step you are working on prevents confusion.
Another way to frame it is thinking about Marr’s three levels of analysis. The computational (what are we even trying to do?), the algorithmic (what algorithms/heuristics should we run given we want to accomplish that?), and implementation (what, concretely should our next actions be to implement those algorithms in reality?). Cleanly separating which step you are working on prevents confusion.