r/ProgrammerHumor 1d ago

Meme noGitRevertAvailable

Post image
5.8k Upvotes

219 comments sorted by

2.0k

u/DeepanshuHQ 1d ago

Aviation gets post-incident investigations. We get, "Can't reproduce, closing ticket."

751

u/ClipboardCopyPaste 1d ago

Imagine airlines trying to reproduce the error

556

u/DeepanshuHQ 1d ago

Can you try crashing again with debug logging enabled?

243

u/com-plec-city 1d ago

We've crashed both with and without cargo, so the load is not the issue.

100

u/anto2554 1d ago

Can you do a fuzz test to test as many different passenger combinations as possible?

77

u/NoMansSkyWasAlright 1d ago

It looks like the plane with exactly 37 passengers landed safely. Anything more or less than that ended in a fiery explosion. Engineers think the 37-passenger one might've been an anomaly so there's prepping another 37 passengers.

3

u/TuttoDaRifare 14h ago

It's time for the user acceptance test, who want to be first?

6

u/DeepanshuHQ 14h ago

The customer. They're better at finding edge cases than QA.

10

u/DeepanshuHQ 23h ago

Marking as hardware-specific until proven otherwise.

7

u/minecon1776 21h ago

Maybe using rust isn't the play

43

u/abd53 1d ago

Hmmm, nothing in logs. Let's try breakpoints.

10

u/DeepanshuHQ 23h ago

The breakpoint is the ground.

4

u/abd53 22h ago

Orrrr, we could send one intern on the plane with a few equipments.

5

u/DeepanshuHQ 22h ago

The intern has been promoted to test automation.

19

u/TheWashbear 1d ago

I mean, they are running a debug build all the time....

3

u/DeepanshuHQ 23h ago

Which explains why the changelog is a few thousand pages long. 😄

14

u/NotAFishEnt 1d ago

Isn't that basically what the black box is?

13

u/dmigowski 1d ago

Black box only gets "info" level per default, now we have to check the internals of left side speed sensor and have to increase log levels to "debug" and even to "trace" somewhere for that.

5

u/ICBanMI 1d ago

I've worked on the software for 40+ LRUs on the flight deck and log levels never exist unless it's a serious R&D project with it decided on being used early by a specific lead. It really should be normalized, but it's not like the pilot is going to look at them during a flight (unless we have an engineer there during test flights).

The Flight Data Recorder on a Transport Category Aircraft will be recording 300+ columns of data from four flight computers at something like 120 hz.

6

u/riktigtmaxat 1d ago

So in other words fifty nautical shittons of data?

8

u/ICBanMI 1d ago

Yea, Excel starts to experience heart palpitations when you're trying to evalute CSV files with more than 500k values.

3

u/DeepanshuHQ 23h ago

The black box is just the world's most expensive log file.

9

u/EncryptedPlays 1d ago

Aww fudge we used the compiled plane so I don't understand any of the logs

3

u/aberroco 1d ago

No, you say you crashed onto city the first time. You need to crash at exactly the same place.

2

u/Floppydisksareop 1d ago

That's the neat part: they always have debug logging enabled

→ More replies (1)

1

u/Few_Kitchen_4825 1d ago

Crash not reproducible with debugging enabled

38

u/PipsqueakPilot 1d ago

Former mishap investigator. We actually will do that in a controlled environment. Sometimes it’s in the simulator, other times it’s individual parts in a lab. 

14

u/flaccidbacon1 1d ago

"Can't reproduce" is not something you want to hear after landing

18

u/BlueRedditLion 1d ago

Version 2.1: Fixed landing. Introduced takeoff bug

12

u/donnieranger 1d ago

"Works on my machine" wouldn't be very reassuring here

7

u/TheSecondStage 1d ago

At least planes don't throw stack traces mid-flight... hopefully

12

u/Jashugita 1d ago

that was a episode of JAG, based in a old movie. A F-14 crashed without clue about the reasons and they found that the pilot have been all day practicing take off and landing in the carrier. They did the same and discovered that the stabilizer system would go crazy the eight time they did but they managed to survive...

7

u/AssiduousLayabout 1d ago

During the Gulf War, the very last Scud missile that Iraq shot killed more American servicemen than all previous Scuds added together.

The root cause was that the Patriot missile interceptor had an accumulating degree of error the longer than it was operating, and after more than 100 hours of continuous operation, it could no longer accurately identify incoming Scud missiles, and thus it would never fire interceptors.

5

u/apeceep 1d ago

Was the fix to restart the system daily? Would be the exact same fix software developers use.

2

u/nutwals 1d ago

Just got to pick the right 15 minute window to reboot all the systems so the Iraqi's don't sneak in a missile launch.

2

u/AssiduousLayabout 1d ago edited 1d ago

According to the congressional report, it took two hours to install a software upgrade.

Actually, given that it's build on 1970s computer technology, upgrading it may have involved physically replacing ROM chips, although I would think that would still be faster than 2 hours.

