Back in school, I put off essay writing until the night before the due date. In gymnasium/high school, I put off assignments until the morning of the due date. In my first years of university it went so far that a student counsellor suggested that maybe university wasn’t for me.
Despite—or perhaps because of—that, I pulled myself together. After passing some courses that especially triggered my procrastination, I did much better, and eventually emerged with a master’s degree in software engineering and a PhD in computer science.
But that does not mean I had completely overcome procrastination, especially not during the PhD study. It was not until leaving academia for the IT business that I experienced what it is like to get control of my procrastination. (It’s amazing, by the way.)
It’s ironic that procrastination means postponing work, but my job actually helps me avoid procrastination. I’ll try to figure out why that is. To that end, I’ll first describe my job. It includes:
- Designing software solutions meeting the clients’ requirements.
- Implementing (programming) software solutions according to designs approved by the clients.
- Registering the time spent on all tasks in our time tracking system.
Doing It for Others
There are many aspects of the above that contribute to procrastinating less. One of them, I think, is that this is the first time in my education and work life that people who ask me to do something want me to do it for their sake.
Beating procrastination often requires external deadlines and reasons. In education of all levels, teachers ask us to do exercises, homework, assignments, semester projects, theses. But while they ask you, and systems may be in place to punish those who do not comply, the requests are not truly external. The purpose is that you learn, not (necessarily) that they want to read your work.
Compulsory education contains more external pressure to learn than higher education (which is probably why procrastination gets worse the higher you get in the education system). In a job, you get back some external pressure, and this time they care more about what they get out of it than what you get out of it.
Although external reasons (and payment!) are good reasons to work, they are unfortunately not enough to fight procrastination.
Implementation Tasks are Well-Defined
One of the causes for procrastination is perfectionism. Often the desire to find the perfect solution to a problem puts so much pressure on you that you do not even succeed in finding a good-enough solution. Simply taking a step towards finding the perfect solution feels like a futile step towards a possibly unachievable goal, so let’s just look at cat videos on YouTube instead.
Working to implement a preapproved design means that the biggest decisions have already been made, whether by yourself or by others, and locked in by the client. Now your task is not to solve the original business problem, but simply to implement the designed solution in the allotted time.
“Simply” does not mean to imply that it’s easy. A high level of expertise is required to write correct, robust, efficient, and maintainable code. But with well-defined goals for the programming, the task is constrained enough that a skilled procrastinator (skilled at programming, that is) can attack the task head-on rather than postpone it.
I do still get ideas to change the design while working to implement it, but the bureaucracy involved in changing it is actually a good thing here because it keeps me from trying, unless I’m convinced it’s necessary. It’s better to have a good solution done on time than a perfect solution that isn’t.
Implementation Tasks are Divisible
It’s not just that implementation tasks are easier when the design is fixed. It’s also that the they can be broken into smaller parts that are even easier to do.
The first subtask is to understand the design and hold a mental model of it. Depending on the level of detail in the design description, this can itself turn into clarifying discussions with the author, but that is also fairly well-defined.
Many of the remaining subtasks are taken from a repertoire that includes:
- Adding required tables and fields to the database
- Identifying required data and writing queries to retrieve it
- Adding the business logic
- Testing the solution, and adding error handling and logging
Next up is the time tracking we are required to do. While working a task, any task, we register the time spent in an issue tracker. Our issue trackers are then connected to the time tracking system, and in the time tracking system each week has to sum up to the number of hours our contract states before we can “close” that week. It’s cold, mechanical, and unsympathetic, and it works wonders in beating procrastination.
Design Tasks Can Make You Proud
Design is the process of turning the client’s requirements into a consistent and implementable description in terms of the business domain. Sometimes this requires several iterations with client feedback and further changes before the design is approved. A design can also be a change to a previously implemented module or feature.
If it’s a change request, it’s fairly simple: read up on documentation and code until you hold a good-enough mental model of the existing functionality. From there, seeing where changes are required, is often obvious.
If it’s a new module or feature, it may be harder to get started. That’s where one of the risks of procrastination hide. However, two things can mitigate this. The first is structured procrastination: While putting off the daunting design task, work on something else productive like a straightforward implementation task (as opposed to watching cat videos on YouTube). At least you’re doing something productive.
The second thing is that once you do get it cracked and have your initial idea for the general direction of the design, a feeling of ownership and pride starts to grow. This will make it much easier to keep the focus.
All in all, my job helps me keep my procrastination in check, which I’m very happy about. I hope all you other procrastinators out there can see that your circumstances can help you beat procrastination, if you haven’t cracked the code yet.
Update 2018-07-28: Fixed typos.