プロジェクトよりもプロダクトを優先

ソフトウェアプロジェクトは、ソフトウェア開発に資金を提供し、組織化する一般的な方法です。プロジェクトは、一時的な構築専門チームで作業を組織し、ビジネスケースで予測される具体的な利益に基づいて資金提供されます。一方、プロダクトモードでは、永続的なビジネス課題に取り組む、永続的な、アイデア出し - 構築 - 運用を行うチームが使用されます。プロダクトモードにより、チームは迅速に方向転換し、エンドツーエンドのサイクルタイムを短縮し、ソフトウェアのアーキテクチャの整合性を維持しながら短期サイクルの反復を使用して実際の利益を検証することで、長期的な有効性を維持できます。

2018年2月20日


Photo of Sriram Narayan

スリラムは、ThoughtworksのデジタルIT管理コンサルタントです。彼は、クライアントが働き方(技術運用モデル)を変更することで、デジタル/プロダクト/エンジニアリング/IT部門のパフォーマンスを向上させる支援をしています。このトピックに関する彼の著書である「Agile IT Org Design」は、ハーバード・ビジネス・レビュー、CIOマガジン、RedHatの共同イニシアチブであるEnterprisers Projectによって、CIO必読書として紹介されました。


ソフトウェアプロジェクトは、ソフトウェア開発の資金調達と組織化を行う一般的な方法です。プロジェクトは、ビジネスケースで予測される利益に基づいて、ケースバイケースで資金提供されます。プロジェクトは、メンバーがプロジェクト組織外に永続的な報告ラインを持つ、1つ以上の一時的なチームの形で組織されます。専門分野内で代替可能と見なされる「人材プール」からスタッフが配置されます。そして通常、ソフトウェアプロジェクトチームの仕事は、何らかのシステムまたはアプリケーションを構築または拡張し、次に進むことです。

ただし、プロジェクトはソフトウェア開発の資金調達と組織化を行う唯一の方法ではありません。たとえば、ソフトウェアを製品またはサービスとして販売する多くの企業は、コア製品/プラットフォームの開発にプロジェクト形式で資金を提供したり、組織化したりしていません。代わりに、製品が市場で販売されている限り、ほぼ永続的なチームを使用して製品開発とサポートを実行します。予算は年によって異なる場合がありますが、一般的には、製品の寿命の間、永続的なコア開発組織に継続的に資金を提供するのに十分です。チームは、一定期間にわたって特定のビジネス上の問題またはオファリングに取り組むために資金提供を受けています。作業の性質は、提供する一連の機能ではなく、対処すべきビジネス上の問題によって定義されます。私たちは、この働き方を「プロダクトモード」と呼び、ソフトウェア製品を構築するためだけに、このような方法でソフトウェア開発に資金を提供し、組織化する必要はないと主張します。

プロダクトモードとは何か?

「プロダクトモード」は働き方です。これは、プロジェクトのやり方とは大きく異なる、ソフトウェア開発に資金を提供し、組織化する方法です。一般的にデジタル時代の企業ITに適用できますが、この働き方は、デジタルプラットフォームを通じてビジネスを推進することを目指す企業に特に適しています。プロジェクトとの違いは以下の表にまとめ、記事の残りの部分で詳しく説明します。

プロジェクト

プロダクトモード

何が資金提供されるか?

事前に定義されたソリューションまたは未処理のスコープに資金が提供されます。

チームに資金が提供されます。

プロダクトモードチームは、定期的なレビュー(例:年に1回)で継続的に資金提供を受けます。チームは、製品/ビジネス戦略に沿った進化するロードマップに取り組みながら、おおよそ同じ領域で、次々と問題に取り組んでいきます。

開発ライフサイクルのどの部分に資金が提供されるか?

主にソリューションの構築のため。

ソリューションの構築、実行、反復、あるいは根本的な問題が検証可能に解決されるまで、異なるソリューションへの転換のため。

「アイデア出し」、「構築」、「運用」というバリューストリームの段階はどのように組織化されるか?

別々の部門として。

単一の部門として、統一された報告階層を持つ。

チームはどれくらい続くか?

プロジェクトの資金が続く限り、つまり、理想的には最初に考案されたソリューションが提供されるまで。通常、数週間または数か月。

ロードマップがビジネス関連性を持つ限り。通常、数年。

人々は同じ分野に長く留まり、働くか?

設計上、そうではありません。特定の個人にとって、次のプロジェクトはまったく異なる分野にある可能性があります。

はい。

優先順位付けはどのように機能するか?

プロジェクトは、ビジネスとプロジェクトポートフォリオ管理(PPM)グループによって優先順位付けされます。詳細はこちら。

ロードマップの項目は、プロダクトオーナーとそのビジネス counterparts によって優先順位付けされます。横断的なイニシアチブは、ビジネスまたは技術リーダーシップによって優先順位付けされます。イニシアチブは独自のチームを持ちません。それらは既存のプロダクトモードチームに分配されます。

利益の検証はどのように機能するか?

プロジェクト承認前に、予測される利益の正式な評価に重点が置かれます。プロジェクト完了後に実際の利益を検証するメカニズムは通常ありません。

プロダクトオーナーは、A/Bテスト、分析、ユーザー調査などのデータ、またはビジネスからのフィードバックを使用して、実際の利益を証明します。この能力は、小さなチャンクで頻繁に開発およびリリースするための優れたエンジニアリング能力と、採用、コンバージョンなどのデルタ変化を判断するための優れた分析能力に依存します。

