日経IDチームの岡見です。
4月に開催した社内テックカンファレンスで「スケーラブルなチームの作り方」を発表しました。「スクラム開発で未来に投資する」というテーマを抜粋して、紹介します。要約すると以下です。
スクラムを継続することで「自己組織化」されたチームになろう。そして、積極的にチャレンジングな内容(技術検証、対外発表)に取り組もう!
スクラムメンバー

日経社員4名、協力会社社員2名の混成チームです。個人的に、スクラムチームは、同じ所属の人で構成すると思いますので、ここは日経IDチームの特色と言えます。

認定スクラムマスターもおり、サーバントリーダーとしてチーム開発を支えています。
チームを兼任しているメンバーもいます。兼任は賛否両論ありますので、メリット/デメリットをまとめます。個人のスケールで考えると業務範囲が広くなるため大変です。組織というスケールで考えると、エンジニアリング組織にとってプラスな面もあります。
メリット
- 良いプラクティスがチームを横断して伝播する
- 異なる分野を経験でき、複数領域の知識を獲得できる
デメリット
- 週によって稼働できる時間が異なる
- 他チームの割り込み作業により、予定した稼働時間を確保できない場合が発生する
- 他チームのMTGで忙しく、情報共有する時間が少ない
- コンテキストスイッチが発生し、集中力が低下する
スクラムイベント

日経IDチームは、1週間スプリントを採用しており、スプリントレビュー/スプリントレトロスペクティブ/スプリントプランニングは火曜の午後にまとめて実施しています。
スプリントレビュー

スプリントで完成したプロダクト・機能の検証します。開発した機能や変更点のデモンストレーションを行い、フィードバックを受けます。副次的な効果として、業務知識やスキルをスクラム開発メンバー全員に共有することができます。
レポート
プロジェクト管理ツールとしてZenHubを利用しています。ZenHubが提供するレポート機能を活用して、問題がないか確認しています。
累積フロー図

レビュー中のものが多い場合は注意が必要です。レビュー中のタスクと後続タスクが依存関係にある場合、後続タスクの着手が遅れます。また、プロダクトバックログが急激に増加している場合は、リソース不足やタスクの難易度が上昇している可能性があります。こうした傾向を素早く把握し、対策を講じることに役立てます。
コントロールチャート

スクラムリファレンスカードに「スプリントタスクは通常は1日かそれ以下で行われる」と定義されています。タスクの粒度を見直すための参考に利用します。
ベロシティトラッキング

ベロシティは「チームが1回のスプリントで取り組むことができる作業量の尺度」です。こちらはXPの概念のようです。
スプリント単位のベロシティが可視化されます。スプリントプランニングでは、ベロシティの平均値を参考にタスクを積みます。
兼任のメンバーがいるので、個人のベロシティは見ていません。今週兼任の仕事が忙しい人も、来週はスプリントのタスクに集中できるかもしれません。一方で、他のメンバーはその逆かもしれません。個人単位でベロシティを安定させようとすると、残業をお願いすることになります。
本人の望まない残業はさせたくないので、チーム単位でベロシティを安定させることに集中しています。
スプリントレトロスペクティブ

振り返り手法として、ファン・ダン・ラーン(FDL)を利用しています。FDLにProblemを追加する形で、ファン・ダン・ラーン・プロブレム(FDLP)にカスタマイズしています。

スプリントレトロスペクティブは、問題点を解決する仕組みを考える機会と捉え、スプリント毎にチーム開発を改善するように取り組んでいます。

FDL部分については、今まで良かったねで止まることが多かったです。しかし、以下の点を深掘りすることで、現状の良い状態からプラクティスを抽出し、チーム開発に役立てることができると感じています。
- なぜタスクを完了できたのか
- なにがタスク完了にプラスに働いたのか
この業務の成功している点に着目し、良い状態をより長くキープしていく。これはレジリエンスエンジニアリングのSAFATY-Ⅱです。ポストモーテムは、SAFATY-Iに当たります。
このようにして、スプリントレトロスペクティブを ①問題解決の仕組み作りの場 にするとともに、②良いプラクティスを見つける場 にすることができます。悪い点は直して、良い点は継続させることで、より成熟したチームに成長すると考えています。
スプリントプランニング