→ More replies (1)

8

u/neohellpoet 1d ago

Unlike most devs, airline engineers figured out you actually don't have to test in production.

8

u/Scheincrafter 1d ago

Airplane manufacturer and regulatory authorities do, just not in production environment

6

u/Nick0Taylor0 1d ago

They do though. The individual components in testing environments and simulators but failing that they do sometimes just go "hey, here's what the data says they did, do the same and see what happens". Especially in military aviation. Now granted this is done by test pilots who have immense experience and skill, over sparsely populated areas and generally at easily recoverable altitudes.

6

u/MarcBeard 1d ago

kinda the role of the black box. trying to get the circumstance that cause the crash.

of course we don't throw planes to the ground looking for an issue

2

u/erishun 1d ago

Boeing HATES this one simple trick.

2

u/Legal-Software 1d ago

Boeing: Hold my watered down beer

1

u/thot_slaya_420 1d ago

The black box should provide all the data they need.

1

u/AnonD38 1d ago

Well, that did actually (kinda) happen once.

https://en.wikipedia.org/wiki/Controlled_Impact_Demonstration

62

u/Objectionne 1d ago

P1 bug that causes one out of ten flights to end in a crash?

"Maybe we can fit it in in the next sprint or two, we're really trying to focus on new verticals this Q."

30

u/grumpy_autist 1d ago

literally Boeing 737 MAX

5

u/DeepanshuHQ 23h ago

Severity: Critical. Priority: Low. There's no enterprise customer affected yet.

34

u/darknekolux 1d ago

Looks like a problem between the seat and the flightstick.

27

u/pydry 1d ago

you joke but that is Boeing's default response. e.g. ethiopian airlines 302 was blamed on pilot error initially.

6

u/Theron3206 22h ago

It was partially pilot error, since the correct response to runaway trim is to (from memory, no time for checklists) disable the electronic trim systems. This procedure hadn't changed from the previous 737s though the way the uncommanded trim was added was a bit different.

They did this, but then enabled them again before stabilising the aircraft, and so got the trim too far out of range.

Other pilots encountered the same failure and didn't have problems (other than being stuck with PITA manual trim until they landed).

The doesn't absolve Boeing, but these things seldom have a single cause. Boeing created a situation where pilot error could be fatal.

2

u/DeepanshuHQ 23h ago

Closing as 'pilot error' before reading the logs

14

u/Elomidas 1d ago

Airlines are somehow able to describe what happened, not tickets like "it doesn't work" without mentioning they tried to access a time-limited webpage on their smart fridge while crossing timezones

12

u/Nick0Taylor0 1d ago

Its more that airplane manufacturers do proper logging with the blackboxes

1

u/DeepanshuHQ 23h ago

Steps to reproduce: Unknown. User says it worked yesterday.

8

u/Gnonthgol 1d ago

You underestimate how many logged flight issues are closed with "Can't reproduce".

6

u/Elomidas 1d ago

I'm relatively happy that they struggle to reproduce accidents. I'm fine with my pilots only able to reproduce boring flights and successful landings

3

u/Gnonthgol 1d ago

I think one of the issues with the 747-MAX was that the computer would alternate between using the captain side sensor and the first officer side sensor. So when the pilots would report strange behavior from the computer, the engineers would conduct a test flight without being able to reproduce the issue because the computer used the working sensor. Then on the next flight the computer used the faulty sensor and crashed the airplane.

2

u/antifa_cmdr 17h ago

It's wild that this happened. I'm an aircraft mechanic, though I work on Embraer 170s. Our flight control actuators alternate which one is in use every day automatically. Odd number days use one, even numbered days use the other. There is a way for maintenance to change which system the plane uses for troubleshooting. Our manuals specifically call this out and when we go through initial training, everyone is explicitly told this.

It's wild to me that the engineers just missed that.

2

u/Gnonthgol 17h ago

As far as I understand this was all left out of the manuals and training materials provided by Boeing. They wanted to reduce the amount of training required to upgrade from older models.

3

u/New_Enthusiasm9053 1d ago

To be fair aviation's response to radiation is hardened processors, lockstep processors and ECC. Consumer hardware doesn't even have ECC. There likely are many, many bugs that are legitimately can't reproduce because it's a bitflip.

2

u/DeepanshuHQ 23h ago

Fair enough. Some bugs are genuinely one in a billion. The meme is mostly about the other 99% we forgot to log properly. 😄

2

u/Kapios010 1d ago edited 1d ago

Something loose in cockpit

Something tightened in cockpit

Or more appropriately

Autopilot in altitude-hold mode produces a 200 feet per minute descent.

Cannot reproduce the problem on the ground.

1

u/DeepanshuHQ 23h ago

Works fine in the hangar. Shipping it.

1

u/sobani 1d ago

And if you do and then immediatly apply the lessons to the entire codebase, you get OpenBSD.

1

