コミュニケーションアドベントカレンダー 5日目の記事です。
ソフトウェアの開発を行う上で1人開発であっても、チーム開発であっても様々な問題が発生します。最初は小さな問題だったとしても次第にそれは無視できない問題となり、放置することで成果物の品質が著しく下がったり、最悪プロジェクトが頓挫することがあります。
それを防ぐためにKPTという方法が提案、実践されています。
ミーティングでは、ホワイトボードなどに「K:keep=今後も続けること」「P:problem=問題なので、やめること」「T:try=今後、試してみたいこと」の項目を用意し、メンバーが行ってきた活動報告の内容を「K」と「P」に振り分けていく。その後、「P」に対する解決策や新しいアイデアや企画を「T」欄に書く。
今回は私達の組織で実践しているKPTの目的、手法、そして成果についてまとめます。
KPTの目的とは
最終的な目的は、より良いソフトウェアを開発しクライアントに良い物を届けることです。また、その過程として効率的な開発ができるチームを作ることも挙げられます。
これらの目的に到達するための手段としてKPTを行っています。
KPTの手法
それでは、私達の組織でどのようにKPTを実践しているか紹介しいます。
予定を立てる
まずは予定を立てます。いわゆる「見積もり」という奴です。具体的には、
- 次回のKPTまでの間にやるタスクのリストを作る
- 各タスクにかかる時間を見積もる
予定はプロジェクトメンバー全員で立てて共有をしましょう。また、時間の見積もりをするときには、可能な限りメンバーの意見を聞いて大きな数字を挙げた人の意見を注意深く聞くようにします。
私達はGithubとZenHubを利用しています。ZenHubでは見積もりの時間を「ストーリーポイント」として表現しますが、まぁ時間みたいな物と思って差し支えないと思います。
やる予定が ToDo
、やっていることが In Progress
、終わったことが Done
として表現されます。
予定を計測しながら実践する
予定に挙げたタスクをこなしますが、このとき具体的にどれくらい時間をかけているのか計測をします。私達はtogglというWebサービスを利用しています。
タスクを入力して Start
すると時間が計測されて記録されていきます。
これは、タスクにかかった時間を計測するトラッキングツールで、サマリーとしてタスクにかかった時間を表示してくれます。
サマリーとしてグラフを作ってくれます。PDFやCSVでダウンロードすることも可能です。
Chromeの拡張をインストールすることで、Githubを始め様々なWebサービスにtogglのトラッキングをスタートするボタンを表示してくれます。
また、プロジェクト以外のタスクが割り込んだ場合にもトラッキングをしておくと良いでしょう。
振り返る
さていよいよKPTの会議を行う時が来ました。私達は2週間に1回行っています。
ここでは予定と計測の結果をまず比較して、予定通りに物事が進んだかどうかを見てください。大抵の場合予定通りに行かないのではないでしょうか?
それが Problem
です。なぜ予定通りに行かなかったのでしょうか、その理由を考えてください。それが Try
です。
そして再び予定を立てます。今度は Try
で修正される内容に期待をしつつ、とは言え計測をした結果を意識して。このサイクルを繰り返します。
ホワイトボードでガンガン書いていきます
KEEPは?
Try
をしてみて上手く行った内容を Keep
として記録しましょう。KEEPがたくさん溜まったらチーム運営ガイドラインに昇華させましょう。今のチームメンバーに最適化されたガイドラインが完成するでしょう。
成果
なかなか定量的な評価は難しいのですが、Android 版 feather というTwitterクライアントは有料ソーシャルネットワークランキングで3位になっています。そんなに悪く無いのではないでしょうか?
まとめ
KPTのサイクルをういまく回すことで組織を改善し、より良い製品を作ることができるようになるでしょう。そしてそのためには
予定 -> 計測 -> 振り返り -> 予定 -> 計測 -> 振り返り -> 予定...
のサイクルが大切と言えます。