TLDR;

There are no hacks really. But being systematic and consistent will take you a very long way.

  1. Separate planning from executing - figuring out what to do is different than doing it
  2. Understand how 'done' looks like before starting - start with the ending in mind
  3. Stick to the hard problems for some time before taking a break
  4. When working on a large task, understand ( planning phase ) what are the smaller parts of it and work on those one by one. (trite but true). Never eat it whole
  5. Repeat

Now to the long version:

1. Separate planning from executing

Okay. This (and everything else here) sounds obvious. And let me tell you: it is obvious. Now the point is that very few people actually do it.

The secret here is to be religious about it. Never start before you are done thinking about the execution. How are you going to start? What are the unknowns? What are you gonna do about those unknowns? Trade-offs? How to go about them?

After you are done here, then you go on to the second bit.

2. Understand how 'done' looks like before starting

How will you know when you are done? Many lives were lost on 'I will know when I see it'. This is the biggest pile of bullshit the world has ever came up with.

At the same time we need to accept that some things are never done, but here what matter is that you must define the ending point of your task no matter what the scope is. Don't have a scope? Invent one. A fake one will do just fine as long as you can stick to it.

3. Stick to the hard problems for some time before taking a break

During execution you will most likely get stuck on a hard problem. What do you do?

Here's a secret: stick to it.

Many people will give up, ask for help, ask chat-gpt, go for a walk etc etc.

The real productivity hack is to stick with it a little longer, own the problem and understand it better. Take steps back. Delete the latest part of your code, re-write that email, throw away the drawind, re-think your assumptions.

When it all fails, go for a walk, call it a day (for now) and come back to it later.

4. When working on a large task, understand ( planning phase ) what are the smaller parts of it and work on those one by one.

In reality, this is a development of step 1. You need to understand the task enough to be able to break it down into smaller chunks that you can complete individually. That allows for increased productivity through continuous iteration, better understanding of each parts dependencies on each other etc.

If you don't feel you can break it down into smaller chunks, you are most likely not ready to start executing.

So go back to the planning phase and nail your understanding first. Then break it down and start exectuting from the top.

5. Repeat

Nothing beats being consistent. Life will try to give you a million reasons why each case is a special case. Here's a secret: there's no real special cases. There's no such thing as inspiration, motivation, etc.

Get to it, get going, by doing it you will get good at doing it and will start to really like it.