私は2つの開発チームを率いて(?)いる。1つは全員がフルタイム稼働のメンバーであり、他部署との連携も活発で、小さな議論を重ねてインクリメンタルに仕様を詰めながら作っていくスタイルをとっている。もう1つは全員が別の会社での仕事をメインにした上で勤務外の時間を使ったパートタイムの稼働であり、週1回のミーティング以外はそれぞれ好きな時間帯に(だいたいが深夜帯だったり週末を利用して)稼働して、大きなステップであらかじめ決められた機能をその通りに作っていくスタイルの動きをしている。なかなか対照的なチームだけど、それぞれの事業進捗と照らし合わせても特に開発がボトルネックにはなっておらず、どちらもなかなかいい働きをしているチームだと感じている。
対照的な2つのチームを率いるということはコミュニケーションの取り方もけっこう違ってくる。前者のフルタイムのチームでは大きめの機能を作る前にまず "なぜこの機能が必要なのか", "事業や顧客に対してどういう影響を与えられるのか", "これまでどういう議論がされてきたのか", "今回作りたい機能の他にどういう方法が検討されたのか", "なぜこの期間でやりたいのか" みたいな背景となりうるなるべく多くの点について、自分の言葉でしっかり時間をとって説明することに重点を置いている。自分の言葉でというのもポイントで、そこで出てくる質問などにもその場で答えられるくらい課題理解を深めておく、あるいは分かる人をそのミーティングに呼んだりしてその場で解決できるよう調整しておく。各メンバーも自分ごととしてとらえやすくなることで自信を持って自律的に動いて開発にあたることができ、組織としての勢いがつき、結果としてスループットの高い組織になっていく。ここでは自分も他メンバーと同じような内容のタスクを一部担当して進める。
一方後者のタイプでは、前者よりは細かく仕様をあらかじめ決めておく方法をとる。"なぜ作るのか" は説明はするけれどもかける時間としては少なめで、なるべくすぐに作業に入れるよう調整する。かけられる時間も細切れだったりトタルで見てもフルタイムと比べると大きく差があるので、ミーティングは可能な限り減らし、短い時間で成果をあげられる・実感できるように意識する。ここでは自分がこなすタスクは他のメンバーとはだいぶ異なり、 UI デザイン・事前調査・問い合わせ対応・インフラ対応・リリース作業などの本流の開発ラインの周辺領域を担当する。
というように2つのチームで対照的に異なる進め方をするのだけど、自分の中では「メンバーが自分のやっていることに対してより大きな意義を感じられるように設計する」という点で共通している。前者のフルタイムチームにおいてはメインの仕事として、つまりその期間中自分の持っている時間のうち平日5日間の昼の時間帯という1番大きな部分をかけるに値する仕事をできているということを感じられるように、後者のパートタイムチームにおいては自由に使えるはずの自分の余暇時間をかけるに値する仕事をできているということを感じられるようにというのを意識している。メインの仕事とサブの仕事に求めるものの違いとも言える。副業開発チームを作りたいけどうまくいかないみたいな話をたまに聞くのだけど、ポイントはここにあると個人的に思っている。