大手IT企業はどのように社内の開発プロジェクトを管理しているのか?
企業は製品開発や新機能の追加、収益増加に向けた戦略開発といったさまざまなプロジェクトを立ち上げており、その管理アプローチは企業ごとにさまざまです。「世界的な大手IT企業はどのようにプロジェクトを管理しているのか?」という疑問について、ソフトウェアエンジニア・マネージャーとしてSkypeやUber、Microsoftなどの大手IT企業で働いてきたGergely Orosz氏が解説しています。
How Big Tech Runs Tech Projects and the Curious Absence of Scrum - by Gergely Orosz - The Pragmatic Engineer
https://newsletter.pragmaticengineer.com/p/project-management-in-tech
まず、Orosz氏は100社を超えるさまざまな企業が採用する管理アプローチを調査しました。その結果、それぞれの管理アプローチは企業形態によってさまざまであることが判明。たとえば、従業員数が5人のベンチャーIT企業と従業員数が1000人を超える非IT系企業はそれぞれ異なるアプローチで成功する場合があり、同じ企業内でも異なるアプローチを好む人がいてもおかしくありません。
しかし、検討する価値がある洞察も複数得られたとのことで、以下のような調査結果をOrosz氏は報告しています。
・自律性や柔軟性が高いチームの従業員は満足度が高い。
・プロジェクトがうまくいかないチームが抱える問題は、ビジョンの欠如・優れたエンジニアの退職・透明性の欠如・性能が低いツールなど、プロジェクトの管理アプローチ以外の部分にある場合がほとんど。
・プロジェクトの見積もりにエンジニアが関与していない場合、その管理アプローチはうまくいかないことが多い。
・プロジェクトの要件変更はエンジニアの不満を増加させる。
・失敗した管理アプローチを変更する自律性がないチームは満足度が低い。
多くの企業がさまざまな管理アプローチを採用している一方で、Amazon・Apple・Facebook・Google・Netflix・Spotify・Uber・Shopify・Datadogといった大手IT企業は、プロジェクトの管理アプローチに共通する特徴が見られたとのこと。Orosz氏が発見した特徴は以下の通り。
・専任のプロジェクトマネージャーではなく、開発チームのエンジニアがほとんどのプロジェクトを主導する。
・開発チームは採用する管理アプローチを自由に選択できる。
・開発チームレベルでは専任のプロジェクトマネージャーが存在せず、複数のチームや組織全体が関与する大規模なプロジェクトでは、テクニカルプログラムマネージャー(TPM)が全体を管理する。
・プロジェクトの管理ツールやプロセスは同じ組織内であっても開発チームごとに異なり、それぞれのチームは自分たちが適切だと考えるタイミングでプロジェクトを振り返る。
・開発チームには最高クラスのツールが提供されている。
上記の大手IT企業に共通する特徴は、必ずしも全ての企業にとって有効なアプローチであるとは限りません。そもそも、大手IT企業には上記の自律性が高いアプローチが可能になる環境が存在するとのことで、Orosz氏は以下のような環境が大手IT企業に存在すると主張しています。
1:ソフトウェアエンジニアチームの自律性が高い
従来の企業において、ソフトウェア開発者に期待されているのは「割り当てた作業を完了すること」です。しかし、大手IT企業では「ビジネスが抱える問題を解決すること」が求められており、この違いがエンジニアの働き方そのものに影響を及ぼすとのこと。
2:エンジニアが「思考しない労働者」ではなく「好奇心旺盛な問題解決者」である
言われた仕事だけをこなす労働者と比較して、やる気に満ちたエンジニアは数倍もの影響をビジネスに及ぼすことができます。もし、従業員が機械のように仕事をこなすだけの存在であれば、大手IT企業よりもしっかり労働者を管理するアプローチの方が成功しやすいと考えられます。
3:内部データ・コード・文書の透明性が高い
多くの大手IT企業では、エンジニアに限らずさまざまな従業員がリアルタイムのビジネス指標やデータソースにアクセス可能であり、独自のクエリやカスタムレポートを作成できるそうです。
4:他の従業員との関係がある
大手IT企業のエンジニアは、他のビジネス部門と関係を構築することが奨励されていますが、従来の企業ではエンジニアが積極的に他部門の従業員とやり取りすることは難しい場合があります。
5:エンジニア間のやり取りが簡単
大手IT企業では個々のエンジニアがチャットなどで気軽にやり取りできますが、階層的なコミュニケーションを用いる一部の企業ではエンジニア間の情報交換がスムーズにできず、意思決定が遅延する原因になっているとのこと。
6:エンジニアのエクスペリエンスに投資する
エンジニアによる問題解決を重視する企業は、エンジニアが利用する社内プラットフォームをサポートするチームを迅速に立ち上げて、エクスペリエンスの改善を図っています。
7:より高い賃金を支払う
エンジニアを上手に活用している企業は、市場のトップクラスに近い給与を支払うことができるため、優秀なエンジニアを引きつけることができます。
8:才能あふれるエンジニアを雇う
大手IT企業は以上のような特徴を持っていることから、非常に有能で意欲的な人材を獲得することが可能です。
Orosz氏が大手IT企業の重要な特徴として挙げているものに、「各開発チームの自律性が強い」という点に加え、「それぞれのチームに専任するプロジェクトマネージャーがおらず、代わりに製品全体を管理するプロダクトマネージャーが存在する」という点があります。
FacebookのプロダクトマネージャーであるWill Lawrence氏は、「プロダクトマネージャーの役割は『私たちがプレイしているゲーム』と、『ゲームをどのようにプレイするのか』を把握することです」と説明しています。これはつまり、企業として投資する価値がある分野を見つけ、どのような製品を作ることが望ましいのかを見つけることであり、各分野を担当するチームと連携してロードマップを作成し、作業に優先順位を付けることもプロダクトマネージャーの仕事です。
多くの場合、プロダクトマネージャーは製品開発における個々のプロジェクトを管理しておらず、それぞれの開発チームが自らのプロジェクトの実行責任を負っています。エンジニアが自らプロジェクトのリーダーとなることで、自分たちが働きやすい開発プロセスを作りだし、他チームとのコラボレーションでもプロジェクトマネージャーを経由せず、エンジニア同士が簡単にやり取りできるとのこと。
もし、異なるオフィスやタイムゾーンにまたがる複数の開発チームが関与する複雑なプロジェクトの場合は、専任のテクニカルプログラムマネージャー(TPM)が全体を管理し、エンジニアの負担を軽減するそうです。
なお、Orosz氏は多くの人々がプロジェクトを管理するアプローチに興味を持っている一方で、企業の成功が常に管理アプローチと相関するわけではないと指摘しています。もちろん「プロジェクトをどのように実行するのか」は重要ですが、プロジェクトの最終目標やリーダーシップ、人々のスキルといったさまざまな要因が成功と関わっており、管理アプローチは複雑で絶えず変化するパズルのピースにすぎないと述べました。
・関連記事
優れたソフトウェア開発チームが持つ共通点とは? - GIGAZINE
大手IT企業も実施している目標管理法「OKR」が一部の企業で失敗している理由とは? - GIGAZINE
数々のエンジニアリングチームを導いた人物がマネジメントの中から学んだ教訓とは? - GIGAZINE
完璧なチームはどうやって生み出されるのか? - GIGAZINE
ソフトウェア開発者が感じる企業への不満とは? - GIGAZINE
「ITの開発現場によくいるやっかいな人」の対処法をタイプごとに解説したサイトが登場 - GIGAZINE
優れたプロダクトマネージャーになるための22原則 - GIGAZINE
・関連コンテンツ
in メモ, Posted by log1h_ik
You can read the machine translated English article How do big IT companies manage their in-….