С чего начать разработку ПО?
Для алгоритма - есть блок-схемы и псевдоязыки.
Для структуры программы - есть UML-диаграммы. 

И для того и для другого есть тулзы, и то и другое можно упростить под себя и задачи.
В голове держится 7 переменных, Так что учитывайте это. 
Создавайте карточки с классами, можно даже на бумаге, описывайте все что он должен делать и реализуйте. И конечно пишите комменты