特に、短いサイクルタイムで実行し、失敗のコストを高くすることなく新しいアイデアを試すことができる最高のチームでは、事前に予測される利益を評価することには比較的重点が置かれていません。プロダクトオーナーは、適切と判断した場合、ロードマップ項目の開発を承認する権限を与えられています。小規模なエンドツーエンドの反復開発を行うことで、プロダクトオーナーは、目標を達成できない取り組みを早期に検出し、 thereby fail-fast (fail-cheap) することができます。

成功はどのように定義されるか?

合意されたスコープを時間通りに予算内で提供すること。

ビジネス成果に直接関連する、またはビジネス成果から1つか2つ以下のレベルで削除されたメトリックの改善。したがって、すべてのプロダクトモードチームは、理想的にはビジネスKPI主導のチームです。たとえば、Scout24は、トラフィック、エンゲージメントなどを担当するチームでこのように運営されています。

チーム編成に関する制約はあるか?

いいえ。

プロダクトモードは、チームがビジネス関連の機能とエンタープライズアーキテクチャの境界の両方に同時に合致するように編成されている場合に最適に機能します。前者がないと、ビジネス目標との整合性が失われる可能性があります。後者がないと、自律性、つまり他のチームから比較的独立してシステムを進化させる能力が失われます。

プロダクトモードは、もはやソフトウェアを販売する企業だけのものではありません。コンテンツをストリーミング配信し、eコマースを行い、投資信託を販売し、タクシー、宿泊施設、航空券などを検索する、いわゆるテクノロジープラットフォームによって実現されたテクノロジービジネスでは一般的です。また、より伝統的な、 old-guard 企業のデジタル/プロダクト/エンジニアリング/IT部門でも普及しつつあります。たとえば、Insurance Australia Group(IAG)は最近、プロジェクトから、プロダクトモードで運営されるより永続的なプラットフォーム組織に移行しました。ANZ Bankも同様のことを試みています。

プロダクトモードで運用されているチームには、理想的とは言えないバリエーションがいくつかあります。プロジェクトモードの資金調達とプロダクトモードの組織の中間的なアプローチを使用している場所もあります。プロダクトモード組織でさえ、常に構築+運用であるとは限りません。あるいは、 cross-functional チームは、異なる機能責任者に報告する人々で構成されています。

理想的なプロダクトモードチームは、権限を与えられ、成果指向で、ビジネス機能に合致した、長期にわたる、 cross-functional な、アイデア出し - 構築 - 運用を行うチームであり、スケジュール通りにスコープを提供するのではなく、問題を解決し、ビジネス成果を改善することができ、 expected to です。これらのチームが取り組む問題は、通常、長期にわたるものです。たとえば、カートからチェックアウトへのコンバージョンを継続的に改善する(カート放棄率を削減する)などです。また、個々のチームが所有できるように、問題を十分に狭く定義する必要があります。たとえば、「ネットプロモータースコア」(NPS)は優れた全体的な指標ですが、通常、特定のチームがサインアップするには広すぎます。

プロダクトモードでは、チームが長期にわたるだけでなく、問題領域との関連付けも長期にわたります。プロダクトモードチームは、多くの場合、プルベースの開発モードで実行され、フローの達成に重点を置き、ストーリーレベルの見積もりとリリース計画を使用して予測可能性を達成することにはあまり重点を置きません。

プロダクトモードで運用するメリット

今日の(2017年)ビジネス環境では、プロダクトモードで運用することには、プロジェクトモードで運用することと比較していくつかの利点があります。

迅速な方向転換能力

以前は、IT/エンジニアリングが市場情報やフィードバックの受信後1年以内に対応できるように設定されていれば十分でした。「デジタル」が主流になるにつれて、もはやそうではなくなりました。オンライン小売の例を見てみましょう。大まかに言って、基本的なオンライン小売プラットフォームの機能は、カタログ、注文管理、支払い、フルフィルメントに分類できます。

プロジェクトモードでは、優先順位によって、注文管理、決済、フルフィルメントに影響を与えるアクティブなプロジェクトが存在する一方で、カタログ関連のプロジェクトが存在しない場合があります。この場合、市場やビジネスステークホルダーから予期せぬカタログ関連のフィードバックを受け取ったとしても、対応できるチームが準備されていない可能性があります。通常、新しいフィードバックは、ビジネスケースとプロジェクト承認プロセスを経て、人員配置の優先順位付けが行われます。アクティブなプロジェクトを一時停止してチームをカタログに再配置できたとしても、チームはカタログに不慣れなため、すぐに成果を上げることは難しいでしょう。

一方、プロダクトモードでは、カタログ、注文管理などに専任の長期的なチームがあり、常に新しいフィードバックに対応できます。新しい情報に対応するためにチームのキャパシティの一部を転換するには、チームのプロダクトオーナーとそのビジネス counterpart の決定のみが必要です。準備のできたチームを迅速に方向転換できる能力は、応答性を向上させるための最初の要素です。

エンドツーエンドのサイクルタイムの短縮

サイクルタイムは、応答性を測る一般的な指標です。全体的なサイクルタイムには、方向転換の時間と実行の時間が含まれます。ここでは、後者の要素について検討します。

ほとんどの企業のDevOpsイニシアチブは、「変更」と「運用」の組織間の分離をまったく変更しません。通常、両方の組織は、新しいツール、デプロイメントとインフラストラクチャの自動化を導入し、場合によっては「クラウド」も導入します。より頻繁で自動化された信頼性の高いデプロイメントなどのメリットを実現することもあります。

