The endless effort of not finishing a (side) project

Srdjan Delić
18 min readJul 8, 2022

--

Like going on a new journey or adventure, opening new projects provides us with a sense of wonder and careless optimism that this new project is the one to break new ground. Judging by the amount of humoristic, meme-centric articles and posts online, one can find a significant amount of topics centered around the struggles developers face with an endless barrage of unfinished projects or dusty desk drawer filled with best ever ideas like the ones previously mentioned that seem to indicate a more wide spread and interesting topic that we’ll try to explore in this article. Is the promise of opening a new project so much more rewarding than closing an existing one?

Brace yourselves, this might get philosophical…or not…we’ll see.

The problem

So, before we get into it we should probably focus on defining what the problem is that we are trying to solve or at least define as more digestible subject here? There are two branching ideas to this question, one would be that the problem is simple and can be best described as: “why can’t we finish or simply sit down and start working on our side projects?” or the other, ‘bit more complicated question of: “what keeps us from actually seeing a passion project to the end and publishing it for everyone to enjoy?”. Throughout this article we will switch between addressing one or the other, depending on the context.

Fear or a variation on it can be a large factor why the two before mentioned ideas come to mind. Perhaps some past failed projects are keeping us anchored and afraid of the possible outcomes that might be when a project is finished and finally available for everyone to consume. The thing is, not every project is meant to succeed. Some are meant just to teach us and provide valuable life experiences. The creative process plays a large part in a project’s lifecycle, namely our creativity hasn’t escaped us by just opening a new project and is circling around and growing in impatience until it finally comes out and is displayed in some form or another. We shouldn’t keep those ideas boiled up. Turning that pressure valve and giving it a few spins to let some steam off by finishing a project makes room for new ones to expand.

We’ll make a reasonable presumption that most of us have at least one side project that we have a special love-hate relationship with and one that we simply can’t-seem-to-ever-get-done for one reason or another..whoa!…Let’s stop right there! There are actually quite a few, well identified reasons why that might be the case. Some of which will we’ll explore in the next few paragraphs.

After that abrupt narrative derailment, let’s get back on track with defining the problem. Where to start with the analytical thought of why we can’t seem to finish projects? How about the start itself?

The initial spark

What got us in the side-project mindset at the first place? What was that initial spark that started the whole confusing and fruitless affair with our side project(s)?

Going back to the two questions above can give us so much material to work with. Creativity and inspiration have a nasty habit of coming suddenly and unannounced. They hit us and they hit us so hard that, for a moment at least, they consume us to the point that it’s the only thing we can think about that moment. We take our notebooks out and start writing, typing, drawing the initial sketches of what would eventually take shape of a new project. We keep on feeding the inspiration and creativity up until they start to slowly fade away. That fading period can last anywhere from a minute to years and decades, de pending on the person and the strength of that initial spark. Larger spark would equal longer fading periods, simple as that. In most cases that fading period lasts up to the point when we sit down and start doing some concrete work on the project. Why is that? Is it because that’s usually the point when we can actually gauge our capabilities of executing the work needed or we realized the scope of the project or simply our head cooled down a bit and our vision has cleared? Or could it be that creativity and inspiration are very delicate and if not handled properly they tend to fade more easily? It’s hard to stay focused and objective when the inspiration wave hits us, but those who manage to channel it in little doses, tend to also see the project up to the end.

When the initial spark is gone, how would we ignite it again? By setting ourselves in the right mindset could be a great first step. Putting ourselves in the same mindset and trying to recreate and remember each little detail that got us into the creative state can cause some sparks flying about, perhaps just enough of them for use to have another go at the project.

The next time we sit at our work desk and stare into the blank stare of an unfinished project, it might be a good idea to go back to the roots and ignite that initial spark once more.

Lack of information and preparation

While we might think that we have all that is needed for guiding a project from the initial concept to the final stages, often that isn’t the case. A very bad scenario for us would be in finding out during the development process that the solution that we are working on already exists somewhere in the digital dimension. This might only be one of the possible roadblocks.

Propose we dive into a new project and, at best, draft some key components that seem vaguely familiar and start developing only to find out that we came vastly under prepared to deal with the challenges that face us. Roadblock after roadblock we continuously lose confidence in ever finishing the project until we passively give up on it entirely. Yeah, sure, the project sits there, waiting for us to continue, just like we never left, but we did leave and the project is nothing more than some large mountain that we eventually learned to walk around and letting it blend in the picturesque backgrounds. Can we conquer the growing mountain or should we just keep ignoring it?

