When I started at my current job, I just wanted to code. However, my supervisor kept asking me all these questions. How long did I think it would take? How will I accomplish it? What if it takes longer? I tried answering them, but each answer just led to more questions. I didn’t want to plan! I just wanted to write the code, dangit! Out of frustration, I eventually wrote up a page or so of bullets that answered every possible question I could imagine being asked, and then some more.
A week or so later, I was finally in the midst of working on the task. I ran into a problem that had me stumped. I was ready to keep spinning my wheels in search for some hint of a solution. Then I realized I already knew what to do. I had written this up in my little project plan. I reached out to a senior co-worker with experience in the problem area, and with their help got the project done within the timeline I had initially written down. Huh. Maybe this planning thing has something to it.
I realize now the benefit of planning ahead is not that it makes me faster at programming. In fact, it slows me down. Despite taking longer to get started however, I spend far less time working. Instead of stumbling toward an ambiguous goal, for an indeterminate amount of time, I’m working towards a set of bullet points, with checks and contingencies in place to make sure I hit my self-imposed deadlines.
If I don’t know how to do something? I’ve already thought of who to ask about it. If the task is more complex than I imagined? I’ve already prioritised the project and know what to cut. If current approach isn’t working? Switch to the contingency plan that’s already laid out. It still isn’t easy to slow down and plan when I’m ready to start coding at work, let alone fired up about a new side project. However, I can definitely say since I’ve started planning, I’ve been far more productive with my time.
Written Sept. 25, 2018, updated Nov. 1, 2018