ホーム 開発 ボーイングはコスト削減のために外注プログラマーの賃金を低く抑え、結果的に数十億ドルの損失を被った

ボーイングはコスト削減のために外注プログラマーの賃金を低く抑え、結果的に数十億ドルの損失を被った

2018年10月29日、ボーイング737 MAX 8型機ライオンエア610便が離陸直後に海に墜落し、189人が死亡した。わずか数カ月後の2019年3月10日、同じ機種のエチオピア航空302便が同様の事故を起こし、さらに157人が死亡した。

これは最悪の懸念を裏付けるものでしかありませんでした。航空機の設計そのものに何か問題があったのです。実際、原因が調査されるにつれ、飛行機のソフトウェアの特定の要素である MCAS (操縦特性拡張システム) システムに焦点が当てられるようになりました。

このソフトウェアの使命の 1 つは、差し迫った危険を感知したときに航空機の機首を自動的に上げ下げすることですが、この場合、誤った動作が行われ、災害の一因となっていました。

2回目の事故の後、ボーイング737 MAXは世界中で運航停止となり(このモデルはボーイング社の今後5年間の予測売上高の3分の1を占めた)、同社は最終的に数日で60億ドル以上の市場価値を失った。

しかし、長期的にはその影響はさらに大きく、航空会社は737 MAXの発注をキャンセルし始め、ボーイング社に最大300億ドルの損失をもたらした(同モデルの売上は2022年まで回復しなかった)。何が起こったのか当局に嘘をついたとして25億ドルの罰金

MCAS などの重要なシステム用のソフトウェアは、小さなエラーでも致命的な結果を招く可能性があるため、最高の品質基準を満たしている必要があります。

問題の根本

状況をさらに悪化させるのは、ボーイング社がコストを削減し、737 MAX の生産を加速することを決定したことが判明したことです。同社は、自社製航空機よりも燃料効率の高いエアバス A320neo の発売により、大きなプレッシャーにさらされていました。

そこで、この削減を適用する方法の 1 つは、インドの HCL Technologies などの企業から低賃金で経験の浅いソフトウェア エンジニアをアウトソーシングすることでした。契約エンジニアの中には時給わずか 9 ドル (現在のスペインの専門職間最低賃金を下回る) しか稼いでいない人もいました。これとは対照的に、シニア エンジニアの場合はかなり高額な賃金が支払われます。

一般に、彼らは迅速かつ安価な「修正」を優先していましたが、これが MCAS コードの品質に影響を及ぼしました。元ボーイングのエンジニアは後に、外部委託されたコードは非効率的であり、修正プロセスには数回の反復が必要だったと指摘しました。この適切な監督の欠如と時間的プレッシャーが重なり、最終的には欠陥のあるソフトウェアの実装につながりました。

これらすべてが、設計が不十分でレビューも不十分なソフトウェアの実装につながり、致命的な障害を決定的に引き起こしました。

ソフトウェアの品質不足による高い代償

ボーイング社の事例は、ソフトウェア開発における重要な原則を示しています。つまり、速いものは遅い、安いものは高価です。プロジェクトマネージャーが、経験の浅いエンジニアを雇用したり、安価な会社にアウトソーシングしたりして、開発プロセスをスピードアップしたりコストを削減しようとすると、多くの場合逆効果になります。

クリティカル システム (MCAS など) の開発におけるエラーは、壊滅的な結果をもたらす可能性があります。クリティカル ソフトウェアの開発経験を持つエンジニアは、コードの品質を確保するためにさまざまな手段(テスト駆動開発 (TDD)、モデル シミュレーション、静的手法) を採用することがよくあります。コード分​​析…)。

しかし、エンジニアリングチームがコスト削減と非現実的な納期を守るという絶え間ないプレッシャーの下で働くと、ボーイング社で見られたようなことが起こります。つまり、開発の重要なステップが省略され、テストが省略され、上級エンジニアの監督が無視され、最終的にはソフトウェアが無視されます。最初からより慎重なアプローチをとった場合よりも、バグが多くなり、コストも高くなります。

4つのレッスン

  1. 品質への投資は長期的な節約を意味します。ソフトウェア開発で品質を優先すると、安定性が保証され、将来の修正にかかるコストが節約されます。
  2. 指導と監督を犠牲にしないでください: 若手エンジニアの仕事には、上級エンジニアの指導が必要です。そうしないと、不安定なソフトウェアが作成される危険があります。
  3. 時間、コスト、品質のバランスを維持する: リスクを考慮せずにプロジェクトを急ぐと、ボーイング社で起こったように、より深刻な問題が発生する可能性があります。
  4. 短い締め切りへのプレッシャーが品質に影響を与える: 厳しい締め切りを守るストレスにより、多くの場合エラーが発生します。ソフトウェアでは、品質を優先せずに期限を守ることだけに重点が置かれている場合、「速いのは遅い」と言えます。