Any project, no matter the scope should be approached with detailed information and well structured and designed paths that should be taken before even considering doing the actual work. Putting everything on paper first and having a clear vision of the end product is essential. Going into as much detail as possible in order to detect/predict possible bottlenecks. That means, for example, if we are building a software solution, that we should have all of the problem domain information available to us at any time. Feature graphs, User flows, design guidelines, API documentation, all of those resources prepared and ready for us to form a clear visual understanding of how the project would actually be implemented. We shouldn’t just jump right in and start coding. Taking a few steps back and completing the whole project, in as much detail as possible in our minds will result in much more streamlined development process and few if not none obstacles that we are much better prepared to deal with than a whole mountain.

Over-engineering/overthinking problems

On the opposite spectrum to the lack of preparation and information from the previous section is throwing in all the fancy new ideas we have and engineering techniques at a project, hoping that some of them will stick.

So, we’ve came up with the perfect project, made the necessary projections, drafted the perfect plan, but somehow the project definition keeps on changing seemingly every time we sit down and work on it. The more larger and time intensive a project becomes, the more it’s likely to change overtime. By focusing on the core idea or concept we can drastically reduce all the fattening features and nice to haves that although important are not important at that exact development stage. Prioritize each feature or task or weight them.

Introducing major changes late in a projects lifecycle, such as switching frameworks, changing programming languages, switching target platforms, etc. will cause a hard-reset for the project, effectively equaling to starting everything over again. That in itself is a big red flag. There’s always something new brewing or on the horizon when technology is involved and instead of going into an endless loop of working-reworking, we should stick to our decisions and leave the new technologies for the next version or the next project in line. Sometimes our appetite for the next new thing can be easily satisfied with a simplistic, demo or sample project done in that technology which can also serve as a new reference point for when we finally get around to working on that next project. We should keep a list of core project concepts and/or functionalities that we can always reference when we lose focus. Each of those project concepts are high priority level tasks and should be treated as such. Everything else can go into the nice-to-haves queue.

Another thing to mention for every perfectionist out there that there is little room for perfectionism when it comes to moving on and closing a project. We shouldn’t be kept chained up in little perfectionist ideas and work when the clock is ticking and our patience for a project is slowly running out. The former statement might be a bit controversial, because perfectionism can be the deciding thing that could separate us in a very competitive market, but one thing should be noted and that is that competition exists only when we finally submit some project for consumption. Before that, everything is speculative.

This is a topic that usually ends with us arguing with ourselves and questioning the decisions to incorporate something needlessly complex with the simple promise that it might eventually become useful for one reason or the other. How about we finish a task first and then focus on fancy new techniques and ideas for it in the future? Does that sound ok? In the end, why should a project suffer by our lack of providing clear and precise guidelines and indecisiveness.

Because, when the time comes, it’s our indecisiveness about how a project should be developed that keeps us from completing anything. If we are stuck somewhere in the midpoint of a project’s development cycle when we realized that we have taken a wrong decision making path, it’s perfectly OK to backtrack to a more stable point and branch-out with a new direction. It’s better to loose a few days/weeks of fake progress if that means that the project can finally be finished.

About those pesky ideas

“Ideas are cheap”, we all heard of that expression and it couldn’t be more true. While it shouldn’t be underestimated there is a clear divide between an idea and end result whatever that might be. So much happens in between the inception of an idea and the finishing line. Some many unpredictable things can happen. It’s the difference between theoretical and physical and that’s why an idea is mostly ‘acknowledged’ at best and an end result valued and respected.

We should not ignore those creative juices and let them flow right into our hands to write them down for later, more objective, analysis when we are in a flattering productive state. How many times we had an interesting idea come to us in the most unusual situations, like in a dream or at a social gathering, with us making a mental note of it for remembering when we are in a more focused state, only to realize that we forgot most if not all of it when we revisit it at a more suitable time? Ideas are like an uninvited, but always welcomed guest at a party, they may drop unexpectedly and vaporize in the same manner. When that situation occurs, no matter where we are at the moment, we should start writing down the core concepts and draft the project for later references when we have the time to go more into detail. That’s why we’ll remember to keep something to write on near ourselves at all times.

The hard thing to grasp is that ideas are perishable and we should cultivate them as much as possible in the conception stages. With fresh ideas come a healthy dose of motivation fueling the process and we should be economical and not waste any of that driving force by delegating or delaying the work that needs to be done. Even this article came out as the result of one of those spark ideas and being very aware of the lifecycle of an idea, I put myself to work immediately.

