エンジニアのための「失敗学」のススメ

第4回 失敗学の「フィールドワーク」

この記事を読むのに必要な時間:およそ 2.5 分

対策実施契機の上流化

(少なくとも)ソフトウェア開発の場合,失敗防止の対策実施契機を上流工程へと移動させることで,同じ対策実施であっても,さらに高い効果を得ることができます。

プログラムの作成(=実装)における失敗防止の対策として,チェック項目による確認を実施するケースを題材に,契機上流化の例を示します。

実装後に確認

なにはなくても,まずは実装後に必ず確認する習慣を身に付けましょう。

何事も基本が肝心です。

実装しながら確認 ~ 実装力の向上

半ば無意識的に出来るようになるまで実装後確認の習慣が付いたなら,今度は実装の最中に確認作業を行ってみましょう。

今まさに実装しようとしているプログラムに対して,関連するチェック項目を頭の中から引っ張り出し,条件が満たされているかを確認しながら作業を進めてください。

実装後確認が習慣化することで,チェックリストの項目があらかた頭に入っているとはいえ,いちいちチェックしながら実装するのですから,以前と比較して作業が進まないことに苛立つかもしれません。

しかし,何も考えないで実装して後から確認するのは,さらに効率の悪い進め方であることを理解してください。現時点では一見効率良く見える(実は単に「早い気がする」だけなのですが)としても,ある程度の規模を超えたなら,考え無しで実装する手法は通用しません。

最初からこの実装方法を推奨しないのは,前述したように,一度に意識的に注意を払える対象の数には限りがあるためです。

プログラムを書くのもチェック項目での確認も,どちらも一杯一杯の状態では,両者を同時にこなそうとしても中途半端に終わるのがオチです。

実装と確認が平行化することで:

  • 実装後確認まで進んでからの,些細な問題による手戻りが減少
  • 実装後確認の際に,より重要な部分の確認に注力できる

といったメリットが得られます。

実装する前に確認 ~ 設計力の向上

実装中の確認が習慣化してきたなら,次は実装を開始する前の段階で:

どのように実装するつもりで,その際に発生し得る失敗はどのようなものか?
それを防ぐにはどのように実装すべきか?

といったことを先読みしながら作業を進めてみましょう。

作業工程を事前にシミュレーションすることになりますから,適切な検討・対策が実施されていれば,工程が進んでから手戻りする率を低下させることができます。

このような先読みの際には,たとえば「変数の初期化が正しいか?」といった実装上の具体的なチェック項目よりも,実行性能や資源消費,拡張性,保守性といった,より上位からの視点でのチェック項目が必要とされます。

言い換えるなら:

上位からの視点でのチェック項目が頭の中に整理されていて,然るべき時点で確認・対応ができる

か否かが,設計力の高低と言えるのではないでしょうか。

実装させる前に確認 ~ アーキテクチャ策定力の向上

ここまでは,⁠自分が実装」するケースについて徐々に対策実施契機を早める,個人としての改善でした。

これをさらに推し進めると,⁠自分以外も実装」するケースに備えた対策実施,いわば組織としての改善の段階へと進みます。

実装担当者の力量から見て,実装の段階で発生し得る失敗はどのようなものか? それを防ぐにはどのような仕組みが必要か?

ということを先読みすることで,実装チーム全体としての改善が図られます。

但し,このレベルの改善には注意すべき点があります。

この「事前防止」が行き過ぎると,実装担当者が何も考えなくなってしまい,イレギュラーケースへの対処能力が低下してしまう,いわゆるマニュアル化の弊害に陥ってしまう可能性があります。

決して実装担当者の能力を侮っているのではありませんし,必ずそうなってしまうわけでもありませんが, 畑村氏の失敗学の活動でも,そのような傾向になりがちである事実は広く確認されていますので,注意が必要です。

参考資料

日々の地道な積み重ねに関しては,何も「失敗学」の専売特許ではありませんから,それらに関する方法論は他の書籍に譲るとして,失敗学的な考察力を高める上でお勧めの資料を紹介したいと思います。

「失敗学の法則」

失敗学の法則は,実際に起こった過去の失敗事例を紹介しつつ,そこに潜む本質的な問題に対する考察や教訓が記されています。

必ずしも読み手に近い事例が収録されているとは限りませんが,⁠自分ならこう考える(or こう考えるべき⁠⁠」とか,⁠自分の状況で言うなら,これはこういう事態に相当する」などと,想像力を働かせて読むことができれば,失敗の疑似的な体験を得ることが可能な,非常に有益な書籍です。

著者プロフィール

藤原克則(ふじわらかつのり)

Mercurial三昧の日々が嵩じて, いつの間にやら『入門Mercurial Linux/Windows対応』を上梓。凝り性なのが災いして,年がら年中アップアップな一介の実装屋。最近は仕事の縁が元で,OpenSolarisに入れ込む毎日。