It’s impossible if you want to stay reactive yet still get good performance, and submit everything before deadline. Not as a software engineer. My own experience reveals multiple times that being a developer is definitely different from being an employee in other occupations. Time management and practice means everything here.
To make your life less suffering, two things are very important, one is to always plan roughly for major tasks before implementation, two is to stick with your plan no matter what. During the execution of these two tasks, being able to work independently is VERY VERY important. Also, always triple (at least) the effort and time you gonna spend for each task before you set a deadline.
Nobody will be there to work by your side, or take responsibility when you fail, so you are all on yourself. When implementation starts, you should already have a picture about what’s the upstream tasks and what’s in downstream. How to test, how to deploy, how to integrate, how to submit, etc etc. I’m not saying that you should figure out all details and technologies about a whole project lifecycle from the start, but at least you should know where to find all these related resources to initiate each step in the very beginning, AND how long it’s roughly gonna take for each task to finish in a project lifecycle. Otherwise, you’d find yourself lazy for a couple days, and go nuts 3 days before the presentation deadline, having no idea how you gonna present pure code to stakeholders, who cares nothing but business values (a button on an app for example, not the 100 lines of code you wrote).
Another thing computer science taught me is to be very determined about progress. Your PM said she needs approval from higher managers? Your senior or that guy graduated from Harvard said it’s a “one-line code thing” (Believe me, most times it’s not) and you should prioritize other tasks first? Your manager wants you to finish back to back to back trainings and meetings meanwhile? Your team members have no idea how to lead or start writing the first line, and are all praying that the program just writes and runs by itself? Nobody pins you about your progress for two weeks and suddenly after an earning call they all blame you for being the reason that slowed down the whole process? I’ve been there for so many times, honestly it happened for a reason. YOU CANNOT WAIT FOR OTHERS, no matter who they are. Execute your plan without audience is a necessary ability if you want to survive in the tech industry. If you can’t, then this is simply not the right place for you.
Here is a timeline requirement I set for myself for finishing a project:
Phase I. 3 days — Set up a tracking board and think about each step (2 days). Design data model (1 day).
Phase II. 5-7 days — Implementation (5 days) & testing (2 days)
Phase III. 3 days — Schedule and finish deployment.
