In my experience procrastination is a behavior caused by the reinforcement of perceived failure.

In many cases, it's the desire to stop procrastinating that you are "failing" at, and that is discouraging. Failing to stop procrastinating makes the idea of stopping procrastinating more trepidatious. You can overcome this with willpower but that becomes exhausting. The fact that it is exhausting makes more negative associations with the idea of not procrastinating and reinforces the difficulty. Essentially, it's not that you're lazy, or that you're afraid of the individual tasks that you have to do, it's that there's a sort of mental hurdle that needs to be overcome to do "something" that you want to do.

I have overcome this by slowly introducing very simple routines into my life. Routines that are all but impossible to fail.

The first was to not worry about any commitments on Saturdays, but to relax and take a nap. After weeks of that, I was just generally having a better time on Sundays.

I made a resolution to get coffee at a local coffee shop on Sunday Morning, with my wife if possible, otherwise by myself.

I made a list of chores to do at home, very simple ones, and loaded it into wsplit (a tool generally used for timing speedruns in video games). The list is:
- Put on Music
- Clean Desk
- Empty Dishwasher
- Fill Dishwasher
- Brush and Floss Teeth
- Clean Table
- Clean Counter
- Clean Cat Litter
- Vacuum Living Room
The tool is restrictive, it doesn't let you go back, it only lets you progress to the next task. It also times you. I did this every day.

I pick up flowers from a local flower shop on Mondays to put on the table.

I invite my brother over for dinner on Thursday.

I've made a list similar to the above for work.

This all might seem stupid to an outsider. And it's not at all like I was living like a slob prior to this, but these are really juts exercises. The fact that these are decisions that I've made in advance means that there's no thought that needs to go into carrying them out. I don't worry about procrastinating when I'm doing my list of chores. I go home, I start the timer, the list tells me what I need to do, and I start doing it. My house is always in a state of cleanliness even if surprise guests come over, and the time it takes to complete the task shortens every day. Eventually, the task actually becomes a source of stress relief. I know it will take me 15-30 minutes, and my house will be presentable. I know I have something for breakfast in the morning on Sunday. I know regardless of my week that I'll be able to recover on Saturday. I never have to make plans for Thursday. I run a work routine twice daily, and I know that all of my e-mail will be read and my tasks and reporting will be captured.

There are two caveats though.
The first is that I have decided I won't feel guilty for the things that I'm doing. I'm not working now, I'm posting on HN. But I've completed my routine for the morning, so I know my status, and I have nothing looming that I need to do. I had some pressing things and I attended to them already because I was alerted to them when I was first doing that routine. Procrastination only happens for me when I'm trying (but kind of failing) to ignore the consequences of inaction, also it's exacerbated by the feeling of an unknown multitude of tasks hanging over me. My work routine is simple, always makes me feel more in control, but also makes me aware of what is actually really important, and what actually has to have immediate action taken. Because it's simple and makes me feel better, it's easy to accomplish. Because it alerts me to those things, it makes me address them before procrastinating.

The second is that I have decided that while these things are tasks that I do in the evening, or on a Monday, or after lunch. They are not tasks that I _need_ to do every evening, every Monday, or every day after lunch. The completion of these tasks feels good, they are easy to complete, and I know when I can do them. However, this is not a routine that needs to be maintained. If I miss a day, or a week, or three weeks, I haven't failed anything, I don't need to "start again" and I can always go out on Sunday and get my coffee and sandwich.

Ultimately the result is not to use my willpower to overcome procrastination. My goal is to reduce the need to use willpower to do most tasks, to make many tasks that remove stress a matter of routine rather than will. This way I conserve willpower for the leftover tasks that I don't have a routine for. Because I have saved that willpower, it's more likely that those tasks will succeed, and since I don't count the occasional non-productive moment as a failure, I've stopped feeling so much that I procrastinate.

I'm sometimes unproductive, but when I am, I'm aware of the consequences and it feels like a decision. When I decide to approach a task, I don't have that guilty, hidden, procrastinating barrier to overcome. And not having to "beat" procrastination gives me that much more willpower to initiate tasks.

This has been a slow process for me, over the course of a year. But the impact on my mood and my feeling of agency has been indescribable. While before I thought I was lazy, I just realized that I was really just exhausting myself - straining against myself.

What I'm trying to do now is to mentally separate the resolution to do a task from the initiation of the task. Instead of thinking "If I decide to do this, I have to work" it's more like "This is something I need to do for this rational reason." and then "I will start the task that I decided to do." avoiding any consideration of what it might feel like. That's more challenging, but it's slowly working, and I'm starting to feel good doing "Things that I resolved to do" as opposed to "communicating with an irate client" or "fixing the issue that has been broken for so long I'm embarrassed that it's still not fixed". It just gets abstracted into a "Starting a task" meme, and generally when I start a task, and proceed to the next step, it ultimately gets completed. And fixing that embarrassing issue finally feels great. Resolving the issue with the client feels good. And if more issues come up, I don't worry about them, I put them on the list, when I get to my routine I evaluate them, and then I begin them.