- 不了解系统边界是什么,在哪里。
- 团队中对“大局”没有形成共识。
- 无法交流整体愿景。
- 团队成员对需要做的事情不清楚或感到不适。
- 没有考虑非功能需求/质量属性。
- 没有考虑(现实的)环境约束如何影响软件(比如部署环境)。
- 没有考虑主要的风险,比如非功能需求、外部接口等。
- 尚未确认重大问题及其答案。
- 没有考虑关注点分离、适当的抽象层次、分层、可修改性,拐点等。
- 对架构师要扮演的角色没有共识。
- 解决问题的方法不一致。
- 团队缺乏控制和指导。
- 项目生命周期中本应预先考虑到的重大架构变化。
- 过多的设计选择和选项,往往伴以团队成员对解决方案或前进方向的反对。
- 对于设计是否管用的不确定(比如,设计过程中没有执行原型的部分)。
- 缺乏技术选择(即不必要的延迟)。