I like a film to have a beginning, a middle, and an end, but not necessarily in that order.
The best way to design a program is to design it.