長くて脱線しがちな師匠への謝辞
こんにちは。kwappaです。今日は「エンジニアライフ時事争論」のお題である「尊敬しているプロフェッショナル」についてお話します。またしても「wifehacksはどこいった?」という内容になるかと思いますが、気にせず寛大におつきあいいただければと思います。
■長い前置き
最近翻訳・出版された、「アプレンティスシップ・パターン—徒弟制度に学ぶ熟練技術者の技と心得」という本があります。
● 「アプレンティス」? 「パターン」?
アプレンティスシップとは、中世ヨーロッパで職人が技能を身につけるために普及した「徒弟制度」のことを言います。「アプレンティス(徒弟)」は「熟練職人」のもとで修行を積み、やがて「ジャーニーマン」として巣立ち、さらに技能を磨きながら「熟練職人」になることを目指す、という制度です。
この本ではプログラマを「ソフトウェア職人」と見なし、「徒弟制度」の中から現代のソフトウェア開発の現場において、プログラマが成長するために必要な「パターン」を定義しています。
ここでの「パターン」とは「デザインパターン」で使われるのと同じ意味で、よい行いや手法、設計方針などに名前をつけて分類し、意思疎通と再利用を容易にしよう、という試みです。もともとはクリストファー・アレグザンダーという建築家が、建築の分野で提唱した「パタン・ランゲージ」という概念をベースにしています。
●すべての徒弟たちへ、すべての師匠たちへ
おおまかかつ乱暴に内容をまとめると、だいたいこんな感じになります。「パターン」のあたりは意識して学ぼうと努めてはいますが、まだまだ浅学ですので間違いなどありましたらツッコミをいただけると助かります。
わたしは「徒弟」と言うにはずいぶん歳を食ってしまいましたが、それでもこの本に巡り会えてよかったと思っています。そして、実際に「徒弟」だったころに巡り会えなかったのが悔しい思いもあります。若いプログラマの皆さんには大変役に立つ、手に取ってほしい1冊です。ちょっと翻訳が固くて読みづらいという欠点がありますので、読書会かなんかを開いてみるのもいいかもしれません。
■長い長い前置き
さて、続いても本のお話。今月の「時事争論」に書けばいいような内容ですが、気にせず先に進めます。
「情熱プログラマー ソフトウェア開発者の幸せな生き方」という本があります。「My Job Went To India オフショア時代のソフトウェア開発者サバイバルガイド」という本の改訂改題第2版で、第1版よりずいぶんポジティブな色が強くなっています。
●「師匠」~あなたがわたしにくれたもの~
タイトル通り、プログラマが仕事をするにあたって持っておくべき「情熱」についての短いエッセイをまとめた、大変アツい本です。わたしもそのアツさにすっかり浮かされて、「情熱プログラマー読書会」という勉強会を開催してしまいました。
その勉強会で、わたしが話したプレゼンのタイトルがそのものずばり「師匠」。「情熱プログラマー」の第13節「師匠を探す(Find a Mentor)」と第14節「師匠になる(Be a Mentor)」をモチーフに、ゲームプログラマ時代から現在までの師弟関係について話しました。
スライドと動画はblogにまとめてあるので、興味のある方はぜひご覧ください。
■尊敬するプロ、あなたの名は「師匠」
さてやっと本題にたどり着きました。語りたいのは「師匠」と「徒弟制度」、そして「プロフェッショナル」について。
プレゼンの中でも紹介した、わたしの「師匠」。わたしが現在職業を「プログラマ」と名乗れるのは、どう控えめに見積もっても彼のおかげです。ですので、今回「エンジニアライフ時事争論」のお題が「尊敬しているプロフェッショナル」と聞いたときも、真っ先に彼のことを思い出しました。そして、プレゼンでは語り切れなかった彼の話を書こうと心に決めたのです。
●わたしの師匠
先ほどからずっと書いている、わたしの「師匠」にあたる人は、わたしが20世紀末から21世紀にかけてのべ8年ちょっと勤務した会社の社長で、そしてチーフプログラマです。たいへん厳しい人で、とてもデキる人で、かなりハチャメチャな人。
・厳しい師匠
LTでもお話しましたが、プログラミングに関してはとても厳しい人でした。CVSのコミットログを見ては、「kwappaさんの書いたコードは信用ならん」と厳しいチェックが入る日々。時にはわたしが書いた処理の原型すらとどめないことさえあり、その度に涙で枕を濡らす日々を送ったのでした。
しかし、これには大変な手間がかかるのですね。もちろんプロダクトコードの質を担保するのはチーフプログラマとして不可欠な仕事です。しかし、「なぜダメなのか、どう書けばいいのか」というチェックは、育成をしようという明確な意志がなければできるものではありません。わたしが師匠的な立場になってやっと、それが実感できました。
もちろん師匠の真意がどこにあったかは分かりません。直接聞いたことないし。ですが、わたしにとっては最初の「師匠」であり、仕事の基礎を叩き込んでくれたことに深く感謝しています。直接言ったことないけど。
・デキる師匠
実は師匠の年齢は、わたしとそれほど離れていません。ですが経験の幅と深さ、そしてなんでも「形にする」実装力については今でも感嘆します。
PC-98時代の同人ゲーム、DOSのデバイスドライバ、組み込み、Windows、そしてコンソール(家庭用ゲーム機)。ゲームエンジンからフルスクラッチする大きなプロジェクトを進めながら、一点ものの試作機を作ったり。今考えると無節操な仕事の請けっぷりだなーと苦笑したりもするのですが、そんな経験をさせてくれたことにも感謝しています。
特に「ハードウェアがわかるソフト屋」というところに影響を受けています。試作機に必要なセンサを買い行き、2人でアキバ中の在庫を枯渇させた、なんてのもいい思い出です。
プログラマという仕事の幅広さを見せてくれたことにも感謝しています。直接言ったことないけど。
・ハチャメチャな師匠
仕事を離れると、飲み友だちとしても交流がありました。わたしもたいがい酒好きですが、師匠と比べるとそれこそ「徒弟」もいいところです。職場と師匠宅が近かった(同じビルの違うフロアだった)ので、半分住み込んでるみたいな状態の時期もあり、夜な夜な働いたり飲んだり遊んだりしていました。
当然というかなんというか、いろんな武勇伝があります。少しネタにさせていただきますね、師匠。
- 【それは肉じゃない事件】
焼肉と日本酒が大好きで、野菜と魚が大嫌いな師匠。「カルビと黒牛があれば生きていける」と豪語していました。よく行く焼肉屋で、カルビとロース以外の肉を食べる姿はほとんど見たことがありません。ハラミうまいですよ? と勧めても「それは肉じゃない」「赤くない肉を食べる気持ちは理解できない」とバッサリ。そのぶん味へのこだわりは強くて、一時期はずっと大久保界隈の焼肉屋エリアをクローリングしていました。 - 【めがねめがね事件】
ある朝傷だらけで出社してきて、「眼鏡を買いにいく」と言い出しました。前夜は確か一緒に飲んで、わたしは電車で帰宅したんでした。聞いてみると「3次会に行くとき転んだ」とか。手にしていた眼鏡はまっぷたつ。幸い手や腕、指にけがはありませんでしたが……。師匠は「おねーさんのいる店に行くこと」については教えてくれませんでしたが、それは結果的によかったのかもしれません。 - 【リモート録画事件】
国内 / 海外問わず「ドラマ」が大好きな師匠。地上波の恋愛ドラマからCS放送の海外ドラマまで、毎クール週に10本以上はチェックしていました。当然予約録画は重なるし、野球のシーズンは延長による時間変更も発生する。インテリジェントなHDDレコーダが普及する前の時代に、どう対応したかというと……- ビデオデッキ(3台) / CSチューナーの出力をPCのキャプチャカードに入力
- 学習リモコンをUSB接続、デバイスドライバとコントロールアプリを書いて、ビデオデッキ / CSチューナーをコントロールできるようにする
- そのPCにVNC経由でログイン、職場からすべてコントロール
今思い出すとかなり過酷な仕事でしたが、それでも楽しく過ごしていたのは、やっぱり師匠のおかげのような気がします。直接言ったことないけど。
■長くて脱線しがちな師匠への謝辞
わたしにとって最初の「尊敬するプロフェッショナル」である「師匠」について、長々と語ってきました。いろいろ楽しかったりつらかったりの思い出が蘇って、最終的には感謝の気持ちに落ち着きました。ああ良かった。
前述したとおり、わたしは師匠の影響を強く受けてここまでやってきました。仕事への取り組み方やプログラミングの基礎から、ソースコードの癖まで。たとえば、Cをはじめとする中括弧とセミコロンの言語で、文末のセミコロンの前にブランクを置く癖。これは、そのあと巡り会ったどのプログラマに言っても不思議な顔をされます。
師匠とわたしの関係は、ご紹介した2冊の本を読むことで初めて「アプレンティスシップ・パターン」だったのだな、と意識できました。
●良き指導者を見つける (Find Mentors)
「アプレンティスシップ・パターン」 p.84より。
よい指導者を見つけ、彼らから指導を乞うことは重要です。身近にいなかったらOSSコミュニティなどで探してみましょう。そしてあなた自身の成長のためにも、あなたより経験が浅いアプレンティスがいたら、積極的に指導を行いましょう。要約するとこんな内容のパターンです。
●師匠を探す (Find a Mentor) / 師匠になる (Be a Mentor)
「情熱プログラマー」にも、同じような趣旨の記述があります。師匠から学ぶこと、そして師匠として振る舞うことによって学ぶことは、どちらもソフトウェア職人として成長するために、とても大事なことです。
そして、LTのポイントに使った「師匠エコシステム」という言葉をもう一度書いておきます。
師匠に受けた恩を、直接師匠に返すことはなかなか難しいことです。ならば、あなたが「師匠」になり、次の「徒弟」を育てることで恩を返し、なおかつ「師匠になることで得られる学び」を循環しよう、という考え方が「師匠エコシステム」です。
●師匠に感謝する (Thank to a Mentor)
どちらの本にも「職場などで師匠となる人物を探すのは難しい。身近にいなかったらコミュニティなどで探し、指導を仰いでみよう。意外と断られないものだよ」との記述があります。わたしの経験の中からも、職場という環境で「師匠」という役目を果たしている人を見ることはあまりありませんでした。
今のわたしは、コミュニティに飛び込んだり勉強会を開催することができるようになりました。しかし、20世紀のわたしにそんな度胸はなかったように思います。ですので、20世紀に師匠と巡り会うことができたのは大変幸運だったのだな、と、今回のコラムを書くことで改めて実感しました。
師匠、ありがとうございました。
■まとめ
案の定「wifehacks」は出てきませんでしたがまぁ気にしないことにしましょう。今日のまとめは……
- 「師匠」を見つけましょう。身近にいなければ探しましょう
- 「師匠」になりましょう。師匠に恩返しはできないので、次の弟子に恩を返しましょう
- 「師匠」と巡り会えるのは幸運なことです。感謝しましょう
●Links
【study2study】情熱プログラマー読書会【とべとべ】を開催する: Kwappa開発室
http://kwappa.txt-nifty.com/blog/2010/04/study2study-208.html