Programmers Will Form Labor Unions
We will have programmer labor unions. Labor unions arise when a workforce is stable, there are few opportunities for advancement, and the owners of the businesses are achieving large returns on capital. When these three conditions occur programmers will unionize.
A good number of programmers I have met just like to program. They happily write code that someone else tells them to write and they do not think about writing code for personal gain beyond a salary from their employer. If this dominant attitude continues, programmers will continue to have few opportunities for advancement. If a programmer does not seek to expand his skills beyond mere programming, she becomes interchangeable with other programmers. Another opportunity for advancement is management. Programmers are often also adverse to management. This aversion decreases the opportunities for advancement available to the average programmer.
Programming, as a field, is just old enough that We are starting to see career programmers: people who have remained the same role of writing code under someone else's management with someone else's specifications for their entire working life. This is painfully similar to a career electrician or welder--two highly unionized trades. Certainly the trade of programming as a career programmer advances as new technologies become available but if these new technologies do not change the attitude of the career programmer he remains without advancement opportunities.
It has been shown that large returns on capital are possible by employing a large number of programmers. Microsoft and Google have shown returns on capital that would have astounded the industrialists. These gains will only increase in the short term as more career programmers are marginalized by their own commoditization. By employing more and more programmers at lower and lower wages, companies employing this strategy will achieve absurd windfalls necessary to spark unionization.
The biggest stopping point to unionization currently is stability of the workforce of programmers. Enough programmers do not stay at the same job long enough to make unionization seem necessary. What this group of career programmers may come to realize though, is that even though they do not stay at the same job, they are staying at the same kind of job. The same kind of job doing generally the same kind of work.
Another contributor to instability is globalization of the programmer workforce. The recent labor pool expansions in India, China, etc. have lead to a destabilization in the programmer workforce in developed countries. Jobs moving across the world are hardly jobs ripe for unionization. This destabilization will not last because as the world programmer's standards of living equilibrate, employers will find no refuge in lower standard of living areas. There will be no poor programmers to utilize. When this logical conclusion of globalization occurs, a increasing stability in programmer workforces will occur.
When this stabilization occurs all of the factors will be in place for programmer labor unions to arise.