There you are. Sitting in front of your computer. Staring at a blank screen. You know you have to work on a code project, but it feels like you’re frozen. The task before you is so intimidating that you don’t even know where you begin. It feels as if you’d rather be doing anything else in the world besides that task that’s staring you in the face. This scenario is the ugly and all too common face of procrastination that programmers are forced to fight constantly.
If this situation sounds familiar you’re in good company. But if you want to become a professional developer you’ll need to implement a system for hacking procrastination. And that’s what we’re going to walk through today.
As the lead instructor for devCamp I get asked questions from students from around the world. However one of the most prevalent inquiries I get from aspiring coders is how to overcome procrastination.
Root Causes of Procrastination
Before we walk through a system for hacking procrastination we first need to dive into the root causes for this negative habit. Everyone is unique, however through the years I’ve seen procrastination is typically caused by three thought patterns:
- Fear of success
- Lack of planning
In order to overcome procrastination and get back on track we’ll need to address each one of these issues. Because if you let any of these mindsets control the way your mind operates, you will never be able to reach your potential.
I called this guide hacking procrastination because I think that
hacking is the most appropriate term for what needs to happen in order to achieve success. Developers hack applications in order to build features or fix bugs. In the same way, we need to hack our thought patterns so that our brains function properly.
Before we go through the system I want to make one concept clear. As humans we were made for action. Procrastination is a negative habit that we’ve learned through fear driven thought patterns. In order to be successful at anything in life, whether it’s development or business, overcoming procrastination is a requirement.
Starting off the list of the causes for procrastination is perfectionism.
Have you ever watched a baby trying to stand up for the first time? Babies, who haven’t learned that failure is a “bad” thing will spend countless hours trying to stand up. Each time they fall down it doesn’t seem to phase them in the slightest. But you won’t find a baby that lets perfectionism get in the way of achieving their goal. Instead they will keep trying until they can stand up and eventually walk by themselves.
However somewhere between the time that we’re babies and adults we develop the thought pattern that we’re not supposed to fail. So instead of trying and failing until we succeed, we simply try to only perform tasks that we know we can do properly.
In order to hack perfectionism we have to remove the component in our brain that is afraid of failing. If you are a developer learning how to build a new feature that you’ve never worked through before? Let me clear something up. You are going to do it wrong the first time! And that’s 100% fine. If you think that by waiting you are magically going to learn how to perform the task perfectly you are sadly mistaken.
So step one is: embrace failure and remove the requirement of perfectionism.
Hacking the fear of success
Next on the list is hacking the fear of success. If you’re overcome the trap of perfectionism, congratulations. However I’ve seen just as many developers get stuck due to the fear of success as the fear of failure.
This concept may seem odd since success doesn’t seem like something that you should be scared of. However I remember back to when I was first learning development. When I was walking through a coding book I would get so excited when I discovered a new concept. However then I would freeze. My mind’s first response was:
“If you learn this, then what are you going to do?”
For example, when I first learned how to build a connection to a database, I put the book down and didn’t pick it up until weeks later. By learning the database concept it opened up a new and scary new world of all of the new topics I had to learn after that. All of a sudden I had to understand:
- SQL queries
- How to build relationships between database tables
- SQL injection requirements
- And the list seemingly went on infinitely in my mind
In order to hack the fear of success we need to quiet our minds. The fear of success is really rooted in the fear of the unknown. So whenever you’re feeling this fear, simply take a step back. Be happy that you have learned a new topic. And then move onto the next feature or topic. Don’t let your mind run wild with all of the potential, unknown concepts that you’ll need to learn in the future. Like learning anything else, you need to take it one step at a time.
Hacking the plan
Last on the list for hacking procrastination is creating a practical plan. When I recognize that I’m procrastinating I now tell myself to look at my plan of attack. Usually I’ll discover that my plan is too general.
For example, if I’m building a payroll application I may have an item on my todo list that says: Build reporting engine. That’s a scary feature! That’s the type of item that will stick on my todo list for weeks without me taking any action. In order to fix this, I’ve learned that if I break the requirement into a series of very small tasks that I can break the cycle of procrastination. For the reporting engine feature I can create a series of much smaller, more manageable tasks, such as:
- Create page for users to access reports.
- Implement a database query for pulling the reports from the database.
- Build a file downloader for reports.
When I break a large and scary feature down into small pieces I instantly feel better. The feature is no longer scary and I no longer feel like pushing it off until tomorrow. Instead I am able to simply follow a set of small tasks each day until the feature is complete.
Summary for Hacking Procrastination
I hope that this has been a helpful guide for helping you break the cycle of procrastination in your own projects and that you will be able to use it to become a more effective developer. I’ll leave you with a quote from the book The Five Element of Effective Thinking:
“Being willing to fail is a liberating attribute of transformative thinking.”
So put yourself out there, create a practical plan, and stop procrastinating and start coding!