Toshiyuki Kawanishi Blog


2009
2 . 25

デブサミで「レガシー」な発表をさせていただきました

今更になってしまいましたが、デブサミ2009に登壇させていただきました。タイトルは「レガシーコードとはいったい??あなたも書いているかもしれないレガシーコード?」です。コンテンツ委員の和田さん、デブサミ事務局の岩切さん、一緒に登壇してくださった高橋さん、せとさん、中谷さんのおかげで無事に終了することができました。本当にありがとうございました。

一緒に登壇してくださった方々が既にレポートをあげてくださっています。


SlideShareにてスライドも公開されています。

  • オープニング+せとさんソロパート

  • 中谷さんソロパート(特別字幕付き)


セッションでは、書籍「Working Effectively with Legacy Code」(WEwLC)の内容を受け、「レガシーコード=テストのないコード」というこの本の提示する哲学や、「Edit & Pray から Cover & Modify」へというこの本の発するメッセージを紹介させていただきました。その後、この本が発する価値について、登壇者がそれぞれの立場で話すといった感じで進行しました。



制限時間が45分間だったこともあり駆け足感が否めませんでしたが、レガシーコード本のエッセンスについては、大体お伝えできたのではないかと思っています(私は殆ど話していませんが......)。あとは、日本語訳も出版されることですし、レガ本を参考にしながら各現場で各現場のレガシー対策が練られていくというのが大事になってくるのかなと思います。

それから、WEwLCはやはり、現場で苦労しながら闘っている人のための本なんだなと、あらためて感じました。確かに、「レガシーコード=テストのないコード」というのが、この本におけるレガシーコードの定義であること、さらに、著者である Michael Feathers がユニットテスト原理主義者であることは間違いないように思います。ただ、やはりユニットテスト・ディベロッパーズテストの宣伝のためにこのような定義にしたのではなく、開発現場の悲惨な現状、矛盾を目の前にして、開発者の視点でこの原因を探ったときに、「これはテストがないからだ」との発見に至ったと考えるのが良いのではないでしょうか。真実は定かではないですが、少なくとも、多くの人が重要と語るこの本の24章が伝えるメッセージを読む限りでは、「現場の苦悩」という点を外してはレガシーは語れないと言い切っても良いのではないでしょうか。

そのような意味では、ヨードンの「デスマーチ」は、実は、「レガシープロジェクト」についての総論。さらにシリーズ物として、WEwLCは「レガシーコード」について、現場の開発者発の対策について語られている。残りは、「レガシーマネージメント」と闘うための本があれば、レガシーシリーズはめでたく完結するのかなと考えてみたりしています。WEwLCの次に読む本は、「デスマーチ」かもしれないです。 (といいつつ、読書会では "xUnit Test Patterns" を読むことに決まりました......。まあ、レガ本でユニットテストが大事と痛感したので、ではどのようなテストを書こうかということで、"xUnit Test Patterns" を読むというのも素敵な流れだと思っています。)


ちなみに、控え室で「レガシーコードセッションの方々はスーツで登壇される方が多い」というようなお話もありました。ただ、これはお偉いさんが着ている正装という意味でのスーツではなく、現場で闘うエンジニアの戦闘服としてのスーツなんだということを分っていただきたいですね。

反省としては、私がオープニング用のスライドを代理で作らせていただいたのですが、やはり話す人がつくらないとダメだったなということが挙げられます。同じスライドでも、人によって話し方が変わるので、思ったおとりの時間内で本番を進めるのは難しいということでしょう。一緒に登壇したKunitさんが、レガシーコードだけで一日語れますねと仰っていましたが、確かに、この本の内容を45分で語りきるのは難しいのかもしれません。どこかで、レガシーサミットを開催できれば素敵だなと思います。

Blogで触れてくださっている方々は以下の通りです(気づいた限り)。ありがとうございます。


それ以外にも、来ていただいた方々、本当にありがとうございました。
2009/05/21 takamR1 レガシーコードとはテストコードがないコード TDD テスト
2009/02/25 kakutani "どこかで、レガシーサミットを開催できれば素敵だなと思います" ← やりたいやりたい devsumi2009 WEwLC
2009/02/25 kaorun55 テスト