許多工程團隊在建立內部基礎設施平台時,容易陷入一個陷阱:將平台的開發視為一系列的專案。這種專案導向的思維在初期可能有效,但隨著公司規模擴大、使用者增加,會逐漸變成技術債的來源。本文將探討如何將平台開發從專案導向(Project-thinking)轉向產品導向(Product-thinking),並分析其背後的邏輯與實務影響。
理解專案導向與產品導向的差異
在專案導向的模式中,開發流程通常圍繞著年度計畫展開。這意味著工作流程是:定義範圍、分配預算、設定交付里程碑,然後在規定時間內完成交付。衡量成功的標準是是否在時限內完成了預定的功能。
這種模式在平台僅服務於單一團隊時運作良好,但當平台需要支持多個具有不同需求的內部團隊時,問題就出現了。專案導向會導致三個核心痛點。首先是功能碎片化,每次改進都被視為一次性的交付,導致平台累積了大量互不相干的功能,且優先順序經常打架。其次是缺乏整體願景,團隊雖然在持續交付,但平台整體的易用性與一致性卻沒有提升。最後是回饋迴圈失效,團隊關注的是 Sprint 的開發速度或完成率,而非實際使用者是否覺得好用。
轉向產品導向的核心邏輯
產品導向的核心在於將內部開發者視為客戶,而平台則是提供給客戶的產品。這要求工程團隊在思維上做出三大轉變。
第一,從交付功能轉向解決使用者問題。不再是為了完成清單上的功能而開發,而是思考使用者遇到了什麼痛點。
第二,從固定範圍轉向假設驅動的路線圖。不再預設一年後要長什麼樣子,而是根據使用者的反饋,提出假設並快速驗證。
第三,從輸出指標轉向採用率與易用性指標。成功的定義不再是功能上線,而是有多少團隊真正開始使用該功能,以及使用過程是否順暢。
實務上的演進:從工具集到內部雲端服務
在實務操作上,一個產品導向的平台會從簡單的工具組合演進為高度抽象的服務。
初期階段,平台通常是圍繞著 Kubernetes 和 GitOps 實踐而有機成長的,例如使用 Helm 進行部署、透過 GitLab 驅動工作流。雖然這能標準化交付,但仍是以單一服務團隊為中心,缺乏對多租戶(Multi-tenancy,指單一系統支持多個獨立客戶或團隊且互不干擾)的深度支持。
成熟階段,平台會演進為類似內部雲端供應商(Internal Cloud Provider)的模式。它會提供 Kubernetes 叢集、儲存與網路等能力,並透過自服務介面(Self-service interfaces)開放給開發者。
為了達成這個目標,平台需要建立清晰的抽象層。例如,引入環境(Environment)與專案(Project)的概念,讓開發者能透過 API 驅動的工作流直接配置基礎設施,而不需要透過提交工單(Ticket-based processes)或人工協調。這種 API 驅動的模式能有效分離關注點,讓平台團隊專注於管理平面(Management Plane)的穩定性,而讓開發者在定義好的合約(Contracts)範圍內自主操作。
為什麼這種轉型至關重要
當你發現開發者的 Backlog 雖然在減少,但團隊卻傾向於繞過平台自行解決問題,或者你無法確定某項功能是否真的被使用時,就是必須轉型的時候。
將平台視為產品,能讓工程團隊擺脫單純的基礎設施交付,轉而提供可擴展的能力。這不僅提升了開發者的生產力,也讓平台團隊能透過數據導向的決策來優化系統,而非僅僅是追趕里程碑。
來源:infoq.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。