Live data from Hacker News

Uncomfortable Truths in Software Engineering

buttondown.email

101–110 of 400 posts

Re: Uncomfortable Truths in Software Engineering

#101
post #13
post #3

No. 13 is gold: > We’re never going to get the broader SE culture to care about things like performance, compatibility, accessibility, security, or privacy, at least not without legal regulations that are enforced. And regulations are written in blood, so we’ll only get enforced legal regulations after a lack of accessibility kills people. Sorry, can't help but blame capitalism for saying "fuck performance, compatibi…

Software is not charity. I will not work hard to deliver all those things out of the goodness of my heart. The ROI on those things isn’t great. If it’s easy to do I’ll do it, but none of those are trivial things.

It is unfortunate that parent latched on to capitalism. Point number 13 from the post resonated with me the most since the software I write can damage the environment or expensive machines that are difficult to replace if there are errors, and as a professional electrical engineer I do sign off that it is built correctly and am liable, and therefore I limit the scope so I can manage the workload, document test results that show it works correctly, and put a lot of effort in to handling faults so machinery shuts down safely when there is a problem with a sensor or actuator. Also I keep it as simple as it can be to get the job done so it is readable for other people to understand and troubleshoot.

Imagine if you could sue software vendors for lost revenue due to bugs.

The posts point about people taking responsibility for their software not happening until there are regulations and regulations being written in blood is a good one.

Re: Uncomfortable Truths in Software Engineering

#102
This piece is great overall, but:

> TDD[...] zealots are probably zealots [...]

