←back to thread

669 points danso | 2 comments | | HN request time: 1.86s | source
Show context
_bxg1 ◴[] No.23260967[source]
This is the latest in a string of incidents where critical software systems, facing new pressure due to the pandemic, are catastrophically failing their users. I think what's happened in the past is that most public-facing software systems either a) were not really critical (because people had the alternative of doing things in-person), or b) (as in the case of all the ancient COBOL systems underpinning the US gov) had been made reliable over the years through sheer brute force as opposed to principled engineering. But in the latter case, as we saw with New Jersey's unemployment system, that "reliability" was fragile and contingent on the current state of affairs, and had no hope of withstanding a sudden shift in usage patterns.

Now we have various organizations - governmental and otherwise - hastily setting up online versions of essential services and it seems like every single one of them breaks on arrival.

We need some sort of standard for software engineering quality. I don't think this is an academic question anymore. Real people's lives are being impacted every day now by shoddy software, and with the current crisis they often have no alternative. Software that you or I could probably have executed better, but that the people who were hired to do it either a) couldn't, or b) didn't bother. It's nearly impossible for non-technical decision makers in these orgs to evaluate the quality of the systems they've hired people to build. We need quality assurance at an institutional level.

If not governmental, maybe an organization around this could be made by developers themselves. Not the "certified for $technology" certifications we have now, but a certification of fundamental software engineering skills and principles. A certification you can lose if you do something colossally irresponsible. At the end of the day, this dilution of quality is having a negative impact on our job field, so it concerns all of us. It leads to technical debt, micro-management, excessively rigid deadlines and requirements, which we all have to deal with. All of these are either symptoms of or coping mechanisms for management's inability to evaluate engineering quality.

replies(15): >>23261019 #>>23261187 #>>23261210 #>>23261239 #>>23261289 #>>23261414 #>>23261666 #>>23261696 #>>23261835 #>>23261851 #>>23261876 #>>23262059 #>>23262102 #>>23262525 #>>23263763 #
1. angryrant1727 ◴[] No.23263763[source]
It's because the software industry doesn't respect experience. This issue is the kind of thing an experienced engineer with years of building past systems would notice. And they would know how to talk to management so things are done properly.

But how are experienced engineers treated? Like shit. As soon as we get older and have families to support, we get leetcoded out of positions since we can't keep up with months of studying for basically a mental twitch reflex test. That's what it's become, interviewers will consider you a lesser engineer if you fail to vomit out the rote memorized solution a few minutes slower than another candidate. After all, time to write the solution is an "objective" measure right? So the interview process is now "objective", what a joke.

And if an experienced engineer dares to recommend that hey maybe we shouldn't use the latest fad tech that just got announced on a HN post? They will be ridiculed and laughed as lazy, not "keeping up with technology", called a bunch of COBOL dinosaurs holding everyone back. For simply daring to say, hey maybe this latest new technology has tradeoffs that don't fit for us and we should stick to what we have since it has a better balance of tradeoffs. Nope, nobody cares about that, stupid dumb old engineer, stop getting in our way, need to make our resumes look good.

And the industry itself? Encourages constant job hopping, so nobody even gets experience maintaining a system for a long time. All those shitty decisions made? Don't care, off to another company.

And within a company? Constant indirect and direct pressure to go to management. Why aren't you a engineering manager? Oh you want to be a principal? Well here's the ridiculous requirements for that, still want it? What's the difference between a principal and senior anyways? Actually why do we even need seniors, let's just get more juniors. Management doesn't know the value of experience, they just want lower costs. And the engineers themselves seem to be saying experience is worthless, so everyone's in agreement right?

We are failing to build good software systems because it requires experience to know how to do it. And this industry does not value experience.

replies(1): >>23272332 #
2. subhobroto ◴[] No.23272332[source]
> It's because the software industry doesn't respect experience

Untrue.

They go and found their own companies.

Silicon valley literally started off with a engineer-manager who left Shockley Semiconductor Laboratory in 1957 to found Fairchild Semiconductor, because William Shockley, while a brilliant academic, was authoritarian and just sucked at managing people.

On the other hand, if the point you are making, is that the software industry simply has to respect experience because a lot of blood, sweat, tears and divorces were weathered by these engineers as they got manipulated and brainwashed - no.

Yes, it sucks that these engineers got manipulated and brainwashed but now they have the experience to detect manipulation and brainwashing and the divorces and health issues were the price they paid to gain this experience.

In summary - the best way to get the value you deserve is to start your own thing. Otherwise, complain all one wants but they will get the minimum someone else can get away with giving.

Everyone wants what is best for them, even your manager and the company they work for, which includes paying as little as possible for the labor they get.

The difference is called profit.