しかし、開発から集中型運用へのハンドオフが依然として存在するため、変更を配信するためのエンドツーエンドのサイクルタイムはそれほど変わりません。プロダクトモードのチームは、構築したものをデプロイおよび運用する際に、このハンドオフに悩まされることはありません。そのため、DevOps導入の潜在能力を最大限に発揮できます。アプリケーションレベルの運用と開発を同じ場所に配置することで、エンドツーエンドのイテレーションが向上し、開発者とサイト信頼性エンジニア間の理解が深まります。

プロダクトモードのチームは通常、セルフサービスの構築とデプロイのインフラストラクチャを提供し、データセンターを管理し、アプリケーションレベル以外のセキュリティを処理する、他の専門の運用チームに依存し続けることに注意してください。これらのチームは、ビジネス機能に合致していなくても、プロダクトモードで運用される場合があります。

真の反復開発能力

COOは、技術組織のコストについて不満を言うことがよくあります。しかし、根本原因が技術以外にあるため、最大の節約機会の1つを見逃しています。高額なプロジェクトは、実際のメリットを検証するための効果的なメカニズムなしに、一度に考案され、資金提供されます。これらのプロジェクトは、メリットの提供という点で、 regelmäßig 目標を達成できません。組織がメリット実現率(実際のメリット/予測メリット)を追跡する習慣があれば、ほとんどの場合、ショックを受けるでしょう。真の反復型開発プロセスは、低コストで失敗し、費用を節約できます。

反復型開発の概念はしばらく前から存在していますが、実際には、反復はほとんどの場合、スプリントの成果発表までしか行きません。ほとんどのスクラムチームは、スコープベースのスプリントのコミットメントに縛られており、問題を解決するのではなく、計画どおりにスコープを提供することが期待されています。問題を反復的に解決するには、チームはソリューションの以前のバージョンのフィードバック(使用状況分析、ユーザー調査、ステークホルダーの証言)に対応できる必要があります。安定していて長期にわたるプロダクトモードのチームは、真に反復的な方法で問題を解決することを選択できます。

プロジェクトチームは、2つの理由から、スコープの提供から簡単に抜け出すことができません。第一に、彼らは通常、ソリューションを「構築」することのみを目的としており、実行することではありません。そのため、1つ以上のリリースでソリューションのバージョンを構築し、「運用」組織のチームに引き渡し、次のプロジェクトに移ります。第二に、プロジェクトの資金調達の仕組みでは、対処している根本的な問題の寿命よりもはるかに短い期間、チームを維持するための資金が提供されます。

例:退職金計算ツール

たとえば、金融サービス会社では、見込み顧客に退職商品を購入したり、既存のプランの拠出を改善したりすることを促す退職計算機を開発するプロジェクトが承認されました。プロジェクトチームは、計算機を構築するために必要な時間のみの資金が提供され、退職商品の利用を改善するという根本的な問題に対処するための資金は提供されませんでした。別のチームが会社のWebサイトに計算機を埋め込み、3番目のチームが必要なデジタルキャンペーンを設定して、計算機へのトラフィックを促進します。少なくとも3人の異なるマネージャー(スーパーバイザー)が、構築する内容を指定した後、またはせいぜい1日間の開始/温室に参加した後に、ビジネスステークホルダーと一定の距離を置いて作業の完了を綿密に追跡します。提供されたソリューションが市場で目標を達成できなかった場合、改善されたソリューションを見つけるために、別の資金調達と人員配置のラウンドを待たなければなりません。

プロダクトモードへの適用

プロダクトモード組織は、上記の状況にどのように対応するのでしょうか?まず、計算機を開発するために新しいチームを立ち上げることは考えません。代わりに、問題領域に最も近い既存の安定した長期的なチーム(つまり、プロダクトモードチーム)が引き継ぎます。この場合、どのようなプロダクトモードチームを持つ可能性があるでしょうか?この事業部門は多くの退職商品を販売しているので、退職商品ごとに1つのプロダクトモードチームを持つことができるでしょうか?残念ながら、ビジネスプロセスとロジックの共通性、および既存のシステムの形状のため、顧客の観点からは理にかなっていても、退職商品ごとにチームを持つことは現実的ではありません。一方、すべての退職商品に対応する単一のプロダクトモードチームは、大きすぎて管理できません。

代わりに、ビジネス機能に沿った複数のプロダクトモードチームがあります。退職商品に関する長期的なカスタマージャーニーを分割する1つの方法は次のとおりです。企業のオンボーディング、従業員の登録、退職のための貯蓄、引き出しなど。各パーティションは顧客中心であり、複数のシステムに分散されたデータとビジネスロジックを持つ重要なスライスです。カスタマージャーニー全体は大きすぎて、単一のチームが所有することはできません。したがって、各パーティション(ビジネス機能)にプロダクトモードチームが存在します。これは、カスタマージャーニー全体がカタログ、注文管理、決済、フルフィルメントとして分割されている、前述のオンライン小売プラットフォームの例といくらか似ています。

現在、登録または貯蓄を改善しようとする試みである退職計算機の作業はすべて、登録または貯蓄チームの責任範囲に該当します。このチームは、 általában 対処する問題の性質上、通常、チーム内にデジタルマーケティングスキルとマーケティングシステムおよび資産へのアクセスを持っています。チームは अब、計算機に起因するコンバージョンの改善を提供し、証明する責任を負います。長期にわたるチームとして、ソリューションの有効性を反復的に開発およびテストするのに十分な時間があり、同時に、 lull の間に他のロードマップ項目にも対応できます。

