Picking up projects, feverishly working on them, and then entirely forgetting about them weeks later has been an issue for me ever since I started my tech career. I frequently compare myself to the tech version of Sisyphus - just that I get much less exercise.
Recently, I started working on a project that I'm absolutely in love with. I can't think of many things that'd make me happier than finishing it.
The issue? It's going to take me at least half a year to complete. I'm lucky if I can focus on something for more than half a month.
I decided that I loved this project idea enough to finally do something real about my motivation issue. The usual self-help articles weren't going to cut it this time.
I booked an appointment with a therapist, fully expecting to come out of the session being 120% motivated. Motivation would drip from every pore of my body. All my coder friends would say "Yeah, that's Kat, she's the one with the motivation". With the help of a professional - who unlike me was a real adult, judging by his nice couch and the certificates on his wall - I'd unlock the secret to eternal, unwavering motivation.
Of course, I didn't. But I got a lot of other advice instead, and after taking it on board, I'm definitely seeing much better results in my dev habits.
In this post, I'm going to compile most of the advice I was given, so that you can get the benefits of therapy without having to spend the $100. You can thank me later.
So the first step is...
The problem wasn't just that I was losing motivation after the beginning of the project - it's that I was getting bored of the project after the initial challenge. And that my aversion to boredom was so strong that I didn't want to continue. I could power through it - I just really, really didn't want to.
Unfortunately, boredom is a timer that starts the moment you write down that first line of code. You can't stop it. You're a coder, and boredom is coming for you.
While I assert that being a coder isn't a personality type, we all do have one thing in common: we seek novelty. We love working with shiny new technologies. But the issue with shiny things is that they stop being shiny the moment you get your grubby hands on them. If you're anything like me, you'll stop working on something the moment it bores you.
But if you do this - and I know you do this - you're wiring your brain for failure. By avoiding boredom, you're not exercising your mind's ability to deal with it - which creates a feedback loop of you being even more afraid of boredom the next time you encounter it.
The only way past this is to embrace it. Next time something starts boring you, see it as a sign of progress instead of bouncing to a new project. It won't be easy the first time you try, but over time you'll learn to thrive despite boredom. And just as motivation left once, it'll come back eventually once you start seeing all the results of your hard work.
In the meantime, you can slow down the impending march of boredom by...
Unless your project is tiny - in which case, why aren't you done with it already? - then it probably has more than one component.
For example, I'm currently doing gamedev. When I've done too much coding, I'll switch to 3D modeling. Then I'll take a break to do worldbuilding, then writing, and then it's back to coding again.
Take some time to think about how your project can be split into different, but parallelizable components. Section them off and start on the one that excites you most right now, and come back to the others later.
The benefit of this is that working on components concurrently delays boredom long enough for you to get some results in. Once you do have results, looking back on them is going to be your #1 asset while you slowly crawl through the inevitable gloom. Be like a little coder squirrel, stashing away progress to prepare for the winter (the winter is boredom).
And since you've already split your project into different components, what you can do next is...
Replace components that don't excite you with ones that do
If there's a part of your project that you know you're dreading, see if you can rework it. Maybe you can use a fresher, more exciting framework for that part instead. Take some time to explore more interesting ways of doing things!
Once you work on your project for a while, you'll build up momentum. Momentum is amazing! It's an intoxicating feeling. So you'll probably hate me when I say -
Kill your momentum
Do you think I WANT to be writing this blog post? Hell no. I've got a game to make, god damn it. Stop bothering me.
Telling me to kill my momentum and take frequent breaks from my project was the most counter-intuitive, irritating advice I got. But my momentum was a crutch. I was so unsure of my ability to stay committed to a project that the second I got any traction, I did everything possible not to let go. I pulled late nights, shirked friends, and dropped other commitments.
Of course, we all know where that gets you. And while you can power through boredom, you can't power through burnout. When you find yourself getting too obsessed, pull away from your project to do other things.
I know I sound like a madwoman, because so far I've pretty much told you to work on your project when you don't want to, and to put your project aside when you DO want to work. I understand if you're upset, so feel free to direct all your hate mail to me at @kathyra_.
But the point of this is to make sure that your project is controlled by you, not your impulses. You shouldn't allow boredom to make you abandon your work, and you shouldn't invite burnout by working too feverishly either. Stay driven, but above all, stay sane.
But if you're REALLY having trouble pulling away from your work, here's a great project-adjacent way to take a break:
Take some time off to share your project with the community!
People say you should be your own cheerleader.
To hell with that. Have you ever seen a cheerleader score a goal? Or a field player waving pompoms? Those are two different jobs, and doing both at the same time is just... not easy. There's going to be times during your project when you'll be feeling tired and unmotivated, and continuing while having a smile on your face won't be possible.
That's why the developer community is here to help! We're here to be your cheerleaders. When you've stopped feeling excited about your project, let us be excited for you.
Consider sharing the progress of your project with the Twitter developer community and writing posts about it on dev.to. As well as getting you ongoing support from the developer community, this also helps you build a following for your project so that more people see it once it's released!
And of course...
Accept the death of motivation
Motivation gets you started on a project, but it won't see you through to the end. Asking "how do I stay motivated?" is the same as asking "how do I be happy?". It's something that comes and goes, and you should appreciate it when it's there but also learn to make the most of things when it's not.
- Embrace boredom as a sign of progress
- Split your project into parallelizable components and switch between them to keep things novel
- Find fun alternatives to the boring bits
- Don't rely on momentum
- Share your progress with the community
Keep in touch!
Like my posts? Check out my Twitter! I make bad jokes, reduce important social issues to juvenile satire, and occasionally rant about tech.
Want just the tech? Subscribe to my email list to get notified of when new posts are released!
This post was originally published on explainhownow.com