56-未来へのメッセージ

プログラマが知るべき97のこと」の56個目のエピソードは、コミュニケーションに関する話です。

「取り組む問題が難しければ、そのソリューションも難しく、わかりにくいものになるのが当然」そう考えている人がどうも多いようです。問題が難しいのだから、それに対応するソリューションは理解しにくく、保守も難しいもにになって当たり前と思っているようなのです。

このエピソードは、きのこ本の中でも特に考えさせられたエピソードです。シンプルに解釈するのであれば、「コードを書く時には未来の誰かが保守をする時の事を考慮して解りやすく美しいコードを書くことが重要」という話でしょう。しかし、これまでの自分の経験などから振り返りながら読んでいると、自分にはコミュニケーション、特に発信側に関するエピソードと映りました*1
「賢い人」は難しい事を簡単に実現することができる人です。難解なソリューションを多く理解し、専門用語を簡単に使いこなします。彼らは有能な一方でチーム開発が苦手なケースを多くみかけます。自分がまだ新人だった頃の話ですが、技術的に凄い人はいましたが、エンジニアとして尊敬できるような人とは出会えませんでした。その技術的に凄い人は、技術力が非常に高く、社内でも信頼が置かれ、話す言葉1つ1つが難しかったものです。そして、自分にとっては理解できないことでした。自分も経験を積んでいったので、その人が話してた内容が少しづつ解るようになったわけですが、学習を続けていなければ生涯解らなかったでしょう。
厳しい見方をすれば、努力しないならば道は開けないと考えることができます。しかし、もっと初学者に対して適切なコミュニケーションをしていたならば、違う結果になったのではないかとも考えることができます。デザインパターンフレームワーク、難解なアルゴリズムなど難しいソリューションを身につけてスキルを高めていくことは重要です。自分で使いこなす事も重要なのですが、それ以上にその技術を誰かに伝えるスキルをもっと高めていくべきだと自分は考えています。
幸いにも最近は、コミュニティ主催の勉強会・ブログなどを通じて自分から情報を発信することは非常に簡単です。勿論、発信することは本当に面倒なことです。ブログのエントリーを書くよりも本を読んだりコーディングをする方が有用であると考える事もできます。ですが、情報を発信するスキルは、難解なソリューションと同等以上の価値を持つでしょう。
情報の発信は、現在・過去・未来へのメッセージです。難解な論文を書くこともひとつの選択肢ですがそれは学者肌の人に任せ、自分はプログラムでもブログでもコミュニティでも誰もが共感できるようなメッセージを発信していきたいと思います。

プログラマが知るべき97のこと

プログラマが知るべき97のこと

*1:解釈は人それぞれです。