みんなでやる と 全員でとりかかる は違うよという話

3 min read読了の目安(約3300字

ちまたで都市伝説の様に聞こえてくる「言語 xx なのに xx を使っちゃいけない」とか「周りとレベルが合わない」とか言う話について適当に持論を整理してみた

結論から言うと2つで、タイトルの通り みんなでやるということは全員でとりかかることではない という話と、ベースラインを明確にしよう という話になる

どうしてこういう話になるの?

スクラム開発だとかアジャイル開発だとかをやっていると「自律した」とか「自己組織化された」とか「フルスタックな」とかっていうフレーズが至る所で目に入る

たしかにチームメンバーは全員大切なメンバーだし、チームに裁量が委譲されていて決定権があるのも素敵だし、スキルが広く深いのは超かっこいい

ただふとした拍子に「全員に 等しく 決定権がなければならない」とか「メンバーは対等なのだから 決定権も対等 」とか「外部や上層ではなく自分たちが決める以上、全員で決めて納得 したい」とか思ったり、「全員に 等しく(そして高い) 同じスキルが求められている」と思い込んでしまうことがある

先述の「自律した」「自己組織化された」「フルスタックな」という形容詞にはあとに全て チーム と続くはずなので、メンバー1人1人に向いている局所的な目線を、チームという大きな個を客観的に捉える目線にして成果を出さなければならない

シンプルに言えば「チームの成果でバトルするって考えれば良い」ってこと

じゃあチームの成果ってどうやって出すの?

チームの成果物を作るときのやり方を2つ考えてみたい

ここでいう成果物は、なんだと思ってもらっても構わない
Pull Request とか、設計方針とか、チームのルールとか、ミドルウェア選定とか、バグ調査とか、とにかくチームでやるべきことの何かだ

レベル差のある3人がある成果物を作ろうとしている

(人数は手間の都合で減らしたけど、実際にはいっぱいいると思って欲しい)

全員でとりかかるチームのイメージ

B さんを見守る形のペアプロ/モブプロのイメージだろうか

全員でとりかかると言うと聞こえは良いが、全員ができる を尊重しすぎると結果的に一番レベルの低い人に合わせた成果物になりがちだ

むしろ A さん C さんが B さんの完全上位互換じゃあないかぎり、本当に全員が理解できる範囲は Lv.2 相当より低かったりする

A さん C さんがスキルを活かしきれていないのは一目瞭然だが、B さんがそんなに困ってない というのも問題だ

これでは B さんはあんまり成長しない

この状態を繰り返すと、冒頭で挙げた xx は難しいので利用禁止 みたいなことが始まってしまう

みんなでやるチームのイメージ

さっきと形は似ているけど、メンバーが相互にフォローしあっているところが違う

(大小と単色では表現できなかったが)例えば C さんは知らなかったが A さんが提供できた成果が含まれているかもしれない
B さんも同じだ、A さんの発言に何か冴えた質問でもして C さんが閃いたかもしれない

だからこの成果物の丸は、必ずしも C さんの下位互換ではない のだ

各人の成果が混じり合って、これが チームの成果 というものだ


別のイメージもある

C さんは A さんと B さんを信頼して成果物には直接手を加えなかったみたいだ

チームが3人の関係をこうすると決めたのなら、これで出た結果はチームの成果だ


最後にもうひとつだけ

今回に限り、全員で議論はしたが決定は A さんと C さんで行った様だ

例えば共通ライブラリを増築していて ある程度のレベルの人までには隠蔽して意識させない 様な仕組みの話だったのかもしれない

これも3人がやり方に納得していて、差分の埋め方も考えられているなら、要所では大事になるやり方だ


この様に必要に応じて やり方から決められる 様になるにつれて 自己組織化されてきた と言えるのだと思う

フルスタックなチームのイメージ

タスクが変わって別の分野になったら、3人のレベルも当然変わる

軽く同じく2つイメージしてみる

全員でとりかかるチームは 誰に合わせるか変わるだけ で、やはり成果物の丸は小さい

みんなでやるチームは、例えば相互レビュー形式である程度の大きさの丸が作れている

みんなでやるチームは 青も緑も全員が Lv.5 あるわけではないのに、成果物は常に Lv.5 にできている

これが 個人ではなくチームがフルスタック のイメージのはずだ

じゃあ個人は評価されないの? 自分じゃなく誰でも良いの?

そんなことはない

チームメンバー間でのコーチ・ティーチ・賞賛はむしろ大事になるし、すげぇスキルをすげぇ成果にしたのなら個人が評価されてしかるべきだ

それから、すげぇチームを作れた奴はすげぇ奴

チーム自体も成果物 だ、だからそこに貢献したのなら自分の成果だ

話はわかったけど、実際うまくいくの?

こればっかりはやってみるしかないが、無秩序だったりアドホックだったりすると「物足りない」「我慢させられる」とか「足を引っ張っている」「振り回される」と言う空気が漂ってくる

冒頭の レベルが合わない を防ぎたいなら、どのくらいを目指すかは決めておくしかない

そこでベースライン

例の3人は「Lv.5 を目指していた」ということだ

「Lv.3 ではだめなのか」とか「Lv ってそもそも何さ」というのは、もう会社・部署・チームで考えるしかないのだが、大事なのは 決まっていてオープンである ことだ

みんなでこれを目指す、届かない人は腕を磨く、超えている人はフォローをする

それを繰り返してじわじわと常にベースラインを上げる

仮に最初の目標が Lv.2 だとしても、そこからやるしかない

まとめ

繰り返すが、みんなでやる全員でとりかかる は結構違う

全員でとりかかるのは共有コストとかがなさそうで一見効率が良さそうだし一体感とか一種の安心感があるが、成果の程度の限界が近いし何より無駄が多い

端的な話、高くても低くても 誰か に合わせれば他の人は面白くない

なので オープンなベースライン を定め、成果物をチームで作る 風に考えてみると良い

そう思う