建立基礎設施平台
基礎設施平台團隊透過以有彈性的解決方案解決常見產品和非功能需求,讓組織能夠擴大交付規模。這讓其他團隊可以專注於建立自己的產品,並為使用者釋出價值。但沒有人說建立可擴充的平台很容易...在本文中,Poppy 和 Chris 探討了 7 個可以幫助您正確建立正確事物的關鍵原則。提示:不要跳過策略、使用者體驗和研究。
2022 年 2 月 9 日
在過去 20 年中,軟體已經有了長足的進步。不僅交付速度加快,而且開發系統的架構複雜性也飆升以匹配這種速度。
並不是說在「美好的」過去,建置軟體是簡單的。如果你想為你的企業建立一個簡單的網路服務,你可能必須
- 安排時間與基礎架構團隊一起尋找一個備用的 [已修補] 機架伺服器。
- 花費好幾天重複設定一堆負載平衡器和網域名稱。
- 說服/哄騙/賄賂 IT 管理員,讓你在公司防火牆中建立安全清單,讓流量通過。
- 找出最適合你拼湊而成的上線腳本的 FTP 咒語。
- 對殘酷且善變的生產之神進行祭祀儀式,祈求祂們保佑你的服務順利。
謝天謝地,我們已經從傳統的「裸機」 IT 設定轉移(或更確切地說,我們正在轉移)到團隊更能建置並執行的設定。在這個勇敢的新世界中,團隊可以像撰寫服務一樣設定他們的基礎架構,並反過來受益於擁有整個系統。
在這個嶄新且閃亮的可能性黎明中,團隊可以在他們選擇的任何獨角獸設定中建置和託管他們的產品和服務。他們可以選擇他們的託管供應商、技術和監控策略。他們可以發明一百萬種不同的方法來建立相同的事物 - 而且幾乎可以肯定會這樣做!然而,一旦你的組織達到一定規模,讓你的團隊建置自己的基礎架構可能不再有效率。一旦你開始一再解決相同的問題,可能就是開始投資「平台」的時候了。
基礎架構平台提供常見的雲端元件,供團隊建置和使用,以建立他們自己的解決方案。所有的託管基礎架構(所有網路、備份、運算等)都可以由「平台團隊」管理,讓開發人員可以自由建置他們的解決方案,而不必擔心它。
透過建置基礎架構平台,你可以為產品團隊節省時間、減少雲端支出,並提高基礎架構的安全性與嚴謹性。由於這些原因,越來越多高階主管找到預算,成立獨立的團隊來建置平台基礎架構。不幸的是,這正是事情開始出錯的地方。幸運的是,我們已經經歷過建置基礎架構平台的起起落落,並彙整了一些必要的步驟,以確保平台成功!
制定具有可衡量目標的策略
「我們沒有達成目標」可能是你在為某件事工作數週或數月後,從你的利害關係人那裡聽到的最糟糕的事情。在基礎架構平台的世界中,這是有問題的,可能導致你的高階主管決定放棄這個想法,並將他們的預算花在其他領域(通常是更多產品團隊,這可能會使問題惡化!)防止這種情況並非難事 - 建立一個目標和一個策略來實現它,讓你的所有利害關係人都認同。
建立策略的第一步是找對人來定義問題。這應該結合產品和技術主管/預算持有者,並由中小企業協助提供組織中發生情況的背景。以下是幾個問題陳述範例
我們前 15 名產品團隊中沒有足夠具備基礎架構能力的人員,而且我們沒有資源可以聘僱我們需要的人數,導致我們的產品上市時間平均延誤 6 個月
過去 18 個月,我們的產品發生中斷總計 160 小時,損失超過 200 萬美元的收入
這些問題陳述誠實面對挑戰,而且容易理解。如果你無法提出問題陳述,也許你不需要基礎架構平台。如果你有許多問題想要透過建立基礎架構平台來解決,那就列出這些問題,但選擇一個作為驅動因素和你的重點。如果有多個問題陳述,可能會導致對你的基礎架構團隊將達成的目標承諾過多,而且無法兌現;優先處理太多不同結果的事情,而且無法真正達成任何目標。
現在將你的問題陳述轉換為目標。例如
提供前 15 名產品團隊可以輕鬆使用的基礎架構,以平均減少 6 個月的上市時間
在接下來的 18 個月內中斷時間少於 3 小時
現在你可以建立策略來解決問題。以下是如何進行的一些有趣想法
驗屍會議
- 如果你遵循前述步驟,你已經找出組織中存在的問題陳述,因此找出為什麼這是個問題可能是個好主意。讓所有了解問題背景的人齊聚一堂進行驗屍會議(理想情況下是具有不同觀點和問題可見性的人員)。
- 事先確保每個人都承諾讓會議成為一個安全空間,在其中讚揚誠實,而且沒有責難。
- 會議的目的是找出問題的根本原因。以下做法可能有所幫助
- 畫出可能導致問題發生的事件時間表。協助彼此建構問題潛在原因的圖像。
- 使用 5 個為什麼的技術,但請確保不要專注於找出單一根本原因,問題通常是由多個因素共同造成的。
- 找出根本原因後,請詢問需要改變什麼才能避免再次發生;您需要建立一些安全準則嗎?您需要確保所有團隊都使用 CI/CD 實務和工具嗎?每個團隊都需要 QA 嗎?這個清單可以一直列下去...
未來回溯會議
- 規劃實現目標所需的條件,例如「所有產品都有多個可用性區域」、「所有服務都必須有五個 9 的 SLA」。
- 現在找出如何實現這些條件。您需要組建一個基礎架構平台團隊嗎?您需要雇用更多人嗎?您需要改變一些治理嗎?您需要在開發初期將資訊安全等專家納入團隊嗎?這個清單可以一直列下去...
我們強烈建議進行這兩個階段。同時使用過去和未來的觀點,可以為您找出實現目標和解決問題所需採取的行動帶來新的見解。先進行事後檢討,因為我們的大腦似乎比較容易思考過去,然後再思考未來!如果您只有一段時間,請進行未來回溯階段,因為此階段的範圍稍微廣泛,因為未來尚未發生,可以促進更廣泛的構想和跳脫框架的思考。
希望在完成這兩個階段的其中一個或兩個階段後,您會有一份非常實用的清單,列出您需要採取的行動以實現您的目標。這是您的策略(附帶說明,願景和目標並不是策略!!!請參閱理查·魯梅特撰寫的《好策略,壞策略》)。
有趣的是,您可能會決定組建一個團隊來建構基礎架構平台並非您的策略,這很好!並非每個組織都需要基礎架構平台,您可以跳過本文的其餘部分,到馬丁的部落格上閱讀更有趣的主題!如果您很幸運,可以將建立基礎架構平台納入您的策略,那麼請繫好安全帶,準備接受更多傑出的建議。
找出客戶的需求
當我們這些敏捷主義者聽說某項產品已經建置完成,卻沒有任何使用者時,我們會翻白眼,因為我們知道他們一定沒有進行適當的使用者研究。因此,你可能會很驚訝地知道,許多組織會建置平台基礎架構,卻無法讓任何團隊使用它們。這可能是因為一開始就沒有人需要這個產品。也許你建置基礎架構產品的時間太晚了,他們已經建置了自己的產品?也許你建置的時間太早,而他們太忙於其他積壓事項,根本不在乎?也許你建置的產品並未完全滿足他們的使用者需求?
因此,在決定要建置什麼之前,請像對待面向客戶的產品一樣進行探索。對於以前沒有做過探索的人來說,探索是一種(通常)有時間限制的活動,由一群人(理想情況下是會建置解決方案的團隊)組成,他們試著了解問題空間/建置某項事物的原因。在探索期結束時,團隊應了解基礎架構產品的使用者是誰(使用者類型可能不只一種)、使用者有哪些問題、使用者做得好的是什麼,以及團隊將建置什麼基礎架構產品的高階概念。你也可以調查其他可能有助益的事情,例如人們正在使用什麼技術、人們以前嘗試過哪些方法但沒有成功、你需要了解的治理等。
透過將問題陳述定義為策略工作的一部分,我們了解組織的需求。現在我們需要了解這與我們的使用者需求有何重疊(我們的使用者是產品團隊,主要是開發人員)。務必專注於你的策略活動。例如,如果你的策略著重於安全性,那麼你可能會
- 強調安全性漏洞的範例,包括造成這些漏洞的原因(如果你有進行事後檢討,請使用事後檢討中的資訊)
- 訪談各種參與安全事務的人員,包括安全主管、技術主管、技術負責人、開發人員、品質保證人員、交付經理、業務分析人員、資訊安全人員。
- 使用工作坊(例如事件風暴)繪製產品現有的安全生命週期。在你的時間範圍內,針對你希望基礎架構平台提供的服務,與盡可能多的團隊重複進行此步驟。
如果你只在探索中做一件事,請進行事件風暴。找一個團隊或一群團隊,他們將在實體房間裡使用實體牆,或透過電話使用虛擬白板,成為你的客戶。在此圖表上繪製一條具有起點和終點的時間軸。對於基礎架構平台探索,從專案開始到在生產環境中向使用者提供服務,繪製地圖會很有幫助。

