- First, you have to understand the problem.
- After understanding, then make a plan.
- Carry out the plan.
- Look back on your work. How could it be better?
I think it should be required reading for all developers - even pasted on your cubical wall!
Particularly when hiring, one of the "metrics" I try to measure in candidates is their sense of 'logic'. This is easier said than done, however; and actually what I am really interested in their natural ability or inclination to follow such a process.
It's easy to spot less 'logical' developers. They start at (and sometimes only ever do) Step #3! Sometimes, in the process of thrashing about in Step #3 they may accomplish some of Step #1. While fixing the inevitable bugs, they may also accidentally get some Step #4. But it's not an efficient process...