今回は最近TRICHORD開発チームで実践しているプラクティスを紹介する。デンマークLEGOのレゴブロックを使ってバグを見える化しようという試み「バグレゴ」だ。ここではバグレゴの登場経緯と実際の効果を紹介したい。

 TRICHORDチームでは,Tracというソフトを使ってバグを管理している。Tracは,情報共有,進ちょく管理,タスク/バグ/仕様変更管理など様々な機能を持つオープン・ソースの統合プロジェクト管理システムだ。すべてのバグはいったんこのシステムに登録した後,重要度などを考慮して対応していく。読者の方々のプロジェクトでも,何らかのバグ管理システムを使ってバグを追跡していると思う。

 こうしたシステムの問題は,いったんバグを登録してしまうと,何らかの形で定期的に「見る」という行為が必要になる点だ。もちろんメールによる通知機能を利用したり,バグ会議を開催して全体をチェックすることで,直接見えなくてもある程度は把握できるかもしれない。しかし依然として自分で「見に行く必要がある」状況は変わらない。

 TRICHORDチームでも,バグをチェックする頻度が少ないために,油断をするとバグがたまってしまうという現象が発生したことがあった。この点は,ふりかえりでProblemとして取り上げ,原因を議論した。結論は,「バグをシステムに入れると見えにくくなくなってしまうから」であった。

 そこで,解決策として出てきたのがバグレゴだ。TRICHORDチームでは,以前もタスクをレゴブロックで表現して,積み上げていくという試みを考案したことがあった。そのときはアイディアだけで終ってしまったのだが,今度は「バグをレゴブロックで表現できないだろうか?」というTry項目として,ふりかえりで提案されたのだ( 写真1[拡大表示])。


写真1 バグレゴのアイディアが出たときのふりかえり
右下に「バグ在庫を見えるようにするには?」「レゴだ!」という文字が見える。

[画像のクリックで拡大表示]

 さっそく「レゴ デュプロ」というブロックを購入しバグを積み上げてみた(写真2[拡大表示])。すると思いがけない発見があった。バグをブロックで表現することは,思ったよりも楽しかったのだ。読者の皆さんは,バグ報告が楽しいと思ったことがあるだろうか? 大抵は苦痛,そうでなくても単なる作業でしかないこの行為に,わずかでも楽しさが加わったのは大きな進歩だ。


写真2 初期のバグレゴ
バグを識別するためのIDなどがまだ書かれていない。

[画像のクリックで拡大表示]

 エンジニアはバグを発見すると,Tracにバグを登録し,その後でバグを表現するブロックを組み上げる。そしてTracでバグを区別するためのIDとバグの簡単な説明を付せんに書き,ブロックに張っておく。ブロックを積んでおく場所は,メンバー全員が目を向けるお菓子置き場だ。ブロックが積んであると,すぐ目に入ってバグを認識することになる。

 バグを担当するエンジニアは,バグに対応した後,ブロックをバラバラにしてブロックを入れる容器に戻す。このときに人によって一抹の寂しさを感じてしまうこともあれば,他人が積んだレゴを破壊することで達成感を得ることもある。いずれにしろ,また新たにバグを見つけて,ブロックを積もうと心に誓うのだ。冗談のようだが,本当の話である。

 バグレゴは別の週のふりかえりで少し運用方法を改善した(写真3[拡大表示])。具体的に言うと,ブロックの位置で重要度を(手前にあるものほど重要),ブロックの積み上げ方でバグの依存関係を,ブロックの造形でその難易度を表現することにした。これで,ブロックの様子を見るだけで,バグの状況がイメージとして分かるようになった。さらに最近では,バグがシステムに及ぼす危険度をブロックの造形で表したらどうか,という意見も出てきた。例えばピサの斜塔のようなブロックが積まれていたら,誰しも危険と感じるのではないだろうか。


写真3 現在のバグレゴ
付せんの大きさや記述する内容を定めた。

[画像のクリックで拡大表示]

 またバグレゴには思わぬ副産物もあった。音を聞いているだけで,バグの状況がある程度分かるようになったのである。ブロックを入れた容器をあさっている音が聞こえると「バグを見つけて登録するんだな」,ブロックを「ガシャン」と壊す音が聞こえると「バグをつぶしたんだな」といった具合だ。ブロックという現実世界のモノを使うことで,視覚だけではなく五感を使った管理ができることを改めて実感した。

 バグレゴはまだ運用を開始したばかりだが,どの開発プロセスや方法論も取り上げていない,TRICHORDチームがふりかえりを通じて工夫した結果生まれたものである。読者の方々の開発現場でも,このように創意工夫する心を持ち続け,独自の文化を作り上げていただきたい。

懸田 剛

チェンジビジョンでプロジェクトの見える化ツール「TRICHORD(トライコード)」の開発を担当。最近,ハックという言葉よりも“工夫”という素晴らしい日本語があることを再認識した。工夫の積み重ねが“功夫”になる。個人サイトはhttp://giantech.jp/blog