Prevention? Putting the new idea through the committee and asserting its value and urgency for execution. At the end nobody knows ourselves more than we do, if we know that we’ll loose interest in the new idea by the time we have finished our existing projects, it’s time to start prioritizing again.

There are literally billions of ideas floating somewhere in the ether of creativity at any given moment of time, only when one of those countless ideas if plucked from the rest and transformed into something physical its only then when we have the confidence to assign a value to it.

Motivation

In the previous section we’ve mentioned the ignition process for a project and that in the end , motivation is what keeps it going and transforming. The sad thing is, that we are not always motivated in revisiting older projects that we left for one reason or the other. It’s in that moment that our discipline will shine. Either we soldier-on and despite the lack of motivation continue working on a project or we make a though decision by willingly ignoring the glaring hole left by that project’s completeness or rather incompleteness. In the case of lack of motivation, what steps can we make to ignite the passion once again?

Implementing a simple rewarding system for working on a project, specially tailored to doze ourselves with precious dopamine each time we make a significant contribution to the project, can be one solution. We can weight-in what activity (watch a movie, browse social media, play games, etc.) we would rather do than be working on a project and then reward ourselves with that activity only when we complete the project’s daily task. After a while the regret and discomfort of working on an unmotivated project will become routine and the tasks will one by one melt away. If we can make a gem out of it, the better. We could actually look forward to doing more and more tasks.

Another simple system we can utilize for working on our motivation is by grading ourselves at the end of the day based on the work we have done. We can use any grading system we prefer, let’s say from F — for not doing anything regarding a project, up to an solid A — for accomplishing all the tasks we set out to do that day. Each weekday will have a grade and a short description next to it for reflecting on our feelings at that moment. Something like:

Monday (F) — Feeling bad for not doing anything today

Tuesday (B) — Accomplished a lot. Feeling great

.

.

.

The purpose of the short description is to reflect back on how we felt when we didn’t or did in fact reach satisfactory levels of work for a given day. It can also showcase some of the reasoning behind the initial loss of the motivational drive. Now, in front of us, we will have a list of grades and descriptions that can provide answers and solutions to some of the feelings we might have when actively choosing to do something or not. We should note that at no point we should be hard on ourselves. There’s a difference in not accomplishing anything in a day and working hard but still coming up short of the daily goals set. We should be objective as much as possible when passing those grades.

Sometimes the tasks are simply to vague or broad for us to accomplish in a reasonable time period. Splitting up a project’s tasks into even smaller, bite-sized chunks and noting each and every little part as a full fledged task can have a propelling effect on us. Just by looking back at the end of the day and seeing all those tasks being marked as done can be the missing proof that we need for the larger goals to seem more achievable we did it by just breaking a larger tasks into a few smaller ones. We don’t want to end up not seeing the forest because there are trees in front of us, so it’s time to clear our pathway and catch any answers that might have been in front of us the whole time.

Feeling unorganized? Time to put everything in perspective and its rightful place. There are plenty of articles, books and videos out there for us to research and find what best suits our needs. Identifying when and where we can slot in our projects or getting rid of any distractions should be on top of many of those organization improvement sources.

When everything else fails, changing the work location can be very beneficial. Finding the right time and place where our inner productivity shines can be tricky and it’s best to experiment as much as possible with different locations and times of the day whenever possible. Libraries or work coffees, for example, are good starting points since there are usually also people working hard. By surrounding ourselves with productivity we can more easily jump-start our work progress and get a bit closer to those special awards that wait for us at the end of the day or even the project itself.

There are just too many of them

The conundrum of choosing on which of the all-too-many projects lined up to focus on at a given time can lead to to an infinite cycle of being spoiled for choice of sorts.

If you have this conundrum, well first of all, congratulations! You are full of ideas and your creative gears are running overtime. What needs to be done now, is actually finishing some of those ideas.

One of the better approaches in solving this particular issue is by assigning priorities and weighted values for each of the side projects we might have. Special note should be taken of the project progression status. Projects that are closer to being finished should be prioritized over projects that have not yet been advanced into the development process. For example, if we have a project that is 70% complete with perhaps slightly less priority/interest values and another one that might be more interesting but hasn’t even been drafted yet, the priority should be given to the one that is closer to the finishing line.