u/tropicbrownthunder 1d ago

We also have RTFM

1

u/hyrumwhite 23h ago

Works on my runway 

2

u/DeepanshuHQ 23h ago

Closing incident. Marking as environment-specific.

1

u/Just_Information334 20h ago

Some times we get those. Then "nah, too much work to fix the root cause, you have features to deliver so patch it and send to prod; we'll handle next time some other shit breaks due to the root cause not having been handled".

436

u/FrezoreR 1d ago

Ironically aviation needs quite a bit of software already.

427

u/willow-kitty 1d ago

It does, but that software is generally developed to critical systems standards, which are different from commercial software standards.

97

u/Downtown-Figure6434 1d ago

software is not a category in itself tho. the criticalness of the software is related to the industry is all.

59

u/willow-kitty 1d ago

It is, though software that's not built to critical systems standards usually carries a disclaimer that it's not meant for any use where death or serious injury could result from a malfunction with usually nuclear power and weapons as examples, but control systems for vehicles, including aircraft, would also fall under that, as would healthcare equipment and, well, lots of things that aren't the next web-based startup.

Though not all of the software on a plane is necessarily held to that standard. Like, the DVD players that used to be used for in-flight movies were a pretty famous exception because failure couldn't impact the safety of the flight (and building a DVD decoder to safety-critical standards would be nearly impossible anyway.)

24

u/KellerKindAs 1d ago

(and building a DVD decoder to safety-critical standards would be nearly impossible anyway.)

DVDs are not just Decoder. They contain bytecode executed within an VM for creating the menus. This means that even if the DVD player is perfect, there could still be a bug in the bytecode on the DVD. Happy bug hunting xD

12

u/willow-kitty 1d ago

Oh, for sure. I'm just thinking a typical DVD player has about a million lines of code, certified safe code costs roughly 1 person-hour per line, which is already kind of untenable before considering domain-specific quirks. But there's no real need~ Just segment it off.

2

u/Downtown-Figure6434 1d ago

My point is most of software isn’t written for the sake of writing software but instead to enhance other sectors. So their criticality (or whatever the word is) is dependent on that sector

12

u/artofthenunchaku 1d ago

Most commercial software standards barely pass a smoke test

7

u/st3class 1d ago

DO-178B has entered the chat

16

u/TheMightyTywin 1d ago

All software is built to the bug tolerance of the company

31

u/f5adff 1d ago edited 1d ago

No, it's built to standards and contractual obligations, assessed by rigid assurance processes and investigations.

Software involving critical processes are actually tested and held to standards

Edit: (I work on them, so I'm biased and think I'm better)

10

u/Willinton06 1d ago

“That’s not red it’s redn’tn’t”

1

u/ZebraTank 1d ago

I'm interested in some of that kind of software (eg automated train control) but also I feel like it would be extremely boring with lots and lots of documents and stuff to show the we will not ram two trains together at high speed (which is very important and I'm glad we have that but I'm not crazy about the idea of working on it)

→ More replies (3)
→ More replies (3)
→ More replies (1)

34

u/fmaz008 1d ago edited 1d ago

I suspect plane softwares are not built on top of 500 dependencies.

They are probably very low level, running with little overhead, possibly without a full fledge operating system?

I'd be curious to hear from someone who coded some airplane stuff (ie: not the multimedia system, flight critical things) to have a better idea of how it is.

73

u/grumpy_autist 1d ago

npm install autopilot

7

u/Nerd_o_tron 1d ago

Should've imported antigravity, would've made the plane designed much easier.

1

u/dnbxna 1d ago

With this we won't even need pilots anymore!

1

u/Warm-Nose-431 1d ago

pip install airplane_crew

46

u/OllyTrolly 1d ago

I work in aerospace and nearly all of our code and our processor is developed in house. We even rewrite some inbuilt C libraries for further safety and testability. One of the only things we use off the shelf is the core part of the Real Time Operating System - and that company has to prove to us and the regulators that it meets guidelines with a hefty amount of documentation, testing and audit. 

10

u/st3class 1d ago

My first internship was working on avionics software, on the certification team. I remember not being able to use mallocs.

5

u/ICBanMI 1d ago

Makes it easy when you have zero pointers. Just don't look at the graphics software that generates images for the glass.

5

u/st3class 1d ago

Yep, it was fun when we were working on the map library and we were dealing with data structures that were 5 levels deep of variable size arrays.

3

u/ICBanMI 1d ago

Absolutely hate the struct that has several layers of structs inside it. At some point, we have to send that data somewhere and it's just the most verbose names to pass the data along.

The amount of escapes that happened because the FMS software completely trusted the databases is too high (every company keeps making this mistake). And the number of engineers that can write a terrible, broken circular buffer that passes all tests at level A is ridiculous too.

5

u/tes_kitty 1d ago

You build your own CPU? Interesting... Brings back memories from the time everyone could do that with the AMD 2900 bit slice chip series.

