質問:それで何? 私たちはエンジニアではありませんか?

最近の記事あなたはソフトウェアエンジニアではありません! 英語を話すインターネットとロシア語を話すインターネットの両方で、なんとか音を立てることができました。 プログラマーと呼ばれない人は誰でも:庭師、科学者、運転手、農民。 これらすべての隠allについて説明しましょう。それらはすべて真実ですか? しかし、これは未定です...









ソフトウェア開発について比meta的に考える




数年前、 ソフトウェア工学化学技術がどのよう比較されたか聞いた。 私の意見では、この比較の理由は、ソフトウェア開発はほんの数世紀前に現れた化学技術のような非常に若い分野だからです。



メタファーは私たちの業界で非常に広く使用されていました。第2章「ソフトウェア開発のより良い理解のためのメタファー」スティーブマッコネルの著書「 Perfect Code 」では、最も多様なメタファーについて詳しく説明しています。 この章からの引用は次のとおりです。



ソフトウェア開発を説明する多くの比phorは、誰をも混乱させるでしょう。 David Griceは、ソフトウェアの作成は科学であると主張しています(Gries、1981)。 ドナルド・クヌースはこれを芸術と見なしている(クヌース、998)。 ワットハンフリーは、これはプロセスだと言います(ハンフリー、1989年)。 F.J. PlodgerとKent Beckは、ソフトウェア開発は運転に似ていると主張しますが、ほぼ反対の結論に達します(Plauger、1993、Beck、2000)。 Alistair Cockburnは、ソフトウェア開発とゲーム(Cockburn、2002)、Eric Raymond-バザー(Raymond、2000)、Andy Hunt(Andy Hunt)およびDave Thomas-庭師のPaul Heckel-映画「Snow White」の撮影と比較します7人の小人」(Heckel、1994)。 フレッド・ブルックスは、農業、狩猟の狼男、恐竜がタールピットに立ち往生していることに言及しています(Brooks、1995)。 最高の比phorは何ですか?




すべてに加えて、Chris Yeatsonは「 あなたはソフトウェアエンジニアではありません。 」、ガーデニングとの類似性を引き出し、次のステートメントも作成します。

Facebook、Flickr、Twitterと同じ苗木を植えることはできず、庭師の質や組織の気候に関係なく、それらが根付くことを期待することはできません。


この比phorのアイデアは、各企業が独自の気候と土壌を備えた個別のエコシステムのようなものであるということですが、この比phorは土木技術者にどのように適用できるかです。 これらの構造にはそれぞれ独自の「生態系」があるため、ダム、ダム、橋、または高速道路を正常に構築できないことがわかりました。 化学工学と同様に、次の製品には独自の「生態系」があります。発酵によるペニシリンの生産、 硫酸の生産、油精製、または電気分解によるボーキサイトからのアルミニウムの抽出? 何にでも合う多くの異なる比differentを思いつくことができるようです。 率直に言って、私はガーデニングと農業の比phorのファンではありません。



別の比phorは、Chip Camdenによる最近の投稿「 プログラマーがプログラミングの技術を学ぶべき理由 」に登場しました。

溝に座っている平均的なプログラマーのための計算理論の議論は、銃撃戦が進行中のソルトペターの化学的性質を議論するようなものです:すべては非常に正確で賢明なことができますが、それは彼に直面する問題に直接関連していません。


私は教訓的でも特に機知に富みたくはありませんが、チップが黒粉の一部であるメタファーのためにソルトペターを選んだことは特に皮肉なようです。 1800年代後半に、硝酸塩の化学的性質に基づいた黒色火薬の問題を理解したことが、場合によっては戦いの結果を決定しました。 黒い粉は濃い白い煙を形成し、無煙粉のある戦闘では気付かないかもしれませんが、黒い粉を使用すると、あなたの位置を裏切る大きな目立つ煙の信号を作成しました。 新しい技術は、あなたの命を救うという利点をもたらしました。 そして、黒い粉からの煙は別の問題を引き起こしました。長時間発射すると、大量の煙が蓄積し、射撃手は標的を見ることができなくなりました。 この現象には「霧の霧」という名前が付けられました。











