Program design
The first step in the design is deciding how to organize the program.
The organization of different programs varies widely depending on the context of the program.
For example, an object-oriented program that deals with banking transactions would likely be organized much differently from a short animated sequence like this one.