コンバージョン率の1%増加あたりのコストと時間の点で、プロダクトモードの設定は、プロジェクトモードの設定よりもおそらく有利です。特定の組織でこれを確実に検証する唯一の方法は、いくつかの問題に対してプロダクトモードを試して、結果を評価することです。

知識の保持

ソフトウェアの真実は、ドキュメント、ハンドオーバー、知識の伝達をどれだけ行っても、チームの100%の離職を補うことはできないということです。しかし、これはまさにプロジェクトモデルがもたらすものです。技術的能力は、成熟度モデル、プロセステンプレート、ドキュメント、コード、またはインフラストラクチャには存在しません. チームの中に存在し、成長します.

知識は、同じ分野で数年間働く、安定した長期的なチームの中で、よりよく成長し、維持されます。これは、数か月ごとに立ち上げと停止を繰り返すプロジェクトチームとは対照的です。*保守できないコードは、少なくとも部分的には、保守されていないチームから生じます。*

ドキュメントは有用で必要ですが、「包括的なドキュメントよりも動作するソフトウェア」を好む組織では、プロダクトモードチーム内で発生する知識の保持の代わりにはなりません。

プロダクトモードチームでは、チームメンバーは、一般的なプロジェクト期間よりもはるかに長い期間、特定の領域(ビジネスに合わせた機能)に集中できます。これは、知識の構築、問題とトレードオフの理解の向上、ビジネスSMEおよびステークホルダーとの相互作用の質の向上に役立ちます。

チームメンバーが退職すると、プロダクトモードチームは知識を失うのでしょうか?スコープ全体の集合的所有権に基づいて作業している場合は、そうではありません。チームメンバーが個別に異なる機能またはサブ領域を所有している場合、知識の保持は危険にさらされます。

アーキテクチャの整合性

プロジェクトモードにおけるインセンティブは、チームに(しばしば認識されている)短期的な機能提供を優先させ、中期的なアーキテクチャの整合性を軽視するよう圧力をかけます。チームはそのトレードオフの結果に直面しないため、長期的なオーナーシップが存在する場合に現れるフィードバックループから利益を得ることができません。プロジェクトチームは、エンタープライズアーキテクチャガイドラインを認識していないか、単にタイムリーなプロジェクト delivery を追求するためにそれらを無視することによって、アーキテクチャ負債に(意図せずに)貢献することが知られています。中期的に、この現象はシステムの安定性を損ない、 delivery の速度を低下させます。いくつかの例を挙げます。

  • 彼らは、今後の後継システムとの統合に多大な労力を費やす代わりに、廃止予定のシステムとの統合に低労力で取り組む可能性があります。これは、廃止ロードマップを損ない、類似した機能を持つ複数のシステムを持つアプリケーションランドスケープの保守コストを増加させます。
  • 彼らは、APIを介して機能を公開した後に統合する代わりに、ダウンストリームシステムと直接データベース統合を実行してしまう可能性があります。これは、データベーススキーマの破壊的な変更を必要とするダウンストリームシステムの進化を阻害します。

一方、プロダクトモードチームは、自分たちが所有するシステムに他のチームが不適切に統合することを許しません。なぜなら、彼らはその結果をより深く認識しているからです。これは、「構築+運用」チームがシステムを所有することの利点であり、運用のみのチームがシステムを所有するプロジェクトモードとは対照的です。

コードとシステムの所有権

コードとシステムのチームレベルのオーナーシップは、チームが ideate-build-run モードで運用する能力を大きく向上させます。オーナーシップにより、チームはシステムをより迅速かつ制御された方法で進化させることができます。しかし、集合的オーナーシップの理想についてはどうでしょうか?個々のオーナーシップの代替案は問題があるため、チーム内で集合的オーナーシップを目指すべきです。しかし、チーム間では、オーナーシップの明確な境界設定により、説明責任のある autonomy が可能になります。

内部オープンソースモデルは、最先端のテクノロジー企業の一部で使用されています。どのチームの誰でも、管理者(オープンソースプロジェクトのコアコミッターチームと同様)チームにプルリクエストを送信することにより、ほぼすべてのコード領域への変更を提案できます。

このモデルはチームレベルのオーナーシップと共存できますが、依存チームが必要な変更をセルフサービスで行うというデフォルトの期待を生み出す傾向があります。これはオープンソースプロジェクトでは一般的な期待ですが(「バグを見つけましたか?素晴らしい。修正を送信してください。」)、ほとんどの主流のエンタープライズデジタル/エンジニアリング/ IT部門では非現実的です。一つには、異種システムを効果的に変更するためのドメイン知識のレベルがほとんどありません。その上、すべてのコードをセルフサービス可能なレベルのドキュメント、ビルド(チェックアウトしてビルドするだけ)、およびテストの準備状態で維持する必要があります。これは、ほとんどの組織にとって高いハードルです。これは、内部オープンソースイニシアチブが、それを試みたほとんどの主流企業で失敗した理由の1つです。このような組織にとって、デフォルトの期待をセルフサービスではなく、交渉された依存関係としておくことが現実的です。デフォルトでは、変更は所有チームと合意し、優先順位を付け、 delivery する必要があります。

チームのモチベーションとダイナミクス

チームは、ユニットとして効果的に連携するために時間をかけます。タックマンのグループ開発理論は、チームがパフォーマンス段階でその溝を見つける前に、一連の最適ではない段階(形成、 storming 、および規範化)を経ると主張しています。人員配置のプロジェクトモデルは、チームが規範化または実行段階に入るとすぐにチームを解散させるリスクがあります。安定していて寿命の長いプロダクトモードチームは、長い実行段階の恩恵を受けることができます。

