見出し画像

エンジニア組織論2 エンジニアの働き方②組織構造

マガジンリンク:アプリケーションエンジニア組織論

今回のテーマ

前回の雇用形態を踏まえて、エンジニアがいる会社はどのような組織構造になっているのか、どのようにエンジニアの組織が大きくなっていくのかについて書きたいと思います。衰退するケースに関してはアンチパターンとして別の機会にまとめたいと思います。

組織構造

まずはエンジニアとしての役職を整理しましょう。

画像2

エンジニア役職

会社毎に上記以外の様々な肩書がありますが、役割としては上記の役職のどれかに当てはまるのではないでしょうか。図の下から順に説明していきます。

Intern(実習生)は、学生や未経験者の新卒社員がスタートする場所です。やる気のある人は兎に角作りたいという気持ちが前のめりになっていると思いますが、闇雲に作っても会社が期待するプロダクトとは異なる独りよがりなものになってしまうことが往々にしてあります。それを回避するために、会社で発生する様々な業務をサポートするステップが必要になります。サポートの過程で、会社が目指す方向や作るべきプロダクトの要件、お客様(ターゲット)が誰なのか、どうやって開発を行うのかを理解していきます。

Programmer(プログラマー,PG)にはソフトウェアエンジニアも含めさせてもらいましたが、コーディングをメイン業務としてこなす方たちです。アプリケーションは当然ながらコーディングしなければ動作することはありません。アプリケーションを提供する会社としては、とても重要な業務です。またPGはアプリケーションを作ったら終わりではありません。テストコードを実装することで、単体試験〜結合試験〜受入試験において要件を満たした正常動作するかを確認することも仕事となります。

【コラム】PGは重要な業務であるとはいえ、この仕事に就いたとしても「俺のおかげで、このアプリケーションは動いている」というような驕った思考を持つことは危険です。マネージャーが従業員をPGとしてアサインするのは、コーディング能力が秀でていて費用対効果が高かったり、挑戦したいというやる気に対してチャンスを与えているからです。納期や費用対効果を一切無視すれば、コーディングは誰にでもできます。驕った思考を持つPGは周りを不快にさせるし、相手から厄介者扱いされるので、お互い良いパフォーマンスが出せません。私自身がPGだった頃は、コーディングが得意でしたが所詮道具程度にしか考えてなかったので、あまり驕ることがありませんでしたが、たまにそういう人を見かけるので、念の為書いておきました。自分の成果を認めてもらいたい気持ちも分かりますが、社内で気持ちよく仕事をするのが一番良くないですか?。世の中にはバリバリコーディングできる営業職の人も居ます。そのことを念頭に置くと驕らない思考を作る手助けになるかもしれません。

SystemEngineer(システムエンジニア,SE)は要件定義〜設計までを行い、そのドキュメントを元にコーディング業務を社内のPGに依頼したり、下請け企業に発注します。また、上がってきたプロダクトに対して動作確認(受入テスト)を行います。SIerやITゼネコンは下請け構造が出来ているので、必然的にSEが多く在籍しているかと思います。スタートアップ企業の場合は、プロダクトを軌道に乗せるために細かい仕様や設計を行わずガンガン開発するので、そもそもSEが居ないことの方が多いです。

EngineerManager(エンジニアマネージャー,EM)はSE、PG、Internとして働く人たちを管理する業務を行います。各エンジニアに会社の共有事項を伝達したり、開発しやすい環境の整備やスキル成長のサポートしたり、評価を行います。エンジニアが増えないことには管理が必要になることはほとんどないので、軌道に乗る前のスタートアップ企業はEMという役職が存在しないことが多いです。

Specialist(スペシャリスト)はPGの中でも特にスキルが高く、難易度の高い開発を遂行できる人を指します。PGがアプリケーションを作るときは、一般的にOSやプログラミング言語、ライブラリなどで提供されるAPIを元に開発を行います。しかし、会社が成長していくと提供されたAPIだけでは要件を満たせないケースが頻繁に出てきます。そうすると、プログラミング言語を変更してフルスクラッチで作る必要が出てきたり、ライブラリを自体を開発するという決断に迫られます。それらの業務を経験の浅いPGに任せるのはハードルが高いので、経験をたくさん積んだスペシャリストに任せることになります。

VPoE(Vice President of Engineering)は会社のエンジニア全員を管理する人を指します。各EMの管理業務を集約し、エンジニアの最適な人員配置やモチベーション管理、採用広報などを行います。適切な人員配置を行うためには、会社の方向性や予算、部署毎の方針など、会社のあらゆる情報にアクセスできる権限を持ち、情報を適切に理解できていなければなりません。そのためコミュニケーション能力や高度なドメイン知識が求められます。

