7 ms·
This article seems focused on doing no harm "to code". To a degree, it's ridiculous. I feel like the bigger problem is how when I look at job postings for softw
by abjKT26nO8 7y ago
This article seems focused on doing no harm "to code". To a degree, it's ridiculous. I feel like the bigger problem is how when I look at job postings for software developers they seem to be postings of jobs which contribute negatively to the welfare of the society. Google, Facebook and the like being so widely sought after by software developers just to wash our brains with ads and track us, millions of financial companies/banks working hard to drive the economy down for the benefit of stakeholders. Finding a company which doesn't have a net negative impact is hard, finding one that has a positive one is even harder. It's not like that just for software developers, sure, but it's still clear that it's a serious problem for us.
And this part:
> Loss of control, loss of intellectual property, unsatisfactory performance, hidden costs, and hard-to-obtain legal remedies are the harm that can occur when things go wrong when projects are outsourced.
Yes, it would be a real tragedy if intellectual property (sic!) was violated. Also, suggesting that someone from outside the US is more likely to give you unsatisfactory performance is simply racist.
- ElFitz 7y agoOutsourcing != offshoring Many of the clients I've had have had bad experiences outsourcing to local development agencies that didn't practice any offshoring. See Hertz vs Accenture [^1](maybe Accenture offshores, but they wouldn't have had to in order to do such a bad job) [1] https://www.theregister.co.uk/2019/04/23/hertz_accenture_lawsuit/ https://www.theregister.co.uk/2019/04/23/hertz_accenture_law...
- Nasrudith 7y agoYeah the very concept is a blind and kind of dumb argument by analogy that ignores the obvious - especially in software engineering - that code isn't people. Not to mention oaths especially arbitrary ones have come and gone. The whole article is like this - clearly arguing by analogy about things he doesn't understand. The fact he views IDEs as a risk /from lack of knowledge/ just shows the sheer depths of his ignorance given its role is to make it more accessible. At this point I have grown weary of every article proposing some sort of professionalization. At this point I want to shout to everyone writing them "Stop trying to professionalize code to your gatekeeping standards already!". From the number of failed outsourcing attempts I suspect unsatisfactory performance is true though for reasons not on them - organizational, communication and cultural barriers rather than lesser merit. The threats there aren't even on the software engineers but the management making the decisions! The only thing they could do to "stop" that is to work for free which was unreasonable to expect from even priests and would remain utterly stupid blame shifting.
- azangru 7y ago> At this point I want to shout to everyone writing them "Stop trying to professionalize code to your gatekeeping standards already!". Are you saying that there are no agreed upon characteristics of code (apart from being able to run) that together comprise the notion of code quality?
- Nasrudith 7y agoNo, more the kind of people who think there should be a "coding license", guilds, or similar. There may be a place for certifications individually but universality is folly. I meant professionalization in the sense of trying to erect barricades. As for code quality it is depends upon the domain, scale, and situation. Some things are objectively bad but even bad may be complex. Hard tested COBOL legacy code that was old when the current veterans started may be hard to comprehend, close to immutable but utterly reliable for instance.
- a1369209993 7y agoThat's not it. There are such characteristics (I suppose you could debate the "agreed upon" part) and professionalization is actively counterproductive to them.
- JoeAltmaier 7y agoFacility at a reasonable development process, is a useful thing to measure. E.g. if I could sort resumes by who has experience with GitFlow and who doesn't, that'd be a help, not a hindrance.
- theK 7y agoCome on, GitFlow is a really bad example here. A rookie will take that up in a couple of days work if your operation works correctly :-D
- JoeAltmaier 7y agoNot so sure. There are lots of source disciplines. Learning one makes the next one not so obvious. And you can tell me with a straight face, you know right now how to revert a change from a deleted development branch that was merged through a feature branch to master, from both master and the feature branch, after two other features were merged as well with conflicts?
- azangru 7y ago> Also, suggesting that someone from outside the US is more likely to give you unsatisfactory performance is simply racist. The article's position is more nuanced than that. It starts with the premise that good (whatever that means) programmers are expensive. It proceeds to observation that companies would outsource to cut costs. It also makes another observation that Indian and post-Soviet programmers are cheap. This observation conflicts with their premise: "good" programmers are expensive; therefore cheap programmers are likely not "good". Whether this has any bearing on reality can perhaps be tested probabilistically, by examining whether there exists a negative correlation between the amount of money asked for a project and the "unsatisfactory performance" — if one can define what that means). If such a correlation exists, it will make this statement not a statement of personal attitude ("racism"), but a statement of likelihood.
- _jgdh 7y agoAll other things being equal with 2 programmers who have perfect knowledge of their market worth, the better one will cost more. But this premise is proved false trivially. 1. People don't have a good sense of their market worth. It's possible to convince/coerce someone to work for less than they're worth ("think of the exposure!", "we'll be big in 5 years") while other people have an inflated sense of their own worth. 2. All other things _aren't_ equal. Indian programmers cost less because of Purchasing Power Parity and relative wealth. For a person who's monthly expenses are $400-500, getting a salary of $3k a month is a sweet deal. Plus A salary of $3k per month would put you comfortably in the top 0.5% of Indian society, able to afford most luxuries.
- t0astbread 7y agoA lot of racist statements can be hidden in an obscure arrangement of facts, observations and generalization. In this case, the statement that cheap programmers are less likely to deliver good results isn't inherently problematic. What is problematic is the following sentence: > Now, competitors in India, the former Soviet bloc, and elsewhere can just as easily use the same tools and techniques at lower cost. The author implicitly generalizes that all Indian and post-Soviet programmers are cheap and all cheap programmers are Indian/post-Soviet.
- cousin_it 7y agoYeah. Glyph Lefkowitz had a good post in 2005 arguing that programmers shouldn't work on programs that harm users: https://glyf.livejournal.com/46589.html https://glyf.livejournal.com/46589.html That's a better analog to the Hippocratic oath, and has become even more relevant with time.
- kiliantics 7y agoWhile I agree with you, I believe the Hippocratic oath is a way to individualise responsibility that becomes ineffective when the individuals taking it are participating in complex structures. Doctors take the Hippocratic Oath and yet we see again and again how the medical system is failing us in its intended purpose (it was even just up on HN[0]) -- the profit motive inevitably takes precedence over the principles of the Oath and you have e.g. hospitals handing out C-sections to anyone they can to increase the throughput and price tag of treatment, while ignoring the negative impact of this policy on patient health. I think it would be great if people working in software developed a set of principles to adhere to while practicing the trade, but I believe it should be done in a way that is decoupled from the market forces of the capitalist economy. Something like a union would be a good approach. [0] https://news.ycombinator.com/item?id=20626500 https://news.ycombinator.com/item?id=20626500
- salawat 7y ago>This article seems focused on doing no harm "to code". To a degree, it's ridiculous. I feel like the bigger problem is how when I look at job postings for software developers they seem to be postings of jobs which contribute negatively to the welfare of the society. I"m surprised you're getting so few responses with regard to this point. Recently, I've changed up my heuristics for job seeking in light of a realization that many businesses out there aren't seeking to solve problems first and foremost; rather they are using technology to monetize solutions to previously solved problems that were not effectively monetizeable. Creating middle-men seems to be the tech industry's favorite goal now. For the longest time, I found myself getting torn up by my conscience over what I was helping to build until I finally accepted what I was doing was no longer consistent with my moral compass. Do no harm. Don't build things that can trivially facilitate violations of human rights. Don't build mass surveillance systems. Don't contribute to projects utilizing UX "dark patterns". Don't build things that intentionally target certain demographics for more effective financial extraction. Don't build that which is being sold as a solution to something it isn't, and for the love of little green apples, spare a second-thought when something comes to you that another person refused to code/accept.
- goatinaboat 7y agoOutsourced work is generally pretty crappy - maintaining legacy code, writing dull line-of-business apps, etc. There are two kinds of people who do this kind of work. The original, in-house programmers who are well paid to compensate for the crapness of the work. Or outsourced programmers who can’t get any other sort of work so will do it cheaply. There are plenty of good programmers of Indian ethnicity. But regardless of ethnicity, noone who is any good works in outsourcing.
- a-priori 7y agoA large majority of all software could be called "dull line-of-business apps" and statistically this is what most software developers do. These jobs are stable, safe, and pay a good salary. It's awfully elitist to frame this as a bad job.
- goatinaboat 7y agoI’m not intending to be elitist here, as I say those jobs are well paid when in-house. But if management is looking to cut costs and no other considerations, then they will go for the cheapest option. Again, this is nothing to do with anyone’s ethnicity.
- chrisseaton 7y agoThese jobs aren't well paid, because they're usually nothing but a cost to the business. Well paid software is usually where the software is the product, or directly enables income, so is seen as an investment not just a necessary cost.
- AlanSE 7y agoThere is a difference between working as part of a non-software company's IT department, and working for a company that makes "dull line-of-business apps". Google maintains a large array of line-of-business apps. You probably have one open in another tab right now. Email, calendar, others. In these cases, the software (or software as a service) is the product, it's just not a direct-to-consumer product.
- stcredzero 7y agoThis article seems focused on doing no harm "to code". To a degree, it's ridiculous. The point is to do no harm to your fellow employees. It's already obvious that a sign directing cars to drive off a pier isn't morally ok. Comments, names, and code structures which mislead and misdirect are also wrong. If someone discovered a finely crafted historical artifact, and not understanding its beauty and significance, proceeded to cut it apart for scrap, many people would think that "a damn shame" and some would even think that morally wrong. Also, suggesting that someone from outside the US is more likely to give you unsatisfactory performance is simply racist. If the cause is held to be race, then it is racist, trivially speaking. However, the underlying (first principles) causation is driven by incentives. For example, I've worked in places where the outgoing FTP ports were wide open, and where I knew that someone, somewhere would pay hundreds of thousands of dollars, if not millions, for exfiltrated data. No way in hell would I or my coworkers ever have done that, because we knew that large corporations and governments would be likely to figure out what happened, and would be after us for years or decades until we were dead or caught. The above incentive structure changes a lot, if you know that a sovereign government is willing to give you cover. At a less extreme level, outsourcing companies are often staffed by novices who are just looking to get promoted or change to a higher paying job somewhere else. The incentives are still misaligned.
- yakubin 7y ago> The point is to do no harm to your fellow employees. It's already obvious that a sign directing cars to drive off a pier isn't morally ok. Comments, names, and code structures which mislead and misdirect are also wrong. The primary purpose of the code we write is/should be to serve a function. Being legible to others is a secondary aspect. If the function the code is supposed to fulfill is immoral, then I would really prefer it to (a) not work properly, (b) be misleading, (c) have crappy documentation, (d) build only during a full moon when you hold a beer bottle in a horizontal position above your monitor while standing on one leg.
- stcredzero 7y agoThe primary purpose of the code we write is/should be to serve a function. Being legible to others is a secondary aspect. In terms of cost/benefit, the cost of the programmer time in debugging far outweighs the cost of executing the code. If the function the code is supposed to fulfill is immoral Two wrongs don't make a right. Whistleblowing is to be preferred to sabotage.
- lliamander 7y ago> Also, suggesting that someone from outside the US is more likely to give you unsatisfactory performance is simply racist. It's either true, or it's false. Now, the motives behind saying or believing such a statement may be racist, but telling people who believe it that they are racist isn't going to change their minds.