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

第2回 失敗の「心理」学

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

「才能」の出番は案外少ない

無用な「落胆」を防ぐ=「想定難度」を不当に低く見積もらない手っ取り早い方法は,非常に夢も希望も無い言い方で恐縮ですが,⁠少年ジャンプ」的な隠れた才能の発現や,⁠醜いアヒルの子」的な貴種流離譚への期待を捨てることです。

別な言い方をするならば,⁠居るはずも無い援軍(= 才能)を当てにした無茶な作戦」ではなく,手持ちの戦力だけで妥当な成果を得るための作戦」を立てる考え方とも言えます。

 マンガ『ドラゴンボール』には,自身の才能を無理矢理引き出すことを目論むべジータが,クリリンに「俺を半殺しにしろ」と強要するシーンがありますが,それぐらいの覚悟があるなら 「隠れた才能の発現」を信じても構わないとは思います。もっとも,この場合の「半殺し」は尋常ではないのでしょうが…。

ありがたいことに(本稿の対象読者の多くが従事する)ソフトウェアの分野で「閃き」の類の「才能」が必要とされるのは,⁠無から有を作り出す」時ぐらいですので,⁠凡庸」であっても地道な積み重ねで対応することが可能です。

「ソフトウェアは常に無から有を作り出すのでは?」と思うかもしれませんが,実は以下のようなものが(適切かどうかは別として)すでに決まっていることがほとんどですから,決して「無」の状態からのスタートではありません。

  • 機能仕様
    入力に対する出力/副作用の仕様,処理の手順,画面のデザイン
  • 機能外仕様
    開発言語,稼働環境,性能要件,セキュリティ要件,開発期間

これら所与のものを意識的・無意識的に自分の知識と照らし合わせ,選択肢から妥当なものを選ぶことで, ゴールに到達するための最終的な「経路」を決定するわけですが,⁠選択肢」「選択箇所」が多彩であったり,⁠選択の妥当性」が高い人が,⁠スキルが高い」と言われるわけです(失敗学では「真のベテラン」という言い方をしています⁠⁠。

たとえば,アルゴリズム/データ構造を選択する場合,スキルの低い人は:

  • 自分が使い慣れているか否か

という程度の「選択箇所」しか持っていない一方で,スキルの高い人は:

  • メモリ使用量
  • ディスク使用量
  • プログラム規模
  • 実行性能
  • 開発に必要な工数
  • 再利用性
  • 保守性

といった多くの「選択箇所」において選択(おそらくは「選択肢」も多いでしょう)した結果で判断しますので,⁠選択の妥当性」を一定水準に保つことができます。

ソフトウェアの場合これらは極めて理論的なので,順序立てて考えさえすれば修得に際して才能の関与する余地は狭いですから,才能がある人のように一足飛びに結論を出すことはできないかもしれませんが,一定時間内に同程度の結論に達することは十分可能なのではないでしょうか。

「順序立てて考える」能力を「才能」と考える方が居るかもしれませんが,スポーツのような体を動かす技能の例で言えば,⁠順序立てて考える」能力は筋力・持久力に相当しますから,⁠才能」というよりも「適性」と呼ぶのがふさわしいでしょう。

「適性の有無は無視できる」とは言いませんが,意識的に向上させることも可能ですし,ある程度続けてみないとわからない場合も多いので,思い悩んで立ち止まっているよりも,覚悟を決めて取り組んだ方が有利であるのは確かです。

参考資料

今回は失敗を直視する上での心理的な問題について扱いましたので,心理的な側面から失敗学を捉える上でのお勧め資料を紹介したいと思います。

「失敗に効く本」

精神科医の立場から「失敗学」にアプローチしたものが失敗に効く本として出版されています。

ページ分量こそ多くないですが,失敗に対する心構えを身につける上での要点が良くまとまっていますので,最初に目を通すには最適ではないでしょうか(DVD付きです⁠⁠。

「新・インナーゲーム」

失敗学とは直接関係ありませんが,新・インナーゲームは,技能習得の際に陥りがちな心理的問題に注目したトレーニング理論として,失敗時の無用な落胆を防ぐための参考になると思います。

『インナー~』シリーズは,テニス・スキー・ゴルフといったスポーツ以外にも,企業の活性化に着目したインナーワークや,⁠国内未出版ですが)楽器演奏向けの『インナーミュージック』など,多くの分野への応用がシリーズ化されています。

著者プロフィール

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

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