久しぶりのエントリーになります。技術部の永安です。今回は、社内で企画開発している内製タスク管理ツール「ライチ」の紹介をします。
「ライチ」とは
GitHub上で動作する、Chrome拡張機能と組合せて使うタスク管理を行うサーバアプリです。誰でも簡単に使えるようにという理由でユーザーが触れる部分はChrome拡張としてつくられています。主に提供している機能は以下の二つになります。どちらもChrome拡張機能によってGitHubに統合されて利用することができます(後述するZenHubと同じです)。
- タスクカンバン(スプリントバックログ)
- バーンダウンチャート
タスクカンバン(スプリントバックログ)
バーンダウン
「ライチ」では、GitHubのリポジトリのイシューのコメント機能を使ってタスクの管理を行います。これはイシューをスクラムでいうストーリーカードという位置付けにしているためです。大雑把な流れはこのようになります。
- ストーリーをイシューとして作成する
- コメントで議論をする
- 仕様が確認できたらタスクをコメントに記載する
- スプリント計画会議が終わったら、スプリントを開始する
- 毎日、タスクの進捗を更新し、バーンダウンをチェックする
使い方
イシューにコメントとして決められた書式でコメントを書くことでタスクが登録されます。タスクの後に見積り時間を記入することでタスク時間の集計を行なっています。
タスク - [ ] ブログ記事を下書きする 1h - [ ] レビュー依頼する - [ ] レビューの戻しに対応する 0.5h
タスクは登録されるとタスクカンバンの一番左のレーンに表示されます。そこからは進捗に応じて右側に移動していきます。一番右のレーンまで移動されると、コメント上のチェックボックスにチェックがつくようになっています。これによりイシューのコメントを見ても、タスクが完了しているかどうかを知ることができます。
なぜつくったか
カヤックでは2011年から一部のプロジェクトでスクラムを開発プロセスとして採用して来ました。GitHubを利用するプロジェクトも増えて来た中で、スクラムとの相性がよいプロジェクト管理ツールがないかを模索していました。その中で採用されたのが「ZenHub」でした。ZenHubを使っているプロジェクトが増えて来る中で、ZenHubの副作用が見えて来たことが「ライチ」の企画を立ち上げるきっかけになりました。
ZenHubは非常に便利なサービスなのですが、GitHubのイシューをタスク単位として利用するためイシューが大量に作成されてしまうという副作用があります。GitHubのイシューはプロジェクトのアセットとして後から参加したメンバーが読むことも多く、イシューが大量にできてしまうと後からイシューをたどって読むことが難しくなります。そこで、イシューをつくることなくタスクを管理する方法として「ライチ」を作ることになりました。
どのように使われているか
カンバンでの利用
スクラムで開発し、運用に入ったサービスの中でカンバンをプロセスとして採用しているチームで、物理カンバンを「ライチ」を利用する形に移行しました。そのチームではもともとカンバンのプロセスに馴染んでいたため、付箋に書くということを、イシューにコメントするという形に変えました。
- 制作進行がイシューを作成する
- イシューを元にキックオフMTGを行う
- キックオフMTGでの議論によって変わった点をコメントとして書き込む
- 担当するメンバーだけ残ってタスクばらしを行う
- タスクの状況を毎日のスタンドアップミーティングで確認する
スクラムでの利用
スクラムで開発中のチームで、最初から「ライチ」を使った開発プロセスをとっています。
- スプリントが始まるまでにイシュー(ストーリー)を作成する
- スプリント計画会議を行う
- タスクばらしによってスプリントバックログができあがる
- タスクの微調整を行なった上で、バーンダウンを開始する
- タスクの状況を毎日のスタンドアップミーティングで確認する
- スプリントレビューでイシューをひとつずつ確認してクローズする
導入後どうだったか
よかったこともあれば、わるかったこともありました。
よかったこと
- イシューにタスクが記録として残るので、後から入った人が前の経緯を把握しやすくなった
- タスクバラしされているストーリーが一目瞭然になった
- タスクばらしの時間が短縮できた(付箋に書く時間が必要なくなった)
- 付箋がはがれない
- イシューが大量に生まれなくなった
わるかったこと
- 物理的なカンバンがなくなったことで見える化が後退した
- 内製ツールはサポートが必要(ぐぐっても調べられない)
今後の展望
「ライチ」を実際に使ってみて便利だと思う反面、人に使ってもらうのがなかなか難しいと感じました。少しずつユーザーを広げながらフィードバックを受け取って改善を進めていきたいと思っています。課題としては
- シンプルすぎる(もうちょっと便利な機能が欲しい)
- GitHubのDOM構造が変わると壊れる (´;ω;`)
二つ目に関しては、GitHubとの親和性を重視した副作用なので致し方ないところではあります。
内製ツールのため、現在は公開の予定はありません。反響があれば検討してもらえるかもしれないので、興味がある方は是非反響をお寄せください。
おわりに
カヤックではこういったツール開発に興味があるエンジニアを積極的に募集しています。