VPoP(Vice President of Product)は会社の経営戦略に従って、全プロダクトの目標達成を目指す人を指します。開発本部長という肩書にしている会社の方が多いかもしれません。経営者が考えた戦略を具体的に現場でどう落とし込んでいくかを考え、現在のリソース(ヒト・モノ・カネ)に基づいて予算管理や開発スケジュールを線引し、スケジュール内に達成すべき要件定義を行います。

CTO(最高技術責任者)は会社の技術選定や開発サイクルを決めたり、開発組織の中で挙がってきた複数の案から最善策を考え、意思決定をする人を指します。正しい意思決定を行うために、会社で使われている技術を理解し、新技術やトレンドなどの情報にも常にアンテナを貼っていなければなりません。また、全プロダクトを円滑に回すために、時には欠けたリソースの穴埋めを行うこともあります。特にスタートアップ企業では人手が圧倒的に足りないので、あらゆる業務をこなす必要があり、体力的にも大変な役職です。

参考:VPoE と CTO の違い - Qiita
参考:マネジメントは「役割」。CTO・VPoE・VPoPが3頭分立する、Gunosyのエンジニア組織 | SELECK [セレック]

組織規模イメージ

各役職の説明をしてきましたが、全部の役職が揃ってうまく回せている会社は少ないです。ここで、会社の規模や人材規模に応じてどのような役職が存在するかをざっくり図で紹介したいと思います。私の経験に基づくものなので、全く異なる組織構造の会社さんもいらっしゃるかもしれません。

画像1

事業規模に応じた求められる役割の事例

この図の1や100は比喩表現です。社員数が1人とか100人という意味ではなく、1はローンチやファーストリリースなど世にお披露目するというフェーズと考えてください。100は事業が軌道に乗り始め、事業を大きくするために社員数が増やし、市場のターゲット層の範囲では知名度が出てくるフェーズと考えてもらえれば良いかと思います。

0→1のフェーズは、会社の規模が小さく資金も潤沢ではないケースが多いです。エンジニアを抱えず外注に任せるケースもありますが、優秀なエンジニアを1人見つけて(もしくは自分がエンジニアになって)CTOやPGとして配置してプロダクト開発を進めることが多いかと思います。VCの資金調達や自己資金が潤沢にある場合は、優秀なエンジニアを集めやすいので最初からCTOやPGを複数人配置できますが、かなりレアケースです。

1→100のフェーズは、いよいよ事業が軌道に乗り始めて大きくしようとしているところなので、ここで如何に適切な人員配置が出来るかで今後の会社の成長に影響していきます。まずは在籍する各エンジニアの意向や得意/不得意を見極めつつ、どのキャリアに進んでいくかを上長やCTOとしっかり考えて配置していきます。配置してみると会社の弱点となる部分が見えてくると思います(例えば、マネージメント能力に長けた人がいない、エンジニア広報として立てる人がいないなど)。そこで外部の優秀な人材をストック・オプションなどで誘ったり、予算を使ってサービスを導入したり、業務委託エンジニアを起用したり、採用を強化するなどあらゆる手段を施して弱点を埋めていきます。きちんと体制を整えることで、急激な需要が増えても安定した供給ができ、次のフェーズを目指す土台が出来上がります。

100→10のX乗のフェーズまで来ると、会社から応募を掛けなくても優秀な人材が集まってくるようになるでしょう。従業員も非常に増えてくるので、1人1人の役割を明確にして、会社がしっかり回るように管理を徹底しなければなりません。組織面においては、新しいスキルを身に着けたいエンジニアに成長できるチャンスを与えたり、モチベーションの上がる施策を打つことで魅力的な会社にしていく必要があります。プロダクト面では、プロダクトの品質を強化したり、素早く課題を検知できるような仕組みを作るなど、事業を指数関数的に伸ばしていくためのコストパフォーマンス対策に対応していきます。


組織構造に関するお話は以上です。次回はエンジニア個人のキャリアについて紹介していきたいと思います。最後までお読みいただきありがとうございました。

画像引用:はむぱんさんによる写真ACからの写真
この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
ありがとうございます!
5
株式会社シストライバー代表取締役。Androidアプリエンジニアからフリーランス、起業を経て、転職してエンジニアマネージャーに従事、そしてまた起業。iOS、IoT、VR、WEBアプリ、インフラ構築、経理、営業、経営、投資、なんでもやる。