There's a book by the guy who ported R-Type (an old arcade game) to the ZX Spectrum (an ancient 8-bit computer). It doesn't look like much today, but at the time the port was a huge technical accomplishment (the arcade game had special hardware for sprites, tiles and scrolling, while the Spectrum was underpowered even by the standards of its era). I like this quote from the book:
> I'd been working on the game for about two and a half months and I knew I could handle everything to come, I didn't know how I would but it was that psychological boost at work again saying "oh you'll work that out when you come to it, don't worry" - so I didn't. If you're not careful you can spend more time worrying if you're capable of doing something rather than trying it and finding out for sure, something I've unfortunately seen happen to other game coders and the half completed programs they've left behind as self-doubt overrode everything else.
If you're procrastinating because of your fear of failure or because you think you'll look bad in front of your boss then no amount of planning is going to help you stop procrastinating unless that planning is helping you convince yourself that you won't fail.
In the same way, if you're lost and don't know what to do motivating yourself emotionally isn't going to help unstick you unless it results in your figuring out how to tackle the problem.
Watch your mind, figure out what it's running away from and tackle it at _that_ level, 9/10 times it's not the work as we can plainly see by the fact that once we start we can usually finish and get good results.
The other thing is that as crotchety as this sounds, put down the phone and other things that yank your attention around during the day. Re-learning how to focus on something past the first sign of uncomfortableness is a crucial skill for all of this.
Having said that, a lot of that doesn't get completed still. Procrastination isn't always bad, it can also tell you that something isn't actually necessary or promising. So if that sets in after the first steps, I'll happily abandon the project.
Usually projects that include external feedback or motivation won't get abandoned that easily, obviously.
I also built a productivity system around the concept of modular leverage as opposed to using the same tools every time.
But it turns out there are whole careers and things that can be done at/for work that are a better/worse fit for just about everybody. The worse-fit items are natural to procrastinate, no matter how many productivity methods you have. So at some point it's important to be able to set a boundary and loudly proclaim, "this isn't working."
(Also I got kind of upset about the word procrastination itself. There are often other words which fit better and help to understand and solve the problem faster.)
Secondly - I think the unschedule would help a lot. Having a 10 minute ping that says "Hey! Feel bad and stop being lazy!" sounds incredibly harsh to me.
I fight it by doing something - anything - that will help me when I'm ready to start. I'll clean my workspace, gather the tools, start the IDE, write down the phone number, etc. I often end up tackling the whole task this way.
In the long run, it also pays to make projects easy to pick up again. It's harder to cook when the kitchen is dirty, to read when you lost your page, or to code when starting the project involves 20 different commands.
Works for me but the sequence of fixing formatting and small stuff first and bugs second might drive some coworkers mad :-]
Ideally you want to get to a point where you're able to hold yourself accountable, but I'm not entirely convinced most people are able to do that reliably, sustained indefinitely.
I have every one of these articles opened as Tabs........ which I will read about how to not procrastinate some day.....
In my case I have a "fear of getting started". Once started I can usually keep going, which I guess is opposite of many (although I do have my share of unfinished projects too), but my mind starts to reel at "all the shit I need to do" that getting started on any of them is really hard.
I've started trying to schedule really small things, almost meaningless things, so I get them done via the notification that I need to start on <X>. That's helped. I need to get better at doing the "one foot in front of the other" mentality, I guess.
Pointers, or anything that's helped any of you very welcome.
There used to be a time tracking app that I liked that I've never seen before nor since that helped me out. It worked like so:
- every 10 (configurable) minutes it popped up a dialog, "what did you do for the last 10 minutes?" with a list of common or recent tasks. You picked one or wrote a new one. At the end of $DAY it gave you your tallies.
The constant reminders gave me incentive to either keep doing what I was doing (if it was good), or stop fucking around and do something meaningful.
Sadly the dev bailed on it and wouldn't release the source. I may write my own, "one of these days", but I'm not sure how to get started... <sigh>