Some Days You Get the Bear

IT系エンジニアの、日々の気づきや考えたこと。

達人になるためのリファクタリング

リファクタリング」というので、てっきりプログラミングの本だとばかり思って
ちゃんと手にとってみたことがなかったのだが、
ウェットウェア=脳みそリファクタリングするお話しだそうな。

『リファクタリング・ウェットウェア ~達人プログラマーの思考法と学習法~』

なんと! オライリーのページ訳者さんのページで「まえがき」や「1章」が読める。


1章では「初心者から達人への道」と称して、
ドレイファスモデルの5段階と呼ばれる技能レベルの分類が述べられている。

以下、そこから抜粋しつつまとめてみる。

第1段階 初心者

  • 指標とすべき経験がほとんどないのでミスにどう対処すべきかを知らない。
  • コンテキストに左右されない画一的なルール(=レシピ)が必要。
  • 番をしてもらう必要があり、曖昧さがない明確な指示を与え、小さな成功体験を積ませてあげる必要がある。

第2段階 中級者

  • 情報を素早く入手したがる。
  • 全体像は理解はしておらず、まだ理解したいとも思っていない。
  • 「まだ私には関係ない」「私はただ命令に従っているだけ」の立場。
  • 独力で決定を下せない。

第3段階 上級者

  • 問題を探し出し、解決ができる。
  • 問題領域の概念モデルを使って効果的に作業ができる。
  • 問題解決の際に、どの部分にフォーカスすべきかを決定するには、また自らを振り返り補正するには、十分な能力がまだ備わっていない。

第4段階 熟練者

  • 自らの行いを修正できる。 ※これは、この段階に到達するまではまったく不可能なこと
  • 話を聞くだけでそこから学ぶことができる。
  • レシピではなく「格言」を理解し使うことができる。格言が特定のコンテキストにおいて何を意味するかわかっている。

第5段階 達人

  • 直感に従って動く。
  • コンテキストに応じたパターン認識を行うことができる。
  • 問題を「関連性を持つ小部分の集合」でなく「ひとつの完全かつ無類の統一体」として認識し、特定の小部分にのみ力点を置くようになる。
  • 問題に対し「観察者」ではなく「関与する存在」となる。


「コンテキストに依存しない画一的なルール」から「コンテキストに応じた臨機応変な直感」に変化するのだそうな。


それから、「道具のワナに注意」として以下が挙げられている。


ツールやモデルは普遍的な万能薬にはならない。

 「思考に取って代わるものなど存在しない」

ルールはコンテキストに合わせた最適な行動や道筋を教えてはくれない。

 「ルールは判断の代用にならない」


また、「アジャイルな開発には、フィードバックに基づいて自己補正できる能力が必要」ということで、
「熟練者や達人が対象となる」とも書いてあった。これには賛否ありそうだな。


私としては、以前書いたエントリのように
「どういう段階を経ることで、ひとはスキルを身につけていくことができるようになるのだろうか」というところに想いを持って読み始めた。
いまはもう最終章にさしかかったところである。

読後の感想はまたの機会としておこう。