ソフトウェア開発の姿勢

2004 年 3 月 8 日

ソフトウェア開発における数多くの議論は、発言者が ディレクティングアティチュード を持っているのか、イネイブリングアティチュード を持っているのか、という前提に基づいています。これらの異なる姿勢は、言語、デザイン、ツール、プロセス、その他多くの要素に関する選択に影響します。

この二分法の例を以下に示します。

  • ジョエル・スポルスキーが 例外 について投稿したことで、しばらく前に議論が勃発しました。彼は、例外は誤用される可能性があり、混乱を招くコードにつながるため、気に入っていませんでした(ディレクティング)。ビル・カプートは、指摘したとおり、例外が適切に使用されると、生活がはるかに楽になります(イネイブリング)。
  • 静的/動的型の議論の一部では、これらのポイントについて議論されています。静的型付けを支持する一部の議論では、人々が特定の種類の間違いを犯すことをどのように防ぐかについて語っていますが(ディレクティング)、動的型付けでは、静的型付けが役立つ慣用句を制限する方法を指摘しています(イネイブリング)。
  • アジャイルプロセスは PeopleOriented(イネイブリング)ですが、計画主導型手法は、質の悪いチームであっても許容できる仕事ができるようにすることを目指しています(ディレクティング)。

これらは固定された姿勢ではありません。場合によってはディレクティングで、他の場合はイネイブリングであることがよくあります。しかし、ここには深い流れがあり、多くは性格の問題であり、ソフトウェアのやり方についての議論の根本にあります。(明らかなように、私はイネイブリングの範疇に大きく属しています。)

開発者が行うことに対するあらゆる制限はすべてディレクティングアティチュードを意味すると考えるかもしれませんが、それほど単純ではありません。たとえば、メモリ管理を考えてみましょう。これはディレクティング機能と考えることができます。つまり、プログラマーはメモリを適切に管理できるとは信頼できないため、メモリを割り当てる機能を取り上げるというものです。しかし、私はメモリ管理をイネイブリングテクノロジーと見なしています。これは私が心配したくないものを取り除き、私が本当に気にすることに集中できるようにしてくれるのです。スティーブは、この考えを見事に問題と困難の違いに結び付けました

2014 年 3 月 11 日に再掲載