新人技術者のためのロジカル・シンキング入門(10) ―― 「工学の知」を実務に生かす
【1】「いきなり解決策に飛びつかない」がポイント(1/2)
ロジカル・シンキングの出発点となる重要な考え方は,「問題を見付けたとき,いきなり解決策に飛びつかない」ということです.「問題を見付けたら,まず根本原因を探ること」と言い換えてもよいでしょう.
開発中のシステムが突然動かなくなったら,エンジニアはどう行動するでしょうか.「どうしたら動くだろう」と考えて,とにかくいろいろ試してみるでしょうか.経験を積んだエンジニアであれば,「とにかくあれこれといじってみる」というアプローチがまずいことはお分かりかと思います.なぜなら,動かすための試行錯誤をいくつも積み重ねたところで,根本原因を突き止めた上での対応策でなければ,同じようなエラーが生じないことを保証できないからです.
筆者は,原因を突き止めるためには,システマティックなアプローチが必要だと考えます.それをまとめると,
1) まず全体を流れでとらえる
2) 客観的な設問を積み上げて問題を切り分ける
となります(図1).
例えば,「音が出ない」,「画像が出ない」,「入力の応答が返らない」などの事象から問題のブロックを見付け,根本的なバグを突き止めるには,このようなアプローチが必要.
● エレベータ事故の例で思考実験
少し前に,エレベータの誤動作により人が亡くなったというニュースがあったかと思います.このような事故が発生したとき,もしエレベータ会社の社長が「うちの製品には問題はない.アフタ・サービスをしている会社に責任があるのだ」と言ったら,どう思いますか.
もし筆者がその場にいたら,「アフタ・サービスを行っている会社によって事故の発生確率に偏りがあるのですか?」と聞きたくなると思います.それを聞きたい理由は以下の通りです.
事故の原因を突き止めるために,全体を流れでとらえる作業から始めてみましょう.エレベータでも,あるいはほかの製品でも,まず「設計」し,工場で「製造」して,実際に使われ始めてから「保守管理(アフタ・サービス)」を行う,というプロセス自体はだいたい同じであると考えられます(図2).原因の究明というのは,この一連のプロセスのうち,どこに問題があったのかを見極めていく作業にほかなりません.
エレベータが運用されるまでにはどのようなプロセスが考えられるだろうか.流れで大まかにとらえると,エレベータをどう作るかを決める「設計」,実際に工場でエレベータを生産する「製造」,そして実際に使われ始めてから「保守管理(アフタ・サービス)」を行う,という三つのプロセスに分かれる.犯人探しの前に,どこが原因で事故になったのかという切り分けが必要である.
次に,問題の切り分けに移ります.もし設計工程に問題があるのであれば,出荷されてくるすべてのエレベータに等しく欠陥が含まれているわけですから,どこで誰が使おうと常に事故が発生する危険性があることになります(事故が発生する確率は全体でそろっているはず).逆に,保守管理に手抜きがあって事故につながったのだとすれば,保守管理を担当している事業所や会社によって偏りが生じていると考えられます.
つまり,事故の発生確率に特徴的な偏りがないかに着目するということです.もちろん,エレベータ事故のようなものが起きれば,事故の再現調査が最大の決め手になることは言うまでもありません.しかし,その結果を待たないまでも,事故の発生確率に着目することで,ある程度の切り分けが進められるのではないか,ということです.
特にこのエレベータ会社が国際的に営業を展開していて,各国に製品を販売しているとしたら,保守管理を担当する会社が複数関係しているでしょうから,このアプローチは有効なはずです.もし,調査の結果,ある国の,ある保守管理会社の担当分だけ事故が突出していたのだとしたら,いかに「潔くない」と言われようとも,この保守管理会社を疑わないわけにはいきません.逆に,全く偏りなく世界中で事故が起こっているのであれば,エレベータの設計そのものを疑わないわけにはいきません(図3).
設計に誤りがあれば一様に事故につながる.逆にそれ以外の製造や保守管理に事故の原因があれば,エレベータの個体によって事故の発生確率が異なるはず.ここに注目して,事故の発生確率に何らかの偏りがないかを調べて当たりをつける.
なお,筆者はエレベータ関連の仕事をしたことがないので,これはあくまで組み込みシステム一般として考えた思考実験であることをお断りしておきます.