A rudimentary system for determining which project to work on next, could be based on a system where Time, (personal) Growth, Progress, Monetization, Vintage and Knowledge are properties to account for. The time property would be based on a projects priority/urgency value with a weight of 1.5. Growth will be based on the personal or professional value that a project provides us and a weight of 1.2. Progress as its name suggests, will be based of the overall project completeness value with a weight of 1.8. The monetization value would depend on the end value that a project could potentially provide with the information we have at the time with a weight of 1.2. A projects age (higher values for older projects) will be factored into the vintage property with the weight of 1.3. And finally, knowledge would be based on the difficulty required of us to complete the project. The weight value for that one is 1.0. All the weight values are arbitrary and anyone can adjusted them for their specific needs and preferences. So, once we have our properties, values and weight values we can calculate a sum total weighted value for each of the projects we have lined up and compare them. Once we have assigned a number to a project, it should be a bit easier to choose on what project to focus on next and making an effort of closing that one first.

Listed below is a table populated with a fictional projects data point values ranging from 1 to 10 with weight values we provided before. The weighted average value is obtained by calculating the sum total of all data points weighted values and dividing them by the sum total of weight values.

Example weighted value project table

When all the projects are sorted out by their priority, it’s time to dedicate some time for development. By giving a project a fair chance and determining a unit of time for each of them (a month for example), we make a promise to ourselves that during that time we will keep our focus on that project and that project alone. No project should clash with another one. We should be disciplined about the priorities we assign to each project and respect their times by holding ourselves accountable when not sticking to the defined time table. We like to be respected in regards of our personal times, why should it be any different for projects?

Some of the projects might have seen the best of times far too long in the past and are deemed not as important at the current moment of time. It’s safe to say that those projects are the first ones to be sunsetted.

Not all ideas should leave the initial conceptual phase. Some ideas were created in the wrong mindset or in the wrong situational circumstances. It’s good to have them as references for both good and bad examples, but they should be left at that.

Distraction and procrastination

Here are a couple of big ones. We knew those two would be mentioned at some point in this article. These two topics are usually connected with the crime of us not being focused on the things that we should be doing and instead doing literally anything else.

Distractions and procrastination come in different forms for each and every one of us. Yes, some common threads can be extracted like browsing though social media posts, watching YT recommendations, eating and so on, but a lot of elements are more specific to our own personalities. The problem is that it is very difficult to enter the work zone state of our minds and it’s very easy to snap out of that same zone once we are in it. Getting rid of any unproductive elements that surround us should start with identifying them. How to identify those elements? By noting every single thing we do instead of doing work on our projects. We should be aware of every minuscule detail that grabs our attention like a magnet does a nail and note the time we spent on doing that thing. We should carry a notebook or note taking application with us at all times in order to quickly catch the moments that distract us. Someone calls us on the phone and we immediately step out from our work zone? We’ll note it and note the remedy for it which is that we should only answer important phone calls and messages and for the rest set the phone in airplane mode during our work session. New episode of our favorite TV show is available for viewing now? We’ll reward ourselves with that episode after we have completed the daily tasks. Sleepy or tired? We’ll exercise a bit and take a shower to wake us up. Ambient noise a problem? A pair of headsets should enough for that. When we have noted a few days worth of things that we did instead of working on a project, we should carefully examine that list and their remedies and compare the value they have provided us with at those moments against the value of the incomplete project. Was it with spending that valuable project time on procrastination? A careful examination of the list of things we did, could reveal one or two items that showed up multiple times on the list. Those repeating items are our go-to escape mechanisms of doing things and should be our focus for addressing them in a productive way. It’s worth mentioning that no one should have anything against procrastination and it’s actually very important for us to have a bit of downtime and to never, ever sacrifice that bit of downtime in order to force ourselves into doing side projects, because it just leads to faster burnouts.

Recognizing the situations when we are willingly sacrificing a side project’s time in order to do something else is a key step in the process of elimination of the distraction and procrastination elements. After all, we made the active decision to not spend any time working on a project.

The art of letting go

When all fails, it’s perhaps time for us to face reality and finally click on that close project IDE menu item for one last time.

The hardest projects to let go of, are the ones that keep crawling back from time to time from the depths of our active project lists and we start doing some tinkering on it for just enough to keep it alive in our project directory and by extension, our minds.

Perhaps it’s something that we mentioned earlier or some other, for us unbridgeable obstacle that kept us from working on a project, whatever that might be, the matter of fact is that we came to the notion that the project has become more of a void than anything else and continuing to keep it hanging around our other projects is just wasteful. We don’t need any more time vampires, we need projects that will restore our time in the future.

The best thing we can do now is note what the project has thought us, what lesions can be extract from working on it and what possible steps we could’ve taken that might result in not sunsetting the project. There shouldn’t be any emotions involved, no egos broken, no talk of wastefulness. There’s always a lesson to be learned and by closing this chapter, we’ve learned an important one.

--

--