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...
Embrace boredom
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...
Changing direction
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.
To summarise:
- 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
Top comments (11)
I agree that it is not helpful to be addicted to novelty, but I feel that kind of addiction is often a sign of deeper issues. Typically when we are not able to stay motivated in programming projects it is because we are not embracing environmental design enough, as explained in the book "Willpower Doesn't Work - Discover the hidden keys to success" by Benjamin Hardy.
Basically I think at the core, our motivation should be purely based on underlying good traits, such as the desire to build helpful products and help your team and company succeed. However, often that is just not enough for some reason, and then we often get a little more demotivated when we don't completely agree with what someone else thinks we should be working on. So there are several tricks you can use to combat that.
First you have to address the part about not agreeing with what "they" want you to work on. You need to actually voice these feelings, and not just in a way where you are venting to someone that can't do anything about it, but actually discuss it with the person who decides what you work on. Even if you are given a certain amount of flexibility, likely on some level your project goals are being decided by someone else. So by discussing what you should be working on with that person, you will get a chance to have your say and have them consider this. If they don't agree, try to get them to explain why they want to prioritize something else. You may end up agreeing with them, and then there is no more problem. But really some level of compromise on both sides is often the best you can do. Try to find something you both agree is important to work on. Then try to negotiate a time based bonus you and possibly the rest of your team will get if you meet the real need in a legitimate way by that time. I know this sounds horrible, but it really will add to your motivation because you are the one who negotiated this bonus. This is not entirely about being motivated by money, and I'm not saying money is the only or best motivator. This is about you being held to your own standards, and making a formal commitment to try to live up to them, and then being motivated by that. You can think of it like this, how many large projects should the team be able to complete per year if they are doing very well professionally and for the company? How quickly would each of these large projects need to be completed on average in order to complete that many per year? Once you have answered that question for yourself, you now you have your deadline for the current large project. It will also help if everyone is very explicit about the fact that the timeline has real world consequences if it is not met. The bonus will really only be given if you actually finish it by the timeline. If you don't get it done by that time, this is not a punishment, you still get paid, you just don't get an extra bonus. If the bonus is still given at that point out of pity or recognition or professionalism, or for any other reason, it will prevent the time element from being a motivating factor for the next project. It is ok for some of the bonuses not be received.
The daily standup is your next motivator. Your standup should be designed to keep everyone motivated and progressing. Everyone should at least try to have some real world progress toward the larger goal they can talk about and maybe even demonstrate quickly every day. If you start making and showing this kind of progress almost daily, it can become quite empowering and addicting, and therefore motivating.
Next you need a healthy work environment that allows for focus when needed. Have some way to visually indicate to your teammates that you are currently in "focused work" mode, and prefer not to be disturbed. Throughout the day transition in out of focused work, where you make progress on just one project for a minimum amount of time. Have a ritual you repeatedly use when starting to hone in on just one task. For me this means I go into a special spot within our virtual Sococo office. By moving my avatar there, I am signaling both to my subconscious mind and others that I need to stay focused for a time. I then change my status to busy, which creates a little red dot next to me. I then change my current Asana task (what I am working on) into full screen mode. I make sure to close all browser tabs that are just news or email or notification based and have nothing to do with what I am working on, and put my phone on silent. I also start up the focus@will application, which plays music that is designed for productivity (not entertainment). I start a timer in that app, which represents the minimal amount of time I will spend on that task before I am allowed to take a break or checking other notifications or switch tasks. I don't have to stop when the timer is done, but I can. I have done this ritual so many times now that it effectively puts me into a trance of instant motivation and focus.
The timer going off and the music stopping is also a good reminder that it might be a good time to take a nice little break anyways, but sometimes it really is better to just keep working with no external stimulation or timers at that point if you extremely motivated. Anyways, the way you take breaks needs to be very thoughtful, especially if the idea is to get refreshed so you can jump right back into what you were just working on. If that is the case, you probably should not check your phone or email or news sites. Those will not help you get refreshed for more focused work on the same project, they will wear you out and demotivate you from staying on track with thoughts of task switching and many other concerns and unrelated ideas. It is better to get up and take a little walk, or use the restroom, or get water, or just sit with your eyes closed for a few minutes, or if you work from home, do a few dishes, or get dressed for the day, or take a quick shower, something that involves your other senses and don't require much analytical thinking or time. If you really need to read sometimes, have a book you keep handy right there next to you. Even if it is a technical book that you are using to learn and improve, there is something about reading an actual book that does much less damage to our minds, compared to reading the latest news or email or notifications, which will only put you into a demotivated, drained, addicted, ADD state of mind.
End your work fairly early in the day every day. Leave yourself plenty of time to do other things other than your job every day. Let's face it, we have needs, values, and agendas that are not fulfilled by our jobs, even if we excel at them. They never will be, they are not supposed to be. By leaving yourself plenty of time every day to get stuff done and experience life outside of work, you will give yourself a chance to live in harmony with your own beliefs. This will fill you with a sense of purpose and meaning that will add to your motivation throughout the day, even while working. By strongly limiting how much time you will work each day, this will make you really want to use your work time wisely, and get as much deep work done as possible each work day, which will help you achieve maximum motivation while working.
+1
Please convert this into a separate post.
I can't promise you that I'll try, but I'll try to try. If only I could find more motivation...
Good article. One core insight for me was recognizing what exactly was exciting for me, and what bored or annoyed me - and then appreciate that some parts will always be cool and other will be boring.
LOVE this! Pulling myself away when I get in too deep is a huge problem for me, I know what you mean by it feeling unnatural. My brain is primed for the problem at hand, WHY WOULD I STOP NOW IF IT'S ALL I'M THINKING ABOUT!
(ahem). Anyway, this is all really good advice that I'll try following ;-)
It feels soooo wrong! I'm pretty sure I made this face at the guy when he recommended it:
I learnt that if the project is really useful, then I'll finish it.
But most of my projects that came up as a cool idea, I eventually abandon, simply because I realised that they wont be as useful, as I first thought they would.
I wish I was more like that! I've abandoned so many projects that would have actually been useful.
Lol and 🤔.
I really like this article. It is hard to let go of the coder's high that you get when you stay up late slamming out an awesome new idea, but over time I've realized, in agreeing with what you wrote, that it's unhealthy for overall motivation.
It's not easy to be introspective about what motivates you, but it is valuable. I think this article gives me a great way to start thinking about my own motivation :)
Interesting article that you didn't want to write :) I still didn't understand what your project motivation was, but as I guess what you called a motivation wasn't really one: does it have a grand purpose, I mean greater than you ;)
Here's my secret:
Have two kids and a family to support, and realize you have to have productive outcomes in your short window of times on your projects.