Let’s start with some transparency- what projects does Panda have?
There is a lot of pressure in the tech industry to have a side project and produce a “finished” project every time. Neither of these is ultimately true, and pursuing projects for these reasons can cause you to struggle to stay motivated to complete projects. Often this results in “project graveyards” that we feel guilty about.
Digging into why you are doing a given project can be difficult but can also change you you look at your side projects. Specifically, we often use side projects to try out an idea or learn a skill. The project is essentially “done” by that metric when you have achieved that goal. You may continue for another reason, but unless you have a new goal in mind you don’t need to continue just to meet someone else’s definition of success.
Some projects can be flexible with how much time you spend. Others are not. Some require you to spend time every week, and others can be put on pause. Some don’t have a specific schedule but do have deadlines.
When considering a project, take a look at these types of things. The average coding project is as flexible as possible- no schedule, no deadline, nothing. However, this isn’t always the case, and the situation can change.
Let’s take the example of an open-source package. You can build one on your personal GitHub account, and you are free to do what you want, including abandoning the project with no consequences. However, suppose you include other people in your project. In that case, it can give you valuable experience, but it also means you are making commitments to your teammates about how/what/when you will contribute to the project. Similarly, suppose you upload your project to the relevant package manager. In that case, you may need to continue updating the package for others or make arrangements to hand off or discontinue the project.
Very relevant YT video: https://www.youtube.com/
Now that you’ve figured out what the time commitment will look like, it is time to figure out if it can fit into your schedule. To do that, you have to have a schedule. As boundaries between work and personal life get blurred, keeping your work life fully separated from your project time can be challenging.
Even if you don’t have solid boundaries around your work hours (I certainly don’t), you can still create some form of structure around work vs. project time. You might not be able to convince your boss that you shouldn’t answer emails after hours. You might be able to justify not answering immediately. You could set aside an hour for project work and only check email before and after that time. If they email right before, you might send an acknowledgment but not start work until after your project block.
Regardless of your work schedule, there was a key point in that last example- it’s that your side project also had specific time set aside for it. You might be able to have a project that you only work on when you have extra time, but that more than likely means you will never get to it.
The flip side to structure is flexibility, and side projects work best when you have both. Your side projects will have a certain amount of priority in your life, and it will likely be pretty low on your list. So while you want to have a schedule for when you are working on your project, it’s also helpful to be flexible with that schedule.
Both moving and entirely skipping a scheduled work time are tools to keep your project from becoming an issue. If you find yourself adjusting your schedule a lot, then you may wish to reevaluate your schedule or whether or not you have the capacity to be doing that particular project right now.
Perhaps more important than the time you spend working on the project is the time you spend not working on a project. This means scheduling time for your projects and time for yourself, friends, and family. It might be tempting to do things like work on your projects on the weekends because you are so tired from work you don’t want to do them after work, but that can simply make the problem worse as you are no days off on your days off.
This is also a personal take, but I’m becoming more and more convinced that as devs, we should have at least one non-tech hobby that we engage in regularly. There is something extremely draining about constantly moving from screen to screen, and stepping away from that even for a few hours can be highly refreshing. Having an activity, you enjoy during that period will help encourage you to take the time. Since I currently have only one day off a week, I also make that my low-tech day. Spending it listening to podcasts and music while doing chores that have been neglected and projects like knitting or crochet.