0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CCPMを使ったパイプラインアーキテクチャ改善

Last updated at Posted at 2025-11-01

前置き

今回は、パイプラインアーキテクチャとCCPMの関係について迫っていきます。

パイプラインアーキテクチャを議論するときには、このCCPMの考えは避けて通れません。

特に、ファンイン・パイプライン(モジュラーモノリスや同期サーガ)は、その構造上、TOC(制約理論)とCCPM(クリティカルチェーン・プロジェクトマネジメント)の考え方が最も重要になるアーキテクチャです。

このファンイン構造で、ボトルネック(クリティカルチェーン)を正確に特定せずに改善活動を行うことは、限りあるリソース(開発者の時間、実行予算)を無駄に使い果たすことに直結します。

なぜファンイン・モデルがTOC/CCPMそのものなのか

CCPMの根底は、TOC(制約理論)の思想です。
「最も遅いパイプライン経路が、全体のリードタイムを決定する」というものです。

1. 「クリティカルチェーン」の明確な存在

ファンイン・パイプラインとは、「複数の並列プロセスがすべて完了するのを待って、最後の集約(ファンイン)プロセスを実行する」 タイプのモデルです。

image.png

パイプラインの構造

Pipe A (コアドメイン):ビルド&テスト 20分

Pipe B (補完ドメイン):ビルド&テスト 8分

Pipe C (一般ドメイン):ビルド&テスト 5分

Deploy (Fan-in Step):上記3つすべてが成功したら実行

クリティカルチェーンの特定

このCI/CDパイプライン全体のリードタイム(LT)は、20+8 +5 = 33ではありません。

それは、Pipe BPipe Cが完了しても、DeployステップはPipe Aが完了するまで待たなければならないからです。
全体のリードタイムは、最も遅いパイプ(Pipe Aの20分) によって決定されます。

このPipe Aこそが、TOCでいう「ボトルネック」であり、CCPMでいう「クリティカルチェーン」 です。

2. リソースを無駄に使い果たすメカニズム

もし、この「20分」というボトルネックを特定せずに改善を行った場合、以下の事態が発生します。

誤った改善(TOCの原則違反)

Pipe Cを担当するチームがECRSを適用し、5分かかっていたプロセスを2分に短縮したとします。これは一見「改善」のように見えます。

ただし、全体から見たら、何も改善していません。ただのコストの無駄遣い。

無駄な結果

しかし、パイプライン全体のリードタイムは、依然としてPipe A20分によって決定されます。全体の時間は1秒も短縮されていません。

Pipe Cを改善するために使ったチームのリソースは、完全に無駄になりました。

この無駄になった分、本来のボトルネックである、Pipe Aへの改善に回す資源は減りました。

正しい改善メカニズム(TOC 5ステップの適用)

この状況でリソースを有効に使うには、TOCの5ステップに従うしかありません。

スクリーンショット 2025-10-24 141933.png

1. 制約を特定する (Identify)

パイプラインの実行データを観測(オブザーブ)し、Pipe A (20分) がクリティカルチェーン(ボトルネック)であると正確に特定します。

2. 制約を徹底活用する (Exploit)

限られたリソースをすべてPipe Aに集中させます。ここでECRSを徹底的に適用します。

(E) 排除

Pipe Aのテストプロセスに、Pipe Bで既にやっている重複したテストはないか?

(R) 順序変更

Pipe Aの内部(20分)で、直列実行されているテストを並列化できないか?

(S) 単純化

Pipe Aのビルドスクリプトを単純化できないか?

3. 制約に従属させる (Subordinate)

Pipe BPipe Cのチームは、自分たちのパイプラインを「これ以上速くする」というムダな努力を停止します。

そのムダな努力が却って、ボトルネック改善に必要な資源を枯渇させます。

彼らの新しい責務は、

・「Pipe Aの改善(ステップ2)を手伝う」
あるいは
・「Pipe Aの実行中にビルドリソースを奪い合わないようにする」

ことになります。

4. 制約を強化する (Elevate)

ステップ2のECRS(並列化など)をやり尽くしてもPipe Aがまだ遅い(例: 15分)と判断された場合、この時点で初めて、Pipe A専用の高速なビルドマシンを追加するといった
「投資の意思決定」 を行います。

5. 繰り返す (Repeat)