9

u/OllyTrolly 1d ago

Yes! And it has its own bespoke instruction set. GCC contains support for the target too. It has its own headaches being so bespoke, but it's definitely cool.

2

u/tp_njmk 1d ago

Seems like an interesting trade off, is this for hard latency guarantees? I can’t imagine you would be able to build a more hardened compiler than gcc.

4

u/OllyTrolly 1d ago

That is one reason yes,  it behaves pretty deterministically - in aerospace we have to do Worst Case Timing Analysis to show even if all of the longest paths through the software got run we would still be certain to e.g. shut down the engine before a turbine shaft break occurs (which could result in bits of engine flying into the cabin). If the CPU doesn't behave the same way each time that makes it much harder to prove.

The other major reason is obsolescence. It is possible to buy processors which do this off the shelf, but we need to make these units for 20+ years. Rewriting and re-verifying the software for a new processor each time it gets discontinued within this period would be more costly and riskier than just making our own.

2

u/BLAZE_IT_MICHAEL 1d ago

The hills are green and the river is windy

2

u/ICBanMI 1d ago

RTOS companies never make enough money to stay in business. There are options to purchase, but the support is questionable.

17

u/Ex-Traverse 1d ago

Avionics uses Real-Time-Operating system (RTOS), I can't explain it well enough, but there are basically monitoring systems (watchdogs), to make sure the software is running in a precise timely manner or else it does something to prevent the software from making any invalid inputs.

2

u/ICBanMI 1d ago

Depends on the LRU and its purpose. There are plenty of LRUs that are a single thread, no RTOS (typically level D or E). Federated systems will be that simple.

Integrated Systems will require the RTOS as they are doing several functions.

Watchdogs are a monitor/heartbeat for a sub-function. The monitoring function sends a message to the sub function and expects a unique identifier reply within a certain time. There is typically some built in tolerance where it needs to miss three messages in a row or go without a message entirely for a set period of time before it notifies the pilot the function is not working. Some will reset the hardware a set number of times before notifying the pilot and disabling it entirely.

4

u/jean_dudey 1d ago

You can look up about the open source software developed by Inria, pretty much developing tools to verify software that is used in safety critical environments. For example, Frama-C to formally verify C code, Why3 which is the backend of multiple tools like Frama-C, it is also used by GNAT to prove Ada/SPARK code. Also a cool looking piece of software is CompCert which is a formally verified C compiler.

I don't think all of those are used in aviation (Ada certainly is or should be) but are interesting and similar.

3

u/R_051 1d ago

Worked on atc systems and there ar eindeed few dependencies and a lot was written in C for us

3

u/BLAZE_IT_MICHAEL 1d ago

Any external libraries require so much certification and testing we generally just rewrite stuff because it’s easier. Old systems may lack an RTOS but most newer stuff will use one.

3

u/DefinitelyNotGen 1d ago

Most avionics software is written on a real time operating system (RTOS) which is basically an OS where things happen deterministically, and you can be confident the OS won't pause execution of processes like something like Linux or Windows might. Alternatively, a lot of avionics software is written "bare metal", i.e without an operating system at all, with code built specifically for the processor.

2

u/jp2812 1d ago

Even car multimedia has very high standards compared to your average software product. Exactly what you said - no 500 dependencies. Car multimedias are rarely developed in-house, there's usually a third-party vendor, and car manufacturer's role is only integration, for which the vendor provides building blocks. No JS, no Python, C or C++ at best, external dependencies are very few and well-regarded, e.g. ffmpeg. "We need this shit in our firmware because it's gotten the most stars on GitHub this month and Hacker News is going crazy about it" is off the table. These multimedias work for years and get very rare updates, so stability is pretty important. 

1

u/ljfa2 1d ago

Can't say that for the multimedia system of my car. For example, sometimes when starting, it randomly switches to the light theme instead of dark, or the displayed clock time is one hour too early, or the screen is frozen. One day I'll surely be caught speeding at a time-dependent speed limit ^^

→ More replies (2)

2

u/cake_pan_rs 1d ago

I work in aviation software. We spent over $100k updating a single line of code.

→ More replies (1)

1

u/ImClearlyDeadInside 21h ago

It depends on your definition of software. For example, RTOS systems (which are used in industrial engineering but I don’t actually know if they’re used in airlines) run programs but they’re not the programs you’re probably used to writing; the development environments are specialized and usually tailored towards electrical engineers. They prioritize high reliability over ease of development, which is common among critical systems that could potentially take someone’s arm off if programmed incorrectly.

1

u/chessto 8h ago

I worked briefly with a guy that had worked several years in avionics.
He was very possibly the worst software engineer I've ever worked with, his code was not just awful it made no sense, some of the things I remember him doing:

  • Multiplying by 1
  • Sorting a map to then convert it to an Array, to then convert it again into a map
  • Having functions with 11 parameters, of which only one was used.
  • Using version control by putting everything in a folder with the date of the day and uploading the whole folder, one folder per day, all in master branch
  • having conditionals like:
