読者です 読者をやめる 読者になる 読者になる

大きいことはいいこと、ではない:原子力政策と地球温暖化対策に共通する大きすぎるリスク

古典的なソフトウェア開発手法:ウォーターフォール・モデルとその限界

古典的なソフトウェアの開発の進め方に、「ウォーターフォール」モデルというものがある。ウォーターフォールは、文字通り「滝」という意味である。ソフトウェア開発を「要件定義」「概要設計」「詳細設計」「プログラミング」「テスト」といった段階に区分し、滝が流れ落ちるように後戻りしないように進めていく方式である。

ソフトウェアでどのような機能を実現するか「要件定義」の段階でしっかり決めて、その段階のアウトプットに基いて「概要設計」をする。そうすることで、後工程になってから、「あ、そういえば、こういう機能が欲しい」ということになって、開発が混乱することを避けよう、という発想に基づいている。

実際には、あとになって変更したくなることは多いので、別途「変更管理」というプロセスを用意しておいて、どのような変更を認めるのか、意思決定と混乱なく変更を実現する管理を行うことになっている。

考え方としては整理されていて、これをきちんと実行できればちゃんとしたソフトウェアが完成しそうである。しかし、現実にはコストや納期が大幅に超過したり、最悪の場合は開発途中で放棄されていまったりなど、開発が失敗してしまうことも多々ある。また、「あとで変更したい」と思っても変更できず、ユーザーの満足度が低いソフトウェアができあがってしまうこともある。

ソフトウェアを小規模に分割することでリスクを軽減する:アジャイル開発

これに対して「アジャイル」と呼ばれる開発手法が提案され、最近では採用されることが増えている。アジャイルとは「機敏さ」といった意味である。

アジャイル開発で提唱されている要素は多岐にわたるので、網羅的に紹介するのは手に余るが、今日のエントリーに関連する部分のみを紹介すると、ソフトウェアによって実現する機能を細かい単位に分割して、その単位ごとに短期間小チームで実際に動くソフトウェアを作っていく、というやり方である。

ウォーターフォールでは時間軸に沿って作業を分割している。これに対して、アジャイルでは機能ごとにソフトウェアを分割している。ウォーターフォールでは、プロジェクトが完了しないとじっさいに動くソフトウェアはできないけれど、アジャイルでは部分部分で動くソフトウェアができあがっていく。

ウォーターフォールでは、最後にならないとソフトウェア開発の成否はわからないし、方向転換も難しい。だから、上流部分(「要件定義」などの段階)が重要だと強調される。一方、アジャイルは少しずつ作っていくから、途中で「機敏に」方向転換することが容易だし、開発が途中で打ち切られてもそこまでで作ったソフトウェアは少なくとも使い物になる。

大きいプロジェクト開発は、どんな手法を使っても難易度は高いし、失敗の確率は高く、リスクは大きい。ウォーターフォールは、緻密なプロジェクト管理によってそのリスクに対処しようとするけれど、本質的なリスクそのものは小さくなっていない。だから失敗することもあるし、失敗したときの痛手も大きい。

アジャイルのポイントは、プロジェクトを分割して小さくすることで、リスクを小さくしていることだろう。小さなプロジェクトは、どんなプロジェクト管理をしても、どうにかできることが多い。

大きな政策の大きすぎるリスク

 3.11以来、原子力政策のことを折に触れて考えている。結局、ウォーターフォール・モデルで開発が失敗してしまった巨大システムのように、あれほど大きなシステム、政策はその巨大さゆえにリスクが大きすぎると思う。

例えば、日本の原子力政策では、高速増殖炉プルトニウムを利用する核燃料サイクルを目指し、その実現を前提として組み立てられている。しかし、その鍵となる高速増殖炉の開発は遅々として進まず、その実現性に大きな疑問がある。高速増殖炉もんじゅ廃炉の方針は決まったけれど、全体としての核燃料サイクルの方向性は変わっていない。あまりにも巨大なシステムで、制度や利害関係が輻輳しすぎて方向転換ができなくなっている。これはまさに大きすぎる政策の巨大リクスを代表だと思う。

また、同様に、地球温暖化対策に関する政策も、同じように大きな政策の大きなリスクがあるのではないかと感じる。日本の原子力政策は、実現が不確かな高速増殖炉という技術を前提に大きなシステムを作り、隘路にはまっている。地球温暖化対策も、不確かな根拠で、あまりに大規模な政策を実現しようとしている。いったん進み始めると、あとで大きな後悔をしてもどうにも動きが取れないという事態に陥らないだろうか。

ソフトウェア開発のアナロジーでいけば、問題やシステムは細分化して、リスクを小さくしてから対処するのが安全な方法ではないかと思う。

 バークとハイエクによる主知主義批判

 3.11をきっかけにして、エドマンド・バークフリードリヒ・ハイエクといったヨーロッパ大陸系の主知主義に対抗する保守主義について読んでみた。これらに関わるエントリーへのリンクを以下に張った(ので、関心がある方はご一読を)。

 バークやハイエクは、人間の知性に基いてゼロ・ベースで社会を変革しようとする革命、フランス革命ロシア革命、そして、それによって生み出された体制を批判する。

彼らは直接的にはそのような言い方をしていないけれど、「革命」のような大きすぎるプロジェクトにはリスクがありすぎて、コントロールできないのだ、と主張しているように思う。

主知主義者は、理性によって理想的な社会を構想できるし、また、それを実現できるプロジェクトも管理できると考える。しかし、バークやハイエクは、あまりにも傲慢だと批判する。

確かに「革命」はまさに大きすぎるリスクを抱えた大きな政策の典型例だ。同じように、原子力政策を進めた人たちにも、地球温暖化対策を進める人たちにも傲慢な「主知主義」の香りが漂っている。

yagian.hatenablog.com

 

yagian.hatenablog.com