What Motivates Software Developers?
TekZen asks: "LWN posted a reference to an ABC News article that claims 'Other than Linux, all the other open-source projects move along at a rate best described as glacial.' The reason? 'This probably is a function of how motivation and lack of fear work among open-source developers.' Are you motivated by fear to develop at work? What motivates you as an Open Source software developer?"
OK, it was a dumb comment by someone who doesn't know what he's talking about (and yeah, he's a columnist, but that is no insurance against ignorance).
But the article was actually pretty good.
Summary:
1. The open source world is pretty confusing and seems complicated to the not-previously-exposed.
2. More and more people are growing up in this culture and that's trouble for Microsoft.
3. Wouldn't it be great if all that legacy software (that gets sold as part of the assets when a company goes under, and then disappears from view forever) was released as open source. It's not doing anyone any good where it is.
The last point is a great one. The problem is that all that code is usually encumbered by licensing agreements with companies that are also defunct, and the successors are sometimes hard to find and/or don't know how to renegotiate a contract when they don't even recognize the products and licenses being discussed. That, and of course, that there's no monetary incentive to do so, certainly not one that outweighs the risk of getting sued a la SCO by the fifth-generation successor to the ownership of the assets of XYZ corp (d.1990, RIP)..
Say your manager doesnt run after you with a stick at work, to motivate you. Say youre given 6 months to develop something with no required feedback during that time. Will you develop the way you'd write drivers for the linux kernel?
Its just kinda yucky to put effort into software which will make another man rich. Its like youre told to sculpt the best sculpture you can, which will be snatched by someone else, youll get paid $5 and he'll put his name on it. Even if you couldnt personally sell the sculpture at $5, its still a bad deal.
And then, there are the constraints which REALLY and I mean REALLY demotivate you. Say you absolutely love developing in ANSI C99, using lots of pointers, using the Intel compiler, QT, and making the code portable across BSD, Linux, Win32 and Solaris. Youre put on a VisualC.NET platform, where you have to use C++, not allowed to touch many libraries you'll depend on, not allowed the Intel C compiler, not allowed to port to Linux etc. Say you think the code should be distributed across many small shared libraries to make it neat, and youre told to pack it all in 2 DLLs. It just makes you want to stop working on it. You just push yourself from that point onwards to get the paycheck.
If someone asked Da Vinci to put a smile on Mona Lisa, he'd probably spend only a few hours on it, PREFER not to have his name signed on it, and he'll paint another personal copy with passion, just for the satisfaction.
Just put 12 developers together, make a list of their IDEAL development environment, OS, language, tools, algorithm etc, and you'd know how hard it is for the employers to instill motivation into the work. Many people have preferences on 'just because' rather than reason, for example I just hate Java and want to use C, perl, OpenBSD, Postgresql, QT everywhere.
Just because.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
I work for a medical device manufacturer. When I took the job it was really because I wanted a change of scenery and they paid to relocate me 1,200 miles away.
Now the reason I'm still here many years later, and what motivates me to do a good job is that my work has impact on people's lives. It's nice to see the occasional letter from a patient who thanks us (along with his doctor, to be sure) for saving his life.
Sure, our QA department will remind us from time to time that if we screw up, we can kill people, and that is a *huge* motivator to try to do a good job, but a much larger one is realizing that my code really does improve someone's quality of life.
And for that reason I'd really like to spend the rest of my software career in the medical/biotech field.