研究では、 autonomy 、習熟、目的、および所属が重要な内的動機付け要因として特定されています。プロダクトモードチームは、典型的なスコープ delivery プロジェクトチームよりも大きな autonomy と目的を持っている傾向があります。したがって、プロダクトモードチームの導入は、経営陣が新しい normal に適応するのに時間がかかるとしても、通常は部隊から歓迎されます。

フローと反復の経済性

製品開発において、私たちの最大の無駄は非生産的なエンジニアではなく、プロセス queue でアイドル状態になっている作業成果物です。

--ドナルドG.ライナーツェン

これまでの議論は、従来のITの知恵とは反対のように聞こえるかもしれません。しかし、ビジネスの状況は、スマートフォンが市場に出た頃から劇的に変化しています。 IT /エンジニアリングをコストセンターとして扱うことは決して賢明ではありませんでしたが、今では擁護できません。コスト効率を最優先に考えてITを管理することは、これまで以上に逆効果でした。鈍いバックエンドITの上に高速の「デジタル」フロントエンド組織を作成するだけでは十分ではありません。バイモーダル/ツースピードITは誤った前提に基づいており、その加害者はそれを認め始めています。

従来のITの知恵は、いくつかの面で時代遅れです。そのような分野の1つは、ITスペシャリストの活用を最大化するために、規模の経済に合わせてITチームを編成するという norm です。ある意味で、プロジェクトベースの運用モデルは、1つは一時的な変更チームの使用、2つ目は設計、テスト、展開などのための共有サービスの使用によって、この norm を反映しています。一方、フローと反復の経済は、応答性の目標にとってより重要です。

規模の経済は、処理の規模の増加に伴い処理の単位コストが削減されるときに発生します。一方、フローの経済は、処理の単位時間(バッチサイズ1のエンドツーエンドのサイクルタイム–シングルピースフロー)が処理のフローの改善に伴い減少するときに発生します。多くの共有サービスによってサポートされているビルドのみのプロジェクトチームは、規模の経済を実現するのに役立つかもしれませんが、 ideate-build-run プロダクトモードチームはフローの経済を実現するのに役立ちます。

同様に、反復の経済は、小さな変更で反復する能力の向上に伴い、ビジネス上の利益を達成するために必要な労力が削減されるときに発生します。ビルドのみのプロジェクトチームは、効果的に反復するには多すぎるハンドオフに悩まされています。その上、彼らは実際のフィードバックに基づく一連の反復を維持するのに十分な期間生きていません。プロダクトモードチームは、設計上、これらの欠点に悩まされることはありません。

プロダクトモードで運用する際の課題

スタッフの活用

一般的な懸念は次のとおりです。「プロダクトモードチームの仕事がなくなった場合はどうなりますか?」。チームがカタログやフルフィルメントなどの十分な大きな領域を担当している場合、これは決して起こりません。また、チームの規模は定期的に(たとえば、年に1回)見直され、変化する相対的な優先順位に合わせて調整されます。一部の場所では、従業員のコアチームと請負業者によるフレックストップアップのコアプラスフレックスモデルを使用しています。それでも、特定のビジネス機能領域に堅牢または十分に重要なロードマップがない場合は、次のレビューまで、隣接する機能に(コアチームとともに)折りたたまれます。

場合によっては、根本的な質問は次のとおりです。「私たち(PMOなど)が特定のチームの作業領域で何も優先順位付けしない場合はどうなりますか?」そして答えは、プロダクトモードチームは権限を与えられた半 autonomy 的なユニットであることを意図しているため、外部からの優先順位付けに完全に依存していないということです。部門横断的なイニシアチブのみが外部から優先順位付けされます。ロードマップの作業については、チームレベルのプロダクトオーナーは、ビジネスの利害関係者と協力して優先順位を付ける権限を与えられています。経験則として、3分の2のロードマップ作業と3分の1以下のイニシアチブ作業を目指してください。したがって、ポートフォリオ管理は、プロダクトモードで根本的に変化します

機能横断型チームのさまざまな役割の活用はどうでしょうか?すべての異なる役割を忙しくしておくのに十分な仕事がない場合はどうなりますか?まあ、人々は自分のスキルに隣接する仕事を引き受けます。たとえば、ビジネスアナリストは探索的テストを実行したり、QAはドキュメントの改善を支援したりする可能性があります。当初は、最初のレベルのスキルを習得するために他の人をシャドーイングする必要があるかもしれませんが、すぐにスペシャリストから一般化するスペシャリストになります。

活用のトピックについて言えば、活用を最適化することはエンドツーエンドのサイクルタイムの短縮に有害であることに注意することが重要です。高速道路の交通の流れを改善するために、その活用率を向上させる(つまり、より多くの車両を導入する)ことはありません。活用に重点を置くことは、「コストセンターとしてのIT」という考え方の名残です。デジタルビジネスには場違いです。

孤立化

安定していて寿命の長いチームは、島国根性と一般的な停滞のレシピではないでしょうか?それはリスクですが、通常、技術チームには常にいくらかのチャーンがあり、これは新しい思考の注入を提供します。また、多くの組織は、顧客体験、A / Bテストなど、特定のコンピテンシーに合わせた非公式の内部ネットワークである実践コミュニティを後援し、チーム全体の人々を集めています。

新たなサイロ化

