Procrastination is a disease. It steals our most valuable resource (time) while giving back nothing but guilt. I suffered long from it during school years and know a lot of people who still do. In this post, I will try to explain where procrastination comes from and how to fight it.

Causation
Scientists still do not agree on the roots of procrastination, but it can be narrowed down to several possible causes:
Excess perfectionism
Sometimes, our desire for perfection can prevent us from even starting. That is especially true in programming, as a lot of programmers commit to writing perfect code.
Depression or anxiety
Mental illness can alter our ability to make critical decisions and prevent us from achieving our goals.
Low self-esteem
When we believe we are not particularly good at whatever task we are faced with, we tend to delay it.
Inability to focus
People having trouble with keeping their thoughts on the topic will also find it hard to meet the deadlines. Internet is the main issue here: with instant access to anything we can possibly want, it is very hard to keep yourself on task.
Fight
Acceptance
Accept that nothing is perfect. No code is bug-free, and only by doing wrong and making mistakes you can get better at whatever you are doing and gain experience.
Mindfulness & Awareness
Be aware of your own thoughts, feeling, and mental state. There is no fits-for-all technique here, but you can try out meditation, reflexion, writing a diary or anything else that helps you be aware of what is going on in your life and your head.
Productivity techniques
The problem of procrastination is not new, and a lot of people had come up with solutions that work for most of us. One was to focus yourself on one task is the Pomodoro technique – set a timer for 25 minutes and do whatever it is you need to do. Then take a short break after and reward yourself. The reward can be anything – a treat, a stretch, reading social media, but it is very important to the process of positive reinforcement. In case Pomodoro doesn’t work for you, you can try out Flowtime.
Conclusion
While it can be really frustrating and discouraging to deal with procrastination, it is nearly impossible to achieve your goals with it looking over your shoulder. The most dangerous type of procrastination is when you defer tasks which do not have a strict deadline: picking us a side project, contributing to Open Source, learning new techniques and principles, getting (in|out) of a relationship. Good luck to everyone out there, and I believe in you.