Spend some minutes on fallback alternatives or areas you might expand into.
Also consider now what kind of team could solve that task.
-Rough drafts are all you need.
+Third Step: Imagine some rought logical structures the program is built upon.
+Use UML only if you have to, better are empty classes / packages / module with
+almost empty meths / subroutines. Inserts comments that say what goes where.
+Coprogrammer will understand you far better, you spot practical design flaws
+much faster and you will feel better, because you did already something productive.
+Rough drafts are all you need in all three cases.
+But as soon your are just somewhat sure about more details write them down, commit.