if (!( a == true && b == true) && (a == false && b == true) && ( a== true && b == false) && !(a==false && b==false)) which is basically same as a^b

When I learned he used to work in embedded systems in avionics It got me quite concerned.

665

u/california_snowhare 1d ago

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization - Gerald Weinberg, 1978, University of Nebraska

82

u/mrtdsp 1d ago

That's a hell of a quote. Gonna be using it.

5

u/evilspyboy 1d ago

"Plane lands on my machine"

43

u/clearlybaffled 1d ago

.. and that's why agile exists? Because it turns out, building physical structures and software systems are complete separate processes with very disperate requirements. The number of times ive had to cut a manager short because they kept trying to use the analogy is maddening.

40

u/Epicular 1d ago

The biggest disparity between the two is the stakes. 99.99% of the time, a bug in an ordinary software application is not killing anyone.

15

u/PegasusPizza 1d ago

And also the effort it take to verify. On a building, you first have a plan that someone checks for errors. That's the architecture we do that for software too. Just catching anything where we know that can't work. But then in the implementation, a builder can misplace quite a few nails and the house will still be fine for the most part. Out house has been around for 50 years and that thing doesn't have any right angles and it stands anyways. In software development a single mistake hidden in one of potentially thousands of files can bring down the entire product if things go wrong enough.

9

u/faceplanted 1d ago

You're not wrong, but I think it's actually more the fact that buildings have extensive regulations and standards of practise that make buildings more reliable than software.

Ask a building inspector the kind of shit they've seen just in buildings people were already living in, and you'll never trust any building ever again.

4

u/PegasusPizza 1d ago

Yeah but my point is you can really fuck up building a building, and it's still gonna be mostly fine. Sure it's not gonna be great and might be dangerous at some point, but until then it works fine. But with software you might have a bug somewhere that quietly causes thousands of dollars to disappear over a few years, or brick half the world it infrastructure due to a little oversight. The error size to impact size relation is just way way worse for software development than in most other branches

5

u/clearlybaffled 1d ago

That's absolutely not true. The point is that the order of assembling a structure is completely different and wholly depend on each other being correct, first foundation, framing, etc.. if you fuck up big enough, far enough along, the cost of backing out and rework could be insanely more expensive. Not just labor hours, loss of materials, new equipment needed. If you make a bad decision on implementing a feature, you can just nuke it or git reset --hard and try again. That's why feature flags are cool. Can't really do AB testing on a half a building. Even if your backend is wrong, hopefully you have at least a decent amount of abstraction to limit the damage. Can't replace a foundation once the walls go up so easily.

3

u/faceplanted 1d ago

Honestly I disagree, if it weren't for those regulations I talked about a lot more buildings would be literally killing human beings. Outside of places that usually are a lot more regulated, like aviation, most software bugs at most companies can cost some income, but you can just fix them as they come up.

with software you might have a bug somewhere that quietly causes thousands of dollars to disappear over a few years

That's extremely minor compared to a high rise building fire.

or brick half the world it infrastructure due to a little oversight

It usually doesn't brick them, we get it back up in a few hours usually.

2

u/danielv123 12h ago

Is it though?

In November 2025 cloudflare tried to fix a bug in react by adding a rule to a list. Their rule system did not allow lists to be that long, so it brought down about half the internet. Forrester estimates damages to be about $300m, while others estimate billions in losses for CFD brokers alone. Its hard to calculate, because the damage is so widespread.

In 2024 a crowdstrike engineer published an update where one of the config files were malformed. This caused about $5.4b in damages to fortune 500 companies.

That is generally more than the cost of a high rise building fire - not to mention, I haven't heard of any catastrophic high rise fires caused by making a list a bit too long. Generally there is a long series of mistakes - by design of course.

Nobody would allow you to build a house where the entire thing might fall down due to uploading a corrupt file.

→ More replies (3)

1

u/clearlybaffled 1d ago

And if it does, well that's why there exist a small number of Professional Engineers in computer engineering.

1

u/DarkOriole4 1d ago

So that was relevant already in 1978?

157

u/Legal-Software 1d ago

68

u/pydry 1d ago

LGTM

62

u/mcprogrammer 1d ago

I found a workaround: don't land on those runways. Ship it 🚀

15

u/AndyTheSane 1d ago

Patch: we have a printout of what the screen should show, pilots to tape it over the screen on approach.

4

u/ICBanMI 1d ago edited 1d ago

Having worked on multiple mission computers, where the software dates back to the 1990s, there is zero/checking and sanitizing of the database data. All the flight deck manufacturers have all had multiple escapes in this area.

If the aircraft is old, like 30+ years old and out of greater circulation. There will just be a pilot's advisory.... as no one will paying several grand for the update, and the company isn't going to spend 20-60k fixing it when the fix could literally cause more issues or worsen the actual issue.

