Software production timeline:
Starting from a relatively high-level view of design
Increasing detail
Ending with programming language-specific techniques that support our design.
Our thought process: