Sometimes I have unproductive weeks. It can be hard to overcome the miasma by refactoring code or picking favourites.
I have found the easiest way to get out of the funk is to start making Todo lists of my life. Get the things out of the way that are bothering me or need to be done as a priority and then slowly chip away at it.
Productivity isn't something you can hack. There is a maximum that you can do without sacrificing the quality of your work, and your goal should be to maximize quality, not to plan your day out in five minute intervals, that's a great way to burn out.
> plan your day out in five minute intervals, that's a great way to burn out
Oh for sure. I've tried planning the day's development into discrete tasks in 15, 30, etc. -minute blocks, and it's chaos. It's essentially micromanaging yourself onto an obstacle course where every 15, 30, etc. minutes you have the pressure of a hurdle to get over or else you're behind and feel demotivated. And development isn't linear - especially not on the scale of a day where you'll be revisiting and revising things - so making the development tasks discrete and completable in 30 minutes is a model that just doesn't match how reality works.
A more successful approach for me has been to set high-level targets on the scale of 5 or 10 hours that I can pace myself toward.
Achievable goals for the day on a sheet (digital or real) that you can cross off is a great perpetual motivator, especially if you reinforce it -if you need it- with rewarding yourself (peptalk or giving yourself a little slack/something)
It can also can be very satisfying at the end of a project to take at the long laundry list you’ve conquered (and sent the final invoice ;)
I can attest to the efficacy of scheduling life things with respect to mitigating the ambient cognitive load of life. Otherwise, you can fall prey to what feels like boredom, or the next best thing, which is cleaning the house/doing chores as a form of procrastination.
Beware: getting things out of the way first is a common mindset leading to never achieving long-term goals. There are always important tasks in life that aren't the most important at any given moment (and perhaps never are.)
The most important things are long-term, and therefore don't seem urgent. The days may be long, but the years are short, and unless you specifically make time to work on important long-term things, they just won't get the attention they deserve.
That said, people often use less important things as a way to avoid dealing with the big ones. I often get to the end of the day and know I got a lot done, but also know I was avoiding something bigger all day.
I have had months and probably an unproductive year. But 25 years developing one application from conception to sell out is a long time. The payoff for creative work isn’t controllable or predictable.
Chiming in, I've had several low-productive years at my previous jobs, the assignments just weren't for me and I had some over-eager colleagues who I couldn't keep up with.
Switched jobs and I've got a ton of stuff to get on with, mostly self-managed as well. So far (a few months in) it's done wonders for my productivity and I've churned out more code (that I'm actually quite happy with) than I have in the year preceding it.
Not a remote job, but 1-2 days / week are spent working from home and given that my task list is still quite fresh and I'm not bogged down yet with my own poor decisions / tech debt they're usually pretty productive as well.
I have found the easiest way to get out of the funk is to start making Todo lists of my life. Get the things out of the way that are bothering me or need to be done as a priority and then slowly chip away at it.
Productivity isn't something you can hack. There is a maximum that you can do without sacrificing the quality of your work, and your goal should be to maximize quality, not to plan your day out in five minute intervals, that's a great way to burn out.