BSA / Who Is Responsible for What


BSA

Who Is Responsible for What?

  • 第1章はソフトウェアアーキテクチャの概要、第2章はプロダクトマネジメントについて説明した。第3章はアーキテクチャの話に戻って、システムのマーケティングと技術の両側面がどのように相互作用してビジネス目標を達成するかを説明する。

マーケテクトとターキテクトのそれぞれの責務(Who Is Responsible for What?)

  • ソフトウェアアーキテクチャは、大きく2つの次元に分割できる。
    1. マーケテクチャ(marketecture) = マーケティング・アーキテクチャ / マーケテクト(marketect) = プロダクトマーケティングマネージャ、ビジネスマネージャ、プログラムマネージャ
    2. ターキテクチャ(tarchitecture) = テクニカル・アーキテクチャ / ターキテクト(tarchitect) = いわゆるソフトウェアアーキテクト、またはチーフテクノロジスト
  • ターキテクチャ = いわゆるソフトウェアアーキテクチャ。
    • サブシステム、インタフェース、処理要素間への処理責務の分散配置、スレッドモデル、等を包含する。
    • ターキテクチャのスタイル/パターン:クライアント/サーバ、パイプライン、組込システム、黒板、等。
  • マーケテクチャ = ビジネスの観点から見たシステムのアーキテクチャ。
    • ビジネスモデルの全体を具体化するもの。ライセンス/販売モデル、価値提供、顧客にとっての技術詳細、データシート、競合との差別化要素、ブランド要素、マーケティングが顧客に植え付けようとしているメンタルモデル、そのシステムの具体的なビジネス目標、等を含む。
    • マーケティング要件書(MRD)に記載される機能説明、ユースケース、等からなる。
    • しばしば、マーケティング用語で言うホールプロダクト(whole product)

[コラム] 5万ドルのBooleanフラグ(The $50,000 Boolean Flag)

  • 「ファットクライアント」なクライアント/サーバ・アーキテクチャの事例。そのビジネスモデルは、各モジュールがそれぞれ別々の価格/ライセンスで販売されていて、顧客はそれぞれのプラグインを購入することでその機能を使えるようになるというもの。
  • 実際には、サーバを真にモジュラーなアーキテクチャにする代わりに、全部のコードはモノリシックにサーバに実装されていて、単にBooleanフラグで「モジュール」を有効/無効にするだけのものだったが、プロダクトマネジメントにとってもエンジニアリングにとってもWin-Winなアプローチだった。内部では、「5万ドルのBooleanフラグ」と呼ばれるようになった。
  • 反対のアプローチでも、うまく行っただろう。実際、独立したDLLとしてクライアントサイドのCOM APIも売っていた。このアプローチでは、バグフィックスやアップデートなどの配布が容易だった。
  • 教訓:マーケテクチャとターキテクチャを区別することで、PMとエンジニアリングの両チームがより柔軟に、ベストなアプローチを選択できるようになる。