レポートを参考にベロシティの平均値まで、タスクを積みます。完了条件を明確にすることでチームメンバーの認識を揃え、見積もりをしやすいよう工夫します。また、クリティカルパスのボトルネックを見つけ、タスクに優先度も付けます。
デイリースクラム

デイリースクラムは朝に実施しています。各自、進捗を報告しつつ、困っていることがあれば相談します。レビュー中が多い場合は、レビューを優先するようアナウンスしています。

スプリントの進捗状況を把握するため、バーンダウンチャートも確認します。バーンダウンチャートは「スプリントバックログのタスクを現在のスプリントで全て完了できるのか?」ということが一目で分かるグラフです。元々はXPの概念のようです。
理想線に沿っているかも確認しています。レビュー中のタスクが後続タスクをブロックしている場合、開発メンバーが待ち状態になることで、ベロシティの低下の懸念があります。また、タスクがIn Progressのまま数日経過している場合は、開発メンバーが何をすれば良いか理解できていなかったり、完了条件が不明確である可能性があります。バーンダウンチャートは、改善点を見つけるヒントを与えてくれます。
開発

開発に着手しているタスクを1人1タスクに制限しています。1人がクリティカルパス上のタスクを同時平行で着手すると、クリティカルパス上のタスクのリードタイムが長くなるためです。
自分だけ忙しい状態からの脱却

仕事を抱えないようにどんなに些細なこともチケット化することが大切です。チケット化すれば、他のチームメンバーがその仕事に着手できます。その結果、業務量の偏りが減らすことができます。
業務知識を共有する取り組み
属人化したタスクが存在すると、お休みやMTGなどによってリードタイムが長くなる問題があります。

この解決策として、普段から業務知識を共有するようにしています。別の人が代わりにタスクを完了させることができ、将来の引き継ぎコストを抑える事にもつながります。これは、チームが長く機能し続ける上で重要な取り組みとなっています。
捻出した時間を未来に投資する
MTGが重なってしまった場合や病気による急なお休みがあった場合、着手してしまったタスクがなかなか終わらないケースがあると思います。
しかし、普段から業務知識やスキルをチームメンバー間で平準化しておくことで、そのタスクを他のメンバーが引き継ぐことができます。タスク完了までのリードタイムが短くなり、安定して高いベロシティを維持できるようになるので、スケジュールに余裕が生まれます。

こうした時間的な余裕はチームメンバーのために使えます。例えば、ブログ執筆・イベント登壇などの外部発信や外部研修・e-Learningなどのスキルアップに時間を割くことができます。本人のスキルアップだけではなく、採用活動にプラスになるので、個人・企業双方の利益になります。
また、新しい技術を導入するようなチャレンジングな課題に取り組むことで、エンジニアとしてのスキルスタックを広げることもできます。
まとめ
日経IDチームは、自発的な意思決定と素早い問題解決の仕組みを持っています。業務知識を共有する取り組みにより、チームメンバーは献身的です。
チームでチャレンジングな課題に取り組み、一人ひとりが大きく成長できる環境がここにあります!
参考文献
- 看護管理 2019年 11月号 特集 レジリエンス・エンジニアリング 「失敗事例」から「うまくいっていること」に着目する ポジティブなこれからの医療安全
- プロジェクトの本質とはなにか
- Amazing スクラムシリーズ Volume1 Episode1 スクラム導入後にアジリティが減少してしまう理由
- Scrum Burndown Charts - Tracking Sprint Progress in Agile Software Development
- How to Calculate Team Velocity and Meet Deadlines for Agile Teams
- スクラムリファレンスカード