一个项目的成功归功于很多因素。可若想毁掉一个项目,一个失败的设计就足够了。
好的系统设计像一部好的小说。整体布局,细节,关联,一个都不能少!
团队中架构师的作用就显得很重要。架构师不仅需要眼观六路,耳听八方,对一些技术细节有相当程度的了解。而且要对项目进行中各个阶段的重点,以及对设计决定所产生的影响有充分的认识。你准备好了么?
咱们从传统项目过程中的不同阶段来说说吧。本文以虚拟化设计为案例。
我设计了一个图来帮助分析部署系统的几个阶段。
一 需求分析阶段
客户需求
在需求分析阶段,需要挖掘出客户真正在乎的需求,最好对需求进行分优先级,不能眉毛胡子一把抓。而且需求并不是一成不变,项目过程中增减需求是平常的事,但由此造成的影响要评估并更新文档。有时项目组需要和客户协商撤销或者推后某些需求。可能的原因有:造成整个方案成本大幅上升;与其它关键需求冲突;可能造成项目延迟等等。
环境的限制
这点尤其重要,却常常容易被忽略。在分析阶段尽可能挖掘限制条件,会避免后面阶段很多的问题。比如客户已经在使用NFS,并且现有维护人员有能力维护该系统。你在推荐SAN的时候就要考虑带来的影响;若客户与某大供应商有协议,你是否可以考虑其它厂商?若客户有较严格的安全性策略,设计共享时要考虑哪些部分是不可以共享的,是否需要虚拟层的防火墙等等。
假设的条件
有时在项目执行中会因为某些需要客户或第三方完成的事情不具备,而造成项目延迟。这就需要在合同中就对这些假设特别说明/,以避免后面的责任不清。比如假设客户网络环境是可以支持你的设计的,可实施时才发现上行网络的防火墙的带宽或端口限制会大大影响你的方案的性能。 比如假设你需要使用客户已有的数据库,却发现版本和你的方案不兼容。
时间: 2024-10-14 13:04:41