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.