I've done an analysis and I'm realising now, close to the deadline, that by working on each component, I miscalculated some parts or couldn't predict some needed developments at all. Even though I tried thinking about the entire flow of the feature, some things just came to mind as I was developing it.
How do I improve at predicting what will be needed, before writing a single line of code? Would building a wireframe of the entire feature help? Is it a skill that just comes with lots of trial and error?
The ADD should also be estimated so you don't eat 20% of your project time creating/reviewing it.
Always apply Hofstadter's law
https://en.wikipedia.org/wiki/Hofstadter%27s_law
Seriously, it will come with experience. There are few shortcuts.