>...programmers are often thought of as "professionals," like doctors or lawyers, and not part of the "working class." But this is misleading. Most programmers are neither self-employed nor employed in an organization where they have a meaningful say, and most can't expect any kind of tenure or partnership status, no matter how long they work.
>...Programmers are typically hired at-will, and are not generally accepted to have any professional obligations that could supersede management's authority, nor the ability to do research or pro bono work on company time. Management styles range from the likes of Dilbert's pointy-haired boss to a hierarchy so flat that it's almost invisible--until it's time for somebody to get fired. Still, for most programmers, management authority is a constant.
Professionals without authority.
I like this highlight of collective bargaining:
>the right to contribute to open source projects or veto the release of insecure, privacy-violating or otherwise unprofessional code.
Sure would be nice if the red flags we raised would actually have an impact.
>Most important, however, might be the idea of solidarity.
This is something that Michael O Church mentioned in a blog post; how the managers always say nice things about one another whereas programmers always slag one another and always blame the last guy for crappy code instead of trying to build each other up. I once had two senior devs basically force me out of projects; where did they end up? at different companies 1 year after I was forced out. where did the executives end up? they merged the company and gained some $$ or completely cashed out. Solidarity would have been the better choice.
At another place, the devs weren't listened to and juniors/contractors were hired to develop a project. The devs had to deal with the mess that was created. What happens on the next project? They aren't listened to again and can't even flag down the fact that the previous project has generated like 0.001% ROI.