Hacker News new | ask | show | jobs
by tobyhinloopen 3358 days ago
I somewhat agree with the author, but I have some comments.

I do agree that programming is a creative profession and that creative "energy" is limited to just a few hours per day/week.

However, most programming doesn't require constant creative insights. Even if you have to be creative (IE thinking of fancy features/implementations or something yourself) the most time is spent actually writing code.

I tend to think of something (requiring intense creative energy), planning what I'll be doing and when my creative energy is lower or I have plenty of planned work, I actually execute these plans. Writing code based on earlier made plans requires little creative energy usually. Additionally, the "executing" phase usually takes many times longer than planning.

For me, for a 40 hour work week, about 8 goes into planning, 24 goes into actual programming and 8 goes into useless meetings/e-mails/blablabla. Then I have creative energy to spare on my side projects for about 20h/week.

Tbh, I did spent a lot of time figuring out how to optimise workflow privately and professionally, figuring out why sometimes I could get stuff done and sometimes I couldn't. A separation of "creative time" and "doing time" helped a lot.

4 comments

Implementation may be strictly mechanical if you have everything planned out NASA-binder style, but surely there'll still be a need to adjust the plan from time to time? Then there's debugging and maintenance, both of which may not require all your creativity all the time, but if you're creatively sapped, you're walking into it with a few tires already slashed. At least that's what I've found in my own experience. It's not that you have to be creative constantly, it's that you have to be able to summon up the capacity to be creative at any given time.
If your plans work first time, sure. Mine never do.

I'll spend half an hour working out how I'm going to solve this problem, write code for 15 mins, decide that the solution won't work, try another approach, experiment with that other thing I read about, get something working, then clean it up and write some proper tests, etc.

I need real focus and concentration for a few hours to make this happen, even if it's just implementing yet another login system that I know the logic for completely.

YMMV

My problem is typically that I'll have my work day planned out at the beginning of the day, around the known interruptions. Then I'll get in and there's an urgent problem report from some customer. Then that turns into an hour-long internal meeting scheduled before I actually get to look through the diagnostics, and then an hour or two with the customer, mostly placating, because there's been no time yet to actually do anything. Then it's 3:30, I'm burned out and grouchy, and whatever I thought I was going to do gets pushed back, while I try to figure out and fix up whatever the firedrill of the day was.
Also a lot of time is spent on investigating issues and fix those.