- 不瞭解系統邊界是什麼,在哪裡。
- 團隊中對「大局」沒有形成共識。
- 無法交流整體願景。
- 團隊成員對需要做的事情不清楚或感到不適。
- 沒有考慮非功能需求/質量屬性。
- 沒有考慮(現實的)環境約束如何影響軟件(比如部署環境)。
- 沒有考慮主要的風險,比如非功能需求、外部接口等。
- 尚未確認重大問題及其答案。
- 沒有考慮關注點分離、適當的抽像層次、分層、可修改性,拐點等。
- 對架構師要扮演的角色沒有共識。
- 解決問題的方法不一致。
- 團隊缺乏控制和指導。
- 項目生命週期中本應預先考慮到的重大架構變化。
- 過多的設計選擇和選項,往往伴以團隊成員對解決方案或前進方向的反對。
- 對於設計是否管用的不確定(比如,設計過程中沒有執行原型的部分)。
- 缺乏技術選擇(即不必要的延遲)。
讀古今文學網 > 程序員必讀之軟件架構 > 多少預先設計是太少 >