1) I start all of my projects with a detailed description of the problem to be solved.
2) Then I come up with an algorithm that will solve the problem in question.
3) Then I come up with pseudocode...