フロー理論を活用してゲームの難易度を調整する

「ソフトウェア開発ファシリテーション」アドベントカレンダー18日目の記事です。

今日のお題はおなじみの「チクセントミハイのフロー理論」です。端的に言うと、

  • 自分のスキルに対して難易度の低いもの:退屈😕
  • 自分のスキルに対して難易度が高すぎるもの:不安😱
  • 自分のスキルに対して適度に挑戦のしがいのある難易度のもの:楽しい!面白い!😁

のように、自身のスキルレベルと対象の難易度との組み合わせによる精神状態の違いを示したものになります。

プログラマにとってのフロー理論の説明は同僚の伊藤さんの記事が分かりやすいです → プログラマの成長とチクセントミハイのフロー理論

実際のフロー理論では難易度とスキルの組み合わせによって8種類の状態に分類する(メンタルステート図:不安、心配、無感動、退屈、リラックス、コントロール、フロー、覚醒)のですが、それぞれの解説が長くなってしまうのと本題とは少しズレてしまうので割愛させていただきます。

不安ゾーンにいるなら不安要素をなくし、退屈ゾーンにいるならゲームのルールを変える

みんながフローゾーンにいることを「いきいきとチームが動けている!」と定義づけるのであれば、フローゾーンにたどり着けるようにエスコートするのがファシリテーターの役目ではないかなと思います。

基本的にスキルは一朝一夕に身につきません。中長期的な指標です。そのため、チューニングできるのはゲームの難易度だけです。

あまりにも難しい課題であれば、もう少し簡単なところから手がつけられるようにエスコートします。技術的に難しい問題で見積もりようがない課題であればまず「スパイク」を打てるよう計画をサポートしたり、有識者に助けを求めてみることも有効だと思います。

スパイクとはイテレーション計画に含めるタスクの一種で、何らかの知見を得たり、疑問を解消することを目的に取り組む作業のことだ。(中略)チームは修正の影響範囲を十分に見極めることができなかったので、タスクを2つに分けたのである。1つはスパイクで、もう1つは大雑把な見積りを入れたプレースホルダー的なタスクである。スパイクを実施すれば2つ目のタスクへの見通しが得られるので、このタスクをより正確に見積もれるようになるのだ。

MIKE COHN著「アジャイルな見積りと計画づくり」P.170より抜粋

毎日の単調な開発プロセスとタスクのせいで退屈ゾーンにいるような場合は、開発プロセスそのものをゲームのようなアクティビティにしてしまうことも有効です。例えばリモートのメンバーそれぞれに18時には寿司が届くように手配しておいて、みんなの力を合わせてギリギリできるようなタスクを18時までに終わらせて「やったー!できたぜー!」みたいなノリでみんなで美味しく寿司をいただくようなアクティビティです。ハッカソン的なアクティビティですね。新しい刺激が加わることと楽しかった思い出のおかげで、自然とタスクへの向き合い方が挑戦的になっていくのが効用の一つです。達成感と充実感が得られるように場を作るのがポイントですね。

「仕事なんだから退屈ゾーンにいても仕方がないことなんじゃないの?」といった意見もあるかも知れませんが、退屈ゾーンは遅効性の毒のようなもので、じわじわとチーム内の関係の質を悪化させ、結果の質まで悪くしてしまうものなのではないか、と私は思っています。

関係の質、結果の質といえばダニエルキムの成功循環モデルですよね。真理だと思います。

チームが開発に向き合う姿を一種のアクティビティととらえ、楽しい仕事になるようにゲームの難易度をチューニングすることで関係の質や思考の質に良い影響を与え、結果の質が向上するようエスコートする。そんな観点で問いを立ててみると、また新しい発見があるかも知れません。