本記事は、ハンズラボ Advent Calendar 2020の3日目の記事です。
はじめに
個人的にチームでアジャイルのプラクティスを何か取り入れる、としたら私は「ふりかえり」を推します。
ふりかえりをやることによって、自分たちチームや周りの環境の状態を把握し、それを踏まえて次の行動を考えるというのは、変化に強くなるし、変化に適応することこそがアジャイルの本質の1つだと思っています。
という意味で、私はふりかえりが好きなのですが、周りと話していると以下のような意見が出てきて、若干温度差を感じることがあります。
- ふりかえりをやる意義がよくわからない
- 解決できない問題ばかりが上がってきて、テンション下がって意味がない
- とりあえず儀式的にKPTやっている
どうにか、ふりかえりの良さを伝えたいと思ったときに、何か捉え方を変えるような説明をしたいと考え、
あれ、ふりかえりってターン制のRPGに似てるんじゃない?
と思ったので、ふりかえりをRPGに喩えた記事を書いてみようと思います。
ふりかえりってそもそもなに
私がよく参考にしている、ふりかえり読本 場作り編から定義を引用します。
ふりかえりは「過去の行動を見直し、未来の行動を決定する」という、未来をよりよくしていくための前向きな活動です。ふりかえりと聞くと「過去の行いを反省する」という趣旨が強く感じられてしまうことが多いのですが、ふりかえりの本質は、過去を踏まえたうえで、未来を考えていくことにあると著者は考えています -- p.6
ふりかえりは「過去の行動を見直し、未来の行動を決定する」
引用してきた本でも言われていますが、この未来の行動を決定する、というところが肝だと感じています。
RPGで遊んでいる時、みんな自然に「ふりかえり」をしている
よくあるターン制のコマンドバトルRPGを思い浮かべてみます。
戦闘が始まった最初に、自分のターンが来ます。
このとき自分のHP、MPを確認して、敵の状態やどんな弱点を持ってそうかを「観察」してから、コマンド入力をしていきます。
コマンド入力した結果、自分や味方がそのとおりに行動していきます。
その効果、相手に大ダメージを与えたのか、それともあんまり効かなかったのかがわかります。
その結果を見て、次のターンでは選ぶコマンドを変えていきます。
これって、自然に今までの過去の行動・結果を踏まえて、未来の行動を変えていますよね。
だから、皆さんがゲームをやっている時には、自然とふりかえりをやっているのです。
ターンごとのふりかえり
RPGの最小のふりかえりタイミングは、自分のターンの開始時です。
自分の攻撃の結果、敵に大ダメージ与えたのか、それともいまいちだったのか。
相手の攻撃を受けて自分や味方は瀕死なのか、それとも全然ダメージを受けてないのか。
これらの状態を確認し、その結果を踏まえて次のコマンドを入力していきます。
これは開発現場で言うと毎日の朝会、もしくは夕会みたいなものです。(スクラムの場合は、デイリースクラムと言ったりします)
自分の行動によって、何が出来たのか。何が出来なかったのかをふりかえり、その結果を踏まえて今日(もしくは明日)の行動を選択します。
作業報告会のみ → 同じ攻撃の繰り返し
自分が経験した現場でもったいないと感じるのが、この朝会がただの「作業報告会」となってしまうケースです。
せっかく毎日の行動をふりかえってチーム内で共有しているのに、それを踏まえた行動を選択しない状態です。
たとえば、Aさんが「作業にすごく手間取っています」と言っていたとします。
だけど他のメンバーは、自分担当領域ではなく、Aさんをヘルプするといった行動が選べなかったり、
Aさん自身もその作業を熟知しているチーム外のメンバーに助けを求めず、「引き続き頑張ります」と言って、行動を変えないという状態です。
これはRPGでたとえると、「相手に全く効果がない」攻撃をしている状態なのに、別の攻撃に切り替えずにそのまま「相手に全く効果がない」攻撃を繰り返しているようなものです。
戦闘が終わった後のふりかえり
戦闘の終わりは、ひとつの節目です。
敵を倒したことによる経験値や、ドロップアイテムの取得など、目に見えた形でのフィードバックが返ってきます。
その時の戦闘結果が、勝ったのか、負けたのか。
もし勝ったのであれば、それは楽勝だったのか、それともギリギリの辛勝だったのか。
それによって、レベル上げが必要になるのか、何か武器を変えるのか。
それとも楽勝だったので、今までの戦略に自信を持ってそのままの方向性で伸ばしていくのか。
次のアクションがいろいろと出てくると思います。
今回のイテレーションは楽勝だったのか、それともギリギリの戦いだったのかをふりかえる
開発の現場では、イテレーションが1つの小さな節目です。
この節目を迎えたときに、成果物が出てきます。
この成果物を元に、チーム内外でレビューをしてフィードバックを貰います。
この成果物に対するフィードバック(経験値やドロップ品)と、イテレーション内での活動が楽勝だったのか、それともみんな残業しての辛勝だったのか。
その活動をふりかえった結果、次のイテレーションでは何の機能を作るのか。どんな作戦で進めていくのかを選択していきます。
次はどんな敵と戦うのか、そのときのパーティメンバーや武器などを見直していくわけです。
ここでイテレーションごとの活動が、ちゃんとふりかえりされていないと、最適な行動ができなくなってしまう恐れがあります。
すべて終わりきっていないタスクがあるのに、前回と同じくらいのタスクを目標にしてしまって、結局次も終わらないとか。
実はいま割り振られているタスクがメンバーたちの不得意な領域で、進捗が上がらないとか。
そもそもステークホルダーに見せる機会が無くてフィードバックが貰えてないから、間違った方向に進んでしまっているとか。
ふりかえりをしないまま次のタスク、次の開発と忙しなく進んでしまうのは、いわば回復も武器の入替えも出来ない連戦イベントのようなものです。
敵が強すぎる場合には、自分たちのできる範囲でカイゼンをしていく
RPGでボスが強くて倒せない! となったときに、
プレイヤーが取れる行動はいくつかあると思います。
- 自分のレベルを上げる
- いつもやっている戦法とは別のことをやる
- 武器を変える
これらを考え直し、またボスに挑み直すわけです。
「敵が強すぎる! バランスが悪い、クソゲーだ!」
なんてコントローラーを投げたところで、敵が勝手に弱くなってくれることはありません。
ふりかえりで出てくるProblemも、自分たちにはコントロールのできない大きさであるのをしばしば見かけます
たとえば、
- プロダクトソースコードのレガシー化で、保守がしんどい
- 客先からの差し込みタスクばかりで、開発が進まない
- 時間がない
これらの大きいProblemに対して、カイゼンのアイデアが出てこなくて、「うーん……、困ったね」という感想ばかりで意気消沈してしまう状況を自分自身でも経験しましたし、私が観測している範囲でも結構あるように思います。
これは、問題が自分たちではどうにもできないことばかりだから「クソゲーだ」みたいな感じでそのゲームを諦めちゃっている状態とも言えそうです。
コントロールのできない問題に対してカイゼンをしようとするのはしんどいし、できないです。
だから、自分たちでコントロールできる部分に目を向けてみて、自分たちの次の行動を考えてみるのが大事です。
- 【問題】プロダクトソースコードのレガシー化で、保守がしんどい
- 自分たちのわかる範囲でテストコードを書いてみる
- 【問題】客先からの差し込みタスクばかりで、開発が進まない
- 差し込む分、何の優先度を下げるのか客先と調整をしてみる
- 差し込みタスクがどんなものが多いのか、まず分析をしてみる
- 【問題】時間がない
- 何で一番時間を取られているのか、1週間記録してみる
- 記録した中で、時間が掛かっているものがあれば、それが早く出来ないかカイゼンしてみる
- あまり自分たちが困らなそうだったら、やめてみて様子を見てみる
まとめ
ゲームで考えると皆さん最適行動しているはず。
ふりかえりも同じように捉えると、より良い行動に繋がるのではないか、というお話をしてみました。
もちろんゲームと現実は違いますが、チームがもっと効率を高めることができるかを定期的にふりかえるプロセスは、実はそんなに変わらないのではないか、と思っています。