Let's face it: working in business software typically means writing code to line a few peoples' pockets (and sometimes not even your own). Much of Web 2.0 and social software is merely a distraction and only really helps communication among a technological elite, and does not substantially improve the quality of life for those who use it. This is a personal dilemma I have faced for some time now.
How do you work in software that has a meaningful impact on peoples' lives? What sort of software can generally help lift up humanity? Embedded software for devices has the ability to act on our physical environment. Games have the ability to give people joy and escape. Creative software allows people to make good things. What else is there?
Have you found a way to write software that has a real, tangible, positive net effect on society? This is a major factor in my startup decision. I might be too idealist.
Yes. Everything I do.
I (along with many others) write lots of software to help small and midsize businesses compete more effectively. They, in turn, provide value to their customers, jobs for their employees, and pay taxes to their communities. If that's not a "real, tangible, positive net effect on society", I don't know what is.
Not everyone has to find a cure for disease or discover how to provide clean air and water for the masses. You don't have to change the whole world, just a little piece of it.
A mentor once suggested I think of it like a football team. Some pass, some catch, some run, some block, and some tackle. All you have to do is "your job" well, for the team "the rest of us" to succeed.
Please don't be such an "idealist" that you never find your calling. Just pick something close enough and go for it.
The real heroes are in the pits every day, helping others do their thing. You oughta join them.