Inspiring Developers to Greatness
Anyway, this is a question that I have been pondering, and asking, for a while. I wish there were a simple answer, but I also wish I could lose weight while continuing to eat like I do and never exercise.
What I have come up with so far are two factors that contribute greatly to the inspiration of developers, but do not actually guarantee anything.
First, you need to give developers some ability to control their destiny. Developers are naturally curious and creative people, so given a little freedom, they are likely to do something interesting. Or maybe they won't, but they will do something out of the ordinary and they will extend their way of thinking and that can only help their ability to do their jobs. [Thanks to Jason Staten for crystallizing this for me.]
The second common thread in these discussions is "where I work, we do..." The company culture of giving a crap about continual improvement seems to be a key ingredient. I know that before I worked with a team of excited developers, I just thought of this as a job. Their passion spread to me and I am trying to spread it to others. This is a pattern that I have heard over and over. (This usually, but not always, includes time to work on what you care about as part of your workday.)
Conversely, if you work in a culture of disinterest, you will either find your interest waning, or you will get frustrated and leave. Chad Fowler would tell you to just get out. I have applied this strategy a couple of times. It isn't worth your sanity or your passion to stick it out at a crappy, soul-sucking job.
Things like reading books on development, trying new languages, attending conferences, watching videos, going to user groups and participating in forums all keep the flames hot and help me continue on the path, but I don't know that any of them will get someone on the path. I have noticed that most of the dispassionate developers I know don't (and won't) do any of those things because they are third or fourth order ignorant. They don't even recognize the existence of the problem.