ソフトウェア工学の終わりと最後の方法論者

これは、Communications of the ACMブログのBertrand Meyer教授の記事の翻訳です。
この記事は比較的最近のものです(以前の翻訳と比較して)。



Bertrand Meyerは、ほとんどのスペシャリストがEiffelプログラミング言語の作成者であり、コントラクトアイデアによる設計であるという事実に加えて、名誉医師であり、ITMO部門の責任者でもある、イノポリス大学で教えています。 彼女はロシア語に堪能です。 ;)



ソフトウェアエンジニアリングの主題は、特に人気があったことはありません。 この領域は、「プログラミング方法論」として始まりました。これは、ある種の中年のひげを生やした男のイメージを呼び起こします。 オランダ語、スイスドイツ語、またはオックスフォードのアクセントであなたに電話して、悔い改め、真の道に乗り出します。 どこかで誰かが実際にプログラミングを楽しんでいるかもしれないという強迫観念に圧倒されます(マークトウェインの言い換え)。



しかし、それは古代にありました。 いくつかの例外はありますが、そのうちの1つを取り上げますが、プログラミング方法論の研究を続けている人は、 アジャイルの世界で既にこれを行っています。重要な議論は「I say say ...」というフレーズで始まることが多いです( コンサルタントのページの例: 「私は常にチームに次のように伝えています。「[ユーザー]ストーリーは小さく、1つの反復に収まるようにしたいが、この方法は常に受け入れられるとは限らない」 )。 ダイクストラはかつて直観に訴えていましたが、厳密な概念的証拠でそれを確認しました。



今日のプログラミング方法論がほんの一部に過ぎないソフトウェアエンジニアリングの分野は、深さと幅が驚くほど拡大しています。 ICSEESECのような会議は依然として大勢の人を惹きつけ、雑誌は賑やかで、研究者は彼らの仕事に喜びを感じていますが、私の周りの不満の高まりを感じているのは私だけですか? これがコミュニティ外の誰にとっても興味深いものであるかどうかは不明です。 世界では、ソフトウェアエンジニアリングはITの誰にとっても馴染みのあるものであると考えられていますが、私たちは皆、プログラムを開発するか、プログラムを開発する人々を管理しています。 米国のコンピューターサイエンス部門による2017年の採用調査では、ソフトウェアエンジニアリングが教授職を提供している上位100大学の全職の3%しか占めていないことが示されました! (修士レベルによって制限される大学では、これらの機関が主に将来のソフトウェアエンジニアのトレーニングを担当していることを考えると、この数字は6%であり、重要ではありませんが、印象的でもありません。)学術的観点からキャリアの場合、選択すべき明らかな方向は「人工知能、データ分析、機械学習」であり、これらのトップ100大学で採用された人の23%を獲得しました。



AIの同僚に対しては何もありません。 私はいつも「AI冬」は多すぎると考えていました[1]。彼らには春の権利があります。 これは、今やソフトウェアエンジニアリングが冬になるべきだということですか? これはクレイジーです。 ソフトウェア工学はこれまで以上に重要です。 最近の記事「The Apocalypse of Software」 (ソリューションよりも問題に関する詳細)は、アラームのように聞こえる最新のレビューの1つです。 または、最近の例の1つとして、ロシアの衛星損失について読んでください[2](ソフトウェアテストの複雑さのトピックをクラスに教えるときに次回使用できるジューシーな引用: 「これは、それ自体を明らかにしなかったアルゴリズムの隠れた問題を明らかにしました。 「ソユーズ」-「フリゲート」靭帯の数十年の成功した打ち上げ )。



ちなみに、このような場合は、哲学部門の人々が費やしている空想的な倫理的パズル(私が言っていることを理解している- トロリー問題など)よりもはるかに興味深い、ソフトウェア工学の教授のジレンマと呼ぶものを示しています日:ソフトウェア工学の教授が目覚めた直後に毎朝cnn.comを開いて、ある種のプログラムによって引き起こされた災害が最終的に自分の職業を正当化することを望んでいるのは倫理的ですか? 答えは簡単です-いいえ、これは倫理的ではありません。 それにもかかわらず、通常のソフトウェア開発の状態を観察するとき、時間を待っているすべての災害について考えることは恐ろしいことです(あなたが疑うように、それはすでにそこにあり、ちょうど適切な状況の組み合わせを待っています)。



そのため、はい、プログラミング手法と同様に、ソフトウェアエンジニアリングはこれまで以上に重要です。 (個人的な露出:私は、ひげやオランダ語のアクセントのない現代の方法論者 [3] のまさに例だと思いますが、70年代および80年代の実り多い仕事のトーチを現代のITシーンに持ち込もうとしています。)



しかし、価値があるのは、世界が必要としているものではなく、世界が必要だと考えるものです。 世界がソフトウェアエンジニアリングの大きな必要性を考えていたようには見えません。 ソフトウェアがクラッシュした場合でも、1日か2日でヘッドラインが表示され、その後は何も表示されません。 ラジオ沈黙。 このブログで4回(現在5回)を含め、そのような各イベントの公開監査を必要とする単純なルールの必要性について、私はうんざりして議論しました。 自分自身を引用する飛行機旅行は事故ではなく、事故のためにより安全になります。 これらの警告は耳が聞こえません。 関心の低下のもう1つの兆候として、私を含む多くの人が、ソフトウェアトラブルに関する技術情報の長年にわたるユニークな情報源であるACMリスクフォーラムから、ソフトウェアエンジニアリングに関するほとんどの理解を得ました。 フォーラムは依然として活発であり、ソフトウェアエンジニアリングの問題についても情報を提供していますが、トラフィックの大部分はプライバシーとセキュリティに関するものです(EUで承認された合理的なプライバシールールに対するリバータリアンティラデスへの特別な愛情があります)。 もちろん重要なトピックですが、ソフトウェアの何が問題なのかについての包括的な情報はどこで入手できますか?



注目に値するもう1つの状況は、プログラミング言語の進化です。 言語の作成は再び注目を集めるトピックであり、あらゆる種類のファッショナブルな新しい到着があります。 原動力がエンジニアリングの目標である1つの例(TypeScript)があります。JavaScriptの世界に何らかの規律を導入することにより、Webプログラムをより安全でスケーラブルで管理しやすくすることです。 しかし、これは例外です。 多くの新しい言語の議論は、それらがどれほど巧みであり、どの表現表現が使用されるかということに傾いています。 素晴らしい。 新しいアイデアが必要です。 ソフトウェアエンジニアリングの古くて退屈な問題、正確性、信頼性、拡張性、再利用性を解決することを目的とした場合、さらに説得力があります。



このいずれも、ソフトウェアエンジニアリングの重要性を低下させたり、この分野にキャリアを捧げてきた私たちの情熱を軽減するものではありません。 しかし、コートと帽子をかぶる時が来ました。冬は私たちの前にあります。



注釈



[1] AIは私の最初の愛でした。それは、ポリテクニック/パリ6世のジャン・クロード・サイモンとスタンフォードのジョン・マッカーシーのおかげです。



[2]この情報に注目してくれたニコライ・シロフに感謝します。 テキストはロシア語ですが、ウェブ翻訳機を介してスキップすることができます。これにより、最も重要なものを理解できます。



[3]今回はジェームズノーベルからフレーズを借ります。




All Articles