Trying to adopt this in my technical work at Yahoo!
1. understanding the problem to be solved
2. defining what one is trying to achieve
3. brainstorming ideas and potential solutions
4. getting feedback
5. prototyping a solution
6. testing the solution, and
7. repeating the process until a good solution is achieved.