サイボウズ社内の開発体制について

こんにちは、開発部の仁科です。
今回はサイボウズ社内の開発体制について、今実際に所属しているガルーンチームの例を交えながらご紹介したいと思います。
私自身、ソフトウェア会社の開発体制というと、漠然と部長が開発メンバーを取りしきっていて、その下にプログラマーがいて…というようなイメージを持っていたのですが、サイボウズはそれとはちょっと違っていて驚いた思い出があります。

組織構造から見た開発体制

まずは組織の構成からご紹介したいと思います。
私達開発メンバーは、社内の組織としては開発本部に所属していて、さらにその中でいくつかの部に分かれています。

開発部

私たちプログラマーが所属しているのが、この開発部です。
開発部内ではさらにOffice開発グループ、デヂエ開発グループというように、いくつかのグループに分かれています。ガルーン開発グループも、位置づけとしてはここにあります。
各グループはその名の通り、大抵1つの製品を担当していますが、ネットサービス開発グループ、モバイル/リモートグループのように、複数の製品/サービスに関わっているグループもあります。
組織的には開発部長が私の上司になりますが、それぞれのグループはそのマネージャーが束ねています。
ガルーン開発グループでも、マネージャーが誰にどんなタスクを振るかというような判断をしたり、わかりやすい例で言えば毎朝開催される朝会を進行したりしています。

プロダクト管理部

私が所属しているわけではないのですが、開発部とは特に切っても切れない関係にある部なので、少し触れさせてください。
開発部とは別の部署として、各製品のプロダクトマネージャー(PM)が所属するプロダクト管理部があります。
PMは実際に製品を開発する際に、開発計画を立案し、開発メンバーを集め、製品リリースまでメンバーを引っ張ってくれます。
サイボウズでは製品仕様に営業の意見が強く反映されることが度々あるのですが、そういう場合に開発本部以外の本部との調整を担当しているのもPMです。

他にも開発本部内には品質保証部・システム開発部・UI設計部などなど、数多くの部があり、それぞれその分野のエキスパートが組織を形勢しています。
そちらの詳細については、ここでご説明するよりも、ぜひCyDNで公開されている他の記事を読んでみてください。

開発プロジェクトから見た開発体制

さて、ここまでご紹介した中で、ずいぶんと製品開発の関係者が組織的には分断されているじゃないかという印象を持った方も多いと思います。
組織的には、UIを作ってくれる人、ドキュメントを書いてくれる人、テストを専門的に実施してくれる人などなど、製品を開発する上で必要になる人達が、実は『開発部』の中にはいません。
ここで触れなければならないのがプロジェクトです。

実際に製品を開発し、リリースするまでの過程で存在しているのがプロジェクトです。
2008年4月にリリースされたガルーン2でも、PMによって開発プロジェクトが計画され、開発本部内の各部からメンバーが集まり、実際の開発を進めました。
ガルーン2ではどの部からも大抵服数人がまとまって参加していて、それぞれチームを組んでいました。ここで各チームについて簡単に説明します。

PM(プロダクトマネージャー)

PMは製品の要件について判断/決定をし、製品を作り、リリースするまでの計画を立案します。
プロジェクト全体の進捗を管理して、全体の舵取りをするのもPMの役目です。
大抵は一つのプロジェクトに1人ですが、ガルーン2のようにプロジェクトの規模自体が大きい場合には、2人以上いることもあります。

開発チーム

開発部のグループのマネージャーが開発責任者としてまとめている、PGチームです。要件から仕様書を作り、実装をし、不具合を改修し…ということを日常の仕事にしています。
ガルーン2.5ではだいたい9人くらいいましたが、今進んでいるガルーン2.5.1では6人になっています。(人数だけについて言うなら、製品規模からするとずいぶん少ない人員でまわしているという人もいるらしいです。)
過去の例では、だいたい一人1アプリくらいをざっくりと割り振られて、それにコードレビュー担当として、もう一人PGがサポートにつく、というやり方をとっています。

QAチーム

サイボウズの製品開発の特色(だと個人的には思っている)試験チームです。
品質保証担当者と呼ばれるリーダーが製品の試験計画を立案/進行し、実際のQAチームをまとめています。
QAはテストエンジニアとしてのスキルに特化した人達で、そういう人材を社内に持っているというのも、私が学生時代に驚いたことの一つでした。

この3者は要件/実装/試験と、比較的3すくみ状態になりやすいので大きく取り上げましたが、他にもUIやドキュメントからも人が集まってプロジェクトメンバーが構成されています。
ガルーン2ではベトナムのとある会社にも一部作業を出していたので、そういう意味ではメンバーは社内だけに留まってはいませんでした。

ただし、開発部内のグループは別として、UIやQAメンバーを実際に割り当てるのは各部の部長です。部長はその時々で部内の空いている人員を見ながら、どのプロジェクトに誰をアサインするという人事的な役割を担っています。
開発部ではグループごとに担当製品が決まっていますが、例えば会社として注力したい製品については、他のグループから人員を異動したり、ということもあります。
ここで強調したいのは、実際の開発作業をとりしきるポジションと、組織長としてのポジションとが切り離されている点です。

まとめ

サイボウズの組織構造は、製品の開発メンバーとは直結していません。
製品開発時に実際にリーダー的なポジションとなるPM、開発責任者と呼ばれる人達は、組織的な上長ではありません。
それは、組織構造と製品開発とで責任範囲を変えることで、それぞれのリーダーが自分の役割に専念できるようにするという意味が強いと思います。
この組織構造的な工夫も、実はサイボウズの製品作りへのこだわりのひとつなんじゃないかと、個人的には感じています。

関連するエントリー