tags:

views:

1232

answers:

19

Everybody knows it: the time when you don't enjoy programming / when you have a blocking wall in your head that stops you from programming.

Sometimes you are hacking programs for about a week and sometimes you become unmotivated even after 10 minutes...

Did anybody find out, when these unmotivated-phases occur? Did you find out some "psychological"-rules when they happen?

F.e. I noticed, that I'm absolutely unmotivated if I want to "feel alive" and be around with friends... These phase keeps about 2 weeks...

What about you?

+7  A: 

When you work on something for some time and there is no evident progress, your morale drops. You need to reassure yourself, to show yourself end of the road on the horizon.

Also when you look at work of others, see imperfection in yours and tell to yourself: "It sucks what I do", then your morale drops once more. The trick is to keep believing in what you do to continue going.

Developer Art
Do you mean morality or morale? I don't *often* find a long running project makes me want to kill
Rich Seller
He was making a joke :P Morality is a bit like moralité in french.
Dominic Bou-Samra
@Rich Seller: I'm not sure what the appropriate English term is. "Le morale" in French, something like mood, motivation, spirit etc.
Developer Art
That would be morale.
RCIX
+3  A: 

I agree with New in Town. I've been working on a few SharePoint related projects for months and a number of them have been dragging on. I feel demotivated to say the least.

One tip I could give is, if you have the chance then try to work on something on the side. Have a pet project or something that you can do outside of the project which is causing you to feel unmotivated. For example, I've started learning PowerShell, been interacting more on SO, been studying for .NET exams. I've tried other things in order to keep me interested in programming.

Doing these others things outside of work makes me feel a bit more juiced about programming.

Try to keep things fresh if you can, I know it can be easier said then done.

Cheers. Jas.

Jason Evans
Sometimes I think that having a pet project can work against you. I often find myself using Python or something instead of using my university's filthy Visual Basic
Dominic Bou-Samra
Side projects can cut both ways: Working too much (or too late into the evening) can leave me unmotivated (or just too tired) to program on the job. OTOH, last week I was pretty unmotivated at the job, but worked on some personal stuff over the weekend. This got me going again, and I have been much more motivated on the job this week.
PTBNL
+7  A: 

I find the worst thing for motivation is when I can see a flaw in the code I'm working on but my manager says I have to leave it as they don't want to rock the boat!

Stevo3000
Your manager may not state this very well, but he does have a point. It isn't that it would be dangerous to fix it. The point is things like that have to be planned, so that everyone is aware of the changes made and what was impacted by the changes. This way changes can be properly tested and if any issues occur, it is easier to track them down.My advice would be to try and get them planned in some release. It is also important to have 'business case' for a change. Explain to your boss how it would help the business to fix this flawed code.HTH.
Jonathan van de Veen
+22  A: 
Dominic Bou-Samra
+1 for saying it needs your interrest, not pushed by some instance. Seeing this myself too.
Dykam
+1 for the exact same reasons as Dykam
Josh
+5  A: 

In her great book The Creative Habit: Learn It and Use It for Life Twyla Tharp descibes what she calls the spine of any creative act. Shortly put, the spine is your intention, your goal - a simple, strong and concrete description of what where you want to go. The spine then acts as an anchor on your way there.

For instance, a spine for a software project could be: "Make an app that plays mp3-files from a playlist where the files can be drag 'n dropped.". It sounds obvious, but actually stating it in words helps you going back on your track when your're about to start making an RSS reader extra feature to your app that can't yet play those mp3s :-)

It's good to come up with some kind of spine in the beginning of any project. On good days you don't need it, but when you get lost you can go back to your spine to check what you're actually supposed to do. I think it could help in motivation problems, too.

Joonas Pulakka
+12  A: 

I find it hard to start programming big complicated systems or new features. Because you know it is going to be hard and it will take a long time before anything will work and you get any kind of satisfaction from what you spend time on.
But if you manage to break big undertaking into smaller simpler parts, each of which can be tested or ever generalized as separate useful sub-feature, then you can enjoy programming those. Coding small easy parts is fun and you get instant gratification, which keeps you motivated through the whole process.