プロジェクトモードでは、製品管理、アーキテクチャ、設計、開発、テスト、運用、サポートなどのサイロが発生します。プロダクトモードでは、カタログ、注文管理、支払、フルフィルメントなど、ビジネス機能に合わせた新しいサイロになってしまうのでしょうか?おそらく、しかし、それらはアクティビティ指向のサイロほど悪くはありません。プロダクトモードチームは、成果指向であるため、最悪の場合でも、ビジネス成果に向けて取り組むサイロが発生する可能性があります。ビジネス機能に合わせたサイロは、製品開発バリューストリームの段階に合わせたサイロほど悪くはありません。

とはいえ、「問題の解決」などのサービスエクスペリエンス、または「注文から現金化」などのビジネスバリューストリームによって定義されたビジネスに合わせた機能境界に沿ってプロダクトモードチームを編成することにより、新しいサイロのリスクをある程度軽減できます。これが単一のチームにとって大きすぎる場合は、複数のチーム(Spotifyで普及したネーミングスキーマの観点から、トライブ内の分隊)にセグメント化しますが、それらを同じ場所に配置し、サービスエクスペリエンスチャンピオンまたはビジネスバリューストリームオーナーを任命して、セグメントレベルのプロダクトオーナーと協力するようにします。

対策として、複数のプロダクトモードチームにまたがるイニシアチブについては、プロダクトオーナーとビジネスの利害関係者と協力する、サイロを貫通する、優先順位を交渉する、依存関係を管理するソリューションチャンピオンを任命することをお勧めします。もう1つの良い習慣は、18か月から24か月など、長期間のスティントの後、チームを変更するオプションを人々に提供することです。

最終的に、プロダクトモードでのサイロ打破は、 autonomy とともに整合性を確保することです。昔ながらのアプローチは、 autonomy を犠牲にすることで整合性を実現します。代わりに、アラインメントマップなどの手法を使用して、両方の長所を最大限に活用します。

その他の考慮事項

これまでのところ、私たちは利益と課題のレンズを通してプロダクトモードを見てきました。この最後のセクションでは、その他のいくつかの一般的な考慮事項について説明します。

階層化されたチーム

前述のオンライン小売の例では、カタログ、注文管理、チェックアウト、フルフィルメントなどのプロダクトモードチームが提案されました。退職商品の例では、搭乗、登録、保存、引き出しなどのプロダクトモードチームが提案されました。これは、これらのチームがエンタープライズアプリケーションスタックに関してエンドツーエンドの責任を負っているかどうか、つまり、市場向けのフロントエンドシステムからバックオフィス機能をサポートするバックエンドシステム(下の図のティア3および4)までの質問を提起します。以下の理由により、答えは「常にではありません」。

図1:オンライン小売における階層化されたプロダクトモードチームの簡略化された例。

エンドツーエンドの責任は成果志向に役立ちますが、システムの形態を考えると現実的でない場合が多いです。例えば、オンライン小売プラットフォームは通常、少なくとも、顧客向けのウェブアプリとモバイルアプリ、サポート向けのコールセンターアプリ、店長向けの店舗管理アプリをフロントエンドとして備えています。通常、これらのフロントエンドシステムはそれぞれ、カタログ、注文管理、チェックアウト、フルフィルメントなどの基盤となる機能に独自の依存関係を持っています。通常、エンドツーエンドのカタログ(またはその他の機能)チームにとって、明確なフロントエンドシステムの境界はありません。例えば、ティア4の店舗管理アプリチームが、カタログなどの単一のティア3機能のみに依存している場合は、そのチームを回避できる可能性があります。図では、店舗管理がカタログ以外にも依存関係を持っていると想定しています。したがって、図のように、ティア3とティア4に別々のプロダクトモードチームを配置しています。上位ティアは下位ティアのコンシューマーです。

最近のトレンドは、フロントエンドシステムをティア3の機能に対応するマイクロフロントエンドに分解することです。これにより、ティア3とティア4にまたがるエンドツーエンドチームを編成しやすくなります。しかし、マイクロサービスに移行した/移行中のほとんどの企業は、まだマイクロフロントエンドへの移行を計画していません。

場合によっては、複数のティア2B機能をサポートするレガシーシステムが存在することで、ティア3チームが対応するスキルを持つティア2Bチームにも依存する状況が発生することがあります。理論的には、ティア2Bの人員を対応するティア3チームに組み込むことは可能です。しかし実際には、これは、ティア2Bの能力が不足していること、または共有構成管理、テスト環境などの実際的な課題によって制約される可能性があります。

ティア1とティア2Aは、継続的デリバリー、DevOps、リーン製品開発を実現するためのイネーブラーです。これらは、ビジネスドメイン全体に適用できます。例えば、パイプラインインフラストラクチャチームは、Jenkins/GoCD/TeamCity...インフラストラクチャの保守を担当します。彼らは、上位ティアチームのビルドの破損に対応する責任はありません。したがって、上位ティアは下位ティアに1つ以上の依存関係を持つ場合があります。ティアに関係なく、各チームは、安定した、長期的な、クロスファンクショナルな、成果志向の、ideate-build-runチームであるという意味で、プロダクトモードです。下位ティアチームは、上位ティアチームを(スコープデリバリーではなく)問題解決の観点から(社内)顧客として扱います。

スクワッドとトライブ

多くの場合、カタログのような単一の領域は単一のチームにとって大きすぎる可能性があり、それを複数のプロダクトモードチームに分割することは問題ありません。この場合、カタログトライブには複数のスクワッドがあり、それぞれに独自の成果、ロードマップ、および管理下のシステムがあります。この構造により、各スクワッドに組み込むのが難しい役割をローカルで(トライブ内で)共有することもできます。スクワッドは典型的なプロジェクトチームよりもはるかに長期間存続することを意図していますが、スクワッドメンバーは、知識の幅を広げ、単一障害点になることを避けるために、18〜24か月間隔でトライブ内で意図的にローテーションするように求められる場合があります。

