Heuristics on the Practice of Programming