Architects, designers, and developers of corporate systems usually have little or no voice in what gets built, or how, or why. They don't sign on, they get assigned. I know that individual developers do care passionately about their work, but usually have no way to really make a difference

I consider myself an alpha-geek. I think I have met quite some other alpha-geeks.

I tend to think that there is hardly any other group of professionals that care so much for their profession like alpha-geeks.

Regarding passion, dedication and motivation alpha-geeks are very similar to artists or master craftsmen.

Alpha-geeks usually don't (want to) make a difference between their job and their hobby:
"Tenet of professionalism: Work 40 hours for your employer and another 20 hours improving yourself." (tweet by unclebobmartin)

... at least that would be the case in an ideal world ...

In reality I have almost never met a passionate developer, that is really happy with his job.

In reality it's more likely that the alpha-geek is working the additional 20 hours, because he is frustrated with the 40 hours he had to spend for his employer... because he could not realize his ideas of real development, because he was bogged down with fabricated complexity, because he lost his way in a maze of legacy code and because he had to spend so much time and energy for bureaucratic overhead ...

This is a schizophrenic situation, and I wonder why it is so common?

Probably a lot can be credited to the Office Space clichés that can be found in corporate environments. And to the fact, that in a lot of those environments it's impossible to deliver software that matters.

But I think it's too easy to lay all the blame on corporate environments.

I think a part of this schizophrenic situation can be credited to a blame-the-others-syndrome. If things are hard and if there is friction, it's always easier to blame the others. It's only self-protection to assume the stance "If I only could do things my way, everything would be good!"

I also think software development is especially susceptible to this schizophrenia, because nowadays it almost exclusively deals with intellectual constructs.
It is very easy to create a clean, wonderful notion of a perfect software system and to imagine an ideal software development process. That's because we can let our imagination run wild, since there are no real constraints in theory. At least in theory there always exists a perfect solution. That's a major difference to other (real) engineering disciplines.
It's very convenient to think that we could realize the perfect solution, if only we could do things our way...
...only in our perfect solutions we did not consider those accidental constraints like people, time, economic factors ...

A third aspect is that there are hardly any measurable characteristics in software development. Therefore personal taste, preferences and gut feelings become important. And since these are very individual, it's a logical consequence that we always have to deal with compromises when we are working with other people.

I believe that leveraging the passion and motivation of developers is a key factor for forming highly productive teams. This has been shown with different studies.
But to a certain degree this is a blade with two edges. Highly passionate developers are much more susceptible to the schizophrenia mentioned above. I think the key is to accept, that real-world software development is never perfect. Our job is it to pragmatically live with this imperfection.

Glad I was brought to this post from HackerNews, I didn't know about AlphaGeeks and it gave me insight on what it is that I really am.

I quit my last job because I wasn't nearly satisfied with the level of organization in the development process. They had so much legacy and crappy code, wouldn't consider other more efficient frameworks, etc. Basically, I was ignoring economic and bureaucratic aspects, favoring passion and optimality in using the latest technologies available.

Inspiring post. I've actually quit my job to concentrate on bettering myself and the web. Been spending countless hours learning on my own and experimenting with any of the latest and most interesting technology available.

I'm not even a coder! I'm learning to code as I go, but I'm more design-inclined (user interfaces and integrating them). Coding is extremely interesting too, I'm glad to code, but I don't necessarily like all the processes implied in testing code. I want to prototype and go on creating the next best thing without needing to consider rules or conventions slowing me down.