愚者は経験に学び、賢者は歴史に学ぶ。
浜岡原子力発電所4、5号機の停止が決定されました。
また、停止中の3号機についても、当面運転再開を見送ることとなったようです。
浜岡原子力発電所停止の判断は、早かったのか遅かったのか、また福島原子力発電所の事故は歴史に学び、防ぐ事が出来たのか否か・・・。
専門的な知識も無く、また、事故が起こるまで原子力発電所の所在地やリスク等についても全く意識する事無かった私が、この事柄について言及する資格は無いと思います。
しかし、中部電力から電力供給を受けるエリアに居住し事業を営むものとして、今後の影響を鑑み、改めて企業としてのあり方、自身の生活について見つめなおして行きたいと思います。
さて、この「愚者は経験に学び、賢者は歴史に学ぶ。」というビスマルクの言葉。
私がソフトウェア開発の現場で、常々意識している事柄でもあります。
一度、不具合(バグ)を発生させた事のあるソフトウェア開発者は、大抵同じ失敗は繰り返さないものです。
しかし、大規模、複雑化している現在のソフトウェアを、自身の経験だけで不具合を防ぐ事はまず不可能です。
また、そのためには余りにも多くの失敗をしてこなくてはならない事になります。
人間ですから完璧にこなす事は出来ませんが、失敗から多くを学びつつも、出来るだけ失敗の数自体少なくしたいものです。
では、ソフトウェア開発現場では具体的にどのような準備が出来るでしょうか。
まず最低限、チーム内、社内での不具合の発生事例、対策方法のデータベース化は必須ではないかと思います。
同じようなシステムの開発、資源の利用を行う者同士での情報共有は、重要な知識となりますし、また新人教育等の教育資材ともなり得ます。
また、プログラムの静的解析は、社内の共有情報を飛び出し、同じプログラム言語を利用する全ての人の経験等が生かされていますので、非常に有用な情報となります。
さらに、複数のシステム、複数の会社の不具合事例をデータベース化しておけば、より実践的なテスト設計の材料となります。
これらの方法ですが、プログラマ一個人の力で満たす事は相当に難しいと思います。
一昔前の、所謂、職人的プログラマの時代では無く(今でもそのような現場が多く見られるように思いますので・・)、やはり今は組織力を生かし、それぞれの専門性を高めたシステム開発が求められているのではないかと私は思います。