書評

リファクタリング・ウェットウェアとは

達人プログラマーの著者でもあるAndy Hunt氏が執筆した本です。 ハードウェアに対するウェットウェア(人間の脳)を対象として、それを効率的にうまく利用する方法について書かれています。 開発者的視点から見た人間の脳と能力を活かし方は、日常生活から業務にまで広く応用可能な知識だと筆者は言います。

ハードウェアとソフトウェア、そしてウェットウェア

ハードウェアは、コンピュータそのものであり、手で触れることのできるものです。 その対義語としてはソフトウェアがあり、コンピュータ上で動作するプログラムです。 これらのどちらも開発者や技術者にとっては馴染み深いものです。 しかしハードウェアでもソフトウェアでもなく、人間の脳についてはどうでしょうか。 開発者が日頃からハードウェアやソフトウェアを改善するために行う幾つかの手法は、人間の脳には応用できないのでしょうか。 脳科学の視点も交えつつ、開発者が用いる手法で脳をリファクタリングするというのが、タイトルの意味にもなっています。

脳の仕組み

では脳はどのように動作するのでしょうか。 私たちは、ハードウェア上で動作するソフトウェアを開発しますが、人間が行う仕事のほとんどは脳で行われます。 その仕組みを知っておくことは、仕事を行う上で重要なことです。

LモードとRモード

Lモードとは、線形的、手続き的、言語を扱うモードです。 それに対しRモードは、非線形的、イベント駆動的、画像や音声的などを扱うモードです。

開発者向けの例えを出すならば、if文やwhile文などを用いた手続き処理はLモード、Googleの検索のようなパターンマッチングはRモードです。 一度に取り扱える情報量には大きな差があり、Rモードを利用することでより多くの情報の中から必要なものを引き出すことができます。

Rモードを効果的に扱う

Rモードを効果的に扱う方法は、例えば散歩をする、紙に書き出してみる、会話をしてみる。などが挙げられます。 これは問題を解決しようとして煮詰まった際に行うべきこと、とちょうど一致しています。 自分の知識の外側からの情報が必要なとき、例えば煮詰まったとき、経験のないことに取り組むときなどには、Rモードについて思い出すと良いかもしれません。

余談ですが、Googleではもし15分考えても答えが出ない場合、人に相談する。いうことを徹底しているそうです。 15分という時間を、連絡や相談をするタイミングの基準にすると良いかもしれません。

脳をデバッグする

デバッグをする際にまず重要なことは何でしょうか。 それは、まずバグの存在を認識することです。 その手がかりはエラーログにあるかもしれませんし、ユーザからの指摘かもしれません。 そして、バグが発見しやすい状態を保つことが、ソフトウェアにとっては重要なことです。

またデバッグをする際には、感情的になったり、焦ってはいけません。 冷静に、どこが問題なのかを分析し、そこを取り除くことに集中することも重要です。 バグのないソフトウェアは存在しない、ということが開発者の常識ならば、ミスをしない脳は存在しないと言えると思います。 そしてバグを取り除くばきちんと動作する、ということを信じることです。

毎日書く日報も、エラーログとして機能すると考えれば、後で理解できるよう重要な情報をしっかり記録することは大切なことだと思います。 さらに、他の人からの指摘に応じて自身の振る舞いを正す、というのも同じく重要です。

脳をリファクタリングする

失敗を減らし、成功を増やすことは、学習の目的の一つです。 しかし、今現在出来ることでも、それをより効率的に行えないだろうか、何か改善する余地はないだろうか。と常に考える必要があります。 ソフトウェア開発では、動作しているプログラムの保守性や可読性を高めるためにリファクタリングを行います。 今後発生するバグの可能性を減らし、品質を高めるためにリファクタリングは必要な作業です。 同様に自身が知っていること、出来ることだとしても、振り返りと改善を試みることが必要です。 もしかしたらすでに知っていることのように思え、まるで古いものの焼き直しに見える技術も、現状にしかないニーズに応えているのかもしれません。 成功のその次の段階を意識することは、日常の業務高めること、これから先のニーズに応えるためにも重要なことです。

まとめ

一見すると脳について書かれた本はプログラミングには無関係なものに思えるかもしれません。 しかし、プログラミングを行う時に使う自分の脳を知ることは、コンピュータを知ることと同様に重要だと思います。