然後請大家將專案開始到在生產環境中上線的所有事項,以單一顏色的便利貼繪製出來。

接著請團隊以另一種顏色標示出任何痛點、令人沮喪的事項或總是無法順利進行的事項。

若時間充裕,你可以標示出任何其他資訊,以了解潛在使用者面臨的問題空間,例如使用的技術或系統、不同部分所需時間、可能參與不同部分的不同團隊(如果你決定在會議後深入探討某個領域,這項資訊會很有用)。在會議期間和會議結束後,促進者(也就是執行探索的團隊)應確保他們了解每張便利貼的背景,並深入探討並進一步調查有需要的興趣領域。
在執行一些探索活動並了解使用者提供面向客戶產品所需的內容後,接著優先處理能最快速提供最大價值的事項。有許多線上資源可以協助你塑造探索成果,其中一個不錯的資源是 gov.uk
提早讓使用者參與
「那對我們來說行不通」可能是你聽過關於基礎架構平台最糟糕的一句話,特別是在你已完成所有正確的事項,並真正了解使用者(開發人員)和其最終使用者的需求之後。事實上,讓我們來探討你如何陷入這種情況。當你將正在建立的基礎架構產品分解成史詩和故事,並真正開始深入了解細節時,你和你的團隊將會對產品做出決策。你做出的某些決策可能看起來很小且無關緊要,因此你不會向使用者驗證每個小細節,而且你當然不希望每次在定義小實作細節時就減緩或停止建置進度。這樣做沒問題!但是,如果你幾個月來都沒有收到關於你所做的這些小決策的回饋,而這些決策最終組成了你的基礎架構產品,那麼你所建置的內容可能無法為你的使用者發揮作用的風險將會持續增加。
在傳統的產品開發中,您會定義一個可行性最低產品 (MVP),並取得早期回饋。我們在一般情況下會遇到一件事,但在基礎架構平台中更為明顯,那就是如何知道什麼是「可行」的產品。回顧建立基礎架構平台的原因,可能是當您降低安全性風險,或縮短團隊的上市時間時,就是可行的,但如果您不向使用者(產品團隊的開發人員)發布產品,直到根據此定義「可行」時,那麼「這對我們不起作用」的回應會越來越有可能出現。因此,在思考基礎架構平台時,我們喜歡將最短價值路徑 (SPV) 視為我們希望第一批使用者加入的時間。最短價值路徑聽起來就是這樣,您能盡快獲得價值的時間,無論是對您的團隊、使用者、組織或混合。我們喜歡 SPV 方法,因為它能幫助您持續思考何時有最早的學習機會,並推動更薄的切片。因此,如果您沒有注意到,這裡的重點是盡早讓使用者加入,以便找出什麼有效、什麼無效,並決定您應該將下一個開發工作投入何處,以改善這個基礎架構產品,以便在組織中更廣泛地使用。
傳達您的技術願景
也許不出所料,這裡的關鍵是要確保您及早說明您的技術願景。您希望防止多個團隊建立與您相同的事物(這會發生!)。確保您的利害關係人知道您在做什麼以及為什麼。這不僅會建立對您解決方案的信心,而且是獲得產品早期見解的另一個機會!
您的願景不必是一些高保真 UML 傑作系列(儘管許多常見的建模格式非常有用)。拿一個白板和一個麥克筆/乾擦拭記號筆,盡情發揮。當您嘗試傳達想法時,事情會變得一團糟,因此能夠輕鬆擦拭並重新開始是關鍵!對於這些類型的圖表,請嘗試避免立即跳入 CAD 程式,它們會讓您遠離創作過程。
話雖如此,有一些有用的工具足夠輕量,可以在這個階段實作。例如
C4 圖表
這是 Simon Brown 在千禧年之交提出的。C4 建立在 UML 概念之上,不僅提供了定義系統的詞彙,還提供了一種將願景分解為 4 個不同「層級」的方法,然後您可以使用這些層級來描述不同的想法。
- 層級 1:脈絡
- 脈絡圖是 4 個圖中最「縮小的」。在這裡,您大致重點說明所描述的系統,以及它與鄰近系統和使用者的關係。使用此來構建有關與您的平台互動的對話,以及您的使用者如何加入。
- 層級 2:容器
- 容器圖表將整體脈絡分解成一堆可能包含應用程式和資料儲存的「容器」。透過深入探討描述平台的某些應用程式,你可以與團隊討論架構選擇。你甚至可以將設計帶給 SRE 人員,討論任何警示或監控考量。
- 第 3 層級:元件
- 一旦了解組成平台的容器,就可以將事情提升到下一個層級。選取一個容器並進一步分解。查看容器中模組之間的互動,以及它們如何與宇宙其他部分的元件相關聯。此抽象層級有助於描述系統內部運作的責任。
- 第 4 層級:程式碼
- 程式碼圖表是描述系統的第 4 種選擇方式。在此層級中,你實際上是在程式碼層級描述類別和模組之間的互動。考量到建立此類圖表的負擔,通常使用自動化工具來產生它們會很有用。不過,請務必確保你不會只是為了產生虛榮圖表而產生。這些圖表對於描述不尋常或舊有的設計決策非常有用。
一旦能夠建立技術願景,請使用它來傳達你的進度!將它帶到你的衝刺展示中。使用它來引導與團隊的設計對話。將它帶到你的下一次威脅建模練習中。我們在這篇文章中僅觸及 C4 圖表的皮毛。網路上有許多很棒的文章更深入地探討這個主題 - 探索的起點是這篇InfoQ 文章。
而且不要就此止步!請記住,儘管上述技術將有助於引導對話目前;軟體是一個生命體,在你退休後可能還會存在很長一段時間。能夠將你的技術願景傳達為一系列能夠引導你手邊工作的決策,是另一個有用的工具。
架構決策記錄
我們已經討論過使用 C4 圖表作為繪製架構的方法。C4 圖表透過在不同概念層級提供一系列架構的「視窗」,協助描述軟體給不同的受眾和不同的目的。因此,雖然 C4 圖表可用於繪製架構的現在或未來;ADR 是一種技術,可用於描述架構的過去。
架構決策記錄是一種輕量級機制,用於記錄建立軟體的決策內容和方式。將這些記錄納入平台儲存庫,就像為未來的團隊/未來的你留下一些結構良好的線索,說明系統為何會是這個樣子!
範例 ADR
有許多好用的工具可以協助你讓 ADR 文件保持一致(Nat Pryce 的 adr-tools 非常好用)。但一般來說,架構決策記錄的格式如下
名稱 | 說明 |
---|---|
日期 | 2021-06-09 |
狀態 | 待處理/已接受/已拒絕 |
背景 | 簡潔的句子,說明需要做出決策的原因。 |
決策 | 決策結果。將決策與更廣泛的背景關聯起來非常有用。 |
後果 | 做出決策可能產生的任何後果。這可能與擁有軟體的團隊、與平台相關的其他組件,甚至是更廣泛的組織有關。 |
與會人員 | 誰參與了決策?這並非旨在指責誰有資格做出決策或誰對此負責。此外,這是一種為記錄增加組織透明度的方式,以便協助未來的對話。 |
你是否曾經遇到過在程式碼中發現一些奇怪情況?你是否曾經想回到過去,詢問做出決策的人,為什麼某些事情會是這個樣子?你是否曾經在診斷生產中斷時遇到困難,但由於某些原因,你沒有任何文件或有意義的測試?ADR 是用一系列活生生的快照來補充你的工作程式碼的好方法,這些快照記錄了你的系統和周圍的生態系統。如果你有興趣進一步了解 ADR,可以在 Harmel-Law 的建議程序 的背景下閱讀更多相關資訊。
設身處地為使用者著想
如果你在組織中擁有任何內部工具或服務,而你發現這些工具或服務非常容易上手且沒有痛苦,那麼你很幸運!根據我們的經驗,當你取得你想要的東西時,這仍然令人驚訝。因此,想像一個世界,你花費時間和精力來建立你的基礎架構平台,而加入團隊的人會說「哇,這太容易了!」無論你建立基礎架構平台的原因為何,這都應該是你的目標!如果你必須強制使用你的基礎架構產品,事情並不總是會進展順利,所以你必須實際努力讓大家想要使用你的產品。
在常規產品開發中,我們可能有具備使用者研究、服務設計、內容撰寫和使用者體驗專家等能力的人員。在建立平台時,很容易忘記填補這些職位,但如果你希望組織中的人員喜歡使用你的平台產品,這同樣重要。因此,請確保你的團隊中有人負責基礎架構產品的端到端服務設計,無論是開發人員、BA 或 UX 人員。
入門的簡單方法是繪製你的使用者歷程。讓我們以加入為例。

