Outsourcing Cost Boeing Billions (2019)
medium.com
medium.com
Anyway this is why professional engineering were created, to protect the public against those exact bad practices. If we were serious about fixing the issue, we have the solution.
On the one hand, there should probably be some sort of certification or liability if you're writing code for NASA or Boeing or Airbus or maybe the New York Stock Exchange or what not, where a mistake could cost billions of dollars and put lives at risk.
At the same time though, there's also stuff like the video games industry, people developing programs for fun, blogs and fan sites and things that are free and mostly static, video game mods and hacks and about 99% of small business and organisation websites where frankly it doesn't matter that much how well they're coded or how stable they are or what not.
If my bank screws up and gives away all my money, that's a problem. If my copy of Tears of the Kingdom breaks, that's not a big deal (and might even be a benefit).
If there's any sort of professionalism or certification or requirement, it should probably be limited to industries and fields where the consequences of screwing up are life changing for a high number of people.
The substantial change that might have averted the catastrophe is having qualified engineering oversight integrated into the MCAS project management structure.
MCAS is a flight control application; its defining discipline is control theory. Thus the hypothetical engineer who could have averted the catastrophe would have had to be a controls, rather than a SW person.
I have read much about MCAS, but no detailed narrative ever mentioned a SW bug, which implies that MCAS SW has apparently functioned according to given specifications.
Thus, while $9/hr SW engineers is a choice correlated with an inadequate safety culture, I fail to see the casual link between that and the tragic outcomes; I cannot condone asserting such causation.
https://spectrum.ieee.org/how-the-boeing-737-max-disaster-lo...
And the fact that they wanted to spend nothing on the software and then rush to production (this was exposed in this article) is some cluster-b antisocial personality disorder shit...The bean counters had the stock churning at all time highs and they were going to do things their own way (trading at 450 per share shortly before these tragedies).
So it's HIGHLY unlikely that Boeings software for the 737 Max would have been operating at spec given the use-case (overcoming hardware problems with software in a way that's never been done before). MCAS was not designed to take into account that external sesors could be out of wack (which happens all the time). MCAS took liberties and had opinions that ran counter to the norms of aviation. And this is the hallmark of poor software engineers that have no domain expertise and no ability to push back against anti-social personalities masquerading as managers.
" When the two computers disagree, the solution for the humans in the cockpit is to look across the control panel to see what the other instruments are saying and then sort it out. In the Boeing system, the flight management computer does not “look across” at the other instruments. It believes only the instruments on its side. It doesn’t go old-school. It’s modern. It’s software.
This means that if a particular angle-of-attack sensor goes haywire—which happens all the time in a machine that alternates from one extreme environment to another, vibrating and shaking all the way—the flight management computer just believes it. "
If you want to have the title of SR. Engineer and lives are in the palm of your hand you better be prepared to be the bad guy and take on management when they're being driven by motivations that run counter towards the quality and the usecases for your code. VW had a similar culture and those "senior software engineers" went to prison, not the managers (remember that).
Higher torque generated because of more off-center thrusters surely raised eyebrows in the stall risk mitigation team.
In the end, that's 3 teams where management made the topic being fixed by another team. That's systemic. And with a single confounder: cost measures being prioritized over safety.
With the current QA problems, it cannot be made more clear that that single culture element is the root cause at Boeing. And ethics dictate that no more experiments be made, and the top 200 of management be forcefully removed.
The engineers determined that they could use the MCAS to fix this problem too, but the amount of control input had to be about 4x as much for this situation (2.5 degrees vs. 0.6 degrees of stabilizer movement). They also made it so MCAS could activate multiple times. The original safety analysis was based on the 0.6 degrees for one shot, which wouldn't have put the plane in a situation where the pilots couldn't overpower it, like what happened in the two crashes, so the system was put in a lower safety category that didn't require the same redundancy. Dominic Gates wrote about this in [1]
Given that the plane was already built and in flight test, the production lines were ready to start, and there were massive contract penalties for either late delivery, or additional pilot training, the pressure to hack something in and ship must have been enormous.
The only place to make a change and still hit the deadline was in the software, and unfortunately even the software was limited by Boeing's redundancy strategy of having two completely independent sets of flight computers and sensors. Having one computer look at sensors from both the left and right sides compromises the concept of having them be completely independent, and so it wasn't done, even though ultimately that was what was used as the fix.
[1] https://www.seattletimes.com/business/boeing-aerospace/faile...
source: https://insights.sei.cmu.edu/blog/a-tool-to-address-cybersec...
Ultimately, the MCAS relied on a single sensor, one which was known to fail, and only displayed the redundant sensor data - get this - if they bought the additional option to show when the sensor failed.
> However, whereas MCAS was activated automatically, without pilot action, the cockpit crew would have to notice and act on an AOA DISAGREE alert. Further, the AOA indicator and disagree alert were not standard equipment on the 737 MAX, although the AOA indicator had been on earlier models. Boeing offered them as “add ons” at additional cost
Without that "add on" you'd never know the MCAS was acting on faulty data. And all the while management worked overtime to mislead regulators on the potential impact of MCAS to avoid additional scrutiny and training requirements. So nobody knew the safety of their aircraft depended on that non-standard equipment package.
Yeah - total business and design mismanagement driven by greed.
---
https://mitsloan.mit.edu/teaching-resources-library/boeings-...
> When I say I changed the culture of Boeing, that was the intent, so it’s run like a business rather than a great engineering firm. It is a great engineering firm, but people invest in a company because they want to make money. --Harry Stonecipher, 2004
I think that outsourcing was a symptom of this disease. Not MBA cancer, not poor software, not anything other than a deliberate cultural shift which led to all those other things.
> I think that outsourcing was a symptom of this disease. Not MBA cancer, not poor software, not anything other than a deliberate cultural shift which led to all those other things.
That is the MBA cancer. Focusing on shareholder value instead of making a great product.
I tend to place more blame on a deliberate reshaping by the top individual, rather than some accidental metastasizing of the problem. I'm straining the analogy.
> MBAs only hire MBAs
Maybe the CEO in such cases often is an MBA and you are a bit talking about the same thing, just from different perspectives? (Looking at the one person, vs the people, at the top?)
https://fortune.com/education/articles/how-valuable-is-an-mb...
> MBA grads made up nearly 40% of C-suite executives on the 2022 Fortune 1000 list
Wow so many (I think), but maybe they aren't CEOs.
Here's 43% from Reddit: https://www.reddit.com/r/MBA/comments/u26w7r/from_mba_to_for...
> I have compiled the following for the 2021 Fortune 500 US companies (the last global one I've seen is from FT in 2015 https://ig.ft.com/sites/mba-to-ceo/):
> 43% of CEOs have an MBA
Anyway,what happens if the CEO is an engineer, and everyone reporting to him/her is an MBA :-)
And many of my former bosses.
Maybe that's a symptom of the same disease ("without mba you cannot rule"), but I think it doesn't necessarily mean an MBA holder is a bad candidate for leadership.
Interesting! (Imagine the opposite: Getting an engineering degree, to become a Fortune 500 CEO when already having an MBA. In aviation for example)
> doesn't necessarily mean an MBA holder is a bad candidate for leadership
Yeah, and that many MBAs might rather indicate that there are many who are really good at it? ... Although not the Boing minded ones apparently
https://www.industryweek.com/supply-chain/article/22027840/b...
Excerpts from the the above article:
>Boeing said the company did not rely on engineers from HCL and Cyient for the Maneuvering Characteristics Augmentation System, which has been linked to the Lion Air crash last October and the Ethiopian Airlines disaster in March. The Chicago-based planemaker also said it didn’t rely on either firm for another software issue disclosed after the crashes: a cockpit warning light that wasn’t working for most buyers.
>In a statement, HCL said it “has a strong and long-standing business relationship with The Boeing Company, and we take pride in the work we do for all our customers. However, HCL does not comment on specific work we do for our customers. HCL is not associated with any ongoing issues with 737 Max.”
>Based on resumes posted on social media, HCL engineers helped develop and test the Max’s flight-display software, while employees from another Indian company, Cyient Ltd., handled software for flight-test equipment.
It's a super fun read. And you're absolutely right: Boeing caused the problem itself. Shifting blame to poor software "accidentally" produced by 9/hr engineers is not legitimate.
There was a bug. But it was only a problem because all the other redundancies and safeguards were shortcut and regulators and pilots were mislead about the severity of MCAS system's "corrections" and not given proper data to know when to override it.
An experienced professional software engineer on an industry standard salary, having been provided with nonsensical or missing requirements, should know when to impute and when to raise an exception. I'm not at all confident that a $9/hr engineer will do that.
So purely on the power differential, a $9 engineer wouldn't make a stink. Says nothing about their work ethic or ability to see disaster (at least upon integrating code, probably not literal disaster) coming.
And also, how would they have known they're just using one AOA input, and a component above them isn't already delivering a value that's known good - these are not the kind of engineers that'd know that.
You don't hire somebody for a price like that because you intend to listen to their feedback and treat them like a valued member of the team. You hire somebody for a price like that because your LLM hasn't quite reached the level you want yet...or frankly costs more to run.
You outsource your software development to some country with quite low average monthly salary. Say some country in eastern Europe, where average salary is $500 / month.
Then you only hire from the top CS programs in the country and pay them, say, 3 times the national average - so $1500 / month. Given 150 work hours in a month, that comes out to $10/hour gross pay.
You get good engineers, pay less, and they earn more than they'd get from pretty much any domestic employer.
If the average software dev in the US makes, dunno, $70k / year, then that would be the equivalent of getting hired on a $210k / salary.
Of course, it's not all smooth sailing - but I think the important part here is to keep in mind that pay is relative. What could be a pitiful salary in rich western countries, could be a very good salary other places.
I did an electricity project with developers from the Ukraine. We spent a week being confused because the Ukrainiens expected the electricity bill to be calculated based on the size of your house and how many animals you have. The concept of a domestic electricity meter was completely foreign to them.
I also worked with a Ukrainian graphic designer who had no understanding of copyright law.
US devs are highly overestimating the value of being American. They don't understand that a Ukrainian dev working at 80% performance because of cross-cultural issues for 50% salary is still a good deal. And when the company becomes international then the whole argument becomes reversed because the US devs become a minority and it's them who fails to adjust to others. Sure, it's difficult to hire a good dev from abroad, but when this gets done right, it saves a ton of money. For example, an American company can buy a smaller, healthy foreign company, and with the company, all the knowledge of operating in the local job market.
There are tons of posts on Reddit "I'm American and I graduated in Computer Science and I was promised $200k jobs but I can't get hired at all" from people who fail to understand basic economics of big companies.
One of my professors used to work at RadioShack and they had large teams in India. The software quality was good, but the interoperability was really, really bad. Not surprising since communication was awful due to time zone differences.
She, and her team in America, spent a huge amount of time normalizing their output to the American output. And you have to go in that direction because the company is in America.
Outsourcing makes the hard part harder.
If you completely misunderstood what your manager wanted, would your productivity be 80% or close to 0?
What are you talking about? Private apartments and houses in Ukraine had domestic electricity meters installed since soviet times.
This is 10-15 years out of date. And even then it was hardly ever as straightforward as that. And only ever applied to junior and maybe mid level developers or those who couldn’t effectively communicate in English. High skilled one were significantly more mobile and were basically competing with a much more global pool of developers. They could relatively easily move (if not to the US then at least Western Europe so your potential savings were usually limited to the difference in CoL + some premium).
This led to pretty high inequality based on skill/experience e.g. to top CS graduates could expect their income to increase by 3x if not more over the next 5 years after graduation.
A) The institutions in the country make it possible to identify good from bad local candidates.
B) There are enough experienced people in the region to have a healthy functional workplace.
C) The outcome is at least proportional to the cost.
In my experience none of these are true.
Countries like Bulgaria and Hungary are both in the EU allowing workers to travel to Germany, France, etc. to get jobs. They aren't trapped behind immigration laws that don't allow them to move to places with higher salaries.
Even if you look at India, $10/hour wouldn't get you the best engineers. Mediocre engineers are earning that after a few years experience. Maybe you'll say that you'll pay triple that and that $30/hour is still cheap. Sure, $54,000/year is a cheap software engineer, but I think the best engineers have better options than being seen as a cost savings for some American company.
Frankly, it isn't necessarily about the money itself. It's about the attitude. If a company sees software as a cost center to be optimized/cut, their software will be crappy. If you're just focused on cutting costs, it's not just about how much you're paying engineers per hour. It's also about whether you let your engineers work on something that makes the product better, but might not be strictly necessary. For example, maybe there's a process the customer has to go through and many do it wrong because it's confusing. Will you let them spend the time to re-write it? Or will you say that it works so you don't want to spend money on that and customers will put up with it?
In theory, you could have more engineers and allow them to do more if they were cheaper. I've found that (in practice) when companies are looking to optimize salaries like that, they're also optimizing the time spent on things as well. They don't see their software as a strategic advantage to be invested in. They just see a cost center to be cut and that won't just be salaries, but also hours worked.
It also creates a crappy atmosphere where workers often don't care about getting things done beyond what they need to keep their job and not get yelled at. You're looking to work the system for yourself and minimize costs and they'll get a similar attitude where they try to work the system and do as little work for you as possible.
I'm not saying that you couldn't create a great company in Eastern Europe or India - they exist. But I think if your attitude is one of outsourcing a cost center, you won't get what you're looking for. Pay is relative, but it's higher than you think and you don't want to fall into the trap of just thinking that software is a cost center.
Plus, you don't even have to go that far to get cheaper engineers. You can pay half of what you pay Americans in France or Germany.
Any decent engineer worth their salt gets a visa to work in the said rich countries where they can earn 10x more. They don't stay in the local lower paying roles as they can't compete on salary.
You get what you pay for.
I'm guessing the cost of the outsourcing is also part of this compromise to the senators' demands.
A trajectory question: our government also hands out billions to NGOs and contractors to "solve" social problems, yet making such problems worse. For instance, multiple articles reported that how so many organizations charged ridiculous amount of money to SF government to help the homeless, yet the city's situation only got worse over the years. Wouldn't this be a worrisome sign of a society. An empire didn't fall because of external enemies but because the empire had so many entangled interests and the society simply declined and then collapsed.
A tech worker in India supposedly makes 32,000 rupees per month. So that's 200 rupees per hour or $2.38USD.
It's relative to the region and its economy. I'd love to have my Canadian wage paid in Kuwaiti Dinars one for one.
The largest company in it's industry that uses many mission critical applications systems every second of the day, is in the process of offshoring all its software development to you know where.
When a company brings in an Indian CIO, it's only a matter of time.
You can get bad engineers anywhere, including in the US. It's up to management to enforce a sane engineering process, although being the parasites that they are, they never will.
I may not be $9 / hour but I still wouldn't trust myself to write aviation software. Nobody should have that kind of hubris, yet there's developers like that in all income tiers.
Trust no code, least of all your own.
Everything needs to go through a risk assessment phase.
The fact that they were determining that one AOA sensor would be enough for such a critical system is what needs to be examined.
And people involved with this decision need to be put into jail.
And when you work with an offshore team, quite often as contractors, you have the issue that you don't get top quality.
The in-between company will do its very best to hire low to maximize profit.
The good quality developers work either on local grown software, or leave the country for better opportunity.
And you are now working with a group of developers whose livelihood depends on saying 'yes' or not saying 'no.
And because of this you will not know whether there is an issue in the requirements until x time later and the plane goes down.
In the business world, that corresponds to "we can't afford to hire inexpensive, unqualified labor".
It’s a bit like blaming low level construction workers for a bridge that collapsed (assuming they didn’t sabotage anything on purpose).
$396 million is all that would cost. That is a fraction of the damage to shareholder value.
I currently have very limited options if I want to invest my money into an (engineering) quality-first company.
sure, but how is that relevant? it's not like the previous CEO of the company was sacked by shareholders because they demanded a 0.05% increase in net revenue.
Dumb capitalism only?
> Very limited options if I want to invest my money into an (engineering) quality-first company.
NVIDIA, Porsche, Tektronix...
More slightly-ethical, hopefully sustainable capitalism. I liked my products pre-enshittification, when they lasted 20 years and were built like tanks.
Hark on them all you want, but I‘ve been using my 2016 MacBook for 8 years without problems.
Ah yes, we all love that famous tenet of ‘smart capitalism’: “the more you share the more your bowl will be plentiful”.
No. It does not depend at all on cost of living. It depends upon supply and demand, like anything else.
Unfortunately, if the article in the OP is true, these programmers were negatively productive :-( so it can't be as simple as just how much value a programmer produces. It's more complex than that.
Honestly, I've never gotten any good answer from anybody about what wages "should" be, for any job, programming or not. In reality, what happens most of the time is wages are simply determined by supply and demand, like anything else. There are plenty of people working for $9 an hour in very expensive cities in America--so whatever it depends on, it most certainly does not depend on standard of living.
Are those claims true? Who knows. I'm sure that whoever hired those $9-an-hour programmers thought that if they could manage those programmers soooo well that they could get them to program as well as $100 an hour programmers.
YMMV, but in my experience, you can't manage programmers to be better programmers. No matter how much check-in approval bureaucracy, or how much QA, you will not get better programs. If you want better programs, you need to hire better programmers.
I saw your other comments, so I would add that while it is a decent salary in India. That doesn't mean you can expect the same quality as you would expect from someone earning twice the median in US. Because standard of living never really scales like you want it to.
200 dollars in India still cannot buy you a cheap computer, while 1000 dollars (the equivalent in US) can definitely buy you a solid computer.
So, yeah, it is shameful for this kind of work, because it is skilled work, and skilled workers wages (because they can essentially move all around the globe) are not tied to cost of living.
In other news; dog fights cat, more on that bizarre story after the break.