データから解明したソースコードの特徴と読解時間の関係を紹介予定 -デブサミのワークショップ
ディベロッパーサミット2010の1セッションとして、ソースコードリーディングワークショップ in デブサミ2010の進行を奈良先端大 保田と私で担当する。そろそろ満席になるそうだ。1/30に実施したソースコードリーディングワークショップ2010と類似するが、読解時間の「見積り」という点で少し趣が異なる。
参加者全員で手を動かし、その後、意見交換する。そもそもデブサミに参加する時点で濃いエンジニアだと思うのだが、その中でも自身で手を動かし、このようなワークショップに参加する濃いメンバでソースコードの読み方戦略、ノウハウ、テクニックを意見交換しようという、もっと濃いエンジニアの集まりになるはずだ(コテコテエンジニアの集まりになるはず)。
ソースコードリーディングワークショップでは、読解に焦点をおいたが、デブサミでは見積り時間の観点を加えている。今回の見積りはイテレーション、アジャイル開発等、個々人の見積りが重要度を増すような開発において、役立つと考えている。
参加の前提もそれなりにハードルが高いが、それだけに議論内容には熱が入ると見込んでいる。Javaアプレットのバージョン1.0の読解(1500行程度の規模)、バージョン2.0への簡単な変更仕様メモ、バージョン2.0と1.0の差分(13パッチ)が与えられる。1.0を理解し、13パッチそれぞれについて適用して問題がないかどうかを答えるのが具体的な作業だ。このとき、全体の所要時間を見積り、当日1時間分を残す形で、2/14(日) 22:00にデブサミ事務局に途中経過をメールする。
当日は実際に残りの1時間を読んでいただき、作業全てを終えることができるか実際に試していただく。その後、読み方、見積り方法をはじめ、参加者どうしでディスカッションいただく。また、ソースコードリーディングワークショップ2010のパネルディスカッションでの発言等もここで紹介するつもりだ。現在、集計中だが、間に合えば、1/30の読解結果の統計情報もここで紹介したい(今のところ間に合うか少し自信がない)。
デブサミのセッションのほとんどは、1セッション1時間程度だが、本セッションはほぼ2時間の長さだ。大きなイベントほど、著名な方の講演を拝聴する場になりがちだが、イベントの参加者どうしももっと交流すべきだと思っている。参加者も業務に何らかの都合をつけ時間を作ってイベントで何かを得ようとしているモチベーションの高いエンジニアだからだ。そのようなモチベーションが高い者どうしでの意見交換は非常に価値が高いと思っている。
参加者全員が個別にコードを読んで意見交換するという機会は、それほど多くないはずだ。会場セッティングについて、デブサミ事務局の方にもいろいろとわがままを聞いていただいている。また、このワークショップをデブサミのセッションとして開催するにあたって日本IBMに、ご協力をいただいている。
セッションの最後で、これまでの調査結果から読解時間とソースコードの特徴を紹介する。現在、これまでにあまり言及されていなかったタイプのCouplingの概念が解明されつつあり、その一部を紹介したいと思っている。調査においても日本IBMから協力をいただいている。ソースコードの特徴解析ツールIBM Rational Software Analyzerを同社アカデミックプログラムの一環として無償貸与いただいている。
このセッションの参加には準備が必要になる。今週末にご決断を。準備の時間はかかるが当日のディスカッションでは、通常にはない貴重な経験が得られるはずだ。
詳細はこちらの「参加申し込み」から。