via A Byte of Python.
Do the analysis and design.
Start implementing with a simple version.
Test and debug it.
Use it to ensure that it works as expected.
Now, add any features that you want and continue to repeat the Do-Start-Test-Use cycle as many times as required.
Remember, Software is grown, not built.