如何記錄產品和軟體架構決策?

banq發表於2024-06-30


記錄軟體架構決策對於儲存設計選擇背後的背景和理由非常重要,這對未來的自己和團隊來說都是無價之寶:

在過去的兩年裡,我一直在從事一個有趣的應用程式現代化專案。它涉及將業務線從數十年​​歷史的單體應用轉移到更現代的 SaaS 應用程式。作為這一旅程的一部分,我們必須做出很多決定!我們需要這個特定功能嗎?解決此功能可以透過多種方式完成,那麼哪種方式是正確的?我知道,在這個過程中,人們會質疑我們為什麼做出這個選擇。

我在《紐約時報》擔任設計工作的朋友有一個很棒的單頁模板,用於推銷創意或潛在專案。Olivia Cheng向我介紹了這個模板。這份單頁模板概述了問題以及將創意轉化為潛在專案的初步討論。目標是引導團隊、領導層和利益相關者。這份單頁模板的元素包括:

  • 問題是什麼?在這裡,您可以描述要解決的問題及其關鍵影響。
  • 機會是什麼?解決這個問題能給企業帶來什麼?
  • 你的目標清單
  • 成功指標。您如何衡量它?
  • 挑戰是什麼?每個挑戰的簡要描述。
  • 團隊和利益相關者受到影響。

我知道這個模板的真正目的是為你提出一個想法,但它包含了我所尋找的許多正確元素。

第一次記錄決策
開始使用這個詳細的模板來跟蹤專案中的決策:

模式和模式語言告訴我,任何問題的解決方案總是有背景。因此,我修改了這個模板以包含以下元素。這是一個自由流動的文件,每個元素都有標題。

  • 上下文:我以段落中的上下文作為開頭。上下文描述了與我們必須解決的問題或困境相關的具體領域。
  • 問題:我們具體要解決什麼問題?我儘量在這裡說得儘可能具體。由於人們已經閱讀了上下文,他們現在可以更好地理解這些問題。
  • 機會:在這裡,我描述了為什麼解決這個問題至關重要,以及它如何改善企業或使用者的狀況。  
  • 成功指標:我們如何衡量成功指標?我們可以衡量哪些指標?
  • 受影響的團隊:哪些人會受到此決定的影響?
  • 已知的挑戰和限制:我們是否知道做出此決定時需要解決的任何具體問題或事情?我會在此處記錄所有重要問題。
  • 未解決的問題:最初,在嘗試解決問題並尋找解決方案時,可能會出現許多未解決的問題,我們需要找到答案。我在本部分中記錄了這些問題。
  • 建議的決定:經過審議和審查調查結果後,我將使用此部分來記錄商定的決定。
  • 附錄:如果我在回答這個問題時有幾個選項需要評估,我會將每個選項記錄為附錄,並附上它的優點和缺點。  


但發現模板過於冗長,難以快速瞭解當前狀態:

於是,從其他模板中汲取靈感,如 "one-pager pitch deck "和安德魯-哈梅爾-勞(Andrew Harmel-Law)關於 "Scaling the Practice of Architecture, Conversationally "的建議,對這一方法進行了迭代。

改進後的決策記錄模板的關鍵要素包括

  • 狀態(草案/建議/透過/過期),以便快速檢視決策的當前狀態
  • 行動專案,作為下一步措施的清單
  • 需要決定的明確問題及其相關背景
  • 建議的決策、支援性論據和潛在後果/制約因素
  • 考慮過的其他方案、受影響的利益相關者以及相關參考資料

這種更簡潔、更直觀的格式對於在團隊中記錄和交流軟體架構決策更為有效。

相關文章