How do you manage shipping side projects with a full-time job?
I couldn't be alone struggling with this, so, I thought I would ask. Here is what I am doing:
- Be even more aggressive than a startup in cutting corners to ship quickly
- Listening to my body, not taking the pressure to ship it but more like going with the flow. That is, doing 1-2 small things each day that may take less than 10 minutes but when I get a bigger patch of time, shipping bigger features.
- Planning more and coding less (came from actual work experience)
- Not experimenting with tech stacks, in my personal experiments, probability of shipping goes down (for me) when I am learning/experimenting and shipping together.
What are your thoughts on this?
I think this is a great question!
There are probably a million suggestions to offer on this subject, and ultimately it's going to be a different answer for each person. But, here's my two cents.
The key to everything is staying motivated and positive. Without those two things, you'll struggle to maintain the necessary energy to finish a product.
I wake up every morning before the rest of my family and code for 2 hours. This time is absolutely precious, and you might be surprised how much work you can accomplish with quiet, focused time. Not everyone is a morning riser, but you must find a time in which your body and mind can get into a groove.
Relax and accept that things will take longer than if you worked at it for 8 hours straight like a full-time job. You're not a failure if your side-project is moving slower than the products you're building at work.
Instead of cutting corners, build fewer features. Cutting corners feels like that means you're sacrificing quality, and your customers deserve a quality product. I think customers appreciate more straightforward products over complex products anyway. Gather early feedback from trusted customers about what's working and what to build next. You'll also strengthen your relationship with your customers by listening to them and tailor-making your product to their needs.
I completely agree with your #4 topic. I think developers experiment too much because of the fear of missing out. Use the tools that make you the most productive and build a toolkit that helps you be productive. For instance, keep iterating on snippets, develop your own personal library of functions that help you work with strings, dates, UI controls, etc. These can help you in your full-time job too. A useful toolkit is one where you're not solving the same issues twice. If your career takes a turn towards different languages and tools, then rebuild your kit and continue chugging away.
I think there's more to unpack here, but those are my two cents, and hopefully, they help a little.
Parkinson's law is the adage that "work expands so as to fill the time available for its completion".
I haven't had a full-time job, so take this with a grain of salt. But whenever I suddenly got more time to work on a particular project (e.g. because I hired someone to take work of my plate), it didn't increase my productivity as much as you'd expect. When we have little time to work on something, we end up spending it more wisely.
That doesn't directly address your question, but it's worth keeping in mind.
I try to never have a 0% Day. I always try to ship something, even if its just a tiny css fix or a small improvement to not lose the momentum which can happen when you come home from your 9to5 gig. I reserve atleast 1hr and max. 2hrs from my evening where I only work on my sideproject and don't watch netflix or play games. I also found out for myself that once you define a timeframe everyday for work, you tend to be more productive as you value your time more! Hope that helps :)
Thanks Cody, Marc and Stefan for the answer, let me try to answer each of you separately 🙏
The key to everything is staying motivated and positive.
I agree, for my current side projects, mainly readbot.app and languagelearners.club, I did that for myself and before the payment system and other stuff it literally took me 1-2 days to build the thing (that satisfied 99% of my requirements), rest is some hassle aka putting it out there. But I get what you are coming at.
I do the "getting up early" part for personal development/other things that I care about stuff (miracle morning), not side projects, but the same idea applies.
Relax and accept that things will take longer than if you worked at it for 8 hours straight like a full-time job.
💯 having been a freelancer for a long time of my career, I am particularly good with software estimates, except for side projects where I have an expectation of shipping more stuff faster. Luckily, I am not off by much but there is some bias in me that side hustle should be faster.
It came off wrong, I exactly meant building lesser features, readbot for example is a telegram bot in place of an android, ios, chrome extension app because I wanted to build a prototype for myself. But the USP is best parsing of anything out there. I am building less features but delivering more value. Cutting corners was = less platforms etc, less features.
Overall, your answer aligns completely with my thinking, happy to get some validation on my thought process 🙌
Parkinson's law is what I had in mind when I wrote "Be even more aggressive than a startup in cutting corners to ship quickly". In small startups you move fast but you have room for errors but in a side project, an error and a revision might lead to reduced motivation (in certain circumstances, what I mean is, errors are costlier wrt motivation, good in terms of scale/reach)
That is what I am trying these days, sometimes it gets a bit tiring, I don't want to be afraid of letting go of a streak but I get the idea of consistency, reminds me of (http://siimland.com/goals-vs-systems/) 🙏
Thanks everyone for sharing their thoughts 🙌