This year alone, I've spent months on a side project that would have once taken me a weekend. I'm glad I did, because for the longest time I waited for that perfect weekend and got nothing done. So after lots of doing nothing, then a long time making progress little by little, here's some thing that helped.
Set a schedule: Right now for me this is 45 minutes first thing in the morning. I get up early and try make a bit of progress. Often that progress feel frustratingly short on the day, but over weeks and months those efforts stack up. I've found that a little daily effort is easier to sustain than trying to lump that time into one block on a weekend. If you miss one day you're 45 minutes behind, if your one weekend block is impossible due to other plans, things feel much further behind.
Leave some breadcrumbs: Often, the hardest part is getting started. If you're following a schedule and only have a small window, getting right into things is even more critical. What's helped me here is leaving a jumping off point for the next time I start on a project.
- If its code it's a line in my git commit like:
NEXT: Add a form for adding a new weekly time block.
- For blog posts and videos I'll leave something not quite done, a half finished sentence or edit.
- These breadcrumbs mean I don't have to eat into my session choosing between the many things I could do next.
Make it fun: If your side project feels like a total chore, it'll be hard to keep going. Every project has it's slow periods but it can help to inject one or two small things that keep it interesting. That might be a new library or tool to dive into. It helps ensure that even if the particular project is a flop, you can point to something you picked up on the way. That being said, I've found the chance of a failed project increases the more 'new' things I add. Boring and familiar has its place too.
Assuming your side project is in fact 'something on the side' I would encourage you to become OK with them taking as long as they take. When I was at university, time was plentiful. I could build, study, work and do everything else I needed to.
For a while I beat myself up because I wasn't pulling all nighters to build things, later I realised thinking that way was unhealthy. These days there are other things high on my list of priorities and that's okay. I can still build, just in a way that matches the time I have available.