無料ブログはココログ

« 2011年8月 | トップページ | 2011年10月 »

[#TiDD] DevLOVE関西LT「チケット駆動開発によるプロジェクト改善の仕組み」 #devlove0917

DevLOVE関西でライトニングトークをしてきました。DevLOVEは開発を愛する人が、コミュニティで得たことを実践する活力を得るため場です。エンジニア人生は高々300人月分の経験しかできないので、みんなの経験を持ち寄って情報交換し技術向上をめざすHanger Flightをソフトウェアで実現しようと言う集まりです。

さて、LTで私が発表したのは、「(アジャイルだけじゃない)チケット駆動開発によるプロジェクト改善の仕組み」です。プロジェクトの混乱をチケット駆動開発がどのように改善するかを説明しました。

次回は10月22日のRxTstudyで補完型チケット駆動開発の経験をお話しするつもりです。通常の講演なので、今回のDevLOVEで学んだプロジェクトファシリテーションに関係するないようにも触れるつもりです。その次はAgileTourOsakaのLTで「チケット駆動開発で気付いたアジャイルの仕組み」をお話しする予定です。

[#SNSD] 少女時代 「The 1st ASIA TOUR "Into the new world"」 (2DVD + フォトブック)(韓国盤)

このDVDは同名の2CDアルバムのDVD版です。曲が良かったので、買ってみました(韓国の出品者catchopcdからの購入(¥3,163)で、入手に5日かかりましたが、日本語で対応してもらえて好印象でした)。

1) 日本語しかわからなくても楽しめる

DVDを再生すると韓国語、日本語、中国語のメニューが表れます。日本語を選ぶと歌詞やMCの日本語字幕が表れます。フォトブックも写真中心でスタッフのの名前にまで英語が併記されています。アジア全体で売ろうという意欲が表れていますね。日本語には期待していなかったので驚きました。字幕を見ていると、アイドル的なデビュー曲と思っていたInto the new worldの歌詞がけっこうきわどかったり、新しい発見もありました。

2) 韓国デビューから日本デビューのころまでの音楽

最近はセクシー&かっこいい系曲が多いですが、このDVDでは、韓国デビュー時ののかわいいい感じの曲から、日本でのデビューの頃の美脚を強調した曲までが歌われています。ソロの曲も色々入っていて、なかなか楽しめます。同名のCDとほぼ同じ構成ですがボーナス曲が2曲入っています。

3) ライブ感もばっちり

ライブなので途中のMC(語り)やメーキングのほか、曲間で流れていた映像が楽しめます。この映像はステージの後部にある巨大スクリーンに映されていたもので、メンバーの紹介や少女時代らしいコントなどなかなか楽しめます(ハローベイビーのノリです)。

4) 意外とパクパクが少ない

CD版をiTunesで購入して聞いたときは、ほとんどパクパクだと思っていました。これは、日本のMnetが一度放送をやめる前(2000-2001年)の頃のK-POPは、ライブでもパクパクが普通で、昔の日本のアイドルの様にお世辞にも歌唱力があるとは言えないものでした。しかし、最近のK-POPの歌唱力はなあなかですね。特にジェシカとテヨンはDVDのPCM音声でないと生歌とわからないくらいでした(もちろん、歌が苦手なユナは除きます)。

5) 残念な点

やはり少女時代はハイビジョン向けです。全員だけならまだしもステージ背後のスクリーンも映されるとディテールが見えませんし、CMの映像らしきものなどは目の周りにノイズがのっていました。あと、引いた画像の角度が斜め上からで、お気に入りの「少女時代」という曲は、正面からを意識した振付がちょっと残念な感じでした。

これでブルーレイだったら完ぺきでしたが、3000円程度でこれだけ楽しめれば大満足です。

