Let there be no doubt: working on side projects as a programmer is always a good thing. But that doesn't mean that embedding a side project like coding your next app or SaaS project into a busy life with spouse, kids, and day job is going to be easy.
Recently, I've been working on a side project myself: Getappvise.io. I did this while being busy working on my house, spending quality time with my wife and family, and raising my four-year-old twins.
Perhaps you’re a mother or father, too, or maybe you will be one soon. If you’re wondering if you can work on a side project even with a busy home life, I can tell you this: there is always a way to make things happen.
In this article, I'd like to offer some advice on how to start and complete a side project at home amidst a busy social and family life that might otherwise keep your daily calendar filled.
A busy life is a blessed life
You know the drill: you're living a life that's swirling with social things, like spending time with your family and other people you care about.
Most people participate in associations, have their side activities, break a sweat during team sports, or spend time doing things they love. These activities are usually ones where people are counting on you to show up and participate.
When people who you care about are counting on you, you don’t want to sideline them. On the other hand, it's important to make sure that when you start spending time on a side project, you won't get stressed out. You need to keep the work-life balance in check.
It is great if you have lots of friends, colleagues, and family who matter to you. It also can make it harder to be the guy or gal who sticks his/her nose in front of a screen to design, code, test, and deploy a side project.
As a developer you know that when you’re in the zone coding your solution, it’s easy to forget the world and people around you. But don’t fear. There is always a way to make things work, as long as you put some effort in aligning your side projects with your personal life.
Been there, coded that
I’ve been in the scenario of wanting to create a side project, while participating in a busy family life. As a working husband to my loving wife, and a dad to my four-year-old twins (a boy and girl), I wished there was an article that gave me some pointers on how to set up and execute a side project in my spare time, while balancing family life. It would’ve been great to have a guide that explained how to prepare my environment and the steps I needed to take so that my idea could be transformed into something people could actually find and use on the Web.
I'm not going to B.S. you on this one; it's not an easy path.
Even when your side project is something small, getting from that little idea in your head to a product or service that you can actually ship might feel as hard as landing an autonomous rocket on a floating landing pad.
I want this article to be what I would’ve loved to have read myself, years ago. Let me walk you through what I've learned through landing a side project amongst a busy life, and how to set this up right.
It IS about time
Time is perhaps the greatest resource that a programmer has. You can only spend it once, and you always need to figure out what you’re going to spend it on. Unlike money, though, you’ll spend it even when you’re sitting in your relax chair at home.
When you decide to start a side project, you're going to cut down the chunk of time that you could otherwise spend with other people in your life who matter to you (let’s assume it doesn’t mean you’re only cutting down on time for Netflix).
Make sure you have a list of things that matter to you, things that you want to accomplish in your life. It is a good idea for developers to have a side project on the go, so if you’ve ever thought about doing a side project, add it to your priorities list.
Once you’ve figured out you DO want to spend time on a side project and you’re going to commit to spending time on it, you can make it part of your lifestyle. Fit it into your routine.
In order for you to keep motivated to spend time on your side project, you need to think about the motivations that drive your desire for a side project.
WHY, in Bill Gates’ name, do you want to do a side project?
The ‘why’ question is more than the reason for your project alone. It is the self-motivator that will fuel your efforts.
It is important to get a clear picture of WHY you want to work on your side project, because this will determine whether you stick with it or not..
As John explains in this post, there are various motivations that may make you want to do a side project. The more motivations you have, the more reasons you have to keep working on your side projects. They give you purpose. And while you might think of financial gain one day, you might not care for that another. So having multiple motivations is like having multiple lifelines while washing skyscraper windows: if one fails, you can fall back on another.
If you want to learn a coding technique or a library that will help you land your dream job, AND you believe that your side project has the potential to get you extra income, the combination of motivating factors will help drive you to work on your side project until it is complete.
The ‘why’ also defines expectations for yourself and the people (your significant other, perhaps?) who depend on you in life and who (hopefully) like to spend time with you.
Whatever reason(s) you may have to start working on your side project, make sure to talk to your family about it.
Talk to your partner and take the time to discuss the WHY. If you have one or more kids, and if they’re old enough to comprehend the discussion, talk about it with them, too.
Too often parents think these are “adult” matters and skip talking to their kids, only to find it is biting them in the ass. Kids want attention, and they will not take into account your side project—unless you mention it to them.
Make it a family matter and get everyone in on it.
How did I make my family understand why I wanted to work on some project on my laptop? I talked about the importance of working on side projects with my wife and on how it is a hobby that makes me happy.
I elaborated on how it makes me better at my job and improves my career opportunities while I'm at it. Some ideas actually might generate some extra income and could enable me to become my own boss someday. Those are inspirational reasons, too.
What I learned from conversations with my wife was that as long as you’re sincere and share your motivations for wanting to spend time on a side project, the people in your life will comprehend its importance to you as a programmer.
When you involve your family, they will have more goodwill towards you and your side project.
Tell them that you’re about to release something, and that this will mean you need to pass on some chores for the next couple of days.
Give your partner a heads-up that you’re going to code until late in the night for a couple of days so you will have your stuff ready. Also explain the gain: by committing yourself for a couple of days, you will finish the goals you set, keep on track with your timeline, and avoid getting behind in your work.
Explain how that helps you clear your mind and how it helps you focus on other important tasks at home.
Everyone needs a break, too. Make sure to plan a day or an evening off with your family. Go for a walk, to a playground, or have dinner together.
In the end, rushing full throttle to your end goal is probably going to lead to you crashing into the tree alongside the road instead of getting to the finish line.
Committing to ship
In his article on how side projects change depending on your experience level, John explains how you gain the most from side projects that you actually finish. Quitting while your side project is coded for 99 percent but no one can use it is worthless.
John’s post teaches us that going all-in (but not going to finishing) is just a waste of time until you’ve crossed the finish line: shipping it. Time you could have spent with your family.
Most developers think that gaining experience of actual coding is the main gig, but it’s not. The coding experience is a tool that you can use for your next project, and insights on all the tools in your tool belt is way more valuable than insights on coding alone.
You gain so much more if you learn about all the aspects of a project. From design to user interviews, from coding to testing, and from building to shipping.
Each of these facets requires certain skills: these are the tools that are needed to build something successful. Using all of these tools will gain you more experience points than using just one or two.
It makes you more versatile, gives you broader insights, and gets your mind around what it actually takes to go from start to finish.
Please be aware that this doesn’t mean you need to deliver 100% of the functionality for your side project for it to be a success. Au contraire. 100% just means you need to go all the way from working out your idea to actually shipping it.
The most valuable thing that I’ve learned from my side projects is that walking the entire path, from idea, to shipping, to interacting with actual users, is way more valuable than just learning how to code a small functional part of a project.
Executing each phase of my plan, from A to Z, and experiencing all the related aspects of software development was incredibly important, but shipping and marketing was what really made me gain experience. The fact that I got some in-depth coding experience was simply a nice addition.
People being unwilling to put in the effort to go all the way with a side project is why most of them end up collecting dust on a virtual shelve over on GitHub somewhere.
Shipping your project — even if you’ve cut down the functionality to a tenth of what you planned initially — will give you more insights than coding alone, and therefore a more rewarding feeling in the end.
So be sure to make your end goal finishing and shipping your side project.
Getting clear on the effort
I’ve emphasized the importance of finishing your project, because it is perhaps the most significant aspect of any side project.
Your chances of reaching that goal are highly increased by cutting out the fluff from what you want to build. Try to look at the core functionality that your project needs in order to fulfill its goal.
I usually start by writing down an idea, adding more details and functional aspects, and then sketching the outlines of the screens and screen flows.
Personally, I use methods like good old MoSCoW to prioritize the user stories (features, if you will), for my side projects, and only add the Must Haves to my backlog. I do this to keep me from diving into less relevant functionalities or user scenarios that are not interesting for 80% of the users.
After I’ve decided WHAT I want to create, I can (roughly) estimate the amount of work it will take.
Note that the estimation doesn’t need to be hour specific. I tend to estimate in half days, days or weeks. That gives me some slack and margin on the time needed to do the job.
The steps above allow me to get a rough estimate of how many weeks I’ll need to finish a scoped goal for my side project.
While talking to my wife about this, I was able to indicate when I could show her the results of my work. This helped her visualize what that idea of mine was actually about, and on my end, it made me realistic in my estimates since I had given a time indication to someone besides myself.
Having an estimation of the amount of work isn’t enough planning, though. It’s important to have one or more dedicated moment(s) in a week that are scheduled for your side project. Fixing an amount of time per week gives you a clean overview of how fast you can burn down the work you’ve just estimated, and when you expect to be shipping your project.
Dedicated time & routine
If you want to work on a side project, it is best to do so without disruption and at a steady pace. The easiest way to do so is to make a routine of when and how you are going to work on your side project, and then stick to it.
Choose one or more days in your week, and choose a time block in which you're going to work on your side project. Find out what evenings or days fit into your lives the best by looking at your family calendar and talking to your partner.
It is important to talk with your spouse about what might be the best times of the week for you to work on your project. It helps you to prevent stress caused by other activities getting less time or making you constantly run from A to B every week.
Making sure both you and your partner know the schedule will prevent either of you from planning stuff in the time you have reserved for your side project.
Once you’ve come up with a (weekly) schedule for your side project, which fits in with your family, you’ll know how much time you can spend on your side project each week.
This, in turn, gives you insight into how fast you can work on your project and a better feel for when it is going to be done.
When you’re running a family, though, you can't just plan all of this and then take off into your work zone to work on your side project.
You need to be clear and talk about what your dedicated work on your side project actually means.
Explain that you need to work on your product without interruptions during the agreed time period, and that you will retreat into a specific room or location where you can do your thing.
If you have kids, help them recognize that whenever you're in your work zone, they need to let you focus and do your work. If you work at a time of day when your smaller kids are still up, hanging up a visual indication might help them understand that you don't want to be interrupted right now.
You’ve created a schedule and planned time to work on your side project. Take effort to plan and spend time with your kids and let them know you’re there for them.
If any chores need your attention, make sure to complete them before you start working on your side project. This will help you keep your head clear and focussed when you start working at your project.
I wanted to work on my side projects (writing blog posts, working on SaaS projects, writing an e-Book, whatever) for one evening in the week. After talking to my wife, I chose Tuesday evening. It was the best fit with our weekly schedule.
So every Tuesday, right after my kids go to bed, I'll grab me a soda and get to it.
Keep your work spot’s engine running
If there is one thing that really boosted my productivity at home, it was creating an environment where I could put down my computer, plug in any peripherals, and just work.
I recommend considering every aspect of your work place:
- No distractions laying around
- A cleaned-up desk with a whiteboard, sketch paper, or any other brainstorming canvas you might use within reach
- A monitor, input devices, speakers, etc. ready to use when you sit down
- Your computer cleaned up, rebooted with a good connection, and ready to fire up the necessary development and supporting tools
- Enough water and a healthy snack, or other brain food to keep you going
By keeping those things in check, I can be productive within minutes instead of working on getting to work for half an hour.
When I can sit down at a workplace that is on “standby” and “hot deployable,” I am not going to use those steps to keep me busy when I really need to get going on the work that needs to be done.
Your mileage might vary on the clean desk part, but I know for myself that I am more distracted when stuff is lying around, and that walking between the fridge to my workplace is not productive to me.
I know people who are way more creative when they are surrounded with their papers, sketches and what-nots laying around their desk. Think about what makes you feel comfortable and triggers your mind to be productive.
The danger signs
You’ve estimated the time, you’ve talked with your family, and the finish line is clearly planned.
You’ve jumped into your development machine, and you’re off and working hard to create what you’ve planned. You’re racing toward the finish line — getting your project ready for shipping is all that is left, right?
Wrong. There’s one thing you have to make rock solid for yourself, and it is something I had to learn the hard way: evaluation.
Evaluate your progress every week or two to keep yourself organized. Put in a bi-weekly reminder that tells you to check your progress, with as many annoying alerts as you can. Because if you’ve been building for weeks, and you’re only at ten percent of the planned progress, you are screwing yourself over. Big time.
Any indications that you are slacking and/or not following your plan will only be clear to you when you force yourself to evaluate your progress.
Check every two weeks to see if:
- You did the hours you committed yourself to
- The progress is conforming to planning
- If you’re not on track, can you indicate why and what action you can take to fix this?
- Are you ahead of your planning: is it possible for you to pick up stuff faster?
If you can answer yes to one of the questions, make sure to understand what’s underlying and adjust accordingly. Check in with your family to see if they can help you understand what might be the reason for your deviation from the master plan.
Track and trace your work, a.k.a. “don’t bullshit yourself”
When you’re working on your own project, it is so important that you don’t bullshit yourself.
I’ve found it is too easy to be “preparing for tasks” by doing research, surfing for information or libraries that you won’t use, or working on a logo or other visuals that seem important, but which really don’t add anything to the functional solution for that problem that you’re fixing or the service that you want to bring to life.
One way to monitor your work is to register how long you’ve been working on a specific task. Registering the time you’ve spent, and/or using Pomodoros tools like Kanbanflow, might help you monitor your progress. Look at this video from John that shows how he plans his weekly tasks using Kanbanflow.
If you’re looking for a more “functional” or diary-like approach, check out WorkingOn. They enable you to reply to a daily email to describe what you’ve been doing, and then send you a weekly report. For me, I use it as a diary to check if I have actually been working on the right stuff.
Practice what you preach
You’ve read about the lessons I have learned. There’s really no rocket science there. But often the most valuable lessons are those that make you aware of how you do things and how you act amongst people that are closest to you.
Perhaps you take family or friends for granted. If so, STOP IT.
Involve your loved ones and make them part of the journey of picking up a side project. Even if your family are non-techies, everything is possible as long as you don’t go solo. Talk to them and take them along on the journey you want to take. It makes your life, and theirs, so much easier.
And don’t forget:
- The best way to make a side project part of your learning path is to be sincere and clear about it.
- Share your intentions and the impact your work will have with your family
- Embedding a side project means giving it room, but also making sure that all other activities are managed
- If you can plan your side project, you can also plan time off with your family. Don’t forget either.
- Be to the point, and point out the effort and what it will bring you.
- As long as the people who matter to you know why your side project matters to you, the biggest challenge you’ll need to overcome is defeating your biggest adversary, the enemy within you. Monitor yourself and stick to your plan.
Build. Learn. Improve. Repeat.