Problem for me, probably because I'm inexperienced developer is that no matter how much I plan things will change.
So for me it is better building multiple small things and then wiring them together. Only after this im capable of doing any realistic implementation planning