しかし、プロダクトはどこにあるのか?

冒頭で述べた点を繰り返しますが、プロダクトモードで運用するために製品を構築する必要はありません。とはいえ、市場で販売されているものという製品の従来の定義を超えて考えると、カタログを製品であるかのように見ることが可能です。カタログのような機能がチームが所有するシステムのセットに含まれ、社内アプリケーションまたは十分に文書化されたAPIを介して公開されると、社内顧客に対応する、再利用可能でセルフサービスの、製品のような機能になります。同じことが下位ティアのプロダクトモードチームにも当てはまります。

結論

要約すると、応答性を高め、利益実現率を高めるためには、「プロダクトモード」はプロジェクトよりも効果的な作業方法です。

主流の企業のデジタル/製品/エンジニアリング/IT部門にとって、これは抜本的な変化のように感じられるかもしれませんし、ある程度はそうです。しかし、それは、私たちが「プロジェクト」というやり方に深く染まっているために、抜本的に感じられるだけです。AmazonのCTOであるWerner Vogelsは、2006年に採用した同様のアプローチについて説明しました。

Amazonで使用しているきめ細かいサービスアプローチでは、サービスはソフトウェア構造だけでなく、組織構造も表しています。サービスには強力なオーナーシップモデルがあり、これは小規模なチームサイズと組み合わさって、革新を非常に容易にすることを目的としています。ある意味で、これらのサービスは大企業の壁の中にある小さなスタートアップと見なすことができます。これらのサービスはそれぞれ、顧客が社外であるか社内であるかに関係なく、顧客が誰であるかに強く焦点を当てる必要があります。

-- Werner Vogels

プロダクトモードに移行するには、反復的で失敗しやすいアプローチを採用するのが最善です。1つまたは2つのパイロットから始め、学び、適応させます。詳細なロードマップを含む大規模な変更プログラムを承認することに慣れている人にとっては、不健全に感じられるかもしれませんが、(予測された利益ではなく)実際の利益を検証する前に過剰投資を避けることは、リーンアジャイルマインドセットの本質です。


謝辞

Martin Fowler、Evan Bottcher、Duncan Stephens、Brandon Byars、Kevin Yeungを含むすべてのレビュアーに感謝します。さらに、編集と出版にご尽力いただいたMartinに特に感謝いたします。

FAQ(よくある質問)

プロダクトモードでは、セキュリティと規制コンプライアンスにどのように対処しますか?

プロダクトモード自体は、プロジェクトと比較して、これらの懸念事項に対して大きく異なるアプローチを必要としません。とはいえ、プロダクトモードは、これらの懸念事項を専門の共有サービスに完全に分離することを推奨していません。社内コンサルティングのアプローチを通じて、セキュリティとコンプライアンスの専門家は、スクワッドとトライブがこれらの分野である程度の能力を獲得できるようにすると同時に、包括的なレビュー/監査/制御機能を提供し続けます。プロダクトモードでは直接必要ありませんが、応答性の要求により、自動監査への移行が促進されます。詳細は、このデッキを参照してください。

バイモーダル/ツースピードITに沿って、デジタル組織をプロダクトモードで、IT組織をプロジェクトモードで運用することはできないでしょうか?

バイモーダル/ツースピードの処方は、ソフトウェアをアジャイルな方法で構築するか、信頼性の高い方法で構築するかのいずれかであり、両方ではないという誤った前提に基づいています。アジャイルエンジニアリング手法は信頼性を通じてスピードを実現するという点を理解していません。

プラットフォームの時代になぜ「プロジェクトよりも製品を優先」するのでしょうか?

繰り返しますが、この記事は製品の構築に関するものではありません。組織とチームがプロジェクトモードではなくプロダクトモードで作業することについてです。この作業方法を通じて、彼らはしばしば、ビジネスにとって意味のある社内または社外のプラットフォームを作成します。たとえば、階層化されたチームの図では、第3層が第4層でのクロスチャネル消費のための社内ビジネスAPIプラットフォームを開発しています。

製品/プロジェクト中心ではなく、顧客中心に組織化すべきではないでしょうか?

スコープを提供するだけでなく、問題を解決するためにチームを編成することにより、プロダクトモードはプロジェクトよりも優れた顧客/市場/ビジネス中心性を実現します。

プロダクトモードは外部委託チームとどのように連携しますか?

プロダクトモードでは、ベンダーにアウトソーシングするプロジェクトはありません。代わりに、ベンダーは、主要な役割を社内の人材で配置した、安定した、長期的な、ideate-build-runチームを提供するように求められる場合があります。

これは機能チームとどのように比較されますか?

機能チームは通常、ideate-build-runチームではありません。彼らはビルドのみを行います。彼らは、他のチームとのビルド時のハンドオフ/依存関係があまりない状態で、次々と機能を構築します。機能は、ビジネスドメインの同じサブ領域にない場合があります。チーム自体は長期間存続する可能性がありますが、ビジネスドメインの領域との関連付けがないため、知識の保存が危険にさらされています。

プロダクトモードはコンウェイの法則とどのように適合しますか?

組織のコミュニケーション構造がシステム設計に影響を与える範囲で、そのような境界がまだ存在していなくても、階層化されたチームの図に示されている線に沿ってアーキテクチャの境界が発展/硬化するのを目の当たりにするかもしれません。したがって、プロダクトモードで運用することで、一枚岩のエンタープライズアーキテクチャからの脱却が促進される可能性があります。