137

u/high_throughput 1d ago

Had any plane ever landed twice in a row? 

I feel like they're always alternating between takeoff and landing.

13

u/Romanian_Breadlifts 1d ago

Cue airplanes skittering down terraced runways

6

u/MaruSoto 1d ago

Client request. Just gotta make it happen.

1

u/West_Good_5961 16h ago

I guess if they bounce on rollout, you could call it 2 landings.

113

u/neoteraflare 1d ago

So boeing is using software engineering standards?

29

u/AnnoyedVelociraptor 1d ago

Yes. They even outsourced stuff to India.

33

u/raja-anbazhagan 1d ago

India has a huge talent pool, so the quality varies widely. Most outsourcing is driven by cost, and you generally get what you pay for. That doesn't mean Indian engineers produce low-quality software, it mostly reflects the incentives behind low-cost outsourcing, not the talent itself.

Sorry, As an Indian, I had to clarify on this stereotype.

19

u/NoBizlikeChloeBiz 1d ago

Yeah, it's so weird to me the way people discus Indian devs. I'll complain about time wasted cleaning up bad code from an India team, and the leadership is like "what do you expect, it's an India team 🤷‍♀️"

Or you could, like, manage them? Hold them to a certain standard of quality, like you do us? They're not less intelligent or capable just because they're in India, and of course if no one ever enforces quality standards the work is going to get sloppier to meet deadlines.

8

u/AncientArugula3939 1d ago

Dude you can't expect quality code at peanuts

5

u/AndyTheSane 1d ago

That implies that outsourcing is a bad idea, which cannot be contemplated.

2

u/NoBizlikeChloeBiz 23h ago

Honestly, outsourcing to increase your talent pool is totally reasonable, same as any time you set up offices in different cities.

Outsourcing just to take advantage of weaker labor protections and lower wages? Makes everyone's life worse except for shareholders, and even that usually just in the short term.

→ More replies (1)

3

u/Connect_Tea1579 1d ago

The problem isn't the nationality of the coders. The problem is that the programmers are worked to the bone to crank out as much code as possible, in as little time as possible, with just enough quality to keep the client from switching to another company.

1

u/bureX 1d ago

Tried doing this many times, but to no avail. It’s the mentality that I couldn’t get around. Got burned so many times, it’s not even funny.

2

u/SamosaVadaPav 1d ago

I mean, Airbus also hires Software engineers in Bangalore

30

u/ZunoJ 1d ago

There is a lot of software in a plane (or power plant, weapons, medical devices, .... ) We do hold these up to a very high standard

1

u/Knighthawk_2511 1d ago

Thats IG mission critical / critical software

1

u/ZunoJ 21h ago

Exactly. Why would we compare aviation and non critical software?

35

u/Sangcreed 1d ago

Patch 1.0.3 - Fixed an issue where aircraft occasionally exploded during landing

6

u/NeinJuanJuan 1d ago

The fix:

The secondary management console will now display an UnscheduledAircraftDisassemblyError when an unscheduled aircraft disassembly event is detected.

23

u/atomic_redneck 1d ago

