昨天听了公司组织的高级系统架构师培训关于用风险分析驱动架构设计,拥抱着变化而设计,感受颇深,从做开发的角度来说,每个开发都希望甲方需求不要随时变,特别是重大变化,因为成本是真的高。但是现实就是随着社会的发展和系统投入上线使用,就要时刻做好来自市场和社会的反馈,不然软件就只有被淘汰,所以在开发过程中就要反复去确认需求,把未来可能发生改变的考虑到开发过程中就能把风险降到最低。

讲的内容中通过一个成功的‘大型军工项目’案例,讲了如何把整个项目风险降到最低,将敏捷开发发挥到了机制,也能理解开发为啥喜欢的是写代码,而反感的是写文档,因为往往维护文档需要花大把的时间,确实针对于文档要求比较高的甲方,可以专门开发一套文档生成系统,只需要极少时间就能生成客户所需要的标准文档,也能快速生成开发人员能够快速入手的专业文档;

通过这个培训让自己充分的认识了随着软件行业的发展,需求永远不可能是固定不变的,只有好的设计才能让需求发生变化,只需要花极小的代价进行完成功能扩展。

想想人的观念就如需求一样不可能一层不变的,所以在开发一个产品的时候,需要反复进行的打磨,先以最小成本的把骨架搭建起来,对外接口暴露,内部划分最小粒度,控制好相关依赖,这样可以在任何时候修改都不用影响全身,想想微服务架构也是遵循了此架构,将一个个功能拆成功能模块,发布某个模块并不会影响到整个项目,敏捷思维持续集成持续发布,快速响应市场,而不是像案例讲的某企业花费几千万耗时耗力结果经过1年开发完成投入市场直接被淘汰好。

感觉自己在这方面还存在不足,抽空补补这一块的内容,加上最近公司需要将一个.net的基础平台老项目彻彻底底使用 Java 项目重构,可以跟到大佬们一起练练。

总结一句话:用风险分析驱动架构设计,拥抱着变化而设计,不要抱怨随地随地的需求变化,只要将变化控制在一个周期内,代码扩展性强就不是什么大问题,而不是简单的修改一处而影响全身。