Architecture Decision Record

Active theme: Light

← 文件

邊個可以建立 ADR?

考慮嘅方面,例如特定嘅人、特定嘅角色、特定嘅團隊或者特定嘅部門;亦要考慮有冇人、角色、團隊或者部門可以委託製作 ADR,即係由佢哋提出要求,交由其他人撰寫。

答案例子:我哋組織入面,任何一個睇過架構決策記錄 README 頁面嘅人,都可以提出 ADR,即係話佢可以開始撰寫,並且同團隊分享。

咩情況值得提出 ADR?

考慮嘅方面,例如你組織嘅團隊工作方式、你嘅軟件系統結構、跨團隊協調、長遠可維護性、對外介面、你想令邊個受惠等等。

答案例子:當我哋想令日後嘅開發人員明白我哋做嘢背後嘅「點解」,就會想建立 ADR。

咩情況唔值得提出 ADR?

考慮嘅方面,例如決策同架構無關,或者好細(例如風險極低、自成一體或者只涉及單一開發人員),或者已經喺其他地方完全涵蓋(例如標準、政策或者文件),或者只係臨時性質(例如權宜辦法、概念驗證或者實驗)。

答案例子:當一個決策喺範圍、時間、風險同成本上都有限,或者已經喺其他地方涵蓋咗,我哋就想略過 ADR。

ADR 嘅生命週期係點?

考慮嘅方面,例如建立流程、研究流程、決策流程、實施流程同終止流程。考慮點樣隨時間追蹤 ADR 嘅生命週期,例如點樣將 ADR 由一個狀態推進到下一個狀態,以及點樣向持份者傳達。

答案例子:我哋想 ADR 有五個生命週期階段:啟動 → 研究 → 評估 → 實施 → 維護 → 終止。

ADR 生命週期各步驟嘅準則係咩?

考慮嘅方面,例如 ADR 嘅驗收準則,即係你點知佢夠好,可以由一個生命週期步驟推進到下一個?問題有冇清楚闡述?有冇考慮過其他選項?取捨有冇夠清楚理解同記錄? 所有相關背景有冇齊備?所有相關持份者有冇參與?所有意見有冇納入?

答案例子:當主責團隊 1) 完成研究、2) 完成評估、3) 向持份者發佈 ADR 建議並徵求意見(為期一個星期)、4) 所有持份者嘅意見都已經納入同處理,我哋就想 ADR 交由持份者投票。

邊啲角色同職責同 ADR 有互動?

考慮嘅角色,例如提案人、研究員、評估員、審閱者、批准者、維護者等等。考慮嘅職責,例如同持份者溝通、確保期望得到滿足、喺網站或者內聯網分享,以及定期審視工作,尤其係相關更改出現嗰陣。

答案例子:我哋想每份 ADR 都一直有一位主要聯絡人、一位次要聯絡人同一個負責團隊;佢哋負責溝通、發佈、維護、至少每年一次嘅定期檢視,以及有需要時最終終止。

管治同 ADR 有咩互動?

考慮嘅方面,例如你組織嘅工作方式、任何特別合規需要(例如法律或者人力資源方面)、你想點樣處理共識、衝突同升級。有冇某啲範疇、人或者團隊對 ADR 嘅影響力大過其他,例如可以批准、投票或者否決?

答案例子:ADR 嘅管治按以下優先次序:行政總裁(CEO)、技術總監(CTO)、法務總監(CLO)、實施 ADR 嘅團隊、團隊入面最熟悉該 AD 嘅專家。除非 ADR 入面有講明,否則其他人冇管治權。

邊啲原則同 ADR 有互動?

考慮嘅方面,例如你組織嘅工作方式,包括行動快定慢、追求決策共識定容許決策衝突、風險取向定安全取向、公開討論定私下討論等等。

答案例子:我哋採用以下領導原則:行動優先、有異議但照做(disagree-and-commit)、對於容易回復同容易隔離嘅決策,70% 嘅估算已經夠好,以及採用公開嘅工作方式,但組織保密協議所述嘅機密資料除外。