Last winter I started working on a dating app and continued working on it through the spring. But after getting my Covid vaccine and when things started opening back up during the summer, I took a break and stopped working on my app. A few weeks ago I picked it back up, but it was really hard to get back into it.
I've been working on this project for almost a year now and I've picked up some tricks on how to stay motivated on a long-term project and to see it through to completion. I guess I haven't actually finished yet, but I feel confident that I will. Anyway, here are some tricks that I use to stay motivated and to stick with a big project.
- Make a commitment that you're going to finish your project, no matter what.
- Tell as many people about it as you can so you feel guilty if they ask "how's that thing going?" and you haven't made any progress since the last time they asked about it.
- Stay caffeinated.
- Make a playlist of songs that motivate you.
- Play your music through (good) speakers, not headphones, if you don't have roommates. You want to keep working as long as possible, and headphones get uncomfortable if you wear them for too long.
- Make a to-do list. I use Trello. Check things off as you go.
- Focus on one thing at a time. Just focus on that one thing and don't worry about anything else.
- Work like a sculptor. Get the general shape of the whole thing done before you start refining the details.
- If working on something is sapping your motivation (like writing tests), stop. Work on something else, even if it's less important.
- Work on the most fun stuff first. If you look at something on your to-do list and it makes you groan or gives you a sense of dread, skip it. Another day you'll feel up to it, but today is not that day.
- The #1 goal is to keep working at all costs. As long as you're constantly making progress, that's all that matters. Everything needs to get done eventually, but the order you do things in matters less than you think it does.
- Items on your to-do list must be as small as possible. Don't write full user stories. Each item on my to-do list can be completed in about 30 minutes. This will ensure that you always feel like you're making progress. I think of each item on my to-do list as one git commit.
- If starting/picking back up your project seems daunting, work on a "gateway" project for a bit to get yourself (back) in the right mindset. For me, working on my dating app seemed scary, so I wrote a few blog posts instead. Didn't gain me any progress on my dating app, but got me used to sitting at my computer outside of working and tapping on my keyboard.
Software Engineering-specific tips
- Don't worry about writing perfect code. Just get something working ASAP. Make the code nice later.
- Don't refactor code prematurely, even if you'll need to do it eventually. Wait until it gets annoying.
- Don't worry about handling edge cases. Make to-do list items for those as you think of them.
- Make the UI pretty (i.e., styling, CSS) last. You can spend an eternity improving the look and feel of your app, so don't do anything more than the bare minimum until the functionality is 100% complete.