ホームページ タイトル
ソフトウェア工学には次の時代を切り開く哲学が詰まっている

Twitter で以下の返信をしました。
「意外に思われるかもしれませんが、世の中をモデル化し、融通のきかない計算機に仕事をさせてきたソフトウェア工学にこそ、次の時代を切り開く哲学が詰まっています。」

それを、解説できるように、このページを作成したいと思います。ただ、少し時間がかかりそうなのでご了承ください。
また、「gmaxとかMaxとか」さんから、心強い言葉もいただいています。
工学を知るものは可能性を考える。ソフトウェアという、計画された内容を正確に実装する事が目的の分野でさえ、不正確さは紛れ込む。システムとはそういうものだ。ソフトウェア工学に今後の社会システムに対する提言の種が沢山詰まっているというのはそういう視点かな。

私がソフトウェア工学に次の時代を切り開く哲学が詰まっていると考えるのは、主に次の2つのポイントからです。
  1. 【仕事や制度など概念的なものをモデル化し、具体的なものに設計する方法論がある】
    世の中の仕事をコンピュータ化していくためには、現実の社会の仕事を概念的にモデル化し、具体的に設計する必要があります。そのための方法論が体系化されてきました。具体的には、E-R図(Entity-Relationship Diagram), Flow Chart, State Chart などの図法、またStractured Programing や Stractured Modeling などがあります。また、オブジェクト指向なども重要な考え方です。これらの技法をしっかりと理解すれば、世の中がどのような仕組みで成り立っているのかが見えてきます。
  2. 【品質の高いものを組織的に作り上げるマネジメント】
    職人技だけに頼らず、大規模なソフトウェア開発を行うためにプロジェクトマネジメントの方法論が進展してきました。設計時に作り込まれる欠陥やバグをどのように防ぐのか、見えない進捗をどのように計測するのかなどの工夫もなされてきました。別の言い方をすると、品質、信頼性、リスクなどのマネジメント手法を含んでいます。

ところで、現在、国の政策にまつわる議論を見ていると、観念的な内容が多く、それぞれの政策が孤立化していて、政策同士の因果関係が無視されているように思えます。これは、ポイントTのE-R図とそれに伴う時系列変化を全く考慮されていません。そのため、実際に効率良く動かすことは難しい設計になっています。 また、Uの観点からも、品質の作り込みや信頼性などの配慮も欠けています。 そして、多くの政策は、完全に稼働時の効率性が無視されているようです。

以上、概念的な話になりましたが、以下、ソフトウェア工学で語られている知見(ことわざのようなもの)と、政策で行われていることの具体的な比較をしてみたいと思います。

表1 ソフトウェア工学での知見と政策等で見受けられる例の比較
ソフトウェア工学での知見 (ことわざ) 政策等で見受けられる例 備考 
 バグ(欠陥)は0にできない。  絶対安全  ソフトウェア工学では、まずはじめにバグをなくすことはできない、と習います。欠陥の混入が否定できないため、テストをしっかり行います。そして、システムが誤作動した場合、止まった時の対応を設計します。
 例外処理はできるだけ避ける。  税制にも多くの例外処理が入っています。  例外処理が一つ増えると、場合により工数が倍になります。工数が倍になるということはそれだけ、プログラムも大きくなりバグ混入の危険性が高まります。そのため、不必要な例外処理は極力避けます。
 上流工程からエンドユーザーに参画してもらう。  案の立案時から住民が参加することはめったにない。  最終的にシステムを利用するエンドユーザーにプロジェクトの最初の段階から参画してもらうことがプロジェクト成功の秘訣である。システムを作ってから、説明したのでは既に手遅れである。

まだまだ、詳しく書いていきたいと考えていますが、頭の整理が十分にできていません。
頭を整理しながら、完成させていきたいと思っています。
(2012-04-30)
 
Kino Research Laboratory, 2011-2018.