Procrastination in Development

Making anything from scratch is hard enough, but to have something you’ve made visible to everyone can be very scary.

When I was in school I was always thought to be intelligent, in retrospect I think I was more of a hard worker than a gifted student. Some of that came from the pressure that resulted from the expectations that I should do well because “I was smart”. Fortunately for me, I always had a thirst for knowledge. I handled the pressure well and worked hard, thus achieving above-average grades.

I recently undertook the task of creating an application from scratch and publishing it to the world to see what other people would think. I must admit that as is the case with every matter of perspective, my evaluation of my work was vastly different from reality. That’s why it is always good to have your work checked by another party.

This project took me about 12 months from the time I had the idea to the time I published it on Google Play. Part of that was that I was learning as I went along, many of the things I had never done so I had to do a lot of research even for the most common logic tasks. Coming from a python automation world, I never really had to deal with UI and user experience, most of my projects consisted of code that essentially bridged the gap between two applications that didn’t natively talk to one another. I never had to deal with building layouts that the user would see and directly interact with.

The other main reason for the long development cycle of my first app is the reason for this article. I was afraid that I would fail, and therefore I tended to procrastinate whenever I needed to implement something difficult. A prime example would be when I had to implement integrations with Google backend services so that users would have the convenience of storing the info in the cloud where it is available to them even if they switch devices or uninstall and reinstall the application. The documentation was so confusing, and the implementation seemed very difficult.

There were numerous times where I would sit at the computer and somehow minutes later I would find myself in front of the TV or doing something completely unrelated to the task at hand. Since I didn’t have any real deadlines, I would sometimes take months to tackle something that should have taken me a few days or a week at most. The result was that by the time the project had progressed past 75% completed, some of the things done at the beginning of the project were no longer relevant and that had to be changed, causing the project to take longer.

So, what is the point of this whole post? I am now working on a second project which is moving along quite faster. I took all the lessons I learned from the first project about what not to do and made sure I didn’t repeat those mistakes. Making mistakes is OK, making the same ones over and over is not.

Today reached a milestone where I am going to implement something I have never used before, and the same thing happened again. All of a sudden I found myself watching Avengers Endgame -for the 10th time. I am a big fan of Marvel movies, who doesn’t like superheroes.

Halfway through my cinematic experience, I started to think that I was wasting my time. Duh right, well you would think I’d get back to the project, but instead, I went on series of errands and cleaning activities that culminated with me dusting furniture before I realized that I was just finding excuses for prolonging the inevitable, I have to tackle my new project feature implementation. Never the less, the furniture did need to be clean.

I started thinking, maybe I just need to find ways to recognize these behavior patterns and try to avoid them. After a little thinking and some help with Google, I came across a post from Princeton Univ. about procrastination avoidance. I will link it at the end of this post. In essence, the article talked about a way to become aware and recognize these behaviors and also how to make changes to perspective, schedule, surroundings can help a person achieve more.

The first thing that resonated with me was to recognize the behavior and the reasons why this behavior is present. At the end of the day, what is the worst that can happen, I spend a couple of months working on something and it failed. Well, people fail all the time. It is not the end of the world. That feeling of fear or judgment should be replaced with the excitement that comes from building something from nothing.

I also thought about something I’ve written about before in other posts, stop looking at the whole problem and just tackle it in little pieces. If you’re stuck on A in an ABC problem, then shift the attention to B or C, and who knows, the answer to either B or C could shed some light on what to do about A.

The Princeton article also mentions something that I found interesting, choose your surroundings wisely. I love Starbuck, Panera Bread, and Peets Coffee as much as the next guy, but they are hardly good places for studying in my opinion. I often find small groups of students there, trying to collaborate in this endeavor, and for the most part, they are talking about everything and anything but the studies. Choosing the right scene to make sure that I can concentrate on what I am supposed to do is crucial, I am for example, far more productive in the office that I am at home. There is a sense of commitment to the project when I am in a professional setting, which my brain struggles to embrace at home. The environment just seems too relaxed.

Finally, I will say that it is also nice to have realistic goals and a flexible schedule. It is nice to be able to step away after a big milestone accomplishment and celebrate a little. I also like that I decide when things will ultimately be published, and thus I can take time off if I feel I am overwhelmed. When things stop being fun, they stop being a priority. Whether we like it or not, most of us are far better at doing the things we like, than those we don’t enjoy. Trying to find enjoyment in your task should help you finish it faster.


Related, good read: Eat That Frog!