Cargo Cult Software Engineering

南の海には、人々の貨物崇拝があります。 戦争中、彼らは良い材料の多くを持つ飛行機を見て、彼らは今同じことが起こることを望んでいます。 そこで彼らは滑走路のようなものを作り、滑走路の両側に火をつけ、男が座るための木製の小屋を作り、ヘッドフォンのために頭の上に二つの木製の部分とアンテナのように突き出た竹の棒を作りました。彼はコントローラです。そして彼らは飛行機が着陸するのを待ちます。 彼らはすべての権利をやっています。 フォームは完璧です。 それはそれが前に見たように正確に見えます。 しかし、それは動作しません。 飛行機の着陸はありません。 だから私はこれらのものを貨物カルト科学と呼んでいます、彼らはすべての明白な教訓と科学的調査の形態に従っているので、しかし、彼らは本質的な何かを欠いています、なぜなら飛行機は着陸しないからです。
-Richard Feynman

“プロセス指向”と”コミットメント指向”の二つの異なる組織開発スタイルのコントラストを描くことは有用であると思います。 プロセス指向開発は、熟練した計画、慎重に定義されたプロセスの使用、利用可能な時間の効率的な使用、およびソフトウェアエンジニアリングベストプ このスタイルの開発は、それを使用する組織が絶えず改善しているために成功します。 その初期の試みが効果がない場合でも、プロセスへの着実な注意は、各連続した試みが以前の試みよりもうまくいくことを意味します。

コミットメント指向の開発は、”ヒーロー指向の開発”と”個人のエンパワーメント”を含むいくつかの名前で行きます。”コミットメント指向の組織は、可能な限り最高の人々を雇用し、プロジェクトへの完全なコミットメントを求め、ほぼ完全な自律性を与え、極端な程度に動機付け、プロジェクトが終了するまで週に60、80、または100時間働くことを見ていることを特徴としています。 責任指向の開発は途方もない動機上の能力から潜在的能力を得る—調査の後の調査は個々の刺激が生産性への最も大きい単一の貢献者はるかにであ 開発者は、彼らが取り組んでいるプロジェクトに自主的な、個人的なコミットメントを行い、彼らはしばしば彼らのプロジェクトを成功させるた

いずれかの開発スタイルを使用すると、高品質のソフトウェアを経済的かつ迅速に生産することができます。 しかし、両方の開発スタイルは、ほぼ同様に動作しない病理学的な類似点を持っており、それは本物の記事と区別することは困難な場合があります。

プロセス詐欺組織は、プロセスのためにプロセスへの奴隷の献身にその慣行を基づかせています。 これらの組織は、NASAのSoftware Engineering LaboratoryやIBMの旧連邦システム部門などのプロセス指向の組織を見ています。 彼らはそれらの組織が文書の多くを発生させ、頻繁な会合を握ることを観察する。 彼らは、同等の数の文書を生成し、同等の数の会議を開催すれば、同様に成功すると結論づけています。 彼らがより多くの文書を生成し、より多くの会議を開催すれば、彼らはさらに成功するでしょう! しかし、彼らは文書と会議が成功の責任を負わないことを理解していません; それらはいくつかの特定の効果的なプロセスの副作用です。 彼らは物質の上にソフトウェアプロセスの形を置くので、私たちはこれらの組織を官僚的と呼びます。 プロセスの誤用は生産性を傷つけるdemotivatingである。 そして、彼らはのために働くことは非常に楽しいではありません。

コミットメント詐欺組織は、主に人々が長時間働くように動機づけることに焦点を当てています。 これらの組織は、Microsoftのような成功した企業を見て、彼らは非常に少ないドキュメントを生成することを観察し、従業員にストックオプ; そして、残業の山を動作するようにそれらを必要とします。 彼らは、彼らは、あまりにも、ドキュメントを最小限に抑え、ストックオプションを提供し、広範な残業を必要とする場合、彼らは成功すると結論付け ドキュメントが少なく、残業が多いほど、より良い! しかし、これらの組織は、Microsoftや他の成功したコミットメント指向の企業が残業を必要としないという事実を欠場します。 彼らはソフトウェアを作成するのが大好きな人を雇います。 彼らは、彼らと同じくらいソフトウェアを作成するのが大好きな他の人々とこれらの人々をチーム化します。 彼らは、ソフトウェアを作成するための豪華な組織的なサポートと報酬を提供します。 そして、彼らはそれらを緩める。 当然の結果は、ソフトウェア開発者や管理者が自発的に長時間働くことを選択することです。 詐欺組織は、効果(長時間)と原因(高い動機)を混同します。 彼らはハードではなく、スマートな作業を強調し、彼らは混沌と効果がない傾向があるので、私たちは詐欺師の組織のスウェットショップを呼び出します。 彼らはどちらかのために働くことは非常に楽しいではありません。

