Design the program (down to a reasonable level of detail)

There are many ways to design a program.

Some software designers use flowcharts.

Others use pseudocode.

Some use a combination of the two.

Some object-oriented program designers use other techniques that are especially suited to object-oriented design.