この化学的比metaがどれほど適切かはわかりませんが、興味深い類似点はまだ追跡できます。 化学工業の夜明けには、18世紀半ばに発明された大きな工業用鉛チャンバーが硫酸の抽出に使用されました。 このプロセスはよく研究されておらず、チリから持ち込まれた高価な硝酸塩が必要であり、輸送中に部分的に酸化され蒸発するという点で効果がありませんでした。 わずか100年後、科学者は生産効率を高めるために硝酸塩を処理する方法を見つけました。 その後、19世紀の終わりに、専門分野としての化学技術が大学のプログラムにしっかりと定着し、別の協会が設立されました。



それ以来、熱力学と同様に、化学と化学量論の高度な科学は、ほぼ同時にその開発の前で最も重要なステップを踏んでいます。 私は物事を少し簡略化しますが、結局のところ、この時点で、試行錯誤によって発見されデバッグされたほとんど理解されていないプロセスが、科学と数学の法則を適用することにより、より研究され、制御され、経験的に改善されました。



次の類似点は再利用可能なプロセスにあります 。つまり、新しい硫酸プラントを建設するときは、毎回ゼロから発明する必要はありません。 そして、どの分野においても、熱力学やコンピューターサイエンスなど、カオスとあいまいさの要因があります。 社会学の観点から見ると、今日私が見ているのはこのキーボードであり、目に見えるほとんどすべてが化学産業の製品だからです。 しかし、これらの化学物質はどのような負の結果をもたらす可能性があり、化学産業のこれらの問題はソフトウェア開発の問題に関連する可能性がありますか?



しかし、今、化学産業、橋の建設、ソフトウェアの開発にはかなり大きな違いがあります。 建設でよくあるのは、人々が一緒になって、一人ではできない何かを作る必要があるということです。 ソフトウェア開発と化学産業の類似点は、特定の製品をすでに作成して発売している場合、製品の動作中にそれを維持し、必要な改善を行う必要があることです。場合によっては、ラインから削除するか、並行して新しい製品を作成します。古いバージョンはまだ生産中です。 同様に、化学、化学量論、熱力学が化学産業に関連しているように、コンピューターサイエンスと数学はソフトウェア開発と密接に関連する科学と見なすことができます。











Donald Knutに同意すると、ソフトウェアの開発には創造性の非常に重要な要素があり、橋の建設のように、人々のグループを結集して美しいものを作成できると思います。 ソフトウェア開発との類似性としては、橋梁の建設が考えられますが、それでも建設プロセスの背後にあるすべてのプロセスを明確に理解していません



ここでの質問は、ソフトウェア開発を研究し、他の分野よりも有効性に劣らない分野を作成できるかどうかです。 化学生産の比phorを使用する場合、科学自体とそのプロセスでの実装の理解への道のどこにいますか? このような比較に基づいて、19世紀の初めか終わりのどこかにいるかもしれませんが、ここでの時間スケールは線形であり、この開発スケールは指数のようになる可能性が非常に高いと思います。 そして、おそらくソフトウェア開発は別のエンティティであり、私たちの比phorは私たちの思考を抑制し、現実の客観的な視点を妨げますか?



ソフトウェア開発業界は、世界中のソフトウェア開発に携わっている膨大な数の人々を考えると、私たちに知られている他の技術業界とは実質的に異なります。公式の学位に従って。



回答:私たちは開発者です!






Dmitry_Zhariyより

このテキストを英語で読んでください!

スキルと優しさを向上させるために、この記事のテキストを英語で読んでみてください。

次のリンクは、この記事の並行(バイリンガル、混合、英語、ロシア語)バージョンにつながります。 英語のテキストを読み、英語のテキストの意味が突然失われた場合は、以下のロシア語の翻訳を使用してください。



[EN / RU] Q:私たちはエンジニアではありませんか?



All Articles