Ma99uS
+3  A: 

If you are in a slow/boring/repetitive project the "human down time" is quite high, sometimes as much months.

However if the project is alive/cool/fresh the "human down time" drops to the scale of some days.

Johan
+1  A: 

Sometimes I think that Devil himself invented deadlines. It kills me when I have to cut corners just so I could meet the deadline. It really kills the joy of coding.

Leon
A: 

all is usually well until the client who cant communicate properly tells you you misunderstood what he wanted and have to go back the drawing board.

all that nice code, down the drain == cant be arsed to start again

stef
+4  A: 

I beleive that for someone who is very ethical about what they produce, that once we are told to go against our personal ethics / quality control, we easily become unmotivated due to the fact, that we are not satisfied with what we produce.

To be face with projects where you need to start coding something for yesterday, but nothing is defined. To simply know that you will be rewriting everything is depressing and unmotivating.

Alexandre Brisebois
+3  A: 

One thing I've noticed (and I've noticed it with art projects, dressage training, manpower studies, efficiency studies as well as programming) is that every long running project has a bad period when you don't think it is possible to finish or make progress or when you wish the whole thing would just go away. This is almost always followed by a period of rapid progress and high motivation (unless you are in a death march project in which case getting out as soon as possible is the only solution; trust me you'll know the difference between one of these and the normal stuck period in any large project). So when I hit one of these lows, I remind myself that it means I've made progress (even if I don't really see it at that moment) and that the really rapid progress phase will be starting soon.

HLGEM
+7  A: 

"Mihaly Csikszentmihalyi on Flow" is a good TED talk about getting into rather productive state.

"Dan Pink on Motivation" is another good talk about motivation.

As for my phases of lost motivation, sometimes they end by changing my view on the world, so instead of the world sucks and suicidal thoughts I just accept that I should make the best of what I do have and live my life to achieve some things I want.

I have a handful of different ideas for when I become rather frustrated at any point:

  1. Take a break. Stop what I'm doing and go take a walk, watch TV, play a video game, finish a Sudoku, anything but keep working on the problem. TV watching or reading are somewhat mindless activities that can help recharge a part of my brain while video games can work a different part as there is some motor function required but not necessarily much more brain power for some games.

  2. Check my basic needs list. Things like hunger and thirst are obvious, but so is sleep and other hormonal activities which includes acknowledging that as a diabetic I have to check my sugars. Even taking a shower can be refreshing sometimes and clear my head.

  3. Assess how important it is what I'm doing and is this the best time to do it? Can this wait while I do something else to help my health?

P.S. Yes hormonal activities can include sexual content as most people do have urges coming from "down there."

JB King
I find regular a regular flush() of my output socket works well.
Dominic Bou-Samra
I really liked the TED talk about flow. I think ESR calls the flow state "hacking mode" in his Jargon File. I know from performing that such a state is possible in music as well, but apparently it also works in any other kind of creative activity. Feel the flow :-).
Kage
+6  A: 

(Most of the answers here are assuming that the question is in reference to something more tangible, more directly controllable that what I hear the Question asking.)

My colleague (currently my boss) and I have noticed that we seem to have irregular cycles of very high productivity and very low productivity. We have likened it to Bipolar Disorder. During our manic-like phases, we can code like crazy. And during the depressive-like state, we struggle to get anything worthy done.

Lucky for me, my boss is very open about these things and the solutions to them. Our approach has been to embrace the manic episodes, and work more hours per day, where we get most of our overall work done. During our off phases, we work less and do non-coding tasks.

There is a risk of entering perma-slack, yes. But our company is very small, we know each other well, and the list of things to do is endless. Extended periods of slacking don't happen.

We believe our approach maximizes our creativity, efficiency, and overall motivation.

Then again, it's a highly individual mental health thing, and requires honest introspection. Some people are just not capable of that. And some people think we can be machines with a steady rate of productivity.

Stu Thompson
I have to laugh at this because we have one client that we work with that we have all decided is Bipolar. Funny how corporate cultures can be described in psychological terms.
HLGEM
+4  A: 

