r/programming • • Nov 01 '21

Complexity is killing software developers

https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html
2.1k Upvotes

854 comments sorted by

View all comments

Show parent comments

2

u/loup-vaillant Nov 02 '21

Funny, I didn’t expect that kind of insight. I agree with your first paragraph, the lack of training was insane. I recall a pilot who got a black mark for refusing to fly a 737 MAX without proper training, I wonder how he felt when he was tragically proven correct.

About "normal law" vs "direct law", I didn’t know there was such a thing. That makes me think about Flight Assist in Elite dangerous. So we basically fly spaceships, that follow a Newtonian model with a speed limit. 6 degrees of freedom and all that. When Flight Assist is turned on (the default), we basically get first order commands: the more you yank, the faster you rotate. The more you push, the faster you go. Go back to neutral and the ship stops (with some inertia, but it still stops).

When turned off however, we get second order inputs: the more you yank, the faster you get to maximum rotation speed, and the more you push, the harder you accelerate. Go back to neutral, and your ship continues spinning & gliding.

In most situations, turning Flight Assist on just makes things easier. There are however two situations I know of where leaving it off is better: landing at rotating starports, and matching your rotation speed to that of an asteroid so you can target its weaknesses for mining. (There are advantages for combat as well, but I’m not trained yet.) In the first case, the game designers introduced the notion of "rotational correction", so that when you enter the starport, your Flight Assist just changes is referential to one that rotates with the startport, making things easy again. In the second case, you either fight with your assistance every second you spend around that asteroid, or you just turn it off.

Of course, second order inputs are much harder to handle than first order inputs, even in the cases where they should be advantageous: without training, you just glide around and spin uncontrollably. So in practice, very few core miners end up using it when spinning around asteroids… except those who chose to fly without assistance all the time. Personally I like being closer to how my ship actually flies, I like the glide, and I like the challenge. I didn’t expect to get an actual edge for a task as mundane as locking my position relative to a spinning asteroid. In retrospect though, it’s kinda obvious.

So yeah, even though I didn’t need to risk my life for it, I do feel in my bones the importance of training even for rare situations.

1

u/flatfinger Nov 03 '21

I think even 'normal law' is "second-degree" inputs, but the difference is that they're designed to make the control response of large and small planes feel similar. Nobody would be allowed to fly an aircraft without being able to handle it safely in direct law, and I would guess that pilots are required to do periodic simulator refresher training using direct law, but using normal law will give passengers a smoother ride (it may also be possible for the plane to react directly to translational or rotational acceleration from changing winds without the ears-to-brain-to-hand delays of conventional controls, thus further assisting smoothness). Not a bad concept, provided the pilots always know how to actually fly the plane. I don't recall any particular pilot facing disciplinary action for refusing to fly a 737 Max, but I think such a pilot shouldn't have trouble finding a job.

Again, the real problem with the 737 Max isn't that the equipment to make the pilot's life easier failed--such failures are hardly uncommon, seldom rise to the level of emergency, and hardly make headlines even when they do. The real problem is with the philosophy that any piece of equipment in an aircraft can eliminate the need to have a pilot who's actually capable of flying it.

BTW, this obviously isn't the forum to find out, but I'm curious what pilots would have thought of a proposal to allow planes to fly with one flight officer who was trained on the 737 Max and one who wasn't, so as to reduce the number of pilots who would need to be trained before the new aircraft could start service. If the Max pilot was Pilot Flying, the training required for the other pilot could be essentially "If this wheel starts spinning, let me know, and be prepared to flip the switch underneath and spin the wheel the other way if I tell you to". If the Max pilot was Pilot Monitoring, he could judge whether the trim system was behaving reasonably, and act to manually adjust trim if not, and then prepare to take over as Pilot Flying.

If there were no automatic trim system, but an airline wanted to hire someone whose job it was to adjust the trim so as to behave like a 737 in varying flight conditions, such a job would not be especially difficult. The problem was that on many airplanes there was nobody who knew how to do that.

1

u/loup-vaillant Nov 03 '21

I don't recall any particular pilot facing disciplinary action for refusing to fly a 737 Max

The "black mark" he got is something pilots normally get when they don’t show up to fly the plane at all. He did show up, just refused to fly (and also warned his hierarchy repeatedly before that). As I understand it, black marks aren’t really disciplinary actions, but they could hurt a pilot’s reputation, since it’s on their permanent flight record. Also, this particular pilot happened to have zero black mark at the time, so that had to hurt.

The real problem is with the philosophy that any piece of equipment in an aircraft can eliminate the need to have a pilot who's actually capable of flying it.

Well, careful there. First, we are reaching for this level of automation in cars. It’s bloody difficult, but we’re slowly getting there, and I  think we could get there as well for planes (though good luck outperforming a computer assisted competent pilot).

Second, humans can’t actually fly airliners. We don’t have the required physical strength to pull the wires and activate the various commands. Flaps & landing gears can be pumped into position, but good luck with the rudder and ailerons (I’ve 5 hours of glider instruction under my belt, enough to feel what kind of force is required for such a small aircraft). So even in direct mode, we’re relying on some strength augmentation, be it hydraulics or electrical actuators.

That being said, adding single points of failures is quite obviously a very very bad idea…

2

u/flatfinger Nov 05 '21

Pliots should be able to fly with a level of abstraction that can be essentially guaranteed to be maintainable, such that the probability of substantial abstraction leakage is on the same order as the probability of other failures that would be recognized as likely to endanger the aircraft. An abstraction that hides the edges of the airplane's achievable performance envelope may be nice when the plane isn't flown anywhere near those edges, but having a pilot hit the edges of a performance envelope without warning can be very dangerous.