経由 | ブルームバーグ

2018年10月29日、ボーイング737 MAX 8型機ライオンエア610便が離陸直後に海に墜落し、189人が死亡した。わずか数カ月後の2019年3月10日、同じ機種のエチオピア航空302便が同様の事故を起こし、さらに157人が死亡した。

これは最悪の懸念を裏付けるものでしかありませんでした。航空機の設計そのものに何か問題があったのです。実際、原因が調査されるにつれ、飛行機のソフトウェアの特定の要素である MCAS (操縦特性拡張システム) システムに焦点が当てられるようになりました。

このソフトウェアの使命の 1 つは、差し迫った危険を感知したときに航空機の機首を自動的に上げ下げすることですが、この場合、誤った動作が行われ、災害の一因となっていました。

2回目の事故の後、ボーイング737 MAXは世界中で運航停止となり(このモデルはボーイング社の今後5年間の予測売上高の3分の1を占めた)、同社は最終的に数日で60億ドル以上の市場価値を失った。

しかし、長期的にはその影響はさらに大きく、航空会社は737 MAXの発注をキャンセルし始め、ボーイング社に最大300億ドルの損失をもたらした(同モデルの売上は2022年まで回復しなかった)。何が起こったのか当局に嘘をついたとして25億ドルの罰金

MCAS などの重要なシステム用のソフトウェアは、小さなエラーでも致命的な結果を招く可能性があるため、最高の品質基準を満たしている必要があります。

問題の根本

状況をさらに悪化させるのは、ボーイング社がコストを削減し、737 MAX の生産を加速することを決定したことが判明したことです。同社は、自社製航空機よりも燃料効率の高いエアバス A320neo の発売により、大きなプレッシャーにさらされていました。

そこで、この削減を適用する方法の 1 つは、インドの HCL Technologies などの企業から低賃金で経験の浅いソフトウェア エンジニアをアウトソーシングすることでした。契約エンジニアの中には時給わずか 9 ドル (現在のスペインの専門職間最低賃金を下回る) しか稼いでいない人もいました。これとは対照的に、シニア エンジニアの場合はかなり高額な賃金が支払われます。

一般に、彼らは迅速かつ安価な「修正」を優先していましたが、これが MCAS コードの品質に影響を及ぼしました。元ボーイングのエンジニアは後に、外部委託されたコードは非効率的であり、修正プロセスには数回の反復が必要だったと指摘しました。この適切な監督の欠如と時間的プレッシャーが重なり、最終的には欠陥のあるソフトウェアの実装につながりました。

これらすべてが、設計が不十分でレビューも不十分なソフトウェアの実装につながり、致命的な障害を決定的に引き起こしました。

ソフトウェアの品質不足による高い代償

ボーイング社の事例は、ソフトウェア開発における重要な原則を示しています。つまり、速いものは遅い、安いものは高価です。プロジェクトマネージャーが、経験の浅いエンジニアを雇用したり、安価な会社にアウトソーシングしたりして、開発プロセスをスピードアップしたりコストを削減しようとすると、多くの場合逆効果になります。

クリティカル システム (MCAS など) の開発におけるエラーは、壊滅的な結果をもたらす可能性があります。クリティカル ソフトウェアの開発経験を持つエンジニアは、コードの品質を確保するためにさまざまな手段(テスト駆動開発 (TDD)、モデル シミュレーション、静的手法) を採用することがよくあります。コード分​​析…)。

しかし、エンジニアリングチームがコスト削減と非現実的な納期を守るという絶え間ないプレッシャーの下で働くと、ボーイング社で見られたようなことが起こります。つまり、開発の重要なステップが省略され、テストが省略され、上級エンジニアの監督が無視され、最終的にはソフトウェアが無視されます。最初からより慎重なアプローチをとった場合よりも、バグが多くなり、コストも高くなります。

4つのレッスン

  1. 品質への投資は長期的な節約を意味します。ソフトウェア開発で品質を優先すると、安定性が保証され、将来の修正にかかるコストが節約されます。
  2. 指導と監督を犠牲にしないでください: 若手エンジニアの仕事には、上級エンジニアの指導が必要です。そうしないと、不安定なソフトウェアが作成される危険があります。
  3. 時間、コスト、品質のバランスを維持する: リスクを考慮せずにプロジェクトを急ぐと、ボーイング社で起こったように、より深刻な問題が発生する可能性があります。
  4. 短い締め切りへのプレッシャーが品質に影響を与える: 厳しい締め切りを守るストレスにより、多くの場合エラーが発生します。ソフトウェアでは、品質を優先せずに期限を守ることだけに重点が置かれている場合、「速いのは遅い」と言えます。

経由 | ブルームバーグ

最新記事一覧