What is problem per users.
Develop criteria and test data needed to solve a problem.
Use criteria logically using test data.
Develop code based on data defined by criteria.
Test and rewrite code until it works.
Rewrite code for best form.
Test code to see if it solves problem.
Else start over.