There are several factors that affect my motivation to code:

  • Complexity of the current task - this is most prevalent at the start of a fairly complex task assignment. At first, the task is so daunting as to cause the mind to flinch away from the effort, but as an understanding of the factors involved (new code API, mathematical equations, etc) increases this fades
  • Size of the remaining task - no matter how you slice it, having 100,000 lines of code to write is discouraging. The way around this is to break the task into smaller, more achievable chunks
  • Frustration inherent in the task - This is the most pernicious motivation sapper that I tend to encounter. Typically it's when you're trucking along, and something comes along that completely defies your expectations of functionality. Perhaps a pattern is implemented incorrectly, or a member function/variable is too obscurely named. These kinds of encounters can yank me out of my flow fairly quickly, and it takes some hard willpower to get back into the swing of things
  • "Soft" factors - things in my personal life/outside of the task at hand. Perhaps I didn't get enough sleep over the weekend, or I had such a good time on vacation that returning to work is a drain. If you can figure out how to effectively combat this factor, let me know :)
MBillock
+1  A: 

Motivation definitely suffers when pushed into using a third party tool and you then spend the majority of your time working around the problems in that tool, rather than writing useful code. I find the "code, find problem, google for answers, struggle to implement answer" cycle quite draining.

P.S. This is particularly annoying when you know the code works, but due to some strange installation issues for the third party tool, you start to get unexpected results... (crystal reports, I'm looking at you here).

Paddy
Hahaha... crystal ^^
Lichtamberg
+1  A: 

I feel that the people you (have to) work with are the single most important factor to my productivity. This can be in many ways. I worked on a MOSS 2007 project about 18 months ago and the project manager from the customer side kept telling us to not do any custom code if not absolutely necessary. We ended up spending months on things that could have been achieved in weeks, only to end up with users who where not happy with the result, because we had to compromise on functionality.

Another instance was working on a project where other team members kept seeing 'problems' and trying to change an already started approach. This was party because there was no clear strategy to this very large project, but also because of oversized ego's in the team. They didn't realize that they where stalling any progress made in the project, for example by worrying about technical issues that where still more then a year ahead and that would be solvable anyway or by hammering down on details while still in a phase of developing a framework (and by details I mean stuff like styling the UI or a tooltip that was misspelled, etc.).

Those where very hard projects to keep motivated on. This lack of motivation would add up into several weeks at a time.

Jonathan van de Veen
A: 

I think that the most motivating thing is doing a job that you consider right, that has quality.

I have those low moments when I have to do my task in a fast and bad way, or doing something without a learning period just googling.

But I recover when I have enough time for doing my job, and know how to do it.

Example, I am a .net expert, I entered the company as .net architect, but they put me as team leader in a java project, all without formation and leading beginners. That is what is making me feel sick about working in this. We got the job done, but with a lot of effort. I compare is as the sensation of someone whose head is introduced in a toilete by force, and sometimes the bad guy take your head out a little so you can breathe.

Try changing your task, or perhaps moving to another company.

Pablo Castilla
+1  A: 

Paul Graham is his esssay Wealth, say that you need two things to be motivated in what you do. First is leverage, it means that your action have observable consequences, second is measure, you need a way to know how much you suck.

I find myself thinking that the best way to love coding is to have someone who 1-Use what you do 2-Say how much you suck or not.

Nicolas Dorier
+1  A: 

Personally, I'm also a musician and I often find myself unmotivated to program when I want to be in our big band and perform on stage. When I feel unmotivated to make music, I usually want to program and solve that latest problem. On the other hand, after I have finished one of those two activities, I find myself motivated to do the other again. So I believe for me it's about finding the right balance between the two.

I'm interested in how other programmer-artists feel about this.

Kage
I like to draw and program, and I feel the same way as you. Sometime I am really motivated to program, but after a while it start to feel really tedious, and I just want to take out a piece of paper and start sketching on it (I don't use photoshop in those case because usually I just don't want to be in front of the computer). Then after a while of drawing random things a solution for my code pops in my mind and I get back to it.I wonder if it have something to do with left brain/right brain usage
Laurent Bourgault-Roy
Yes, I had that idea too. I wonder if there's biological research about this topic already.
Kage

related questions