即使不了解這趟旅程的背景,有些事情可以留意,它們可能會發出使用者體驗不友善的訊號
- 開發人員使用者與平台團隊之間的交接
- 有些迴圈可能會讓開發人員使用者在入門時退步
- 缺乏自動化 - 平台團隊做了很多事
- 我們的開發人員使用者在入門前有 9 個步驟要完成,中間可能會等待和延遲
理想情況下,您希望入門流程看起來像這樣

如您所見,入門過程中沒有平台團隊參與,因此完全是自助服務,而且我們的開發人員使用者只需遵循三個步驟。要為您的使用者帶來如此棒的體驗,您需要思考可以自動化什麼,以及可以簡化什麼。簡單的使用者旅程與簡單的程式碼庫之間會有取捨(如「不要把事情複雜化」中所述)。兩者都很重要,因此您需要一位強而有力的產品負責人,確保這種取捨符合您最初提供平台的原因,例如如果您建立平台的目的是為了能更快地將產品推向市場,那麼順暢且快速的入門流程就非常重要。
實際上,您的入門流程可能更像這樣

特別是在您發布 MVP 時(請參閱前一節)。將這種思考應用於團隊在使用您的產品時可能必須經歷的任何其他互動或流程。透過創造絕佳的使用者體驗(當然,還要有一個基礎產品供人們使用),您不僅應該擁有滿意的使用者,還應該在組織內部獲得極佳的宣傳,讓其他團隊也想加入。請不要忽視此建議,也不要讓您的組織強制使用您這個難以使用的基礎架構平台,讓所有開發人員團隊都感到難過 :(
不要過於複雜化
所有軟體都會損壞。不要對事情太悲觀,但您編寫的每一行程式碼都有很高的機率會很快過時。每個 If 敘述、設計模式、每一行組態都有可能損壞或產生奇怪的副作用。這些可能會表現為難以重現的錯誤或全面中斷。您的平台並無不同!僅僅因為您的產品沒有花俏、有回應的 UI 或高可用性的 API,並不表示它不會產生錯誤。而且,如果您建立的東西是一個平台,其他團隊正在其上建置自己的服務,會發生什麼事?
當您開發其他團隊依賴的基礎架構平台時;您的客戶的開發環境就是您的生產環境。如果您的平台發生問題,您可能會讓其他人也跟著遭殃。您真的不希望冒險在其他團隊的開發流程中造成停機。這會侵蝕信任,甚至可能傷害您試圖幫助的人與您的關係!
軟體中出現錯誤的主要(且可怕的)原因之一與複雜性有關。支援的功能越多,平台嘗試執行的動作越多,出錯的可能性就越大。但是,平台團隊中出現複雜性的主要原因是什麼?
對於那些可能還不熟悉的人來說,康威定律指出,組織往往會設計反映其自身內部溝通結構的系統。從軟體的角度來看,這表示系統通常會設計成具有某些「但書」或「解決方法」,以因應組織歷史中某個時間點的快照。雖然這並非一定是不好的,但它很容易影響我們在現場做出的設計決策。如果您正在建構 API,團隊內部可以輕鬆處理這類型的設計決策。但是,如果您正在為許多不同的團隊(及其眾多不同的細微差別)建構一個具有許多不同整合的系統,這就會變成一個更大的問題。
那麼,在撰寫大量與業務流程緊密結合的細緻元件,以及建構一個可以支援組織成長的平台之間,最佳平衡點在哪裡?
一般來說,您作為團隊撰寫的每個元件都是另一個需要衡量、維護和支援的事項。當然,您可能會受到現有的架構負債、合規限制或安全防護的限制。我們在此要傳達的重點是,在為您的解決方案引入另一個元件之前,請三思。您開發的每個活動部分都是對上線後支援的投資,也是另一個潛在的失敗模式。
衡量重要事項
一篇關於建構更好的基礎架構平台的文章,如果不提到衡量事項,就不算完整。我們之前提到要確保您定義一個具有可衡量目標的策略。那麼,成功是什麼樣子?這是您可以透過程式碼擷取的內容嗎?也許您想透過減少營運摩擦來增加使用者的部署頻率?也許您的真正目標是提供一個穩定且安全的成品存放庫,供團隊依賴?花點時間看看您是否可以將這個成功指標轉換成一個輕量化的儀表板。能夠慶祝您的勝利,對您的團隊士氣和幫助建立組織對您平台的信心都有很大的幫助!
四大關鍵指標
我們真的不能在不提到這一點的情況下談論指標。在 2018 年的書加速(一本關於開發團隊績效的精彩讀物)中,這四個關鍵指標是高績效團隊的簡單指標。它由下列指標表示:
- 交付前置時間
- 我們在此討論的是從提交程式碼到程式碼成功在生產環境中執行的時間,而不是從「請」到「謝謝」之間所花的時間(從最初構想、分析、開發到交付)。開發時間越短(或更重要的是越可預測),團隊的表現就越好。
- 部署頻率
- 團隊部署軟體的次數為何如此重要?一般來說,部署頻率高通常也與部署規模較小有關。將較小的變更集部署到生產環境中,部署就越安全,如果需要回滾,測試和修復也越容易。如果你將高部署頻率與短交付時間結合,就能更快速且安全地為客戶提供價值。
- 變更失敗率
-
這讓我們了解到「變更失敗率」。當你按下按鈕將程式碼推送到生產環境時,部署失敗的次數越少,團隊的表現就越好。但是什麼定義了部署失敗?一個常見的誤解是將變更失敗率等同於紅色管線。雖然這可用於作為 CI/CD 整體狀況的指標;但變更失敗率實際上描述的是部署損害生產環境的情況,並且需要回滾或向前修正才能修復。
如果你能將此視為指標並在團隊回顧和規劃期間加以思考,你可能會找出可以專注的技術債務領域。
- 平均復原時間
- 4 個關鍵指標中的最後一個是指軟體在部署失敗時復原的時間。由於部署失敗可能會導致使用者中斷服務,了解你目前的風險狀況可以讓你了解可能需要花更多時間的地方。這對於傳統的「產品」開發來說非常好,但對於你的平台呢?事實證明,如果你正在為大家建立一個共同平台,4 個關鍵指標就更重要了。你的停機時間現在是其他軟體團隊的停機時間。你現在是組織交付軟體能力中的關鍵依賴項!
重要的是要認識到 4 個關鍵指標是極有用的後續指標 - 它們可以提供你已達成目標的程度的衡量標準。但如果你無法讓任何人採用你的平台呢?可以說,只有在你擁有一些使用者之後,4 個關鍵指標才會變得有用。在你達到這個階段之前,專注於了解和推廣採用是關鍵!
有許多更多選項可供衡量你的軟體交付,但多少才算太多?有時,過度專注於衡量所有事情,可能會錯過一些顯而易見且可以修正的事情,而這些事情就隱藏在顯而易見的地方。請認識到,並非平台設計的所有面向都屈服於衡量。同樣地,請小心所謂的「虛榮指標」。如果你選擇衡量某件事,請務必確保它與相關且可採取行動。如果你選擇一個無法為你的團隊或使用者發揮作用的指標,你只是在為自己製造更多工作。挑選重要的東西,丟棄其餘的!
為其他工程團隊開發基礎架構平台可能看起來與建立更傳統的軟體完全不同。但透過採用本文中概述的 7 個原則的部分或全部,我們認為你將對組織的真正需求有更好的了解,一種衡量你成功的途徑,以及最終一種傳達你意圖的方式。
重大修訂
2022 年 2 月 9 日:發布文章的其餘部分
2022 年 2 月 8 日:發布「傳達你的技術願景」和「設身處地為使用者著想」
2022 年 2 月 2 日:發布「找出客戶的需求」和「早期讓使用者參與」
2022 年 2 月 1 日:發布「制定具有可衡量目標的策略」