views:

206

answers:

9

There's a good chance this question will get closed, but I feel it's relevant to programmers.

A project that I've put a great deal of energy into was just significantly scaled back, to the point where it might as well not exist. There is a very good chance that the bulk of my work over the past two years will never see the light of day.

I know project cancellations are common in the software world and it's all but impossible to go through your career without experiencing them.

My question is: How do you maintain your motivation when something you've invested so much time and energy into evaporates within a matter of weeks, for reasons totally out of your control?

I love programming and now I feel like my heart's been broken. Will I ever love programming again?

+3  A: 

Like personal relationships, move on this too shall pass. Imagine now how much you have learned and how you will make your Second System.

Xepoch
+2  A: 

That same exact scenario has happened to me. My solution:

Find out if you're prohibited from applying the concepts that made the project you were working on so cool to another application (something that isn't direct competition).

If you're able to use it elsewhere, maintain a personal project that you find just as exciting. You may not be able to put as much time and effort into it...but it definitely provides some of the lost motivation.

Justin Niessner
+4  A: 
begin

if HaveEnoughMoney
{
   Go on holiday/sabbatical
}

Get a new job

end
Jaimal Chohan
Missing a loop?
Xepoch
Probably wrap a `do { ... } while alive();` around that.
Ether
That would be a sad loop.
Robert
+3  A: 

Take the experience and apply it to another project. Take some of the money and apply it to a trip to Vegas.

Gurdas Nijor
I was going to suggest something along the lines of alcohol, but this is indeed more appropriate.
a paid nerd
+2  A: 

I hate to say it, but sit in the middle of the room, close your eyes and meditate. Slowly chant to yourself "I get paid the same either way."

Then work on finding your next project, or your next job, as appropriate.

mmc
+5  A: 

Get a DVD box set of The Wire, Season 1, and watch it end to end.

Paul Keister
Already watched it. Great series. Also quite relevant to this situation. Maybe I'll watch it again.
Runcible
+5  A: 

Will I ever love programming again?

Yes. You will. Pick yourself up, learn from the experience and carry on.

Gall's Law:

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.

This is what you should learn from this cancellation: If you couldn't ship something after two years of work, you were attempting to solve a problem that was too large without a preexisting foundation to build upon. When starting new projects, you must be ruthless in rejecting "requirements" that will add too much complexity to your product. Build the core, ship the core, then expand upon it, and ship that too. If you're not shipping, you're in danger of cancellation and uselessness.

Bob Aman
Incidentally, during interviews, when the interviewer inevitably asks, "Do you have any questions for me?" This is what I ask: "Will I be trusted with the responsibility to make decisions about product requirements that would interfere with my ability to ship?" If they say "No" to this, promptly thank them for their time, and walk away.
Bob Aman
In our particular case, our project is leveraging a great deal of pre-existing work. But I agree with your central point: We didn't ship fast enough.
Runcible
Well, just leveraging preexisting work isn't enough. It has to be preexisting work... that works. Sadly a rare beast.
Bob Aman
Fair enough. Regardless, if we had gotten a working version of our product into the customers hands - even if it only had a subset of the features they requested - I think we'd be in a much better place today.
Runcible
Undoubtedly, yes.
Bob Aman
@Bob Very interesting interview question, and I think this is what I should have asked when I applied for my current job. I think I don't like it here because of that exact reason: I have zero say in things that matter.
Blub
+1  A: 

I'm trying something with a simple mantra "the version 1 of the project must be in customer hands after 2 months maximum". If the project fails, 1 or 2 months of code is lost, if the project partially success you just have to iterate until it is loved, if the project is loved just buy a bigger wallet... Maybe I'm wrong, I'm experimenting this :p

Nicolas Dorier
A: 

If at all possible, keep a copy of the code. If you have that much pride if what you've done, you'll want to be able to use it as a reference, somewhat like a portfolio.

Kelly French