あれから 10 年。まさーるさん(石井勝さん)を偲ぶ。

今日は福知山線の脱線事故から 10 年目の 4 月 25 日。つまり、まさーるさんこと石井勝さんが亡くなられてからも 10 年になる。

まさーるさんは、一言でいえば 1990 年代後半から 2000 年代前半の日本におけるオブジェクト指向プログラミング、自動テストとテスト駆動開発、そしてアジャイルソフトウェア開発の啓蒙において大きな役割を果たされた方だ。もしも 10 年前の福知山線に乗っていなければ、いまでも日本を代表するプログラマの一人だったのではないかと思う。

まさーるさんの残した足跡は、様々なところに見いだすことができる。

Java プログラマであれば、 Quick JUnit という Eclipse プラグインを使ったことがある方が多いのではないかと思う。 Quick JUnit はテストコードとテスト対象コードの間をショートカットで行き来できる便利なプラグインで、 Eclipse で JUnit を使う上での定番だった。この Quick JUnit を作ったのは、まさーるさんだ。

「開放閉鎖原則 (Open-Closed Principle)」をご存じだろうか。オブジェクト指向プログラミングの指針/原則の中で、最も重要なものの一つだ。ご存じない方は Open-Closed Principle でググってみてほしい。 Google 検索結果の上位 (執筆時点で一番上) に出てくる「Open-Closed Principle とデザインパターン」という文章を書いたのも、まさーるさんだ。

2002/06/07

少し思い出話をする。

まさーるさんに初めて (物理的な意味で) お会いしたのは 2002 年 6 月 7 日のことだった。なぜ日付まで正確に覚えているかというと、その日は日韓ワールドカップの注目カード、アルゼンチン vs. イングランドの日だったからだ。前回大会のレッドカードを経たベッカムとシメオネの因縁の対決を振り切ってまで参加した WebSphere 2002 という IBM 系技術イベントの JUnit セッションで、まさーるさんに出会った。

当時私は公共系の巨大案件に関わっていて、 JUnit によるテスト自動化をはじめとする様々な技術をプロジェクトに推進する立場でもあった。テストに関する情報をがむしゃらに集めていた私は、大規模イベントの技術セッションの最前列で聴講している参加者もまた熟練者であろうと考え、講演時間が終わったら最前列に座っていた人に質問するという、いささか奇妙な試みを行っていた。

JUnit に関するセッションの最前列に座っていたのがまさーるさんだった。部屋から出ようとして突然呼び止められるとは思っていなかったのだろう。最初怪訝な顔をされていたことを覚えている (当たり前の反応だと思う)。呼び止めた理由を説明したら柔和な笑顔になり、無礼な若者からの質問の数々に丁寧に丁寧に答えてくださった。深い経験とわかりやすい説明に感銘を受け名前を尋ねたら「まさーるといいます」との返答が返ってきて腰を抜かすほど驚いた。何度も何度も読んで勉強した技術サイトの中の人、私にとっては雲の上の人、偉人中の偉人だったからだ。

その後はメールや blog, SNS で様々な質問に答えてくださったり、文章やコードをレビューしてくださったりして、私は幸運にも多くのものをまさーるさんから学ぶ機会に恵まれた。

2005/04/25

2005 年の 4 月 25 日は、大変な事故があったのだなという月並みな感想のまま仕事を終えて家に帰り、テレビで事故のニュースを見ていて、キャスターが読み上げる亡くなられた方々の名前の中に「イシイ マサル」さんが出てきたところで心に黒いシミのようなものを感じたことを覚えている。心配になって mixi でまさーるさんに呼びかけても反応が返ってこない。

モヤモヤしたまま次の日になり、仕事場に着いてしばらくしたところで、角谷さんからやはり亡くなったのはまさーるさんだったと聞かされ、二人とも茫然自失という状態だった。角谷さんと私は当時とある企画を進めていて、まさーるさんに沢山の助言を頂いていた最中だった。日記を書いて (2005-04-26 - t-wadaの日記) 、夕方に弔電を打って、約束をした。その日以降、学んできたものを話し、伝えるようになった

まさーるのページ

多くの人が読み学んできたまさーるさんの文章は、いまでも「まさーるのページ」から辿ることができる。

今回のエントリを書くに当たり 10 年前や 15 年前の情報へのリンクを辿るも、デッドリンクの多さに驚き、パーマリンクについて改めて考えさせられる。いまでもまさーるさんの技術文書が読めるのは、永和システムマネジメントのオブジェクト倶楽部 (オブラブ) が、まさーるさんのサイトを後世に残すために維持管理しているからだ。どれだけ感謝してもしきれないし、もっと読まれてほしいとの思いから、少し紹介していきたい。

ということで、「まさーるのページ」の中で特に読まれてほしい文章を独断と偏見で選んでみた。選びきれず 6 つになってしまった。

Open-Closed Principle とデザインパターン」は、オブジェクト指向プログラミングにおける重要な、そして最初は理解が難しい「モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない」という概念についてわかりやすく説明されており、 GoF のデザインパターンについて暗記ではなく背後にある考え方についてかみ砕きながら解説している珠玉の文章であると思う。

XPをはじめよう」は、アジャイルソフトウェア開発プロセスである XP(eXtreme Programming) について、概要、考え方から現場の Tips まで、まさーるさんが XP を実践してきた経験に裏打ちされた文章であり、ここを読むだけで XP とはどのような考え方か、日々どうやって実践していくかを学ぶことができる。角谷さんと私たちが日々実践していた XP チームのかたちも、まさーるさんのこの文章の影響を強く受けていた。

Kent Beck Testing Framework 入門」は、 xUnit と呼ばれる SUnit (Smalltalk), JUnit (Java) をはじめとするテスティングフレームワークの内部構造を GoF のデザインパターンの実装例として読み解く構成となっており、テスティングフレームワークの設計思想と GoF のデザインパターンを共に学べる文章となっている。

JUnit 実践講座」は、当時 JUnit の使い方について日本の先端を走っていたまさーるさんのテスト設計、実装のテクニック、背後の思想、陥りやすい罠、独自の拡張などがギッシリと詰まったコンテンツであり、私も JUnit の使い方を学ぶに当たり何度も何度も読ませていただいた。 JUnit もテスト駆動開発の考え方もその後の 10 年で進歩があったが、現在でも読むべきところ、学ぶところの多い文章となっている。

オブジェクト指向の法則集」 と「 組織パターンとプロセスパターン 」は、当時ほとんど英語でしか読むことができなかった情報を日本に紹介するために DDJJ に寄稿された文章の元原稿たちだ (Dr. Dobb's Journal, 覚えていますか?) 。紹介されている内容に関しては、今日の私たちは書籍『アジャイルソフトウェア開発の奥義』及び『組織パターン』として日本語で読めるようになったが、まさーるさんが寄稿されたのは 1999 年。情報感度の高さ、啓蒙者としての眼力に敬服するばかりだ。

恩送り

恩送り」という言葉がある。意味は「誰かから受けた恩を、直接その人に返すのではなく、別の人に送ること」とある。恩返しをしようと思っても、その人がもういないことがあり得る。この言葉を知ったのはまさーるさんがきっかけだった。

まさーるさんの歳を僕はもう越えてしまった。あれ以来まさーるさんから頂いた恩を少しずつ世の中に送ってきたつもりだが、頂いたものの大きさを考えると、これから先も少しずつ送り続けなければならないと思う。

今年も恩送りの一つを世に出して、できればまさーるさんの墓前に持っていきたいと考えている。