1) Analyse the requirements and understand the problem, as
deep as possible.
2) Freely think about possible solutions on my own.
3) Evaluate the available resources of any kind, and adjust
the possible solutions to this.
4) Research and analyse solutions other people gave to same
or similar problems.
5) If my solution is radically different from others, try to
understand why.
6) Restart from beginning to check everything.
7) Evaluate virtues and defects of every solution.
8) Pick up the solution that best fits the requirements
9) Try to keep it as simple as possible. (sintethise)
10) Develop it!
11) Improve it if possible!