プロダクトモードチームは、製品/アプリケーションを開発し、その後は主にメンテナンスを行う場合、どうすればよいですか?

「一度構築してその後はメンテナンスする」というのは古い考え方です。これは、目標を達成できない製品、つまり無駄な投資につながります。プロダクトモードは、開発とメンテナンスが並行して行われ、製品の寿命が尽きるまで続く、進化し続ける製品/アプリケーション/機能/プラットフォームに最適です。「機能」の粒度で同じ質問をすると、答えは、彼らが他の問題(新しい/強化された機能/エクスペリエンスによって対処される)を引き受けるということです。

システムの所有権が大きく一枚岩のシステムによって制約されている場合、プロダクトモードは機能しますか?

モノリスは、多くのスクワッドまたはトライブによって(ビルドと実行のために)共同で所有されなければならない場合があります。作業の全体的なパイプラインが、特定のスクワッドまたはトライブが他のスクワッドまたはトライブよりもはるかに多くの変更をモノリスに加える必要があることを示している場合、一時的な所有権(たとえば1年間)を割り当てることが可能な場合があります。この期間中、所有チームは着信の依存関係を処理します。場合によっては、「実行」の共有所有権が問題になる可能性があり、モノリスがより小さなシステムに分解されるまで、一部の「実行」機能を別の専用の運用チームに割り当てる必要がある場合があります。

プロダクトモードでは、技術的負債にどのように対処しますか?権限を与えられたプロダクトオーナーが常に機能を優先することを選択した場合はどうなりますか?

プロダクトオーナーは、技術リーダーとエンタープライズアーキテクトのアドバイスを受けて、技術的負債に関する作業の優先順位を付けることが期待されています。彼らは、機能を優先するために技術的負債の作業を一時的に遅らせることを選択するかもしれませんが、最終的には、彼ら(とチーム)は安定した方法で問題を解決する責任があります。技術的負債に対処しないと、問題は何らかの形で再発するはずです。バランスをとるのが難しい歴史を持つ組織は、意思決定記録を使用して、プロセスにある程度の厳密さを導入することができます。

プロダクトモードでは、異なるスタイルのガバナンスが必要ですか?

プロジェクトからプロダクトモードへの移行は、スコープデリバリーチームから問題解決チームへの移行でもあります。それに対応して、私たちは予測可能性よりも価値を重視して統治します。プロダクトモードでは、価値を追加する人と価値を追跡する人の比率が上がります。利用率よりもフローを重視するプルベースのデリバリー手法は、プロダクトモードにより関連しています。

統合された報告階層の必要性は、プロダクトモードチームが最終的にビジネスに報告することを意味しますか?

必ずしもそうとは限りません。トライブレベルのプロダクトオーナーは、1人以上のビジネスプロダクトオーナー/マネージャー(損益を所有しているか、損益を所有している人に報告する)と協力するソフトウェアプロダクトオーナーと考えてください。ソフトウェアプロダクトオーナーは、最終的にCTO、CPO、CDO、またはCIOに報告します。

プロダクトモードで常に進化するソフトウェア開発に移行することで、ソフトウェア開発コストを資本化する能力は低下しますか?

これはよくある誤解であり、答えは正反対です。ビジネスバリューに早期かつ継続的に焦点を当てることで、従来の線形アプローチよりも多くの努力を資本化することができます。たとえば、この投稿を参照してください。

チームはまだタイムシートに入力しますか?

プロダクトモードは、プロジェクトではなく、安定した長期的なチームへの資金提供に関するものですが、それでも特定の問題の解決に費やされた労力を追跡したい場合があります。そのため、時間追跡は依然として必要になる場合がありますが、タイムシートだけがその方法ではありません。たとえば、アジャイルプロジェクト管理ツールを使用して、ストーリーの遷移時間を報告するように設定することで、時間追跡を行うことができます。詳細は、書籍「Agile IT Org design」のセクション9.4を参照してください。

変更を行うための具体的な手順は何ですか?

それはこの記事とFAQの範囲を超えていますが、概略としては、まず技術部門とビジネス部門の経営幹部の賛同を得ることから始まります。また、専門家による初期の計画とガイダンスがあっても、実際の変更は試行錯誤しながら進められることを理解しておくことも役立ちます。

アイデア出し - 構築 - 運用チームは、Googleの専任SREチームモデルからの逸脱ですか?

はいでもあり、いいえでもあります。アイデア出し - 構築 - 運用チームは、オンデマンドでSREコンサルティングも提供するTier-2A SREインフラストラクチャチームと共存できます。Björn RabensteinとMatthias Rampkeは、著書「Seeking SRE」の中で、SoundCloudでの経験について述べています。重要な点は、Google / Netflix規模未満では、アプリケーションランドスケープからのさまざまなドメイン固有のアラートに効果的に対処できる専任のSREチームを配置するには、費用がかかりすぎる可能性があるということです。

アラインメントの罠を回避するために、プロダクトモードを採用する前に、ITの有効性に焦点を当てる必要はありませんか?

ITの有効性は必須ですが、変化し続ける目標でもあります。2018年の時点で、まだ順番に実行できる余裕がある場合は、ぜひそうしてください。別のアプローチは、ITの有効性の面で全力を尽くし、プロダクトモードで深さ優先(垂直スライス)を行うことです。

主な改訂

2018年2月20日:Tier2Bを追加、FAQを更新

2017年12月6日:FAQを追加

2017年11月27日:第3回:プロダクトモードの課題

2017年11月20日:第2回:プロダクトモードの利点

2017年11月16日:第1回として「プロダクトモードとは」を公開