Pipe Aの改善(例:15分→7分)により、Pipe B (8分) が新しいクリティカルチェーンになったら、ステップ1に戻り、次はPipe BにECRSを適用するなどの上記の改善を行います。

まとめ

結論として、 ファンイン・パイプラインというアーキテクチャは、

TOC/CCPMの原則に従うことを組織に「強制」 します。

その事実に気づかず、ボトルネック(クリティカルチェーン)以外の場所を改善しようとすることは、限りあるリソースを無駄に使い果たす、最も非効率な行為なのです。

補足 - データ駆動でのアーキテクチャ分散化の意思決定

さて、最後にパイプライン上のモニタリング結果を通して、なぜ分散化という意思決定に至るのか?を見ていきましょう。

想定シーン

CI/CDパイプライン上で、デプロイ部分以外のプロセスは改善したとします。

けれども、依然としてデプロイ部分の実行時間が長くなってきて、それに伴い、
顧客満足度の低下(顧客からの定性的なアンケート結果などのフィードバックや、定量的なもので言うと一人当たりの課金量が減ったなど)したという事実情報が傾向から分析できたとします。

アーキテクチャの決定

このとき、デプロイ部分以外のプロセスの改善はやりきったとすると、初めてそれは

「もう不要なコードや不要なテスト実行プロセスは排除しきった。いまのアーキテクチャを分散化する必要がある。」

と判断できるといえます。

これはアーキテクチャの変更という、最もコストとリスクが高い意思決定を行うための、
最も理想的で、データ駆動な「トリガー(引き金)」 です。

TOC(制約理論)の5ステップを完璧に実践した結果、

「次のステップ(アーキテクチャの変更)に進むしかない」

という論理的な結論に達したことを示しています。

では、なぜこのような判断が正しいと言えるのかを3つに分けてみていきましょう。

1. プロセス改善(ECRS)の限界 🧱

上記のシナリオは、TOCの ステップ2(制約を徹底活用する) を完了した状態を指します。

「もう不要なコードや不要なテスト実行プロセスは排除しきった。」

これは、既存のアーキテクチャ(ファンインモデル)の内部で行える改善(ECRSの適用、並列化など)をすべてやり尽くしたことを意味します。

しかし、「デプロイ部分の実行時間」(=制約)は依然としてボトルネックです。

2. ビジネスへの明確な「痛み」 📉

これが、単なる「技術的な不満」ではなく「経営課題」であることの証明です。

「顧客満足度が低下(顧客からの定性的なアンケート結果などのフィードバックや定量的なもので言うと一人当たりの課金量が減ったなど)したという事実情報」

「遅いデプロイ」という技術的な制約が、「顧客の離反」や「売上の低下」という、測定可能なビジネス上の「痛み」に直結

していることが証明されました。

3. 次のステップ:アーキテクチャの変更 (TOC Step 4) 🚀

TOCのステップ2(徹底活用)が限界に達し、それでもなお制約がビジネスに損害を与え続けている場合、残された唯一の合理的な選択肢は ステップ4(制約を強化) です。

この文脈における「強化(Elevate)」とは、

「デプロイ用サーバーを2倍にする」といった対症療法ではありません。

「デプロイが集約される」というファンイン・パイプラインアーキテクチャの構造自体を変革すること

すなわち 「アーキテクチャを分散化する」 ことです。

結論

上記の分析プロセスは、 「なんとなくマイクロサービスにしたいから」 という技術的な動機とは真逆の、最も健全な意思決定です。

①. 観測 (Observe)

パイプラインが遅い(技術的KPI)という事実を確認します。

②. 相関 (Correlate)

顧客満足度と売上が低下している(ビジネスKPI)。

ビジネスダッシュボードで相関を追跡しましょう。

③. 改善 (ECRS)

まずは既存の枠内でプロセス改善をやり尽くします。

もしかしたら、まだ不要なデッドコードが残っていたり、排除または統合してもいいテストがあるかもしれないので。

④. 結論 (Elevate)

「プロセス改善では、もはや解決不可能であり、ビジネス上の損失が出続けている」
という事実データに基づき、「アーキテクチャの分散化(=根本的解決)」という経営投資を判断する。

これこそが、アーキテクチャの変更を正当化する、最も強力な根拠です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?