2012-11-08(Thu) [長年日記]
■1 10年のキャリアを生成する仕事の全体像
(このエントリは『100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊』に寄稿したkakutaniのパートの原稿の誤字を修正したものです。RubyWorld Conference 2012で松江に来ているので掲載しました)
「歯車の1つになった人間は、仕事を楽しくできない。仕事が楽しくなるのは、仕事の全体像が把握でき、全体の質に責任をもつ場合である」
このフレーズに出会ったのは、建築家クリストファー・アレグザンダーの『パターン・ランゲージ』を読んでいたときのこと。当時私は、江渡浩一郎氏の書籍『パターン、Wiki、XP』の草稿レビューに参加していた。私の役割は、書名にもある「エクストリーム・プログラミング」について、実践経験者からの視点を提供することだ。この得難い機会に何とか貢献すべく、紹介される参考文献を芋づる式に読み進めていたのだった。
仕事の全体像を把握し、仕事全体の質に責任を持つ。そして仕事を楽しくする。私がXPを起爆剤とする「アジャイルソフトウェア開発手法」のムーブメントに熱狂し、心酔した理由はこれだ。「計画や見積り、設計やレビューが良いことならば、それをとことんやればいい」高らかにそう謳うXPに出会ったとき、私は「これならちゃんと仕事ができる」と確信した。じゃあその確信、「ちゃんとした仕事」の着想はどこで得たのか。プログラミング未経験だった私にさまざまなチャンスを与えてくれた当時の職場のおかげもあるが、決定的だったのがこの『達人プログラマー』だ。私のプログラマとしての「仕事の全体像」は本書によって形づくられた。
偉大な書籍は偉大な1行から始まる。「本書はあなたがより良いプログラマーになるためのお手伝いをするものです。」本書は、プログラマを問題解決のプロフェッショナルとして定義する。その仕事はプラグマティックでなきゃならない。すなわち、観念的な思索よりも実践的な手法に基づき、物事を現実的に意味のあるかたちでやり遂げるんだ。本書は46のセクションと70のヒントを通じて、プログラマの仕事の全体像を描きだす。「これは大変な仕事」であり、私たちプログラマは「毎日小さな奇跡を起こしながら仕事を進める」のだ。
プロジェクト、設計、テスト、コーディング、デバッグ、コミュニケーション。それぞれの局面において、常に自分自身をより大きな状況のなかに位置づけること。そして、その状況に含まれる、さらに細かい粒度のコンテキストにある物事をおろそかにしないこと。「ソフトウェアは建築と言うよりもガーデニングに近い」。頭の中にある構想(それも他人の!)を具体的に動作するソフトウェアに変換するプログラミングとは、人と人とコンピュータをつなぐ有機的な活動なのだ。
久々に読み返してみたら、私の仕事は見事に本書の範疇内かそこから発展したものばかりだった。私のキャリアは『達人プログラマー』が生成したといっても過言じゃない。アジャイル開発手法の実践は、本書の描く全体像を具現化する手段だ(そういえば、現在の職場へ転職する際に持参した職務経歴書は本書からの引用まみれだった)。記事の執筆や講演だってセクション6「伝達しよう!」の実践だ。Rubyのコミュニティに身を投じたのだって、私なりの「グルへの礼儀とグルへの道」だ。
本書の示す「プログラマの仕事の全体像」は出版から10年を経てなお、現在進行形で補完と発展が続いている。著者であるデイブとアンディが、自分たちの読みたい本を届けるための出版社、The PragmaticBookshelfを設立したからだ。そのラインナップは既に100点を越えており、何点もの書籍が日本語に翻訳された。
中には、私自身が翻訳を手がけたものもある。『アジャイルサムライ』もそんな一冊だが、その内容は『達人プログラマー』のセクション45「大きな期待」を1冊に展開したものとも読める。さらに私は、彼らの書籍の翻訳書を電子書籍で販売するサイトの運営も手伝っている。デイブとアンディが自分たちの出版社でそうしているように。
これまでの10年、私のキャリアは本書と共にあったが、まだまだ道は半ばだ。だからこの先も本書(とその発展が)示す道を行くつもりだ。まずは私自身が本書を時代を超えて読み続けようと思っている。
(2007年に初めてお会いして以来、ついに『達人プログラマー』にサインをいただくことができた(毎回持参するのを忘れていた)。I made it fun!)