IT業界で気づいたことをこっそり書くブログ

何とかする系アプリエンジニア(SE)が、日々気づいたことの中で、役に立ちそうなことを綴っていきます(受託→ベンチャー→フリー→大企業、ベンチャー)

3人のプロジェクトがなぜ難しいのか

2人で仕事をする分には簡単なのに、3人でやったら失敗した

みたいな経験はないだろうか

 

2人でやる仕事と3人でやる仕事では、考慮しなければならないことに大きな差がある

特に、3人が同じ役割の場合だ

 

※ここで考える仕事はプロジェクトのようなものだと考える

 プロジェクトの特長は

 ・似たことはやったことがあるが、ソレ自体は初めての試み

 ・仕様のような決定事項があり、コミュニケーションが多く発生する

 

 

2人と3人の差はコミュニケーションと責任の差だ

 

2人の場合、あなたとAさんのコミュニケーションの関係図は1意に決まる

 

f:id:otihateten3510:20150706181201p:plain

もちろんこのラインがどういう関係かは様々あるだろうが

あなたとAさんの間にしかコミュニケーションは発生しない

分からないことがあれば訊けばいいし、Aさんんい分からないことがあれば訊かれる

 

しかし、これが3人になると途端に複雑になる

f:id:otihateten3510:20150706181200p:plain

Bさんが参加したとすると、コミュニケーションは

あなたとAさん

あなたとBさん

AさんとBさん

の3つが発生する

(難しい理由1.コミュニケーションが3倍に増える)

 

そして、図からも見て取れるように、AさんとBさんのコミュニケーションはあなたから見えない

(難しい理由2.見えないコミュニケーションが発生する)

 

かつ、AさんからはあなたとBさんのコミュニケーションが見えず、BさんからはあなたとAさんのコミュニケーションが見えない

(難しい理由3.共通認識が壊れる)

 

これだけで2人→3人がなぜ難しいか洗い出せたと思う

1.コミュニケーションが3倍に増える

2.見えないコミュニケーションが発生する

3.共通認識が壊れる

 

それって本当に難しいの? と思うなら、シーケンス図を想像してほしい

エンジニアなら「ああ面倒臭い」と思えるはず

f:id:otihateten3510:20150706181155p:plain

これはちゃんと工夫すればどうにかなる問題だろうか?

そう簡単なことではないと思う

 

もしこれらの不具合を是正しようとすれば

1.コミュニケーション量を抑える

2.コミュニケーションを可視化する

3.共通認識を持てるようにする

となる

 

まず1,2,3を全て解決する方法としてドキュメント化がある

f:id:otihateten3510:20150706181157p:plain

正しいものはドキュメントにあり、コミュニケーションは取らない

これは見事1,2,3を解決したようでいて、実は他の問題を生んでいる

(エンジニアなら、3本のシーケンスにデータストアが入った状態を想像してもらえれば良い)

4.いつ何を何故更新したか、ドキュメント外のコミュニケーションが漏れる

5.更新したが見てくれない

6.文章を書く/読むのが難しい

 

または、組織化がある

f:id:otihateten3510:20150706181159p:plain

左の図はあなたがAさんを仕切り、AさんがBさんを仕切る方法だ

しかしこれは1の解決は少しされているが2と3はあまり解決できていない

 

真ん中の図はAさんに仕切ってもらい、それをBさんに伝える方法

これは1,2,3解決できたようで居て、Aさん、Bさんからは2,3が解決できていない。仕切る立場のAさんがそれでは問題だ。

 

右の図はA-Bのコミュニケーションをさせない方法。つまりあなたが情報の伝達役になり、1,2,3を解決しようという方法だ

これは一見うまくいきそうだが、実は1が全て犠牲になる方法だ

コミュニケーションコストがあなたに全てかかってくる

 

 

というわけで、1つの作業を3人でやろうとすると、2人の時に比べてはるかに難しくなるというお話だった

 

 

ちなみに解決方法は簡単で、「3人にしない」だ

これは人が組織になっても同じで、「3組織にしない」

例えば、互いにコミュニケーションが発生しない疎なタスクの2つを、2人・1人に割り振ればいいだろう

 

 

しかしこのルールは往々にして破られる(短納期などで)

大事なのは「2人と3人では難易度が段違い」と覚えておくことだと思う

3人→4人、4人→5人も難しいが、2人→3人の差ほどではない(というか多人数過ぎると破綻する)


ちなみに、じゃあ大企業とか大規模プロジェクトはどうしているのかといえば、細かくセクションに分けてその中でも多階層化されているはずだ

あくまで2人の時と同様のポテンシャルを3人の時にも発揮するのは難しい、ということで、3人あるいはそれ以上をきちんと管理すればそれなりのパフォーマンスは発揮出来ると思う(見積もりだけ間違わなければ良い)