Linearでタスク管理したら最高だった話
はじめに
株式会社mikan のBackendチームの @hoshitocat です。
Notion から Linear にタスク管理を変更して、めちゃくちゃ良かったのでそのご紹介ができたらと思います。
TL;DR
- Notionも良かったけど、Linearにしたらさらにタスク管理がやりやすくなった
- タスクのポイントに基づいたベロシティやProject機能がすごい
- GithubやSlack、Notionとの連携機能が便利すぎる
- ショートカットが便利すぎる
これまでの運用
mikanでは2019年くらいから社内ドキュメントツールとして、Notionを使ってきました。そのこともあって、タスク管理もNotionのDatabaseの機能を使って管理していました。
Product Backlogの運用フロー
事業成長に向け以下のような流れでProduct Backlogを運用しています。
- PMや事業企画チームが施策を管理(Backlog DB)
- 週一回のMTGで①の優先順位を決める
- Backlogから優先度の高いものから順番に要件整理会を実施
- ③を経て各チームでやることについてタスクを列挙(Tasks DB)
- 各チームのスプリントプランニングで、Tasksから今スプリントでやることを決定し見積もりする
プロダクト開発の運用フロー
Backendチームの運用フロー
Product Backlogから開発項目が決まり、Backendチームでは以下の流れで普段の開発を行っています。
- 今スプリントのベロシティを可視化
- ①の内容を踏まえつつ、振り返りを実施
- 次スプリントに積むタスクを決める
- ③のタスクについてポイント付与
- 開発
水曜はじまり火曜終わりの一週間一スプリント
上記のような流れで運用し、スプリントごとに改善を回しています。
Notionを使うと特に以下の点が便利だと感じていました。
- タスク管理ツールとドキュメントツールが同じなので、Notionだけで完結できる
- Databaseが超高機能なので、ユーザ自身で作り込むことで自由にカスタマイズでき、チームの運用に合わせたものを作成できる
- 連携機能がある(GithubやSlackなど)
課題
一番の課題はベロシティの計測と可視化でした。
チームのベロシティを上げるためには、まずチームのベロシティを正確に計測し、可視化することが重要だと考えています。ベロシティを普段から観測し、チーム内で議論することで改善に繋げるアクションが取れます。
そのために
- TaskDBにタスクを追加
- タスクにポイントを付与(プランニングポーカーなどで)
- スプリント開始のときTaskDBのタスクからスプリントを連携
- スプリント終了のときTaskDBをスプリントでフィルター
- Doneになっているタスクの合計をTableのViewでSumして確認
- ⑤をスプレットシートへ貼り付けて可視化
みたいなことを毎スプリント(ほぼ毎週)やっていました!
スプリントのDoneになっているものだけTableで集計
スプレットシートでスプリントごとの推移を可視化。この表を元にグラフ化などもしていた
これは個人レベルでもベロシティを出していて、かなり良い振り返りの材料となり、チームのベロシティを高めるための動きが活発になったと思っています。
ただ、毎週の運用が手動でやらないといけず面倒です🙊
その他に
😵Databaseを作り込まないといけない
自由度が高い分いろんなことができるのですが、それを設計して組み立てる必要があります。
こういうのは嫌いな作業ではないのですが、プロパティやフィルターの管理などが大変だなと思うことはありました🙈
😵Githubとの連携が運用フローにあわなかった
タスク管理ツールとPRの状態管理は基本関連してほしいのですが、完全にSyncすることは現状できなさそうでした。(半年前くらいの情報なので今はできるかもしれません🙏)
PR出してから、Notionのタスクのステータスをレビュー待ちに変更したり、PRがマージされたらNotionのタスクをDoneにするなどを手動で変更していました😵
Notionのタスクボードを見ながらDaily Scrumなどやっているのですが、ステータスの変更忘れなどが発生してしまったり、SlackでPRのレビュー依頼を都度投げたりしないといけなく手間が多かったです。
なども課題に感じていました。
Linearに乗り換えて改善できたこと
Linearに切り替えてみたところ、課題の解決もできましたし、それ以外にもこれは便利だと思うものがたくさんありました。個人的に良かったものについて紹介していきます。
ベロシティの可視化の自動化
まずは課題としていたベロシティの計測、可視化の自動化です。
スプリント(Linearではサイクル)ごとに集計してくれるのはもちろんですが、達成割合やバーンアップチャートもあり、チームの状況が一目瞭然になりました!
達成割合やバーンアップチャート。このサイクルはまあまあ順調です
また、人ごとの状況もわかるし、Projectsごとの状況もわかるので、PMなどマネージャーも嬉しい機能です。
Githubとの連携機能
Linearの連携機能が素晴らしく、日々の開発がめちゃくちゃ簡単になりました!
まず開発に入る時はブランチを切ると思いますが、Linearでは以下のようにコピーした名前でブランチを切ります。
ショートカットも表示されていてわかりやすい
ブランチをRemoteにPUSHしたあと、PRを作成すると自動的にそのブランチ名と同じタスクと連携して、タスクをIn Reviewに移動してくれます。
LinearのBotが自動でタスクと紐づけてくれる
ブランチ名をつけるのに迷わなくて済むし、PRとタスクが紐づいているおかげでそれぞれから確認することが簡単です。
LinearからもPRのステータスがわかる
Slackとの連携機能
Slackで話しているとタスクが発生することがあると思いますが、Slackとの連携機能がめちゃくちゃ便利で、Slackから生まれるタスクをシームレスにLinearに作成し、Slack上のやりとりを紐づけたタスクとをSyncすることができます!
Slackからタスクを作れる。しかも内容が自動で挿入される
Slackのやりとりからタスクを作成するとThreadにタスクが紐づく
Linear上からSlackのやりとりがSyncされる
よくあるのが、やりとりしていた人とタスクに着手する人が異なるとき、その背景がわからず確認のコストが発生したり、実際に着手するのが後になった場合に元のメッセージどこだっけ?みたいになることかなと思います。
SlackのLinkを発行して貼り付ければ良いのですが、Slackからタスクを作れるようになったことで、そのような手間もなくなります。
その他
紹介したもの以外にも、ショートカットやタスクの依存関係を定義したりとめちゃくちゃ便利な機能が備わっています。
また、実際に手を動かすメンバーだけでなく、Project全体の進捗状況が、チームやマイルストーンごとに簡単に可視化できたり、Updatesという機能を使って進捗具合の更新があったものだけを確認することができたり、マネジメントメンバーにとっても便利な機能がたくさんあります。
Linearで困っていること
副業/業務委託メンバーなどのフルタイムとは同じチームだが、サイクルが異なるメンバーのタスク管理です。
フルタイムは決まったサイクルを保てていて、サイクルに含まれるタスクを消化していくのですが、そうでないメンバーのタスクは基本サイクルにはのせていません。しかし、タスクのステータスがTODOからIn Progressに移動すると、自動的にサイクルに含まれてしまいます。そうすると、プランニング時に想定していたものとは別のタスクが追加されたことになり、バーンアップチャートなどに影響してしまいます。
私たちは、副業や業務委託メンバーにお願いするタスクのポイントは 0
とし集計に影響しないようにしつつ、サイクルに乗ってきてしまったものは気づいたタイミングで手動でサイクルから除外するようにしています・・・
もうちょっと良い運用がないか今後模索していくつもりです。
おわりに
今回はmikanのBackendチームでタスク管理をLinearにしてみたらよくなったという話をしました。タスク管理で困っていることがある人や、もっとチームの運営を良くしていきたいと思っているが、どうしたら良いか迷っている人の参考になれば幸いです。
私たちもまだまだこれからベロシティをあげて、早くお客様に価値を提供できるように引き続き改善を進めていきたいと思っています。少しでも話きいてみたいと思った方、EdTech領域での開発に興味がある方は、現在mikanではエンジニアを積極的に募集しています!
まずはカジュアルに話しましょう!お待ちしております!
また、mikanに関するその他の情報はこちらもご覧ください。
Discussion