I've been working my first SWE job for a few months now, and I've just been handled my first big project.<p>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.<p>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?
Eventually, experience. Today, create ADDs (architecture design documents), where you describe functionalities, apis, db schemas, flows, etc and ask for your more senior colleagues for review.<p>The ADD should also be estimated so you don't eat 20% of your project time creating/reviewing it.
> I miscalculated some parts or couldn't predict some needed developments at all<p>Always apply Hofstadter's law<p><a href="https://en.wikipedia.org/wiki/Hofstadter%27s_law" rel="nofollow">https://en.wikipedia.org/wiki/Hofstadter%27s_law</a><p>Seriously, it will come with experience. There are few shortcuts.