ということをふと思ったのだ。
いわゆるアジャイル開発をしていると、成果の最小単位は個人ではなくチームになる。ここで言っているのはあくまで「成果の」最小単位の話だ。ところが、「すべての最小単位がチームであると錯覚」してしまうことが起こりやすいように思う。
どういう最小単位があるだろうか。ざっと思いつくままにあげてみる。
成果の最小単位はチーム。
結果の最小単位はペア。
意思の最小単位は個人。
スキルの最小単位も個人。
パッと思いつくのはこんなところかな。(他にも色々あるとは思う)
それぞれざっと説明を試みる。
成果の最小単位はチーム
成果の最小単位はチーム。これは、そういうルールがあるというよりは、アジャイル開発ではそう考えると色々なことがうまくいく、という経験則のようなものだと思う。
「個人の成果」をあえて認めない。いい意味でも悪い意味でも。すべての成果はチームのもの。そう考えることで、コラボレーションやさまざまなものの共同所有など、いろいろなことがうまくいきはじめる。
結果の最小単位はペア
これは、僕がいるチームが常にペアプログラミングをしているチームだから成り立つ特殊ケースだとは思うが、チームでも個人でもない例として面白いと思うので書いておく。
常にペアを組みながら仕事をしていると、すべての活動の結果がペアによるものになる。つまり、成果以前に、「個人による結果」すらなくなるのだ。
改めて、成果はチームのものだ。「このペアの功績」「このペアの責任」みたいなことは基本的にない。(ちょっとした功績を称える、くらいのことはもちろんあっていいと思うが)
ただ、結果は個人のものではない。すべての書かれたコードは、あくまで「ペアが書いたコード」とみなされる。それがペアプログラミングのマインドセットだ。
念のため書いておくと、文字通り100%の時間をペアで作業をしているわけではない。チームの人数が奇数になったり、チーム全員(モブ)で作業をしたりすることもあるからだ。あくまで原則の話だ。
意思の最小単位は個人
このあたりから、「成果の最小単位はチーム」との混同を始める人が出てくる領域に思える。
意思の最小単位は、個人だ。成果の最小単位がチームだからこそ、意思の最小単位は個人でなければならない、という言い方もできるかもしれない。
それぞれの個人が、それぞれの経験や認知特性に由来する、固有の意思を持つ。それを表明し、チームとしての意思決定につなげていく。そのプロセスがあってこそ、チームとして最高の成果を出すことができる。「チームとしての正解」を先取りした意思しか許されないチームは、文字通り最悪だ。最も悪い。
意思の最小単位は個人であることがとても重要だ。もちろん、チームで長く活動していれば、意思が似てくるところもあるだろう。それ自体はいいことでもある。それでも、意思の最小単位が個人であることは忘れずにいたい。
スキルの最小単位も個人
ようやく表題の話に来たかな。スキルの最小単位も個人だ。
こう書くと当たり前にも思える。しかし、「チームで活動していると、個人の力を発揮しきれない」とか、「アジャイル開発をしていると、無個性化が進んでいく」といった意見や懸念を聞くことはとても多い。(昔、僕自身も似たようなことを思ったことがある。というか白状すると、今でもそういう思いがよぎることはある。だからこそ、それを否定するために冒頭のポストをしたわけだ)
これもまた、「成果の最小単位はチーム」を強く意識しすぎる弊害であるように思う。
スキルの最小単位は個人だ。個々人が異なるバックグラウンドやスキルを持つからこそ、チームの成果が最大化される。意思の話と同じで、だからこそチームでやっている意味がある。
個人のスキルが(誤って)否定的に扱われてしまう理由として代表的なものは、「個人のスキルに依存しすぎると、チームとしての成果が安定しなくなる」ことではないかと思う。
それは、その通りだ。何かが得意な人がいたとして、その人に得意なことを全部任せていると、その人が体調不良で休んだ日は仕事が進みづらくなるだろうし、いつかチームから抜けてしまった日にはチームの力が一気に落ちてしまうだろう。
だからといって、今その人のスキルを使わせない理由にはならない。考えるべきは、「いかにその人のスキルを最大限活かして、チームの成果を最大化するか」だ。
たとえば、スキルトランスファーを進め、チームの出力を安定させるために、ペアで仕事をするのもよいだろう。だが、すべての仕事をすべての組み合わせで均等に回すのが正解とは限らない。意図と短期・長期的な結果への有望な仮説を持っていれば、多少偏らせるのも手かもしれない。
要はバランス、だけでもない
短期と長期のバランス。「要はバランス」なのだろうか? そうとも言えるが、簡単にトレードオフの問題にしないほうがいいと思っている。繰り返しになるが、問いは「いかにその人のスキルを最大限活かして、チームの成果を最大化するか」だ。
そこには時間軸の意識も必要になるだろう。僕がいる組織では、3ヶ月に一度、平均して4名中1〜2名程度のメンバーが入れ替わる(びっくりする人もいるかもしれないが、詳細な理由を語り始めると長くなるので、いったんそういうものであると受け取ってほしい)。あくまで平均的にだが、おおむね9ヶ月程度で違うチームにいくことになる。だとすれば、チームの成果を安定させるために与えられた期間は「数ヶ月」ということになる。
その場合、数ヶ月の間に少しずつスキルを伝えていくことができればよい、ということになる。せっかく突出したスキルを持っている人がいるのに、4人で2ペア、すべてのタスクを回しながら均等に行うから、その人のスキルは最大でも25%しか発揮されない、なんてことをやる必要はない。こう書くと、ほとんど狂気ですね。
「いかにその人のスキルを最大限活かして、(9ヶ月単位で)チームの成果を最大化するか」を考えれば、色々な答えが考えられるだろう。「4人で2ペア、すべてのタスクを回しながら均等に行う」はおそらく正解ではない可能性が高い。(絶対間違いだ、と言い切れるものでもないが)
もちろん、「育てるのが得意」な人であれば、最大限色々なメンバーとペアを組むようにするのがよい可能性もある。逆に、「育てるのが苦手」な人であれば、「どうすればその人のスキルを周囲が吸収していきやすくなるか」をチームの課題として考えるのも手かもしれない。チームには、「育てるのが得意」な人や、「アイデアを出すのが得意」な人がいないだろうか?
それが、「いかにその人のスキルを最大限活かして、チームの成果を最大化するか」という考え方だ。「その人」とは、チームの個々人全員のことだ。
安易に「バランスを取る」のではなく、個々人のスキルを最大限発揮することで、チームの(中長期的な)成果を最大化する道を探り続けたい。
そのためのチームなのだから。