Cargo Cult Software Engineering

一見すると、これら二つの種類の詐欺組織は正確に反対のように見えます。 一つは信じられないほど官僚的で、もう一つは信じられないほど混沌としています。 しかし、一つの重要な類似性は、実際には表面的な違いよりも重要です。 どちらも非常に効果的ではなく、その理由は、プロジェクトが本当に成功または失敗するものを理解していないからです。 彼らは文体的に似ている効果的な組織のように見えるの動きを通過します。 しかし、実践がなぜ機能するのかを実際に理解することなく、彼らは本質的に彼らの耳に竹の部分を貼り付け、彼らのプロジェクトが安全に着陸する 彼らのプロジェクトの多くは、ソフトウェアプロジェクトが機能するものを理解していないのと同様に、貨物カルトソフトウェア工学の二つの異な

カーゴカルトソフトウェアエンジニアリングは、識別が容易です。 Cargo cultソフトウェアエンジニアは、「私たちは過去にこのようにしてきました」、または「私たちの会社の基準では、このようにする必要があります」と言って、その実践を正当化しています。 彼らは、プロセス指向またはコミットメント指向の開発のいずれかに関与するトレードオフを認識することを拒否します。 両方に強さおよび弱さがある。 より効果的で新しいプラクティスを提示すると、cargo cultソフトウェアエンジニアは、使い慣れた快適で必ずしも効果的ではない作業習慣の木製の小屋に滞在することを好みます。 “何度も何度も同じことをして、異なる結果を期待することは狂気の兆候です”と古い諺にもあります。 それはまた、貨物カルトのソフトウェア工学の兆候です。

本当の議論

この雑誌や他の多くの出版物では、プロセスが良いか、個人のエンパワーメント(言い換えれば、コミットメント指向の開発)が良いかどうか これは偽の二分法です。 プロセスは良いですし、個々のエンパワーメントもそうです。 二つは並んで存在することができます。 プロセス指向の組織は特定のプロジェクトの極度な責任を頼むことができる。 コミットメント指向の組織は、ソフトウェア工学の実践を巧みに使用することができます。

これら二つのアプローチの違いは、本当にスタイルと個性の違いに帰着します。 私はそれぞれのスタイルのいくつかのプロジェクトに取り組んできました,そして、各スタイルについての異なるものが好きでした. 一部の開発者は、プロセス指向の企業でより一般的である8から5のスケジュールで念入りに作業を楽しんでいます。 他の開発者は、プロジェクトへの24×7のコミットメントを作ることに付属して焦点と興奮をお楽しみく コミットメント指向のプロジェクトは、平均してよりエキサイティングですが、プロセス指向のプロジェクトは、明確に定義され、感動的な使命を持っているときと同じようにエキサイティングにすることができます。 プロセス指向の組織は、コミットメント指向の組織よりも頻繁に彼らの経路的な類似に縮退するように見えるが、それは巧みに計画され、実行され

プロセス指向とコミットメント指向の両方のプロジェクトが病理学的な類似性を持っているという事実は、議論を混乱させている。 それぞれのスタイルで実施されたいくつかのプロジェクトは成功し、いくつかは失敗します。 それはプロセス支持者がプロセス成功および責任の失敗を指し、プロセスが成功へキーであることを要求することを可能にする。 それは責任の支持者が同じ事をすることを可能にする。

プロセスとコミットメントを議論している間に道端で落ちた問題は非常に露骨であり、エドガー-アレン-ポーのpurloined手紙のように、単に私たちがそれを見落 私達は責任対プロセスを議論するべきではない;私達は能力対無能を議論するべきである。 本当の違いは、どのスタイルが選択されているのではなく、どのような教育、訓練、理解がプロジェクトに負担されるのかです。 プロセスとコミットメントを議論するのではなく、開発者とマネージャーの能力の平均レベルを上げる方法を模索する必要があります。 それは私達が選ぶ開発様式にもかかわらず成功の私達のチャンスを改善する。

コメントを残す

メールアドレスが公開されることはありません。