DEV Community

Discussion on: Open Source is Broken

Collapse
 
idanarye profile image
Idan Arye

You are right about one thing - people are more important than code. But all these big corporations also consider people are more important than code (maybe less important than money, but let's not go there right now). Their take on it is probably different than yours, though.

Companies that hire programmers look for the programmer stereotype. This is probably true, to some extent, to all professions, but let's focus on the programmer stereotype - the kid who somehow obtained a Commodore 64 or an Apple II and spent his (forgive me for not being neutral here - but this is the stereotype) days figuring how what makes it tick and how to make it tick more colorfully. These are the "ideal programmer material" employers seek - probably not that specific (I did went full cliche here...), and they will have to settle because there are not enough stereotypic programmers for everyone, but that's the general direction.

What does that have to do with open source? It turns out we stereotypical programmers (and I include myself in this group even though I'm too young to had a Commodore and I learned programming on a Pentium III) love open source. We consider ourselves creators, and the creators want the most is a stage to present their creations. Open source is a great stage for those who only care about spreading their creation and getting feedback, and the fact we can use our peers' code makes it even better!

Now, companies want us, and they notice that connection, and found that it serves them in two ways. By publicly supporting open source (with the emphasis on "publicly") they can appeal to the people they want to attract. But even more important - they can use open source to find those types. The assumption is that the kids that programmed through their childhood will keep that passion and use whatever little free time they have as adults to program - so the open source communities are a good place to start looking for candidates.

So, it's not the free code that they want - it's the people that write it. Many companies are actually afraid of this free code - they fear that if the free code will fail at a crucial moment they'll have no one to turn to. This is why many companies prefer to pay for expensive products that have good open source alternatives - so that they'll have someone to turn to if things go wrong. Some companies even made it their business model to support open source software - companies pay them for software they could use for absolutely free just so they'll have someone to turn to.

When a company does rely on open source software, many times they'll have someone familiarize themselves with the codebase. Maybe they'll also fork it, or - at some not common but not that rare cases - send pull requests and sometimes even join the maintainers. This allows them to have "someone on the inside" that can fix emergencies for them.

You probably think of this as exploitation, but it's actually a symbiotic relationship. The companies get the programmers they want, and we get industrial contribution to their open source projects. The paychecks also help.

The problem is, that using open source contribution to find candidate is an economic concept called Signalling. And signalling mechanisms tend to have inflation. More and more people want to emit the signal, because they see the high tech jobs, the salaries, the benefits, the working conditions, and they want all that. Can you blame them?

And wherever there is a gold rush, there will be pickaxe sellers.

So, in the last decade or so we witness the rise of the everyone-can-code movement, which by itself is a positive thing - we live in a world of computers, and being able to control your computer can be a valuable work skill even if you are not a professional programmers. But during the last few years this movement started to preach open source, convincing many people that they need to contribute to open source projects, if not to maintain ones of their own. And they don't usually say it, but they definitely imply - open source is the gate to your dream high tech job.

But as always with signaling - the core concept behind it, actually - the "high quality" (not my term. I'm not judging. "high" and "low" quality were the terms used in Spence's paper introducing this concept) signallers have much easier time emitting the signal than the "low quality" types. While the "true nerd" programmers actually enjoy contributing to open source, and would have done it even if it didn't help them get a job, the "everyone can code" programmers suffer. They feel like they have to slave for free just to be able to get that prestigious job...

Which they don't even get. Because, as I said, signalling begets inflation. The companies looked for programmers they considered special, and fought over them because they were special. But the masses will never be special - that would be a logical contradiction to the very definition of "special". So employers have to look for other signals, and people will continue to bleed for a now-meaningless signal.

Does this make open source evil? I don't think so. The same thing happened with higher education, and no one claims higher education is evil. That's just a sad artifact of human behavior, and it will always find new forms, new signals.

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍 • Edited

Actually, you did not go full cliche. You mentioned male ('his', and true, that is part of the stereotype) and learning tech by using a Commodore 64 (not so much - we're talking current programmers here, not the likes of Bill Gates). You completely missed white or Indian, going to just the right college, young, urban, well-connected, and upper-middle-class.

See, if it was just learning on the earliest computers and male, I'd only be down by one - male (FYI, TI computers predate the Commodore 64, so if the 'original tech geniuses' stereotype were actually true, I would have most certainly been in the early wave of hires). Truthfully speaking, I'm actually down by all but one - white. And the necessity of creating Open Source is not just implied; it's actually part of job listings. 'Be a major contributor or creator of at least 3 Open Source projects' is sometimes given as an alternate to 'At least 5 years of experience at a major tech company, i.e. Google, Microsoft, Apple, or as a programmer with Amazon'. All it is, is a passive-aggressive way to 'pull up the ladder'.

Sure, when the market gets flooded with more people looking for the same job, it is harder to find a job, and it is only logical that companies would up the requirements, assuming, of course, that those jobs were becoming ever more technical. Yet, at least in the US, this absolutely contradicts the common tech company lamentation that there just aren't enough qualified candidates in the US and that they have been forced to find employees from outside the country. The argument seems even stranger, taking into consideration the increasing job requirement and convoluted interviewing and internship requirements even for relatively simple, data-entry jobs. Too Many Jobs, Not Enough Talent If the companies' claims in the article were true, people like me would be getting flooded with job offers and promises to help relocate, if needed, but instead, we simply get rejected with explanations like 'the position has been filled' (assuming we get a call back or get the recruiter back on the line at all) and watch as the same job offer sits unfilled with nothing changed but the date.

You claim that companies value people over code, but then why is there a push to create AI that can create their own non-human-readable coding language and use it to create new programs? People work in programming currently, but if the current trend persists, eventually, even the most well-connected, rockstar programmers will find themselves permanently in the unemployment line. Google AI writes its own code In 2018, it was writing its own code by scraping GitHub repos. Facebook AI creates its own language Why would companies continue these projects that could potentially create new AI 'employees' that do not need a paycheck or benefits if they truly valued [human] people over code? Granted, Facebook said it shut down the AI, yet somehow, Facebook is still working on its own AI program. I don't claim to have insider information, but that does sound shady to me.

It's simple, really. By pulling up the ladder in their own wealthy country and hiring people who will program for less pay, they create a stopgap measure to bridge between the time when employed programmers could still earn well above the cost-of-living in their area and the time when human programmers were no longer required.

Welcome to the world where Open Source, through no fault of its own (Open Source is a concept, not a human making actual decisions), has created a new philosophy in which humans, working freelance, working in small companies, and working in major corporations, feel entitled to use whatever Open Source code they want, for whatever ends, good or bad, they wish to achieve, for absolutely no cost all at, and often no credit to the original creator at all.

Open Source itself is not evil, per se, at least insofar as the original intent, but it is being used for evil, and if we can change that, we should change that.

So, in the end,

'The same thing happened with higher education, and no one claims higher education is evil.' - except they have been making that claim. Whether you agree with the people polled or not, it is true that at least someone claims higher education is evil.

'That's just a sad artifact of human behavior' - absolutely.

'and it will always find new forms, new signals.' - but that's no excuse for making signalling and the systematic exploitation of anyone easier. Programmers should be among the first to understand that problems need solutions. A programmer that gives up on finding solutions before they even bother giving problems a moment's thought is a terrible programmer. It might be easy to defend broken code or broken morals, but that doesn't make the broken things right.

Collapse
 
idanarye profile image
Idan Arye

First I need to say that I'm not American, so my experience may be different from what's going on in the US.

You completely missed white or Indian, going to just the right college, young, urban, well-connected, and upper-middle-class.

That's the "management material" stereotype - I don't think it's really considered as part of the "nerd programmer" stereotype. Sure, it has great effect on your ability to acquire the connections and education that can help you land a job, and the culture you grew in can change your probability of living the nerd programmer childhood, but it's still not part of the actual stereotype employers are looking for - a black man from a poor family can still fit the stereotype. A woman - can't. (though that changes too, though slowly, in the last years)

And the necessity of creating Open Source is not just implied; it's actually part of job listings. 'Be a major contributor or creator of at least 3 Open Source projects' is sometimes given as an alternate to 'At least 5 years of experience at a major tech company, i.e. Google, Microsoft, Apple, or as a programmer with Amazon'.

Employers don't want to be the first one to hire you. Not only they prefer you make your beginner mistakes elsewhere, they also don't want to take the risk of hiring an incompetent employee. That's one reason the want previous job experience (not the 20 years experience in C++17 stuff - that's just recruiters bs. They just want to know someone else already tried you and found you are good enough)

So... I guess now they expand their searches to open source? I'm not really that familiar with these job listings (I don't recall ever seeing one - are they really that common? Then again, I haven't looked for a job in 5 years, and this world changes rapidly), but maybe they think they can ask around these open source communities to get a feeling about your competence? Not sure how this is going to work... But one thing I'm sure of - the level of contribution they require is much higher than what those that only do open source to make themselves hireable think they need.

You claim that companies value people over code, but then why is there a push to create AI that can create their own non-human-readable coding language and use it to create new programs?

What I said is "But all these big corporations also consider people are more important than code (maybe less important than money, but let's not go there right now). Their take on it is probably different than yours, though."

OK, so we do need to "go there". A company's goal is to make money. If we go one resolution lower, the goal is to create value for people ("customers"), and have some business model for converting that value to money. Code is just a resource the company needs to create value (and in some cases as part of the process of converting that value to money). So are programmers - there is a reason why it's called "human resources".

The programmers are more valuable a resource than the code they write, because even if you use free code from the internet you still need programmers to fit that code to your needs and to fix it when thing go wrong. This may change in the future, with advanced AI that will replace us, but for now - we are more valuable than code.

'The same thing happened with higher education, and no one claims higher education is evil.' - except they have been making that claim. Whether you agree with the people polled or not, it is true that at least someone claims higher education is evil.

They don't say higher education is evil because of the signalling, they say it's evil because it is controlled by the other camp. Maybe I should have appended "for that" to that sentence...

'and it will always find new forms, new signals.' - but that's no excuse for making signalling and the systematic exploitation of anyone easier. Programmers should be among the first to understand that problems need solutions. A programmer that gives up on finding solutions before they even bother giving problems a moment's thought is a terrible programmer. It might be easy to defend broken code or broken morals, but that doesn't make the broken things right.

This is an economical problem, and trying to engineer the economy and fix the human nature never ends well. And besides - the only ones feeling exploited by open source are the ones who tried to exploit it in order to get a job. "I slaved on this open source thing and didn't get a job! Do you think I'm doing it for fun?". But the thing is - we are doing it for fun! It's not our fault that the pickaxes seller sold you a pickaxe and told you to hit that rock and find gold. We are not even here for the gold, we are just rock enthusiastic that want new rocks for our collections. Just because you are all sweaty from all the work you did for free doesn't mean anyone owes you any gold.

Thread Thread
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍

Your experience does differ. In the US, (the number of women in programming has been in a severe decline)[observer.com/2017/06/women-in-tech...] and in Silicon Valley, any (programmer who is not white or Indian and is not cis-male is seen as 'not real')[takepart.com/article/2015/08/04/en...]. Read all the way through the articles; it's not just a fringe thing.

In the US, unlike many other coutries, college and university level education is not free; (it's astronomically expensive)[theatlantic.com/education/archive/...]. Likewise, unpaid internships are a thing here - until relatively recently, Google required all applicants for programming jobs to successfully complete a one-year, (unpaid internship)[forbes.com/sites/cameronkeng/2013/...] and even then, they changed only after it had become an illegal practice. Now they use how much they pay interns as a PR stunt, but don't be fooled - the pay isn't 'out of the goodness of their hearts'. Essentially, the only ways to land a tech job are through being wealthy enough to afford college, then find a place to live near Silicon Valley (or another, newer tech center) where monthly rent or mortgage payments are well over $1,000 or be a well-known rockstar programmer on GitHub with years of experience working in major tech companies. For those privileged enough to be wealthy or be able to get financial help from wealthy family or friends, the cost may not seem that high, but for the rest of us ...

Take me as an example. I make $10 per hour at my full-time job - which is about the only full-time job available in the area I live in. That's 30-40 hours a week (I average about 33 hours per week), no overtime allowed. So, for one month, before health insurance, taxes, and other deductions, I make roughly $330 dollars a week or $1,320 per month. After deductions, it's more like $1,100. That's not even enough for rent or a mortgage in a tech city, much less for other expenses like food, gas, car payments, water, power, internet connection, money phone bills, or out-of-pocket medical costs. Worse, the 24/7, live-in, legally mandated caregiving I do for my mother-in-law is unpaid. My paycheck has to cover my family's (my husband, his mother, and myself) expenses. There's nothing left for college tuition, transportation to classes, books, etc.

But the cost isn't just financial. Between a full-time job, maintaining the household, and caregiving duties, I have very little time left, which is to say, almost no time to work on Open Source projects, and I'm certainly not the only one. The majority of caregivers in the US are women, due to the cultural, which assumes that caregiving is women's work because it involves nurturing, a stereotypical feminine trait. Likewise, most STEM fields are generally considered men's work. (Open Source coding is even more skewed than most STEM in terms of the gender gap.)[peerj.com/articles/cs-111/]

'They don't say higher education is evil because of the signalling, they say it's evil because it is controlled by the other camp. Maybe I should have appended "for that" to that sentence...'

Perhaps I should explain how those camps are divided up. When they take issue with 'the other camp', they are referring to liberals and progressives directly, which in turn, indirectly refers to people who encourage diversity (in terms of gender, sexuality, and ethnic background) in education and in the workplace. I disagree with the crowd that hates gender/sexual/ethnic diversity, but there is a point to be made about how financial diversity isn't much discussed in terms of admissions, aside from 'fill out some forms' and 'take out a huge loan that you won't be able to finish paying off, ever'.

You said, 'Just because you are all sweaty from all the work you did for free doesn't mean anyone owes you any gold.', but put more accurately, all that means is 'Just because you earned or generated a boatload of money, doesn't mean that your wealthy trust-fund overlords are ever going to let you see a dime of it.'

If you don't see the injustice in that, then all I can say is you've clearly bought into the 'logic' of Silicon Valley, Wall Street, and other areas of highly concentrated wealth. 'Everyone knows wealthy people are special geniuses, because all special geniuses are wealthy, and only special geniuses are wealthy'. Isn't it strange how few of those 'special geniuses' can see the (circular logic)[en.wikipedia.org/wiki/Circular_rea...] in that?

There's nothing fair when you try to buy a pickax, only to find you'll never be able to afford one, and all the precious metals, precious stones, pretty rocks, and even fertile soil has already been claimed by people who happened to have all the right things at all the right times, because they had the money already.

Thread Thread
 
idanarye profile image
Idan Arye

I agree with most of what you said. Here in Israel we have a saying that roughly translates to "You don't need nepotism when you've got connections". My point about narrowing the stereotype was that if a poor guy from a minority that fits the "true nerd" stereotype will arrive in Silicon Valley and show the necessary qualifications he'll have a decent chance to get an high-tech job - but being a poor minority means he has slim chances to get these qualifications and get to Silicon Valley.

These is not just, but I'm not sure what the solution should be. Location is important, and high-tech companies benefit from being in high-tech hubs - so if a single high-tech company builds it's HQ or a development center in a poor region, that company will be at a great disadvantage. Mainly because it'll have a hard time hiring experienced people. I'm not saying that all the people in that poor are stupid and unfit, but since they never had the a opportunity to work in the high-tech industry they'll be unexperienced - and high-tech companies need a core of experienced engineers. That company is unlikely to survive.

So, in order to get successful high-tech companies in that region, you need a lot of them - so that experienced developers will move there, seeing lots of employment opportunities. But that means gentrification - the poor region will strive and become rich, but the poor people will not.

But I digress. I wanted to talk about open source.

You said, that in order to get an high-tech job, one should either live in the hub or be scouted by the companies which requires to:

be a well-known rockstar programmer on GitHub with years of experience working in major tech companies.

My argument is that the "on GitHub" part is not as nearly as important as the "years of experience working in major tech companies" part. Like you've seen - they don't really consider open source as experience (maybe unless you are a renowned open source programmer? But then you'll probably also have professional experience, or a position in MIT or some other academic/research institute...). They give that as an option in the resume because they want to attract people who care about open source. And because candidate with professional experience may add their open source projects to their resume, and as @moopet mentioned in another thread here - this gives them a chance to judge their code.

So, I'm objecting to the OP's claim that companies say "write open source and we may hire you" to get people to give them free code. They do use unpaid internships for that purpose, but in these cases they get to tell the coder what to do. With open source the company can't demand anything from the contributors, can't have the software built to their specifications, and can't have the maintainers (or someone trained by and paid by the maintainers) on their beck and call in case something goes wrong and they need urgent support. From a business point of view, this makes open source very risky.

And yet - you see many posts about how open source contribution can land you a job. I'm sure what the gain from it (business models in the internet are weird), and it's probably not direct, but I still call them "pickaxe sellers". Yes, you paid good money for the pickaxe and worked very hard, but it's still not the rock's fault that you didn't get any gold from it.

Thread Thread
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍 • Edited

Look, I'm not saying everyone is going to, or should, get that first job with no effort, nor am I saying that all effort produces the same, perfect results. You seem to be misunderstanding me on both those points right there.

Perception is a huge problem when stereotypes (not actual merit) are what will determine whether or not you will be able to get a job.

Examples: I first learned to code a bit shy of 40 years ago, though I had a gap in coding for nearly 2 decades - first when school started and I was denied access to computers, and later during military service when internet access was nearly impossible to come by during much of that time. CS courses were not a thing in the colleges at the time, either. And yes, I'm showing both my age and the sad state of internet access in the US. Now, if I had never learned code on my own and I had taken 4 years of college (at the right school with the right students to make connections with), including some CS classes, I'd be looking like a pretty good candidate to any tech company. Instead, the decades of teaching myself to code are treated as 'proof' that I am unmotivated to learn and that I have no interest in coding, which is clearly the opposite of the truth. No one devotes decades to teaching themselves to code if they hate both code and learning.

Another example: Women are seen as only being interested in fashion, finding recipes and baking, finding a rich husband, making babies, and creating drama. We are seen as not understanding numbers, being terrible at logic, and being far too emotional and pregnant to handle having a professional level job. Men are seen as naturally good at logical things like code and at putting in more work. None of this is proven by actual data; it's merely seen as a thing 'everyone knows'. It's as if the 1800's never ended. Being born with a vagina is a serious detriment to being taken seriously when trying to land a job outside of retail, porn, and nursing. The fact that women, by and large, have far less time they can devote to Open Source due to unpaid home obligations reinforces the perception that 'women can't do math or code'.

So, possible solutions? There's a few that could certainly be put in place together in order to fix the issues.

The OP mentioned creating new Open Source licensing that gives creators and maintainers of Open Source code more control over who gets to use that code, what purposes they can use it for, and a legal framework for enforcing those licenses. You see, roughly an hours worth of driving from the rural area I live in, is a large city full of hotels, convention centers, and other tech meet-up necessities (and very little in the line of actual tech companies). Plenty of programmers live there, but many must work remotely as Silicon Valley isn't exactly next door. A new trend in the hotel industry in this city is using Open Source for everything but room key codes and storing guest's personal information, which allows them to keep a cutting-edge system and code base for everything from food ordering for the 5-star restaurants, water and air recycling to protect guests, aka walking ATMs, from the water and air dirty poors may have 'contaminated', to maintaining their own security and banking systems and still keep only the bare minimum of programmers hired, sometimes as third-party contractors so they can skimp on paychecks and avoid paying for benefits. Imagine if all the free Open Source resources were cut off to them until they started paying fairer wages, hiring more programmers, providing benefits, etc. You could still code as a hobby; that wouldn't go away. What would change is how the people that create and maintain the code are treated and that they'd have more say in whether or not their code could be used for evil.

We could also work towards changing cultural norms in an effort to rid society of the unjust master/slave relationship between men and women, between whites and non-whites, and between rich and poor. Currently, at least in the US, non-whites, esp. blacks, are set up to be funneled into the prison system from a very early age. A white kid gets disruptive in class and the campus cop writes them up. A black kid disrupts the class, and he ends up face down on the floor in cuffs and gets hauled off for processing into juvie. Men are expected to be employed. Women are expected to be employed, maintain the entire household, get the shopping and dry cleaning dropped off, raise the kids, care for the elderly parents, and have dinner ready for when the man of the house gets home, all for less pay from their place of employment and no pay at all for the rest of it. Poorer people have spotty access to the internet, can't afford healthcare, go homeless when the can't pay the rent/mortgage, and go hungry when food banks run out of food, all to be arrested if they fall asleep in a car or on a sidewalk or if they loiter, use public bathrooms too frequently, or worse, use the bathroom in public when the nearest public bathroom is miles away. Wealthy people can commit DUIs and barely get a slap on the wrist, or in some cases, repeatedly commit rape, murder, or other felonies, but use money and status to weasel out of having any real consequences.

We could also, again in the US, do like much of the rest of the world, and make things like higher education affordable, or better yet, 'free' (as in shared cost by way of taxes, like public education does now), but without the strangled budget the wealthy have been setting up using their financial power as political campaign donors.

It's not impossible, and it won't take your hobby away, but if we implement the right solutions, we just might bring the world some justice, help those with actual merit succeed, create better code by bringing in new ideas, and set up tech that works for everyone (as opposed to self-driving cars that don't stop for people with darker skin, automated phone services that do not recognized women's voices, and all sorts of other screwed up issues).

Video that explains what privilege is and isn't and why awareness of one's own privilege and taking responsibility for righting wrongs is a good thing