Better Programming

Advice for programmers.

Follow publication

Say Goodbye to Unfinished Pet Projects — Here’s How to Effectively Plan

Stop watching your pet projects collect dust

Ivan Reznikov, PhD
Better Programming
Published in
6 min readJan 15, 2023

--

Folders with unfinished projects

I’ve recently overheard that one’s developers’ New Year’s resolution was to finally finish those pet projects that have been sitting on the back burner for far too long.

Let’s face it: we’ve all been there, starting a new project with excitement and motivation, only to lose steam and move on to something else before finishing it.

I used to deal with this problem massively, so I revisited how I work on my pet projects some time ago. I’ve found opinions suggesting the cause may be procrastination, time deficit, losing interest, etc. Some of what I read didn’t apply to me personally, and some I’ve found helpful.

Mistakes We Make

Let’s look at some common mistakes we make starting a new project:

  1. Lack of clear goals. Not having a clear idea of what you want to achieve with your project will make it challenging to stay focused and motivated.
  2. Starting too many projects at once. We have a limited amount of free time and attention we can spend on our side project.
  3. Not breaking the project into smaller tasks or underestimating tech challenges. It can feel overwhelming and difficult to make progress if the tasks are too big. Especially when it involves new language/tools/frameworks to be used, we underestimate the time we’ll spend solving a task. This results in not seeing any light at the end of the tunnel.
  4. Not prioritizing essential tasks. Following the later point, sometimes we spend too much time on the part of architecture/tool that isn’t that important. This leads to running out of time or motivation to complete the most important tasks, some of which were actually the reason you started the project in the first place.
  5. Not using a schedule and a flexible plan. Not having regular time set aside for working on the project can make it easy to put it off or forget about it. Having a too planned-out schedule limits your ability to adapt to changes or unexpected obstacles, which makes it hard to finish the project.
  6. Not eliminating distractions. Being easily distracted by social media, email, or notifications can slow down progress on the project. This is our free time, so it’s normal to spend our time on other hobbies.
  7. Not seeking feedback and support. Not getting feedback from others on your work in progress can make it difficult to identify and fix problems and improve your work over time.
  8. Not rewarding yourself. Not rewarding yourself for completing tasks or milestones can make the process less enjoyable and make it harder to stay motivated. Without keeping track of progress can make it difficult to see how far you’ve come and how much further you have to go.

Does any of these mistakes sound familiar?

How to Plan a Project?

I initially thought that pet projects were all about fun and rock 'n roll. I stopped thinking of it that way when my graveyard of unfinished projects got larger over time.

I’ve narrowed down some points I now focus on prior to starting any of my side projects.

Resources

Among all the possible resources we start our project with, I’d like to highlight time, motivation, and money.

Time

Time is important. You choose to dedicate some of your time to work on a hobby project. Before jumping into code, try estimating how much time you have short and long-period. It’s not a sprint, it’s a marathon (unless you’re trying scrum :)

Jokes aside, sometimes you may select too big of a project to develop. This may catch you as a surprise, especially if you haven’t had a schedule and a flexible plan. Even the most exciting projects can become tedious over time.

So create a flexible plan, break down your work, and schedule some soft deadlines.

Motivation

If time is essential, motivation is crucial! Instead of acknowledging failure, we convince ourselves that we have lost interest in a project. This mindset makes it easy to give up when faced with even a minor obstacle.

Most of the time, the motivation is either to develop a portfolio, learn technology or realize your ideas. Take time to define clear and specific goals! It will help you stay focused and you’ll always know why you’ve started your project.

Do your research! Nothing kills your motivation as much as finding out there are three google pages of projects you thought was new and fresh. Instead, browse beforehand and keep in mind ideas and errors made.

Complete your core goal elements before moving on to less important ones. Numerous times I’ve seen projects halfway finished because there is a library one decided to test or an idea to check. Make it to the MVP!

And don’t forget to reward yourself for completing each milestone. This will help you stay motivated and make the process more enjoyable. If it’s not all fun, keep looking for positivity!

One way is to receive feedback from others on your work in progress. This will help you to stay on track and improve your work over time. And do reach out for assistance! No person is an island. Others around us may share your passion or have the necessary expertise you may lack.

Money

Money may not be the most valuable resource, but you need to keep it in mind. There might be software or tools that will allow you to ease a routine job. In data science, this might be a labeling task or cloud computational costs. Also, if your ultimate goal is to make money from your project, having enough funding to cover long-term expenses and make it profitable is essential.

A Person With a Plan

Today, starting a new pet project, I am attempting to follow a certain flow:

  1. Do your research
  2. Define your goals
  3. Split your tasks
  4. Make a plan
  5. Focus on important
How to finish your pet project

It may sound more and more like a routine you have at work. True. But this may be your biggest chance to complete your project.

Bonus — Manage Your Expectations

As you begin to share your pet projects with others, it’s normal to have a range of expectations. Sometimes, you may start a project to learn a new skill or technology, but when you release it to the public, you may hope for it to be used by others.

However, solving real problems for real people is more complex than it may seem. Remember that solving real problems for real people may only sometimes align with your initial goal of learning technology.

And don’t make the mistake of neglecting the front-end aspect of your project.

I’m planning to showcase how I apply these concepts in one of my recent pet projects. If you think you may benefit from it — drop a comment, so I’ll know this topic is of interest.

The original version of the publication on my LinkedIn page.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Ivan Reznikov, PhD
Ivan Reznikov, PhD

Written by Ivan Reznikov, PhD

PhD, Principal Data Scientist, Teaching DS @ Middlesex University. TEDx, GITEX, PyCon. https://www.linkedin.com/in/reznikovivan/ https://github.com/IvanReznikov

Responses (1)

Write a response