Ask HN: Is it time for software developers/engineers to unionize?
I've seen an increasing number of HN posts on the subject of how software developers/engineers are almost universally underpaid relative to the value they bring. The collusion between Apple, Google and others to keep salaries down and block poaching suggests that this is a systemic problem. There are sites out there like Glassdoor that offer some transparency -- but for the most part this industry is very opaque. The average software developer/engineer is left with only anecdotal information to gauge their value in zsalary negotiations.
So my question for HN is this: Would software developers/engineers benefit from a union? From a collective bargaining standpoint, would a union give software developers/engineers a leg to stand on? What would the backlash be from the tech industry if developers/engineers unionized in large numbers?.
(
42 comments
| 22 points
| on HN
)
Unions serve a big need when employers exploit employees in a detrimental way. They did great things to expectations about safety on the job, number of work hours, ageism.
In tech, we get paid better than most of the population, perks are expected and provided, and equity sharing makes some people rich. Yes, you could maybe get paid more if there was a union restricting labor supply, which is how they work, but it would really suck to have union seniority rules or have union say in who works where. It limits freedom for both employers and employees once the important items like job safety have been addressed. Union negotiations go both ways; the employer agrees to something, the union makes you agree to something by proxy in return. You may not like what the union forces you to do.
Like for example when the biggest companies, Google Facebook Apple and all others in California agreed to not give wage increases to employees who would be looking to switch employers?
Was it in the ten thousands per year difference in average salary?
I don't want to be the next automotive industry.
Also consider consulting shops that adhere rigidly to specific development tools and practices, including hiring only compliant developers for customers, post-engagement.
I think that a semi-successful union would hamper the success of smaller companies by demanding that they hire only certified, highly-paid engineers. These engineers can only work a certain number of hours, use certain languages, etc. (Assuming such conditions can be enforced in the first place, with so many available employers in the market).
These conditions seem to me difficult for many organizations to accommodate. Thus, my thinking is that a semi-successful union would trigger software boot camps like App Academy to attempt to "break" the union by increasing available supply. The union would then fail. Collusion between Apple, Google, and other companies to hold down salaries only succeeds if there is no "spoiler". Facebook turned out to be a spoiler, and they benefitted greatly from it.
Yes, software developers are generally paid well and if you can earn the respect of your peers, you're usually treated pretty well too. However, the industry is rife with horror stories about sexism, over-working, burnout, family disruption, harassment and abuse - not to mention the ridiculous burdens placed on developers who are also expected to be on call 24/7, manage the company's IT infrastructure, and generally do whatever the hell their superior demands at a moment's notice.
For a privileged segment of the industry, there is no problem - but that is by no means representative of the whole. Software mills churn out shitty software and treat their employees with the same respect they give to quality and professionalism.
Being part of a union gives you the numbers required to do meaningful damage to a company which doesn't treat you right. As always, a balance must be struck between the strength of the employer and the strength of the union(s), but for many in this industry, it's currently a losing battle. More and more demands every year, but fuck you if you want to be treated better.
Don't delude yourselves into thinking that being part of a union is only about money. If you ever have to work ridiculous hours, not see your kids or your partner, suffer from lack of sleep, do things outside of your job spec, and generally just feel like you're being taken advantage of, then the reason for this is that YOU ARE INTERCHANGEABLE. You're not a special little snowflake just because you're pretty darn up to date with the latest technical shizzle-wizzle you read about on HN. You may be technically very proficient, but then so are a lot of your peers, and there's no shortage of developers out there.
This may be a highly skilled industry, but it's also one with a very low barrier to entry and a shit-load of people producing OK work at a fraction of the cost of your salary. You're not immune to abuse just because you're good at what you do.
Most organisations don't required 'good' developers. They require 'good enough' developers. If a business can save some money by paying people less, they will.
> If you don't like your job get another one.
Actually, I love my job - but this is a ridiculous argument to make. If it was that easy, why would anybody stay in a job they didn't like? Life's not that simple.
> If you're a good developer you won't have a problem finding one, and your employer will probably learn that you are not easily interchangeable.
So your solution to poor working conditions is to teach your employer a lesson by giving up and leaving, so they can hire somebody less qualified for less money but who still manages to muddle through and deliver?
The problem with saying that 'there is a shortage of good developers almost everywhere' is that it's completely subjective. What are you classifying as 'good'? Does your employer's definition of 'good' match up with the share-holders definition of 'good value'? This is precisely why developers can be so self-destructive. You may be the best in your domain, but it doesn't necessarily mean that you're the best and most profitable option for an employer.
Using this constant threat of replacement -- "there's someone waiting to take your job and happy to do it for less if you complain" -- management can hold back wages and take advantage of employees. Hence, the union fights for things like standardized salaries and tenure and so on.
Good developers/engineers aren't easily replaceable. As much as outsourcers and body shops want managers to believe you can just tell any developer what to do build and you will always get the same result, we all know that one bad developer can ruin a project and a great developer is often worth way more than 10 mediocre ones.
So as long as developers are being valued individually for the skills they bring to an organization, it's better for them to negotiate individually rather than bargain collectively.
What unionizing would do is create a quality floor for development, which would be good for businesses but less immediately beneficial for individual developers.
Until barriers rise or the market is completely flooded with good developers, thus causing wages to plummet, unionization won't happen.
Every time I have ever seen this issue come up, the loudest voices in the community are vehemently against it.
The argument goes that software engineers are too creative and valuable to simply be replaced like so many union workers. See thread here: http://programmers.stackexchange.com/questions/9481/are-ther...
I think the real answer is that the ethos/personality/philosophy of a large swath of software engineers does not jive with collective organization. Also the market is such that developers are on the top of the pile and thus do not need to organize.
[1] http://www.iww.org/unions/dept500/iu560
Most trades and especially those that fall into the IWW 400 category require quite a bit of skill and creativity to produce quality work.
Is it because of job security? No. There's nothing worse in the world then being "secure" at a job working on a codebase you hate--every day, seeing the madness and pointless mud piling up and piling up. In many cases, the company and culture is worse off if you can't readjust teams to retain the people who fit and let go the people who want (or need) gone.
Is it because of wages? Somewhat. As programmers, we shoulder a disproportionate part of the responsibility for delivering value to customers and if we do it properly we end up with a product that scales with little intervention. Accordingly, we should reap a better share of the long-term profits. At the same time, even if you aren't in vastly over-inflated talent markets as on the coasts, we generally aren't paid too badly--unless you are in a town were the profession isn't respected, in which case you are getting shafted repeatedly.
Is it because of work conditions? Yes. We work a very sedentary job. Many shops expect/require bullshit-long hours and at weird times, and few promote life/balance with anything more than a wink and a nod. There is a large amount of stress involved with our work, especially as deadlines draw near or as code rot becomes apparent. Cognitive dissonance is great, because we aren't allowed to lie to ourselves about reality: we can't, because computers don't deal in lies. Bad code is bad, sales features promised don't exist unless there's code backing them up.
Is it because of professionalism? Yes. I can pick a "programmer" out of a set of 100, even from a good school or respected company, and still fin glaring omissions in what they know and how they practice. There's no quality control in what people describing themselves as software engineers or programmers know, and so hiring becomes annoying. This in turn makes the market screwy.
~
A full-blown union would be of questionable utility--I sure as fuck don't want to give any of my paycheck to yet another bureaucracy claiming to represent me well. That said, there may be a good argument for a professional body similar to the ASME or IEEE.
Kind of like recruiters, but overall a more serious and professional bunch, for instance, you need to become certified/accredited in some way to be a "programmer agent".
They get paid, not like recruiters today. They negotiate on your behalf, they are your advocate in negotiations with the employer, and they get a standard 10% of your yearly salary.
You don't talk money at all, they negotiate your deal. Also they could act as your career adviser. Their interest would be a long-term relationship, and in your advancement, which may work better than in say sports or entertainment where the career lifespan is shorter.
Agesism in tech
Non payment for employees or contractors
Protect programmers refusing tasks on ethical grounds
Establish ethical standards
What other problems have we not been able to solve so far?
Examples?
The work conditions (and associated politics) reach ridiculous levels, particularly since the union (which I was forced to join...) seems to only be concerned with the clinical side of things, of which I take absolutely no direct part in. So for instance, I won't be allowed to work remotely, because "it may affect patient care"... > I'm a programmer.
So as far as developers/engineers are concerned, I would say no to unions.
PS: I'm aware the public sector is a bit of a different beast (I worked in the private sector for a long time before that), but I think the point remains.
If you are feeling underpaid, there are probably many other companies you could work at who are actively hiring that will probably pay you more. The collusion cases you cited are rare, and have only been discovered at the largest tech firms like Apple and Google - who by the way most certainly have more software engineers on the north side of six figures than not.
If you are a software developer, now is not the time to unionize. Now is the time to enjoy this while it lasts, as make as much money as possible. It won't last forever.
I don't think CPA's or lawyers have to do whiteboard interviews.
When going the union way your give some of your freedom. You don't have freedom to negotiate everything yourself on your own terms based on your own needs, knowledge and value. No one knows better than you what your needs are.
You are paid exactly what you were able to negotiate.
(I don't have the answer.)