Hubris is the single biggest downfall, whether it's pegged on insecurity, or a false sense of knowledge, superiority or entitlement.
The very best and most experienced people I know have deep expertise, and maintain a healthy mistrust of their own work to keep an eye on it and improving it.
Real world experience and run history is a big thing, and people can re-learn the lessons of the past over and over with their egos, or also be open to learning from others to learn quicker.
The hubris comes from the fact that the CEO doesn't hear the problems that Directors don't disclose.
The hubris comes from the fact that the Directors don't hear the problems that Senior Managers don't disclose.
The hubris comes from the fact that the Senior Managers don't hear the problems that Managers don't disclose.
And Managers simply don't care to hear the problems that Engineers face because "shuddup and close that Jira ticket within 48 hour or else".
I am ~50, I have worked (now..) 20? 20+ years in Audit/Compliance, and I laugh-cry inside.... and I am NOT surprised when I read about cases like this, it's another day in the office/life..(definitions)
The terms hubris, ate, nemesis, and tisis originated in ancient Greece and had specific meanings and roles in everyday life.
Hubris
“Hubris” was a fundamental concept in the lives of the ancient Greeks and was used to describe someone who overestimated their abilities and behaved in an arrogant and offensive manner toward others, toward the laws of the state, but above all toward the gods.
According to ancient beliefs, such acts of hubris offended and enraged the gods.
Ate
“Hubris” consequently provoked the intervention of the gods, and especially Zeus, who sent “ate”—that is, a clouding or blinding of the mind—upon the hubristic person.
Nemesis
“Ate” led the hubristic person to commit further acts of hubris, until they committed a grave folly or fell into a very serious error, which provoked “nemesis”—that is, the wrath and vengeance of the gods.
Tisis
Next comes “tisis,” that is, the punishment and ruin or destruction of the person who committed hubris.Eg. architects vs construction engineers vs land surveyors vs construction designers vs urban planners… anyone of them thinks that their profession is more valuable than the others…
The real differentiator though is that the engineers of tangible things can get sued and go to jail if someone dies, but it seems tech companies gets away with atrocities (profits at the expense of teen suicides) with zero repercussions.
But, what is being described is THE EFFECT OF INSTITUTIONS ON INDIVIDUALS. This happens in every industry. The larger the company, the more disconnected people become.
Software does more than cat videos.
Examples that may be relevant:
- CAD and simulation tools that physical world engineers use
- telecommunications (not just programmers, but programmers are vital for the current ultra-cheap generation)
- CT and MRI data processing
- alphafold
- scheduling systems for universities and other schools (makes education more scalable)
- infrastructure/systems programming (OS, web browser, etc.)
Furthermore, no one would claim that civil engineering is useless just because a certain class of billionaires liked to hire them to design silly structures. So, the prevalence of the less useful things speaks more to priorities as a society than anything about software engineering itself
And honestly software engineers don’t need roads anyway working a tough four-day work week with long commute into the basement.
Jokes aside, innovation comes at a price. Every great thing will be turned into a weapon so just wait until the alpha-fold mutants start crawling out of a nearby sewage treatment plant.
Which, really, implies that 90% of people in this industry work in bullshit jobs that don’t require real engineering skills. You could even spout any BS about architecture in Medium.com and then asked to speak in a conference if it gets enough views.
C and the various C++ subsets called "C with templates" would be much less common than they are if "deep understandings of CS and DS&A" were required in day to day work.
> - CT and MRI data processing
> - scheduling systems for universities and other schools (makes education more scalable)
Those two read as if they are of different urgency (#1: whoever needs it urgently is at risk of dying, schedules for "non-urgent" cases will be affected for months, turning many into urgent cases; #2: the education systems will suffer, but it only gets dire after multiple days), until you realize that #2 also applies to e.g. hospitals.
Medicine at scale is already barely scraping by as it is (see: overworked staff etc. etc.), but disrupt the internal IT working of hospitals and the indirect body count will rise fast.
This is a fundamentalist perspective; it's hard to dispute that if we didn't have any roads, houses, or cat videos, we would need new roads more than we needed new cat videos.
It's much easier to dispute the idea that we currently need new roads more than we need new cat videos; we already have a lot of roads.
If the software made by my company ceased to exist, every government in the US, federal, state, and municipal, every construction company, plus most governments worldwide would be unable to build roads or houses until they were able to cobble together a replacement.
The entire world runs on software. Software controls our banks, flies our planes, decides what happens when you press the brake pedal in your car. The bridges you drive, walk, or ride across were modeled in software and simulated to determine whether they needed to be built stronger. The power companies use software to route power across the grid. Software drives servos which determine how much natural gas and air get pumped into our power plants. Every day, power producers and power consumers bid on how much they will pay for electricity at certain times tomorrow, and all of that is automated by software. Judges and lawyers file motions electronically, routed through software. Two weeks ago, US President Donald Trump, Iranian President Masoud Pezeshkian, and Pakistani Prime Minister Shehbaz Sharif signed a memorandum of understanding, opening the Strait of Hormuz. Trump was in Versaille, Pezeshkian was in Tehran, Sharif was in Islamabad; the agreement was signed digitally, with software.
If every computer on earth stopped working tomorrow, we wouldn't notice the lack of cat videos, but we would notice the complete collapse of civilization.
I am sure someone is going to dwell on that if not fixed.
If you want to be reductive, we’re all going to die due to entropy anyway, it will all balance out so there’s no point in doing anything at all.
There were roads built before your company's software and I'm sure if your company disappeared that ultimately roads would get built with or without their software.
It would be interesting to look at all the technological advances of the last 60 years and break them down into categories based on what happens if they went away though (category A: the field just goes back to 1950s and we more or less get by vs Category B: society utterly collapses).
The internet as a whole can arguably be all three at the same time.
We objectively don't need credit cards. We could do with cash just fine. If we were told that Visa / Mastercard were shutting down in 5 years, we'd manage to muddle through. If they suddenly vanished off the face of the Earth? People would definitely die due to starvation.
IMO what we really need in software is something like the various codes which govern fire safety, efficiency, etc of modern buildings. It exists in some safety critical domains but should be more widely applied.
The safety codes are where we accumulate the hard-won knowledge over time. Many of the rules in the codes were paid for with human lives lost.
[0] https://en.wikipedia.org/wiki/International_Code_Council
We've quietly gone from it being a research project, to a cool toy, to something most people had but that definitely wasn't essential, to a world where it is just as crucial as lightning or electricity.
I bet many farming and food distribution operations just wouldn't be able to function without a connection to AWS.
That basically never happens because the license wouldn't be worth the paper it's printed on if it didn't essentially protect you from your own stupidity. Any credentialed professional basically has to be farcically negligent for anything to stick and even if it does damage is usually limited by statute.
That's the whole point. The industry basically strikes a bargain with government to it's benefit. Government lets me run a supply cartel, I promise to enforce minimum standards along the way. Government gives me favorable treatment in court, I do whatever the government's rules say to the detriment of my customers. Society gets just enough scraps to provide the political will to get it done.
Only one of your list calls themselves engineers, because the others are not.
The whole premise of labelling someone prejudice for stating the facts is wildly idiotic.
Who, at this time, knows how to write code so well that they can dictate to others how everything should be done, and can they prove this superiority with a mathematical proof? If so, then maybe we can talk about getting bureaucrats involved to make up a bunch of rules and regulations to control everybody. Until then, it's the Wild West out here, and rightfully so.
Tired of shit code? Boycott the organizations who write and deploy it, up to and including opting out of their ' ' society ' ' altogether. Stop expecting Uncle Scam to help you. He's a scammer. All he does is scam people. It's right there in the name.
Ever notice how everything sucks these days--it's all cheap overpriced junk, like appliances, cars, houses, TVs, etc? That's because nobody in this ' ' society ' ' really gives a shit about quality or has any clue how to achieve it. That's who you want making laws?
And looks like you agree that coding isn’t engineering.
The first high-level programming language was Plankalkül, created by Konrad Zuse between 1942 and 1945.[2] The first high-level language to have an associated compiler was created by Corrado Böhm in 1951, for his PhD thesis.
How long are you going to keep claiming programming is a brand new discipline?
Okay, engineering proper has thousands of years of history. But it’s not like coding came down in the last shower.
Fair enough that any random app probably doesn’t need to be probably correct. And that’s why it’s not engineering.
The practice of coding is a science and an art.
I guess we should make a distinction between Engineering and engineering.
Lower case e engineering is the design and manufacture of complex product - in which case, sure coding is engineering, and coders are engineers.
https://en.wikipedia.org/wiki/History_of_programming_languag...
The defining feature of engineering as a profession isn't how much we collectively know about it, it's the attitude we bring into day-to-day practice.
Take something like the Sony BMG rootkit scandal[0]. Anybody with an ounce of sense and even basic technical programming knowledge could tell the sort of security issues that that piece of software could lead to. Shipping that thing was the sort of recklessness that would get you stricken from any industry's professional body.
Or maybe something like the UK's Post Office scandal[1]. One of the issues there was that post offices sold foreign currency. People were accused of (and, indeed jailed for) fraud because their branch sold $100, there's £70 in the till, and the reconciliation process says that the exchange rate is $100:£80, so there's £10 missing. Horizon had no way to track that the exchange rate at the time of the transaction was $100:£70, they literally shipped a billing system that handles ForEx but doesn't understand exchange rates change over time. And then they lied about it and said the software was working correctly! This isn't an issue with "revolutionary new tech" that we don't fully understand, it's simply a fruit of having an accounting system designed with no actual accountants in the loop. If an accountant had made this exact same mistake, their licence would almost certainly be revoked, but it's somehow ok because computers are involved?
> If so, then maybe we can talk about getting bureaucrats involved to make up a bunch of rules and regulations to control everybody
We don't need "a bunch" of rules and regulations. We only need one: You're liable for damages resulting from reasonably predictable outcomes, as judged by a panel of your peers.
0. https://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootk...
1. https://en.wikipedia.org/wiki/British_Post_Office_scandal
I am of the opinion that companies and their management should be personally liable for damages caused by bad software, not their employees. They created the structure, hired everyone (and perhaps didn't hire QA), and invested in it to make a huge profit.
On a more serious note, I'm not saying "just make programmers liable for the code they write", and leave it at that. I'm saying that, when you sell a piece of software, someone needs to sign-off on that software being fit for purpose. It's that someone who's ultimately liable. Absent some explicit firebreak, that sign-off implicitly happens with the CTO or CEO.
On the other, the severity of the consequences of the bugs in Horizon came from the behavior of Fujitsu management, the Post Office, and the judicial system, and I'm not sure that individual developers could have reasonably predicted that. The software was used under contracts that tried to make individual users personally liable for errors in the software. When accounts had shortfalls, the Post Office ignored even basic sanity in favor of insisting on Horizon's unerring accuracy. They abused esoteric powers of private investigation and private prosecution combined with their own vested interests to bring completely unreasonable prosecutions. They, along with parts of Fujitsu, repeatedly made false statements to courts about Horizon's basic operation, if often with enough distance from the actual developers to claim ignorance. The judicial system then operated under delusional and hubristic views on software development and practices around experts, witnesses, and coerced pleas that one might argue no reasonable person would have.
If a clearly negligent and unqualified engineer constructs part of an office building for a business with numerous avoidable tripping hazards that violate even basic standards, it seems reasonable that they might be liable for the injuries when employees trip on them. If it turns out that the business has a special right to shoot its employees with no consequences, decides that it would be better to shoot anyone who trips rather than admit to the building being fundamentally flawed, and then repeatedly has courts approve of its actions, I'm not so sure that the engineer should be held liable for mass murder.
In the Horizon case, I'm thinking of people like Gareth Jenkins. He was the guy who designed the system, and also one of the expert witnesses you mentioned. He's the one who should be held to the standards I'm talking about.
Members of The American Society of Civil Engineers conduct themselves with integrity and professionalism, and above all else protect and advance the health, safety, and welfare of the public through the practice of Civil Engineering.
The first tenant of a software engineers code of ethics is:
fuck it, make the boss some money.
Or, formally, according to the ACM:
Contribute to society and human well-being.
Which means fuck-all and includes absolutely zero enforcement like it does for real engineering professions. So do us all a favor and don't whine about our discipline's lack of standards while dipshits who call themselves software engineers are tokenmaxxing a pile of shit and SEO optimizing manipulative user environments for profit.
The ‘incentive structure’ is non-financial and based on the ethics of valuing other humans. This is a professional duty. To even call it a ‘incentive structure’ feels like it’s missing the point.
the ethical objectives are supported by disincentives, offsetting the financial incentives to misbehave.
and none of that exists in software engineering (yet).
This license requires the holder to uphold code of professional ethics, and makes the engineer themselves be personally responsible for the safety and viability of the design itself. Losing a PE license is rare, but it does happen. The industry board (usually a regional board) can also discipline/reprimand engineers who fail to meet the professional standard - rubber stamping projects, personal misconduct, etc. Losing a license is a huge deal, but even reprimands can have a serious negative impact on someone's career.
In the industry the previous commenter works in their hypothetical would absolutely meet the bar for discipline or reprimand.
Depending on the country, there's also a level you need to attain as lawyer to argue in higher courts.
Every decision to increase the cost of a product is taking that money out of the customer's pocket which they then can't use to buy more nutritious food or medicine or make rent and avoid becoming homeless. Every additional tax dollar spent on inflating the cost of an infrastructure project is one that can't be spent on cancer research or Pell grants or catching pedos. Moreover, that type of "tax" is highly regressive because when you make e.g. housing cost more, only the poor become unable to afford it.
Meanwhile the system you're referring to gives the engineers the incentive to be excessively risk-averse. Give someone the authority to command that resources be allocated to something and liability for not allocating them but no liability for what happens to the people the resources were allocated from and the result is not an optimal system.
If you're making a bridge usable by residents of Springfield, that bridge has to be in Springfield, and it has to be made by Springfield engineers following Springfield laws.
Yeah, that’s the point. That incentive structure includes going to prison, and employers aren’t willing to die on that hill because it exposes them to insane liability if they go against a certified Professional Engineer.
Seems to me like your comment is simply an example of prejudice.
You're just describing another standardized incentive structure that you're operating in, and using that as a basis to extrapolate that programmers of all kinds—whether they work on a video platform or on machinery that could cause catastrophe if it fails—are implicitly careless careerists who refuse responsibility by nature.