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.