[#TiDD] チケット駆動開発で気付いたアジャイル開発の仕組み

アジャイル開発とはなにか?それは聞く人によって大きく変わります。このため、本に書かれたそのままに実施したつもりでもうまくいかないこともあるでしょうし、開発チームの制約に合わせて実施する場合には危険が伴います。恥ずかしなが失敗したからこそ気づいた「チケット駆動開発に隠れたアジャイル開発の特徴」を説明します。

1.ライトウェイトプロセスだけではない!

2000年から始まったアジャイル1次ブームでは、1990年代半ばからブームであったCMMとの比較で語られることが多かったように思います。

よく言われたのは、無駄を排除した「ライトウェイトプロセス」という特徴です。ドキュメントは必要最低限にして、コード中心にプロジェクトを運営する。進捗管理もタスクボードで、計画済み、実行中、完了と3つのステータスのみで管理される。当時、とてもショッキングなプロセスでした。

ケントベックさんの白本(最初のXPの本)が(私には)わかりにくく、スクラム・ブートキャンプも無い時代とはいえ、ライトウェイトプロセスと言う特徴に、私は強く興味を持ってしまいました。

2.恥ずかしい失敗事例

XPがブームになったころ、たまたま研究開発プロジェクトを担当することになり、真似事をしてみることにしました。当然のことながらタスクボードを用意しなければいけないのですが、会議用のホワイトボードはあるものの占有もできず、空いている壁もありませんでした。

そこで考えたのが、機能的に同等のものを用意することです。機能を考えてみました。

・タスクボードの情報はみんなで共有できる
・タスクは3つのステータスで管理される

思い浮かんだのは、たったこれだけです。そこで、ファイル共有サーバを用意して、左にタスク、右にステータスを示す3つの欄を持つエクセルシートを置きました。タスクの一覧の作成後は、みんなでレビューしました。

タスク名 ToDo Doing Done
XXの開発
YYの開発

結果は最悪でした。

・タスクが荒くて進捗が見えない
・めったに更新しないので、誰も参照しない
・リスクが高く、だらだらした開発

当時はアジャイルの親切な本もなく、アジャイルの良さとしてタイムボックス管理によるスコープの変更がようやく知られるようになった頃でしたので、なぜ失敗したかも良くわかりませんでした。

その後、@agilekawabataさんと出会い、XPのプラクティスに関する論文を書いたり、XP祭り関西の2006のスタッフなどをして理解を深めましたが、それぞれのプラクティスと繰り返し開発のメリットは感じたものの、過去の失敗の原因としてピンとくるものはありませんでした。さらにしばらくして@akipiiさんと出会い、聞きかじったチケット駆動開発を実践することで、ようやくアジャイル開発の仕組みに気付いたのです。

3.チケット駆動開発で気付いたアジャイル開発の仕組み

チケット駆動開発を簡単にいうと、タスクボートとタスクカードを、障害管理ツールの一覧とチケットで実現したものです。通常の障害管理ではチケットを障害(バグ)票として使いますが、チケット駆動開発では細かな作業も備忘録のようにチケットに記述していきます。他人の作業も登録できますので、時には作業指示書にもなるものです。

実践してわかったのは、以下の様なメリットです。

コミュニケーション
タスクカードであるチケットがコミュニケーションの中心となっていました。チケットは備忘録、作業指示であると共に、作業に関するコメントの書かれた掲示板でした。チケットとソースコードを関連づけることで、ソースの修正理由をチケットの履歴によって知ることができましたので、問題が発生した際にソース解析の参考になりました。

集中
開発中に発生した仕様変更や、問題の発生によって増えた作業も、直接指示されるのではなく、チケットを介して指示が行われるようになりました。担当者は都合の良い時に自分の担当するチケットや自分が報告したチケットを確認すれば良いので、作業に集中できるようになりました。

リズム
チケットがプロジェクトの中心になると、日々の朝会の前後には担当のチケットを確認するようになりました。チケットを確認しながらその日の計画を立て、1日の作業の後に司直を更新する。そんな日々のリズムに慣れると、作業が快適に感じるようになりました。

これらは、以前失敗した際には気付かなかったアジャイル開発の仕組みによって実現できました。それは、以下のような仕組みです。

・情報が一元化されるとチケットに依存する
・チケットの粒度が細かいと、日々の確認が必要になる
・チケット確認を中心とした開発のリズムが生まれる

これらは仕組みというほどでもないかもしれませんが、あまり説明されていないのではないでしょうか?アジャイルは実践重視ですので、これらは経験の中で習得されていくのかもしれません。このような仕組みを理解しないまま、タスクボードを機能的にとらえてしまったので、恥ずかしい失敗をしてしまったのだと思います。

4.チケット駆動開発はアナログを超えるか?

これはプロジェクトによると思います。アナログは情報量が多く、一目で多くのことを知ることができます。かつて私が失敗したのは、エクセルで一目でわかる範囲にタスク分割したからで、もっと画面が広ければ進捗がわかる程度にタスクを分割したかもしれません。

チケット駆動開発は、情報量の少なさをデジタルの特徴で補います。様々な条件でチケットの一覧やグラフを見ることで、担当チケットやガントチャートなど状況に応じた情報を一目で見ることができます。また、ワークフローや構成管理ツールとの連携といった、デジタルならではの特徴によって欠点を補っています。ステータス変更の際に何らかのチェックの必要な場合や、派生開発など過去の履歴を参照するようなプロジェクトには有効でしょう。

5.まとめ
アジャイル開発は一部だけを導入しようとしてもうまくいかないと言われることがあります。それは、ここで述べたような仕組みが隠れているからではないでしょうか?チケット駆動開発は、アジャイル開発の一部をデジタル化するだけでなく、さらに強化したものです(強化したものの一つに“No ticket, No comit!”のようにチケット駆動開発独自のルールもあります)。チケット駆動開発にあるアジャイル開発と類似の方法に関しては、アジャイル開発が参考になりますし、私のようにアジャイル開発がピンとこなかった人にはアジャイル開発の仕組みを考えさせるきっかけにもなるでしょう。

アジャイル開発にあこがれながらも何らかの事情によってできないのなら、チケット駆動開発を検討されてはいかがでしょう。

« 2011年8月 | トップページ | 2011年10月 »