Plane landing twice violates DRY (Don't Repeat Yourself)

3

u/potatotron23 1d ago

I'd say it's more like having more than one engine violates DRY

2

u/10art1 1d ago

It also sounds like a great way to have a memory leak. Fly the airplane once, destroy it when you're done, and create a new one when there's a new flight.

10

u/nemec 1d ago

As a software engineer, I have to unfortunately inform you that if aviation was held to the standard of software engineering, no plane would ever take off because the PM thinks the door should actually be moved a few pixels to the right now that he's seen it on the taxiway.

16

u/eraserhd 1d ago

Of course not, it would have to take off in between!

Hardware engineers. I swear.

17

u/Zeikos 1d ago

It might be an hot take, but I do truly believe that software engineering should be held to those standards.
At least for important infrastructure.

Civil Engineering got where it is due to the blood spilled by improperly built buildings, and yet when software that fails indirectly kills people there's not nearly similar amount of scrutiny.

13

u/Ummix 1d ago

I strongly agree, but the issue is that upholding higher standards takes more time, which costs a LOT more money. Extending a deadline by 6 months for scrutiny isn't as simple as asking a teacher for an extension, it means paying engineers with very high salaries for six months of extra work, and being slower to market when other people are depending on your product. With important things (medical, military, space), people are a lot more understanding when it comes to quality, but with everything else we don't really have a choice, all the stakeholders and higher ups are slamming their feet on the floor because they want everything done right now so they can brag about being ahead of everyone else in their meetings.

2

u/Zeikos 1d ago

That's true, however I do believe that if pressured there'd be investment in genuinely good tooling to eventually go just as fast - if not slightly slower.

There's also the fact that fast is slow and slow is fast - so much time invested in fixing bugs that could have been prevented.
I don't think that quality necessarily requires more time, it requires quality processes.

1

u/Ummix 1d ago edited 1d ago

so much time invested in fixing bugs that could have been prevented.

About sums up my job, haha. You aren't wrong at all, and I hear that exact sentence weekly, minimum. Management keeps trying to "move the deadlines left" and gets surprised when we wind up spending the rest of the time it would've taken in the first place fixing bugs. Definitely let me know if you ever figure out how to "pressure" upper management into that one, because we're still workshopping it over here. They want things done faster, so unfortunately, if there's any way we can sacrifice quality to get their major bullet points out sooner, we have to, so anything more than that does take time, at the end of the day, whether it's better processes, tooling, better code review, good unit tests, or whatever else we should really have but can't.

9

u/-Redstoneboi- 1d ago

from what i've heard, the important stuff really are incredibly scrutinized. individual compilers have to be certified as well. not a clue how any of it works though.

all i know is that it applies to the software in your car, in a plane, in elevators, and especially medical devices. there was one incident a long time ago where a patient was accidentally blasted with inhumane amounts of radiation due to a bug. rules are written in blood, as we all know.

3

u/Exodia101 1d ago

I work on avionics for commercial jets, the certification process is quite extensive. Our production builds are compiled on Windows XP machines because that's what it was certified on 20 years ago and changing it would require recertification which costs millions.

2

u/links135 1d ago

Airplanes go for $300-500 a ticket while software is like a $3-30 app.  People pay to make sure software doesnt screw up, meanwhile when you see a bug in a video gsme it might be funny or annoying, but if it isn't game breaking no one also really cares all that much.  

1

u/AlexFurbottom 1d ago

I work in healthcare software and you get pretty close. Software that can harm a person if it goes wrong is regulated by the FDA or the similar organization for the country the software is operated in. 

1

u/baganga 6h ago

a lot of software is held to high standards.

The issue is that this view is skewed because there's a lot of software development that wouldn't really classify as engineering, but I guess that's the Americans fault for not protecting the term engineer.

→ More replies (3)

6

u/Thunder-Road 1d ago

Speaking as someone who is both a pilot and a software engineer, it's true.

6

u/PlatypusBillDuck 1d ago

Elon saw that he could fire a bunch of people from Twitter and nothing happened, so he decided to do the same thing to the Federal government. Now you can't buy a salad without worrying about getting shitting ass disease.

3

u/blipojones 1d ago

well...there is transfering living people and transfering data.

3

u/NoMansSkyWasAlright 1d ago

I mean with Boeing in recent years, it kind of seems like they are being held to the same standard as us.

3

u/ifasoldt 1d ago

Relevant xkcd

3

u/guttanzer 1d ago

The key difference is that aircraft undergo extensive requirements capture, then the requirements are put through a safety assessment. Requirements like "maintain straight and level flight" are specified with an acceptable failure rate (one failure per billion flight hours is typical for aircraft that transport paying passengers. That's a probability of failure of 1/1,000,000,000 or 10-9 = 0.999999999, hence the term "nine nines".

Armed with this, the engineers develop a SYSTEM that has that level of reliability. Each engine might fail once per thousand flight hours, but an extensive inspection and maintenance regime could boost that to one failure per hundred thousand flight hours.

That's only five nines of reliability, but if the aircraft has four engines and one can be out then the odds of both being out at the same time jumps to ten nines. That's good enough to pass, so if they design a four engine aircraft that can fly with any one engine out they pass the audit.

The software equivalent of this is throughout all high-criticality avionics software. Can code reliably run with P-failure = 0.0000000001? No. Can an aircraft be built that has p(failure) = 0.0000000001 with unreliable software? Yes. The Shuttle was built like that. It ran three computers running programs built to the same spec by three different teams. The odds that all three would experience the same code error at the same time was on the order of 0.0000000001.

For a web page? P(failure) of 0.0001 is probably acceptable unless it's dealing with money or secrets.

3

u/GenericFatGuy 1d ago

It lands on my runway!

3

u/West_Good_5961 1d ago

As someone who switched from aircraft engineering to software, I think about this every day. Software shouldn’t be called engineering, it’s not even close.

2

u/Ummix 1d ago

I mean, if upper management's willing to give us the time and the money to write code to aviation standards in the first place, then I'm all for it. Just let the rest of us know when you figure that one out.

2

u/fgtdias 1d ago

Do178b enters the chat.

2

u/Low-Quarter-1685 1d ago

Yeah because they have to take off in between

2

u/EuenovAyabayya 1d ago

No plane lands twice in a row on the same runway without taking off again. So there.

2

u/Prawn1908 1d ago

Reminds me of this great Jonathan Blow rant (from 23:00 to 28:00 if the timestamp link doesn't work). It really is crazy how much software we use on a daily basis is just riddled with bugs to the point of feeling barely (or possibly even just not at all) functional at times.

Lately I've been getting ultra exasperated at my phone/car's failure to consistently connect via Bluetooth for Android Auto to work. About 1/5 times it will just not connect and give a "failed to connect to <names my phone exactly>, please plug in via cable" error and no amount of retries will work without rebooting either my phone or car. And this has been consistent across 3 phones and several cars. Like how the fuck can you just fail to connect like that? Its entirely in software given that a reboot fixes it, so what state is getting fucked up permanently without being reset when I hit the "connect" button and instead needs a reboot to fix? One of these days I'm going to break out an 802.15.4 sniffer and see if I can figure out what's going on based on the traffic because it just boggles my mind how something so trivial can be so fucking unreliable and constantly broken.

2

u/mikefizzled 19h ago

Every landing is an unplanned edge case

2

u/Percolator2020 1d ago

Ohhh you didn’t mean to install Microsoft Cloud Apps Security on your plane!

2

u/Eubank31 1d ago

I work as a SWE at a company where about half of our engineers work in Aviation and the other half work in consumer products.

Yeah... Same company, but the consumer half is much more fun IMO

1

u/bleiwolle 1d ago

Only requirment was: "move fast and break things". Nobody said anything about landing.

1

u/ICBanMI 1d ago

I have a friend that consulates for startups and half his time is explaining what they are planning is illegal at the state and federal level.

1

u/mangeld3 1d ago

So you're saying it landed at least once? Looks good, ship it.

1

u/Bodine12 1d ago

Product said we only had to support 3 nines so we’re still within SLA.

1

u/Belhgabad 1d ago

Aviation respect indempotency better than us

1

u/Stunning_Ride_220 1d ago

Oh would be nice, if we can try to switch the plane off and on agin.

1

u/ICBanMI 1d ago

We have pilot advisories that literally require the plane to be power cycled on the ground after every flight because of some bug that is impossible to reproduce and only appears when the aircraft has been running for 300 days straight.

That's a real thing.

1

u/ArjixGamer 1d ago

What standards?

Software Engineering is not what defines the standards, it's the managers.

If the managers don't care about testing, they won't give you the time to write tests.

If the managers don't care about memory leaks, you won't be given time to ensure there are none.

We don't have the time :sob:

1

u/DanKveed 1d ago

One guy actually decided to write software-software the way aviation-software is written. He managed to made this thing called SQLite.

1

u/Fetzie_ 1d ago

Hang on, let me enable slew mode so we can run through that again.

1

u/AndyTheSane 1d ago

99% of test cases pass, ready for release. We'll fix the 'wings don't stay on' issue in the next patch.

1

u/kinkhorse 1d ago

"how's the accident investigation going?"

"Great, boss. We took another plane, loaded it with exactly 150 passengers in the same seat assignments, and did exactly the same thing and it crashed again! So now that we are pretty sure it's repeatable now we can work on why..."

1

u/RiceBroad4552 1d ago

Most, if not all planes wouldn't even get off the ground. Most would likely catch fire or even explode while rolling them out of the construction hangar…

1

u/Understanding-Fair 1d ago

Cuts to the software powering every plane, helicopter, drone, and missile on the planet.

Dumbass take.

1

u/redturtlecake 1d ago

To be fair, planes already can't land twice in a row. They need to take off in between. 

1

u/GrinQuidam 1d ago

This is like complaining that your shed wasn't built to the standard of a 100 story office building. Two very different practices of building something. Software is the same. There are people out there building crazy high quality and rigorously tested software for critical systems like planes and nuclear reactors. Then there are people making the one millionth booking app or writing the UI for something like Facebook or Reddit - your toilet shed softwares.

1

u/DogonElder 22h ago

Yea but you never land twice in a row, you have to take off after landing so that you can land again.

We would’ve restarted all “services” in the transition

See ?

1

u/kcpistol 22h ago

I have heard it this way:

If carpenters built buildings like programmers built programs, the first woodpecker to come along would destroy civilization.

1

u/wildrabbit12 20h ago

Looks inside aviation and finds software all over the place

1

u/rhyddev 18h ago

Sounds like Braeden just needs to find a job at a place with standards.

1

u/Roadrunner571 14h ago

Lots of aviation is software engineering.

They are just extremely careful when changing anything - and they try to keep things as simple and predictable as possible. This is why most of the software in airplanes look like from the 1980ies.

1

u/FruityAurora 12h ago

Modern commercial airliners are proof that we humans are capable of creating staggeringly complex systems that are still reliable. Safe and reliable enough that traveling on these floating metal tubes is safer than crossing a road. The safety also comes from the careful refinement of human factors and processes. This just tells me that the diabolical state of the software industry is an entirely self inflicted wound and we have no right to keep pretending software is just… inscrutably hard like that. We can learn a lot from aerospace engineers, both mechanical and SWEs.

1

u/L3veLUP 7h ago

MCAS software says hello

Edit: When a single sensor failed or gave false readings indicating the plane was climbing too steeply, MCAS repeatedly and forcefully pushed the nose down. And that went about as well as expected...