チームで開発するならパソコンの前にいる時間を減らすしかない | それゆけ西表島

チームで開発するならパソコンの前にいる時間を減らすしかない

普通の会社ならプログラマ1人に1台のパソコンが与えられる。2台以上与えられるところもあるかもしれないが、与えられないということはないだろう。自腹で購入させるところがあるかもしれないが、机の上にパソコンが最低1台あるというのが普通である。

さて、自分の机をパソコンが占領している状態だと、どうしてもパソコンを使って何かするという状況に追い込まれる。で、パソコンを使っていると仕事をしているように見えるため、どれほど非効率なことでも許されるという変なことが起こる。

パソコンに奪われている無駄な時間を、もう少しコミュニケーションに割く事で、パソコンでの作業の絶対量を減らせるのではないかと思うわけだ。パソコンのある状態が主で、パソコンのない状態が従という考え方だと、コミュニケーションが終わればすぐパソコンに戻るということになる。

考え方を逆にして、パソコンのない状態を主、パソコンのある状態を従とすると、作業をし終えたら、パソコンのない状態=コミュニケーションを取れる状態となる。

チーム内で話が出来る状態を主とすることで、作業の絶対時間が減るかもしれないが、チーム内の情報伝達は進むので、無駄作業が減って作業しなければいけない絶対量が減るのではないかと思う。そもそも頭脳労働なので、考える時間と考えた事を皆に伝える時間をきちんと取らないと、後戻りが増えるだけなのである。

優秀な人達の開発方法論を読むと、皆が自律して動いているので、朝5分のミーティングと後は個別の話し合いで済むかもしれないが、チーム内に新人も含めてばらばらのスキルの人たちがいるような状態だと、うまくいかない。後戻りが発生しそうな作業を繰り返す人が出てくるからだ。

何かを任せたい、一人で作業した方がはかどるということはよくわかるが、結局後で直すのであれば意味がない。スキルに差があるなら俺の後ろで3日ぐらい見とけ、でもいいかもしれない。ペアプログラミングっぽいが、ドライバーがずーっと開発して、パートナーは見てるだけというような感じである。

1人で勉強できるような人なら、すでにスキルがあるはずだ。今の時点でスキルが身に付いていないのなら、ほったらかしても何も身に付かない。OJTをするなら、パソコンを与えずに誰かの隣につける方がよっぽど教育になる。出来たソースを追いかけさせるよりも、リアルタイムで作っているものを見せたほうがいい。

パソコンに時間を搾取されているようでは、デスマーチ以前の問題だろう。脳みその使い方をもう少し考えないといけない。