Chapter 7 Before the Project【The Pragmatic Programmer】

The Pragmatic Programmer の Chapter 7. Before the Project を読んだ。内容は次の通り。

  • 36 The Requirements Pit
  • 37 Solving Impossible Puzzles
  • 38 Not Until You’re Ready
  • 39 The Specification Trap
  • 40 Circles and Arrows

2つほど面白い章があったので感想を書いておこう。

37. Solving Impossible Puzzles

解くことが不可能に見える問題も、正しく制約を理解すれば簡単に解けることもあるよ、っていう話。

ここでのポイントは課された制約をきちんと認識して分類すること。分類は、

  • 必ず守らなければならない制約
  • 必ずしも守らなくてもよい制約

という単純な二種類で充分。私たちは「必ずしも守らなくてもよい制約」を「必ず守らなければならないもの」だと誤認してしまうことが多い。この誤認に気づくと、問題が一気に解決することがある。

38. Not Until You’re Ready

闇雲に何かを始めるのではなく、始めるタイミングを見計ろう、という話。

プロの曲芸師は自分のタイミングを知り尽くしていて、すべての条件が揃うまで静かに待っている。そして、タイミングが来たと感じたら一気に勝負に出る。プログラマも何かの作業をする時はタイミングを見計らうべきだし、また、その直感を鍛えるといい。

「タイミングを見計らう」っていうのは正しく準備することにも繋がるかなぁと思った。何かに向けて準備することはとても大事だなぁ、と最近強く感じる。

いつかだったか、テレビで凄腕の心臓外科医が、手術のヤマとなる血管を切り取る場面で「ここにたどり着いた時点で、僕の勝ちは決まってるんですよ。ここにたどり着くまでが仕事なんですよね。」と言っていて、たしかになーとは思った。

CODE COMPLETE にも、

ニ回測って、一度で切る

という格言が紹介されていて、コーディングにも似た側面はあるんじゃないかなーと思った。