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

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

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

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

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

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


少し思い出話をする。

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

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

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


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

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


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

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

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

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

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

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

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

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


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

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

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