建立新創公司是一項獨特的挑戰。 核心任務是為創新在市場上找到一個作為產品或服務的定位。 此程式需要測試創新內建的多個假設。 成功的初創公司必須反覆驗證這些假設,並在產品達到產品與市場契合時成長與擴展。 找到這個適合之後,初創公司必須擴展規模以抓住市場需求。
在不同的創業生活階段,開發人員、建築師和首席技術官(CTO)處理不同的開發階段。 這些階段需要基本不同的方法和不同的技術選擇。 工作的一部分是確定您的新創公司所處的階段。 選擇符合該階段的技術、方法和架構。
創新階段
肯特·貝克描述了軟體產品創新的三個階段。 這些階段是 探索、 展開和 擷取。 您可以將此程式的不同部分視為圖表:
顯示針對 Y 軸「確定/投資/變更風險」和 x 軸「時間」繪製的 sigmoid 曲線圖表。 圖表醒目提示了三個區域:上升拐點前的初始部分標示為「探索」,sigmoid 曲線的高成長部分標示為「展開」,以及平臺期標示為「擷取」。
探索階段從低斜率開始,在這個階段中您需要嘗試找出有效的方法。 確定性很低,您只投資少量,而您所做的任何變更的風險也很低。
當找到產品市場契合點時,圖表會迅速上升。 這種快速增長是 擴展 階段。 你的確定性大大增加,你投資更多,你更了解風險。
最後,當圖形趨於平緩,並且公司達到成熟期時,您會進入提取階段。 變化的確定性、投資和風險都很高,但增長率已經停滯不前。
探索
當您的新創公司處於探索階段時,您應該將少量的時間和精力投入到許多不同的產品想法上。 大多數想法不正確的事實推動了探索。 只有通過迭代和學習,您才能找到產品市場契合。 通過做許多小賭注,你的目標是找到一個得到回報的產品理念。
此階段需要自律。 很容易過度投入一個想法,這個想法其實可以用比較少的時間和精力來測試。 一位技術專家發現,很容易陷入這個陷阱。 當您做出有助於簡化探索的架構選擇時,請記住您是在進行探索。 您還不知道這個產品構想是否能夠擴展。
從架構的觀點來看,選擇針對速度、成本和選項優化的服務。 使用受控服務和平臺即服務 (PaaS),例如 Azure App Service 快速開始使用,而不必擔心複雜的基礎結構。 在您探索的過程中,選擇免費方案和較小的實例規格來管理成本。 容器支援使用適合您的任何工具進行開發,併為您提供未來彈性的部署選項。
建置您的第一個堆疊
如同您的第一個產品版本,您的第一個技術堆疊應該牢牢地植根於探索。 這表示技術堆疊應該能夠輕鬆快速進行產品反覆專案,而不會浪費精力。 您不想花費時間或精力在不必要的基礎結構或架構上,只為了回答當前問題。
在探索階段期間,您必須針對速度、成本和選擇性進行優化。 速度是關於您能多快建構並推進一個想法,或轉向下一個想法。 成本是您執行基礎結構所花費的成本。 選擇性描述您可以根據目前架構變更方向的速度。
平衡成本、速度和選擇性很重要。 過於專注於成本限制速度和選擇性。 過於專注於速度可能會導致成本增加和選項較少。 針對太多選項進行設計會建置複雜度,進而增加成本並降低速度。
請考慮使用我們建議 的第一個技術堆疊。 此架構使用 PaaS 服務輕鬆實作、可透過最小規模啟動,並使用容器和開放原始碼技術,在您成熟時可以輕鬆地部署在不同的技術堆疊上。
展開
一旦您的初創公司找到產品市場契合度,並透過探索獲得隨後的成長,您便會轉向擴張階段。 您專注於移除阻礙公司與產品持續成長的任何障礙。 從技術觀點來看,您可以解決基礎結構規模挑戰,並提升開發速度。 目標是要符合新客戶的需求,並推進您的產品藍圖。
擴充您的架構
當您不斷改進產品時,您必然會發現需要擴充架構的地方。 您可能需要在背景中完成長時間執行的工作,或處理來自物聯網 (IoT) 裝置的頻繁更新。 您可能需要將全文搜索或人工智慧新增至您的產品。
您可能需要架構變更,以容納藍圖上的專案。 抵制提前做出這些變化的誘惑。 擴充套件可能會在架構中新增複雜性,並使基礎設施成本增加至您的資產負債表。
在早期啟動階段,任何架構延伸模組都應該是即時的。 延展應該只需花費必要的時間和精力來測試下一個假設。 準備好移除延伸模組以減少複雜性。 尋找您的客戶未使用的產品功能,以簡化您的架構並減少基礎結構支出的機會。
您的架構可以透過許多方式擴充,例如:
- 透過 擷取增強生成(RAG) 技術新增人工智慧
- 透過區域備援部署增強復原能力
- 透過網路強化技術堆疊增強安全性
提取
在擷取階段,當您達到市場機會的限制時,增長速度會放緩。 由於您在上一個階段擴展,因此現在有很多可以失去的,您會採取更謹慎的方法。 擷取階段的特徵是邊界擴充、成本降低和效率改善。 在提取階段,請小心不要影響您在擴展階段中吸引的客戶所購買的產品。
管理成長並使您的技術堆疊成熟
一旦產品達到產品與市場適合,許多需求就會推動其架構。 使用量增加可能需要基礎結構調整來處理負載。 新的企業合規性需求可能需要更大的隔離。 這些變更是成功應用程式成熟時常見的步驟。
您為處理成長和新增成熟度所做的變更,與擴充架構不同。 這些變更不是功能需求,但與解除鎖定規模相關。 規模增加可能來自凈新客戶、現有客戶的使用量增加,以及法規需求較高的客戶。
抵制過早優化的誘惑。 請務必採取成長和成熟的策略,協助您不斷改進和提升產品。
後續步驟
- 請參閱並部署 範例 Core 啟動堆疊架構。
相關資源
- 雲端應用程式中的最佳做法
- Azure 應用程式的十項設計原則