At this moment of my writing, I just don't want to work. I come across this problem a lot recently.
I don't have the urge to work, and it feels too difficult to focus.
I know that once I start, I will be productive. But I don't have a recipe to start. If my mood changes, I work. If not, I dont' know what to do.
I recently read that no matter what, you just work. I tried and failed to just work.
Any advice?
Now, that said, you may be burnt out, or you may not actually have to do the thing you're putting off. That's different. I'm talking about something you know you have to do (or else painful and undesirable consequences), but you're avoiding starting it. It's a trap. Just find any way to start. Do a bit, don't get down on yourself if you only do a bit. It's better than nothing.
Whenever I feel unmotivated and cannot move forward, if I am not tired or burnt, then it is because I don't see a path forward. That is because my thoughts and information are disorganized and they pollute my sight.
Writing is a very good tool for organizing one's thoughts. For whatever reason thinking with one's short term memory, at least for me, is inferior to writing or even speaking(rubber ducky?) As Jon Haidt says, we are not a logic processing machine but a story processing one(or something like that).
If you have requirements for your work, sit down and write about it. If you don't know how to start then write about how you acquired those information; write about what they mean, what you want to do and anything that peaks your fancy. Over time you will develop your favorite style.
As an aside, journal your days too; looking back on your day you can put your personal story in order and then see if something went poorly, or well. If something doesn't make sense.
Again, over time, you can use your work or personal journal to derive other artifacts. Think of it as a data lake. Want some slides? documentation? forgot a command? forgot why you did something? open up your work journal and copy paste some lines, images or code snippets.
In summary I highly recommend writing. It is a valuable tool that for some reason is not emphasized enough.
One more thing, if you are expressing something, telling a story and such, you may type for speed. If you are thinking and exploring, its best to hand write, it will slow your brain down; plus, there is something about writing letters, a meandering doodling hand an rhythm that helps think.
- Disconnect the laptop's charger and work on one charge. I used to have a laptop that had at most 2 hours and it forced me to really focus. The progress I made on some projects on a commute is amazing.
- Disconnect from the internet and work only with what you have on your machine. This means no search, no tabs. No distractions. This is great for proofs of concepts/prototypes where you get something done first, then you refine it later. It taught me to look at the code instead of documentation, and it taught me that as good as a documentation can be, there always are things that are not documented but are still there to use. It also made me more familiar with the dependencies of my projects. I never really used StackOverflow much when online (I instead rely on the code, docs, and issues of the project), so your mileage may vary when it comes to removing internet access.
It's also useful to reduce the "activation energy" for work. One of the ways to do that is to exploit the time you don't feel like working to play or explore. A directory named "musings" can help, where you scratch a few itches with snippets of code. If you're distracted in exploration of a new library or concept, make a new file and play with constructs, patterns, APIs, libraries, etc. Just play for play. It's low pressure. You don't need to ship something. It's not work, but it's fooling around and more often than not, it tricks you into getting in the zone without even realizing. The other benefit is that day in and day out, you're building a "corpus", a set of snippets that very often will come in handy when you actually need to do something "work related". When that time comes, you won't perceive the task to be daunting or be clueless, because it's déjà vu. You already fooled around with that concept/library/problem and you have something in your back pocket. It won't be "How on earth am I going to tackle this" and feeling under pressure and overwhelmed, but "Yup, I already played with that. Heck, I even wrote some code to do that. I'll see if I can use it".
Playing when you don't feel like work is a great way to reduce the activation energy when you actually have to work.
You have to be that manager yourself — breaking the app or product down into small components and working out what should get done first.
Build a list in a form you’re familiar with — even if it’s a form you don’t like such as Jira. Break it down into large chunks and smaller assignments. Then start on the small stuff, ticking them off on by one.
When you see tasks being completed and the list moving, it builds a sense of momentum and it gets easier to keep going day after day.
If you don't know what you're going to work on or haven't decided what to build yet, then stop what you're doing and work this out first.
You can only tackle motivation issues when you're not feeling bad.
My trick is to imagine the end-result of what I am currently working on, it pushes me to get the reward of seeing it finished.
Of course it works only if I expect to be proud of the result.
As the abbot and the warlord sat in the courtyard pleasantly chatting and drinking tea, they were distracted by an argument between a novice and a senior monk. The novice was complaining that the meditation technique given him by the senior monk was ineffective and worthless. "It cannot teach me how to concentrate much less meditate," shouted the novice. "Give me a more reliable technique."
Observing that the argument was distressing his old master, the warlord stood and said, "Please, Master, allow me to help this young man." When the master nodded his assent, the warlord summoned six of his archers.
The warlord then filled his teacup to the brim and carefully handed it to the novice. "Take this cup of tea," he ordered, "and without spilling a single drop, carry it around the entire periphery of this courtyard."
As the novice took the cup the warlord commanded his archers, "Follow him! If he spills a single drop, shoot him!" The archers drew their bows and began to walk beside the novice who, in the next twenty minutes, learned how to concentrate.
Dear Friends, there is no substitute for determination. Enlightenment is a serious matter. It can never be attained with a casual or lax attitude. You must be determined to succeed and you must be resourceful in your determination."
EMPTY CLOUD - THE TEACHINGS OF XU YUN
Ex.
8am - out of bed, make breakfast, no phone usage
9am - start working (and make sure you have specific tasks to work on)
12:30pm - lunch break + go for a walk and listen to podcast
2pm - continue working on specific tasks
5:30pm - leisure time + make dinner
7pm - workout
8:30pm - shower, get ready for bed
9:30pm - sleep
Don’t build things by yourself.
Build for specific people, and feel responsible to those people.
Tie your social status into it.
Humans are incredibly social animals, take full advantage of that fact and make sure you’re sailing with the wind on the ocean, not tinkering with model boats in a poorly ventilated bedroom.
1) Start with ancillary or related tasks. Basically any task that will be needed for the project but maybe not now, and that won't mentally task you a lot. E.g. pick a color scheme, register a domain, come up with your Call to Action/tagline. Draw up a list and check them off as you do them. Checking them off gets the motivation to work flowing
2) Put your design down on paper, essentially write down your pseudo-code/process flow. It's easier on the brain and actually is a good help when you finally start coding (lots of people start coding without having fleshed out the design)
3) Assign yourself a daily time quota to work. Start small e.g. I must do at least 1 hour on this project everyday. Starting small means you're able to meet your target. As time goes on, you'll find yourself blowing past that time and doing more work.
4) Focus on getting something out (very very rough but call it V1). Don't focus on a polished output. Having a first version no matter how rough tends to get the juices flowing so you can refine
5) Be willing to accept that you will not be productive on all the days and don't beat yourself up on those days. I think that feeling guilty on the days we don't 'accomplish' stuff makes us wallow in self-pity which even makes us less motivated to work.
What you're going through is usually my experience towards the end of a project i.e. my struggle is to actually push through and finish the project. I wrote about this on the blog of my most current project (see my profile)
For example:
Problem: There was too much street light at night to sleep coming through my window, so I bought black out blinds. Then I didn't have enough light to wake up in the morning and always felt sluggish.
Solution: I created an arduino sensor to detect morning light (depending on time of year) and then using a motor on the blind cord, it opens my blinds gradually so I have a nice natural wake up.
And it's powered by solar. I literally never need an alarm clock again. (All thought I still set one, good developers always have a plan b)
- The War of Art - by Steven Pressfield
“I write only when inspiration strikes. Fortunately it strikes every morning at nine o'clock sharp.”
― W. Somerset Maugham
Solo ventures are very challenging and there is a lot of emotion baked in. So think through what has changed recently. The biggest fears from my experience are: is this the right product? Do people actually want it? Are you going to finish fast enough? Do I have the right life balance? (keeping relationships, family, kids, friendships; eating right, exercise, sleep)?
Not an easy discussion with yourself, but I think when you believe you are on the right path and are making good decisions it will flow again!
Then someone told me: "just try and see how far you can go". And that completely lifted my inability to start working. I don't really understand the psychological trick there, but somehow it worked well for me.
That is, if you can’t focus, that’s usually (to me) a sign that the “work” available is currently too nebulous to focus on, and you need instead to focus on turning it into more concrete, atomic, actionable items, which you can then focus on doing.
- Make a pretty fine-grained list of tasks that are likely 10-30 minutes
- Put my task list on an index card or whiteboard
- Maybe use a Pomodoro timer
- Change my physical environment - take a laptop outside, kitchen table, bed (or in olden times, McDonalds, library, mall food court, etc.)
- Overload on caffeine and sugary snacks
- Crank up some loud, angry-ish music
- Dangle a reward for myself (If I ship this app today, I can order another keyboard)
- Grind out a code kata on Codewars or somewhere else
- Before I quit for the day, lay out the first task or two for the morning
- Take a shower
- Take a walk
- Getting something "out there" + "working" as soon as possible. Even if _really_ rough, buggy, ugly, can't scale, only works in 1 case, needs a code change to work in any other etc...
- Keep it working with every change
- Every change is small. Potentially, teeny-tiny
Examples:
- Forking a project from GitHub. Have something working straight away! I've done a few project that literally have no lines of code in common with the original, except perhaps the license [so not appropriate for all projects]
- Releasing a website with whatever it is really early. Even if unstyled, no documentation, but does a tiny sliver of what you want it to do eventually. Then iterate, releasing the new version every single change.
- I think some people suggest avoiding tests in early stages of projects, but for me... some high-level tests on the "public facing" behaviour really helps give me the feeling that it's working as changes are made, and I'm never stepping backwards.
Things to avoid:
- Long running feature branches where lots of things are broken
- Refactoring without some sort of externally-facing feature in mind
- Low level tests of implementation details
- Working too much on "behind the scenes" stuff. You probably don't need a really fancy CI system that supports 100 developers deploying every day... [But: enough of a system for _you_ to release often is good]
So now, especially in the morning - if I catch myself thinking "just 15 min of YouTube" or "maybe ten more minutes of sleep before working out" I make conceited effort to tell myself "no" and actively do what I completely acknowledge I do not want to do. Ironically I sort of caught on to this signal in college when I was a horrible procrastinator and didn't yet know I was ADHD. It's a bit extreme, but always doing what you're most actively avoiding has started to work for me. Only took me a year of being locked in my apt to figure it out...
- Use focus app block every website which can distract me
- Leave a "low hanging fruit". I can start the day with a very small and simple task and have some success in a couple of minutes. Getting into it is easier that way
If you're anything like the average person, you've probably filled it with _something_. Take a moment to assess if this "something" is worth the time you are spending on it or if you're just using it to pass the hours in the hope you'll get a change of heart.
If you're just using it to pass the hours - aggressively cut those activities out of your life. You'll be surprised how motivating being bored out of your skull can be when it comes to getting work done.
The basics of it is red, green, refactor.
Before you write the code, write the test. Autogenerate the code from the test until it compiles. It will be red (fail) because there's no code. This is how you test the test.
Then do the absolute simplest thing to make the test green (pass). Make it really hacky. Once it passes, refactor (clean up your code).
The positives of this is you don't even have to be in flow. It takes seconds to do a red, seconds to go to green, seconds to refactor. You can be interrupted at any time and not lose your train of thought. If you're writing some tough code, there's also some other techniques you can do, like write several tests for behavior and triangulate the code from that.
You expect to get motivation first, then start working. This thing not always work like that, it's self-enhancing cycle. Work -> Motivation -> Work -> Motivation...
The thing is you can start this cycle from any point. I.e. if you want to get motivation for work just start doing a little.
Do you have to work? If not, try learning another skill: an instrument, juggling, cooking, a language, motion graphics.
Did you burn out? It might help to ensure that you commit yourself to keeping a good work-life balance, and then take baby steps: work just a half hour a day at most until you find yourself working longer.
Are you depressed or anxious? See a doctor.
But this idea of starting very slowly will likely help get you back into things. One week imagine a project you want to work on. The next week write about it. The next week spend no more than an hour or two developing it. Eventually get yourself comfortable again actually coding, then looking for a job
Good luck! Keep us updated
What changed? I'm not sure, but I think it's that I'm working on a project that I believe in, that's more challenging to me, and that I feel in more control over. I used to be the guy who got added to a team that was already in progress, but now I'm the guy who was working on this project from the very start, and I'm determined to see it through. I feel more ownership over the project.
How do you get there? No idea, but I just made a proposal for a new project and I've got 4 days to make a prototype. This sort of thing seems to work for me. Maybe you need to figure out what works for you.
Usually if I just do a little bit of anything at all to bring my project forward, the momentum will carry me.
Pair programming with less experienced members of the team. It was very important for me, because previously, when i had "bad day" i was ending with completely wasted day. Now, even when i am not able to do work myself i am still able to boost significantly someones output.
For solo projects, watching advanced tutorials, or conference talks about technology beneficial for current project gives me sense of progress during days when i am unable to code.
10 to 15 minutes is short enough to not feel negative about having forced myself to do it, but long enough for me to "get in the mood"
Stephen Guise wrote a book Mini Habits that is quite short but to the point on how to implement these.
https://www.amazon.com/Mini-Habits-Smaller-Bigger-Results/dp...
Using the Pomodoro technique is another great strategy for those days where you really do not feel like doing any work.
If your not inspired then leave it.
You’ll maybe even call it a day then, but often your brain will kick in at at least start mulling it over in the background.
And sometimes you will get absorbed and carry on well after the one minute has passed.
Just commit to something small and see what happens.
If you can sync time start coding while on video call together before everyone signs off.
you could prob use 3+ months off if you can afford it.
you can work doing something else in the meantime if you can/need to.
I say this but, of course, in your place I'd focus on the disease, not the symptom. Maybe search for a more motivating work environment or job position. Maybe do some therapy to investigate your lethargy (if it's intermittent instead of constant, there must be something to it). Maybe just stop working, if you're privileged enough to afford it.
Then I would, and this is the most interesting part, record my pomodoro session using OBS studio.
I love to pretend that i have thousands of viewers that are rooting for me to get the the task done in as little pomodoro chunks that I can.
I set my pomodoro intervals to 50mins focus/ 15 min break, and I would change it depending on current tasks at hand.
- open Notepad
- at the top of the page, briefly describe your development goal - a concrete project or task
- below the first line, break it down into a list of manageable subtasks (just the first few - more will come as you progress)
- keeping the list open on a separate monitor, maintain your focus on the first subtask
- as you get through the subtasks, cross them out or delete them. Add more items or details as they come to mind.
That's it.
If you're too tired or unmotivated to start, or get into the flow, you might also want to ask yourself if you're really doing what you want to be doing. If the work doesn't matter, of course you don't want to do it. So either pick different work, or figure out how to force yourself to get it done, knowing that there's nothing "wrong" with you -- you just don't want to work on boring things.
That said, it's totally possible to go in the other direction. You've got an awesome project that you want to work on, but fear of success is hamstringing you from starting. This is the worst, most insipid form of procrastination and it really just sucks. The best thing you can do is recognize it, but it's really a life long problem for some. Exercise and routine help, but I think a lot of creative types find that to be a bit of a boring shtick... if that's the case you could consider talking to a psychiatrist about an ADHD diagnosis... there are pills for that after all, but they come with their own tradeoffs.
Oh, and if you haven't yet, download something like SelfControl.app and block every site that you reflexively enter into your URL bar. Another trick that works for me is leaving my work unfinished at night, but knowing what I need to do to finish it, so I have something to jump into immediately the next day.
You should first accept that any time you have already wasted, was always going to be wasted, and thereby free yourself from regret.
While employed I was super productive on side-projects on weekends and after work, but when I had entire days to do as I please, all motivation came to an abrupt halt. I couldn't get back into flow. The motivation dissipated. Distractions took over. Projects felt like mountains to climb without being able to enter flow mode. Without flow its amazing how little you can actually get done in a day.
What worked for me eventually was getting back into flow via any means necessary - and not by working on the thing I most wanted to build.
Procrastination is the key to escaping procrastination.
Working on the thing that I want to turn into a successful business made me feel overwhelmed and stressed, and therefore led to procrastination.
The trick is to get back into a flow state, and then when in this state regularly, you shift across to the project that you should be working on. When in flow the feeling of "if I didn't need to sleep I could get anything done right now" is what you are after.
First, I like to get myself back in front on the computer, by doing some menial task. Like changing your vulnerable passwords in Chrome, or organizing your repos on Github, or cleaning up your bookmarks or browser profiles.
So now you are off the couch and doing stuff. These small, easy tasks, can generate a moderate flow.
Now, pick some small trivial thing that you want to fix or build. Like a bug in an open-source project that bothers you. Or a simple static website that does one silly thing that makes your life easier. Something that is going to help other people or involve collaborating with other people is a good idea - which is why a Github issue is a good. As a developer on a team, you often don't realize how much motivation you draw on from your colleagues. You grind on stuff to make your colleagues lives easier, to impress them, to push the shared company vision further, etc. Even just one other person impacted by what you are doing can be a huge boost in motivation. This is why 2 founders are better than 1 IMHO.
So once you are back into flowing, interrupt yourself to work a bit on the project you really want to work on. Don't say "okay now I am full focus on the real thing I want to do" - make it feel like a procrastination of the thing you are currently doing. Then bang - you have tricked your procrastinating mind.
Its good to take breaks from the thing you are working via other side projects - just the same as you did when you were working - but be careful to not stray too far into something too complex.
Other things that help:
- Podcasts - Listen to morning podcasts with people talking about coding.
- Twitter - Listen to tech conversations. Although Twitter is a big source of procrastination it can also be a good motivator and way to feel less isolated.
- Exercise - Runner's high is super powerful to get motivated - but it will give you a high that dissipates unless you adequately use it to enter flow. It can be counter-productive so don't waste time after a workout before you start coding.
- Alcohol (caution) - If you get stuck in "analysis paralysis" or really can't get going, alcohol is a great way to jump start things. Sometimes I will pour myself a beer, and without even drinking it, I feel this rush of motivation, and I get going on things I put off for ages. It is powerful at taking away mental roadblocks and unleashing great motivation, but the [Balmer Peak](https://xkcd.com/323/) is real! Motivation quickly tapers off. However, it is very dangerous in the long-term. Reliance can creep in quickly - but it can be useful as break yourself out of a rut.
If you only work when you feel like it, you'll fail. There will be hard times in which you have to persist. Work 2 minutes a day, develop a habit.