Sorry, but collective bargaining is a real need, even if wages are high.
As programmers, we should have:
* readily available legal support when faced with non-paying clients.
* 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.
* negotiation of terms that are embarrassing for an individual to
formally address, such as severance, health accommodations
and workplace privacy.
These are things that "collective bargaining" can get. Hollywood actors have a union, even though they're clearly in high demand. In a celebrity economy, you need unions and agents just to deal with the reputation-management issues that quickly become a full-time job in their own right (and that are typically ill-handled by creative specialists like actors or computer programmers). As white-collar employment becomes increasingly reputation-driven, we need this infrastructure yesterday.Let's say that you find out that an ex-boss from 4 years ago is bad-mouthing you and costing you gigs. If you hire a nasty fucker like me, I can make him shut the fuck up. I'd find a plausible health problem, either one you have and don't mind sharing, or one that would work. Then I'd ask you to communicate to him that you had disclosed that health problem during your employment, his error if he forgot, and that negative communication about you or your performance will be judged discriminatory, so it's best not to say anything at all. Then I'd call that reference for you, about a month later, getting everything on tape and if he was still giving you problems, I'd refer you to a lawyer (but, unlike a union, I can't afford to pay for that). Chances are, you wouldn't know how to handle that. Most people don't. A competent union will.
Add to this the fact that there are a zillion clueless 20-year-old engineers in the Valley who think they're going to be VC-darling CEOs in five years, and cashed-out billionaires in ten, and you get a culture of clueless and foolish self-reliance.
I don't want something as corrupt as the pilot's union, or as mediocrity-protecting as the teacher's union. I do think that programmers need some protection given the volatility of this economy, and the increasing importance of reputation (which requires having full-time professionals to manage it).
To me, the biggest negative of a union is that it risks commoditization of labor. (But, for some hope, see: professional organizations and the unions for screen actors and writers.) However, since we're already being commoditized (JIRA, Scrum, closed allocation) we really have nothing to lose in most shops.
While those organizations are good for the profession, they are bad for the country as a whole. The AMA expends much effort on making the barriers to entry in the medical profession as high as possible. This artificially restricts the supply of doctors and makes healthcare more expensive overall.
The same happens with bar associations. How much money is wasted, how many people are driven into debt, because bar associations require a useless law degree to enter the profession? (as opposed to allowing lawyers to self-study and pass the bar on their own)
"I don't want something as corrupt as the pilot's union, or as mediocrity-protecting as the teacher's union."
The question is - how would one create a union that would avoid falling into these traps eventually? How can we be sure the union will not end up protecting incompetence and erecting artificial barriers to entry into the profession?
I don't want to regulate compensation. If you're good enough that people will pay $500 per hour for your services, that's great. Nor do I want the seniority-driven culture of traditional labor unions that leads to mediocrity. What I want is a system that allows programmers to bargain collectively for their interests. Not one that regulates compensation, protects truly bad employees, or imposes seniority policies that lead to entrenched mediocrity. We should have a formal structure that allows us to look out for our interests without the risks of going alone.
Let's say you're given an offer letter, but it has a binding arbitration clause (meaning that you can't sue). Arbitration is rigged against employees, because the company pays the arbitrator, and it never sees daylight, so the company doesn't fear the PR risks of discovery. This means you can't expect a severance. Ok, you say, I'm not planning on getting fired. Well, no shit; who is? But it also means the company can treat people poorly because the cost (to it) of a morale problem is lower; it can fire without considering severance costs. That affects you, even if you're a high performer. Without binding arbitration, an underperformer costs then 3 months of severance or a morale-killing "PIP", so they have an incentive to keep you from getting bored. Or, you might just get unlucky and get fired over something not your fault, but with binding arbitration, you're fucked. It's unfair, ridiculous, and wrong. However, if you push on this issue (i.e. fighting over a term that, while ludicrous, only matters if you're fired or leave on very bad terms) management will see you as either a troublemaker or someone likely to underperform.
One company asked me to sign a waiver legally releasing them, and all parties called, over results of a reference check, including back-channel references (i.e. references I didn't provide). That's a ridiculous concession. A competent union or professional organization would nuke that from orbit. But as an individual, pushing back against it made it sound like I had something to hide, and while it didn't cost me the offer, I was told that my negotiation of that term "was discussed" as a possible red flag. (I ended up declining their offer. Shitty legal processes are a red flag for me.) I shouldn't have to go out individually (and be a "troublemaker") to get onerous terms like that stricken.
A union is basically an insurance policy. You pay your dues so that, if you're ever unfairly treated at work and need someone to get your back, you have that. This keeps management honest and is generally to the benefit of both sides.
I would negotiate that term out of the contract. If they won't negotiate, I decline.
> I shouldn't have to go out individually to get onerous terms like that stricken.
Why not? I'm happy to negotiate my own contracts, but if you are not then you should hire an agent to negotiate for you.
History has shown us that unions almost never perform the way you describe. They introduce overhead and confrontation into the contract negotiation process, turning a cooperative relationship into a confrontational one. In the long run, they rarely benefit either party, let alone both.
No thank you.
Even if they accept your change (and, often, they will) you've now identified yourself as a "PITA". Before you've done your first day of work, you've had to negotiate terms of termination. That's unfair to you. You shouldn't have to talk about you getting fired to get binding arbitration struck. It shouldn't be on the table in the first place. It's an utter abuse of the original arbitration laws.
I'm happy to negotiate my own contracts, but if you are not then you should hire an agent to negotiate for you.
Let's say that you're an employee. Things are going well, but there's a change of management and, for political reasons, you're served with a PIP and it's pretty obvious that the outcome (you fail) has been decided. Is management going to let you call an external agent into the office, right then and there, to help you in the process? Almost certainly not. You'll be fired, and they'll try to argue that you committed "insubordination" by placing the call, or even that your sharing of information with an external party (such as an agent or lawyer) constitutes a "leak", making the termination "for cause". You might be able to beat them in the courts, but it'll rarely be worth it. They'll perjure themselves all over the place and fuck up your reputation, even if you win.
That's where you need, on paper, the right to have an agent or representative present when you deal with management or HR. They can go 2-on-1 against you (manager plus HR rep) so you should have the right to make it 2-on-2.
They introduce overhead and confrontation into the contract negotiation process, turning a cooperative relationship into a confrontational one.
The world is a complicated place, and often confrontational. Besides, the other side has its collective bargaining infrastructure in place. HR is their agent, and corporations are just collective bargaining for rich, powerful people. Fights aren't good, but I'd rather it be a fight than a beating in which I lose.
Do you think it's always going to be like this? I see this sentiment everywhere on HN: "everything's going well, therefore it's always going to be like this!"
I'm not saying it's falling apart, but do you think business-owners like paying developers as much as they do?