
34
| 第三章
問題。優秀的架構也可以促成更大的創新,因為人們可以更清楚地知道需要加上什麼東
西來支援創新。此外,優秀的架構本身也可以成為創新的催化劑,或許可讓你看到原本
無法看到的缺口或機會。
雖然“持續監視、分析與商業價值有關的架構品質”與實作持續交付沒有太大的關係,
但是組建管道可以讓你在裡面建立機制來取得相關數據。你可以將 SonarQube 之類的工
具加入組建程序,並且用它來顯示程式碼的內聚、耦合與複雜性熱點,以及回報高階的
複雜性數據,例如循環(cyclomatic)複雜性(穿越原始碼的線性獨立路徑數量的量化
數值)與設計結構品質數據(DSQI)(用來評估電腦程式的設計結構與它的模組的效率
的架構設計數據)。
其他的工具,例如 Adam Tornhill 的 Code Maat,也可以從版本控制系統挖掘與分析資
料,並展示經常出問題的基礎程式區域。這可以向企業證明,投資時間與金錢來改善架
構,可以讓人們更瞭解這些高流動率區域的程式碼,進而產生更高的投資回報。
變動的複雜性與代價
成熟或舊有的架構通常是用許多技術構成的,這些技術通常是當初建構時的熱門框架,
或是當初的工程師根據他們的經驗選擇的。這就是為什麼架構中缺乏結構(或過度複雜
的結構)會對組織產生重大影響;當你進行變動時,並非只要考慮一項技術即可,而是
要面臨一個錯綜複雜的技術森林,任何人或任何團隊都不是這種情況的專家。進行任何
變動都是一種高風險的工作,需要付出許多固有的成本。如果一個組織一直都很謹慎地
控制架構複雜性,他們進行變動的成本可能只有“複雜”的競爭者的一小部分。 ...