チーム力というと、まず考えられるのが人数ですよね。そもそも人数が居ないとどうやったって手が回らないことはある。野球などルールのあるものだと、一定数の人数が居ないとそもそも試合が出来ない。どんな名選手を集めても8人しか居なかったら不戦敗ですからね。
次に考えるのが、メンバー個々の能力でしょうか。王貞治や長嶋茂雄を9人集めたV9時代の巨人はそりゃあ強かったことでしょう。そういう能力の高いメンバーを集めてくれれば、俺のチームももっと力を発揮できるのにと思っているチームリーダーの方もたくさんいらっしゃると思います。
ここまでは誰しも考えることですが、そのメンバーのチームでの在籍期間も加味して考えてみたらどうだろうというのがこの記事の趣旨です。例えばメンバーが在籍歴10年のメンバーが10人居るチームと、在籍歴1年のメンバーが10人居るチームは従来の考え方だとどちらも10人力で同等の能力とみなされていました。それを100人年力と10人年力と、チーム力に違いがあると考えてみたらどうだろうということです。
なぜ在籍年数があがると個人の能力があがるかというと、チームの中でだけ培っている知識やスキルがあるからです。別に門外不出ってわけではないのですが、そのチームが抱えている仕事に関する知識から、ちょっとしたTIPSまで、様々な知識やスキルを駆使して仕事をしているわけですね。長年同じチームに居る人はそうした知識を十分に蓄えていますし、チームに参加したばかりの新人は本人がどれほど高い能力を持っていたとしてもチーム内知識に関しては無知な新人です。書いてみれば当たり前のことですが。言い換えれば、知識にはどこに行っても通用する汎用的知識と、特定チーム内のみで通用するチーム内知識とがあるということです。チーム内で活躍するには、両方の知識が揃ってないと無理ってことですね。
例として、最近近所に飲食店が開店したので行ったんですよ。店内にはスタッフが何人もいたんですが、オペレーションが全然こなれていなくて「いらっしゃいませ」の声もありませんでしたし、注文も配膳もひたすら時間がかかりました。スタッフはそれぞれ忙しく動き回っているのですが、そのほとんどが何がどこにあるか探してるような感じで、言ってしまえば無駄な動きを繰り返しているだけのように見えました。まあ、新規開店したお店あるあるだとは思いますが。この場合、スタッフは全員チームの新人で、その飲食店というチームの知識が皆無の状態で働いているので、当然と言えば当然ですね。
これが例えば夫婦で何十年も経営している町中華とかでしたらどうでしょう。店に入った瞬間から流れるようなオペレーションで接客されることは間違いないですね。でも、その町中華のおばちゃんを先ほどの新規開店のお店に連れてくれば同じように流れるようにオペレーション出来るかというと、やっぱり出来ないんですね。だって新規開店のお店では、おばちゃんも新人だから。これがチームでの知識やスキルを習得しているかどうかという差だと思います。
私はITエンジニアを職業にしていて、数年おきに新しいチームに移動しています。ITエンジニアとしての業務経験は長いですし、スキルもそれなりにあるつもりです。そんな私ですが、新しいチームに移動してすぐに高い成果を出せるかというと、当然ながら出せない。だってそのチームのチーム内知識が全くない状態ですからね。ということで、ある程度の成果が出せるようになるまでには数カ月程度はかかりますし、本当にチームの中で力を発揮できるのは数年後とかになります。これは私だけに限った話ではなく、誰に対してでも一般化出来る話ではないかと思います。
ちょうど直近ではVポイントとTポイントの統合でのシステムトラブルが報じられています。ニュースについてるコメントをみると、なんでそんなことをちゃんとやってないんだっていう意見が大半ですね。それはそれでごもっともなんですが、多分開発現場はそんなことが実現できる状態ではないと思うんですよ。
金融機関がシステムトラブルを起こす場合などもそうですが、こういう大きなシステムでは多くの人数のITエンジニアが必要になります。その全員を請け負っているシステム会社の社員でまかなえれば理想なのですが、大抵はそうはいきません。下請けのシステム会社に再委託し、下請けは孫請けに、孫請けはひ孫請けに委託を繰り返します。それぞれ委託されたシステム会社は自社の社員ではなく、派遣社員やフリーランスのITエンジニアをかき集めてきて、なんとか頭数を揃えていたりします。それでも人数が想定より足りないこともあるのですが、それでもまあなんとかある程度の人数は集まりますから、元請けの会社はこれで開発はちゃんと進むと考えます。でも実際にはそんなことはないんですね。なぜなら、こうした寄せ集めのチームでは人の出入りも激しいから。
チームでは毎月のように誰かが辞めていき、代わりに誰かが入ってきます。商流が複雑ですから、どこかの契約がこじれてということもありますし、働いている人自身の事情が絡んでということもあります。チーム全体の工程表で、時期によって必要な人数が増減するからってのもありますね。管理側の都合で何年もチームに在籍してチーム内知識を蓄えたベテランをすぱっと辞めさせたりしてしまう。そうすると何が起こるかというと、チーム内知識の伝承が途絶えてしまうんですよ。
そもそも引継ぎをちゃんとすればチーム内知識が伝承できるというのも幻なんですけどね。人ひとりの頭の中に蓄えた知識というのは、そう簡単に伝えられるものではない。学校の先生という教えるのが専門の職業の人だって全ての知識を教えるのは大変ですし、そもそも何年もの時間をかけて教える。それをわずか数日程度の引継ぎ期間で退職者から全てを引き継げというのは無謀というものですよね。
チーム内に人の入れ替わりがなければ、チーム内知識はスタッフそれぞれの中に蓄えられますので、知識の喪失は起こりません。仕事もスムーズに進むでしょう。しかし、人の入れ替わりが激しければ知識の喪失が起こり、仕事はトラブルだらけになってしまいます。Vポイントや金融機関のシステムトラブルの原因の全てがこれとは限りませんが、一部にはこういう要因はあるのではないかなぁと思います。こうした現場では設計書があって実装しようとしたら設計者は既に辞めていたとか、テストしていて不具合が見つかったけど実装者は既に辞めていたなんてことは日常茶飯事です。それぞれ設計や実装の意図を聞こうと思ってももう聞けません。結果、残った人が意図を想像してなんとか手当てをするんだけど、設計者や実装者本人がするのとは違うからどうしても不足が出てしまう。そうしたことが積み重なってシステムトラブルとして表面化するのかなぁと。
だからといってシステムトラブルの責任が現場のITエンジニアには無いとはいいませんが、こうした自体の責任は、頭数さえ揃っていれば問題ないと考えている管理側にありますよねぇというお話でした。