I suffered a lot from this some time ago. I use the following techniques to help overcome my procrastination.
Examine why you are procrastinating
Is it a task that you know is painful and not fun? Or is it symptomatic of a whole (eg. Don't like the job you are in). Or could it be that you are just bored?
Helping to understand why at that point you are procrastinating will help you to formulate a plan on to combat it.
Dealing with an annoying task
Look objectively at the task. Figure out how long it will take, the steps involved and how frequently you need to do it. Also look at how it fits in with other stuff you need to do.
Once you have that clear plan, determine realistically how much work can be done within a certain time, that won't make it feel like a chore.
So something that takes 5 hours, I may break it up 30 minutes a day if needed in a week, or one 1 hour and 30 minutes for others, etc.
I would also factor in the worst part (least fun) to be completed first if at all possible.
For studying related items where I had no fixed timeframe, I would use a 20/10/5 method. This is where I would study the material for 20 minutes fully focused. After that I would say to myself "Am I bored?".
If the answer is yes then I break and schedule for the next time. If the answer is no, then I study for 10 more minutes and ask the question again. After that I ask every 5 minutes. Although anecdotal, I found this technique makes the study feel less like work, and I become more focused on the material.
Blocking the procrastination
Next I would look at what am I using to procrastinate. In my case a number of websites. I would then mark them off if they were pointless or a fix I needed (all be in small doses).
- boards.ie = Need
- Game site = Block
- Reddit = Need
I then allocate a certain amount of time that I will allow myself to procrastinate. Say 30 minutes. I will either leave it as a free block, or allocate per website (eg. 25 mins overall, 5 mins for reddit only).
I use a plugin called "WasteNoTime". It's a Mac safari plugin, but you will probably find similar for other browsers. It locks me out after the timer. Also gives me a breakdown of time spent, in case I need to adjust.
The plan is to slowly scale back time on the main sites likely to waste time on (hence reddit 5 mins :). While I gave myself 30 minutes, it's not a target I want to hit.
This technique took a while to get used to, but is habit forming.
In my case, there is a lot research on the products I support. It's time consuming, often not fun as the material can be quite dry. So just sitting down to learn it is a snore fest. However reading about how others use the products, or have issues they are trying to solve helps me to help learn the material.
So I set my browser to allow me to procrastinate on customers blogs (that fit in that rule), or on forums related to the products, or StackOverflow sites.
So I am still avoiding the main task, but I am tricking my brain into learning while it is procrastinating.