I found out last March why my manager at Google was adverse to me. I knew someone was pulling strings on him and I had thought that he was taking orders related to my criticism of the G+ direction (in fact, the G+ executives were, as far as I know, innocent) but it was actually because an executive (who's since been disciplined) flagged me as a union risk. I said something to the effect of "decisions would be better if made on the floor" and that was taken to mean far more than I actually meant. (I was talking about G+ Games, not unionizing the Valley. Small difference.)
However, that ordeal and the career problems I've faced since then have convinced me that we need to unionize software development and the Valley ecosystem.
The Valley is fucking terrified of unions. So terrified that if you even seem like you might be leaning that way, executive-level people in major companies will go out of their way to fuck up your career. A lot of the back-channel reference checking that goes on in the Valley is to avoid taking on a potential unionist. No one cares if you were a mediocre performer 3 jobs ago. That stuff is there to black-list potential unionizers.
Now, do I think we want or need a factory-style union where promotions and pay are based on seniority? Hell no. That's a terrible idea. Engineers who work their asses off to become the best they can be, and to advance their respective fields, should be rewarded. I think that the top engineers would make more with a properly-designed union structure than they do now (since, currently, they top out at 1.5 times the pay of mediocre ones). I think our model needs to be more like the Hollywood unions (writers' and actors' guilds). Those do not curtail the financial upside for their members (there are still actors making millions per year) nor do they produce mediocrity. (Say what you want about Hollywood's product, but it's immensely commercially successful and the envy of the pop-culture world.)
Specific union protections we need include:
* readily available legal support when faced with non-paying clients or bad-faith
employers.
* recourse against clients and employers who use reputation threats to justify
nonpayment or bad behavior (i.e. "if you don't accept our unfunded scope creep,
we'll call other clients.")
* (for employees) representation when in trouble with management. The right to
have a representative *in the room* (mostly, because if you negotiate on your
own behalf, you're at risk of getting emotional and saying something
stupid) when dealing with management or HR.
* defense against negative references and back-channel reference checks in
general.
* transparency in compensation.
* protection against "no-poach" lists and blacklists. A union tip line
can help with that.
* protection against sharing of individual HR data (salaries,
performance reviews) among companies, often used to keep pay down.
* negotiation of terms that are embarrassing for an individual to
formally address, such as severance, health accommodations
and workplace privacy.
These are all things that we can have, and that we deserve, that bring none of the negative side effects associated with unions.