Because they're sick to death of things breaking in production and having to program against interfaces that were designed as an implementer was thinking about them over how a caller would view them. There are times and places to not do TDD, I'd say on the backend around 15% of the time where exploration first is more important (e.g., some data science thing where you don't even know the shape of the data yet) but for run of the mill programming TDD works, but most people still don't do it even if they say they do.

I had my zealot phase on TDD, and what got me out of it was just resigning to the reality that the world isn't going to change. But that said, when friends / coworkers going on zealot style TDD rants I pour gasoline on that fire because I still enthusiastically agree with them.

Re: Uncomfortable Truths in Software Engineering

#103
post #60
post #21

Earlier quoted context omitted.

After using python and C++ in production for more than 10 years I'll reach for python for trivial things, but for something complex give my C++ over python! Yes C++ has awful syntax full of footguns, but at least I can change a large project. At 50k lines of code python becomes something you can't change for fear of some 1 in a million path that will only break after it hits production. Static types means that C++ wo…

i think your expertise in C++ might be affecting your view of python more than expected. i used to feel this way about languages other than my « primary » one and it turned out i just wasn’t as good at others and blamed the language for it

I agree with bluGill and I've done most of my career programming backend infra in Python. Give me C++, Rust, Go, Java, C#, TypeScript—as long as it has a type system. Eliminates a whole class of runtime errors and just makes life easier. When I'm dealing with large projects that have lots of moving parts and other developers, strict types are essential.

It's true that one can write unit tests to firm up dynamically-typed code, but doing so is not only a slog, it makes changes more fragile and deployments a lot scarier. If you aren't perfect the first time you write the tests, instead of a build failing you get restart loops, dead threads, and in the worst cases data corruption from improper silent type coercion.

Re: Uncomfortable Truths in Software Engineering

#104
post #87

My Own Addition: 14. Those who code for a living make good money. I have a lot of friends who went into various fields, and it seems relative to the number of buttons we press daily, anyone who works on software makes great money. We didn't spend a ton of $ to go to medical school and 3 years of residency. We didn't go to law school and take the bar. Most of us went to 4 years, or less, of school, and here we are mak…

You’re not wrong, but I’ll say the part about not going into it for the money is becoming less and less true all the time. For developers who are ~35 and up, almost 100% true, once you get younger than that you’ll find that there are a large and growing minority of people who are very much in it for the money alone without any particular interest or affinity for computing. Their parents, advisors, etc saw how much mo…

I'm in my 40's and my graduating comp sci class was the biggest in history at that time because of the money people were making in the first dot com boom.

Re: Uncomfortable Truths in Software Engineering

#105

Earlier quoted context omitted.

It's not the fault of a system that rewards unethical behavior by having a massively skewed risk/reward profile for said behavior, it's the fault of people with low-normal levels of empathy who make rational decisions. Sure.

That same line of argument could work for socialism/communism. What country that doesn't use the free trade paradigm for their economy isn't some authoritarian nightmare of poverty and despair? Are they just bad actors using the system wrong, or is it a system that always ends that way?

Not always the case. There are non-democratic capitalist societies with varying degrees of performance, from great (Singapore) to awful (the entire post-Soviet space).

On the other hand, over-regulated or fully socialist societies seem to be incompatible with democracy, I'd agree with that one.

Re: Uncomfortable Truths in Software Engineering

#106

Another uncomfortable truth: most software engineers beyond a few years' experience are highly resistant to suggestions for improvement in their craft. They're more likely to use their intellectual/verbal skills to push back than to move forward.

The same could be said about all trades people (and yes I consider most software engineering a trade), there are those who care deeply about the quality of their work and improving that. Then there are those who get really comfortable and are fine with stagnating.

Re: Uncomfortable Truths in Software Engineering

#107
post #87

My Own Addition: 14. Those who code for a living make good money. I have a lot of friends who went into various fields, and it seems relative to the number of buttons we press daily, anyone who works on software makes great money. We didn't spend a ton of $ to go to medical school and 3 years of residency. We didn't go to law school and take the bar. Most of us went to 4 years, or less, of school, and here we are mak…

You’re not wrong, but I’ll say the part about not going into it for the money is becoming less and less true all the time. For developers who are ~35 and up, almost 100% true, once you get younger than that you’ll find that there are a large and growing minority of people who are very much in it for the money alone without any particular interest or affinity for computing. Their parents, advisors, etc saw how much mo…

That's true, but they also often leave.

I've taught three[0] people a little younger than me software that all wanted to do it for the freedom and financial security and two of the three transferred out of software to something else in tech like product management. It really bummed me out too, because it was the two women out of the three. Their lives are still markedly better than before, but I want more women in actual software.

[0] Well, more than that, but the others gave up on the first week or two.

Re: Uncomfortable Truths in Software Engineering

#108

My Own Addition: 14. Those who code for a living make good money. I have a lot of friends who went into various fields, and it seems relative to the number of buttons we press daily, anyone who works on software makes great money. We didn't spend a ton of $ to go to medical school and 3 years of residency. We didn't go to law school and take the bar. Most of us went to 4 years, or less, of school, and here we are mak…

Indeed, I feel extremely fortunate to have wound up with computers as an interest while young because that allowed me to build a well paid career doing something I love despite lacking a degree, but that sense of unfairness you mention makes it a bit bittersweet.

I think the bottom line is that everybody should be able to earn a good living wage, regardless of their line of work. It feels broken that one would need to seek a specific job or set of jobs to have a hope of living comfortably.

Re: Uncomfortable Truths in Software Engineering

#109
post #5

>The open source maintainer problem isn’t going to get much better in the near future. >People are gonna keep blaming “Capitalism” for this. Capitalism is great, there really is no need to defend it at every opportunity, especially if no one is attacking it.

The author spends time on another forum called Lobsters, which has a fairly pronounced anti-capitalist user base. I think this is where that is coming from.

Re: Uncomfortable Truths in Software Engineering

#110
post #92

My Own Addition: 14. Those who code for a living make good money. I have a lot of friends who went into various fields, and it seems relative to the number of buttons we press daily, anyone who works on software makes great money. We didn't spend a ton of $ to go to medical school and 3 years of residency. We didn't go to law school and take the bar. Most of us went to 4 years, or less, of school, and here we are mak…

The difference here is usually leverage. A teacher spending an hour to teach one child teaches one child, but a programmer who spends an hour writing code to generate a dollar’s worth of value can have that run thousands of times a second or 24/7 even when they’re sleeping. Of course teachers who understand this also make money, see Miss Excel ( https://www.instagram.com/miss.excel/?hl=en ), who was/is making $100k a…

I disagree - the difference isn’t leverage it’s monetize-ability.

If teachers were paid a lifetime percentage of their students earnings teachers would make far more than software engineers. Barring some cultural revolution that’s not going to happen.

Software engineers simply make more money because the companies they work for have high margins.

Post reply on HN