《软件工作之美》材料地址: https://time.geekbang.org/column/article/83598
一 瀑布模式的六个阶段
二 瀑布模式的优缺点
三 为什么学瀑布模型
因为不管什么软件项目,不管采用什么开发模式,有四种活动是必不可少的…那就是需求、设计、编码和测试。而这四项活动,都是起源自瀑布模型,也是瀑布模型中核心的部分。
四 老板驱动的流程
笔者在和中国一些企业的软件开发者交流的时候,听闻不少人提到开发流程事实上是由行政领导主导,或者由公司的老板驱动,我们姑且把它命名为老板驱动的流程。” 领导“有极大权力, 极小责任”的驱动方式
五 感想
1,在我们企业,由于软件开发以外包为主,由于合同的原因,往往在项目外包前就已经基于需求做出了工作量的预算,以便有明确的合同价格,所以,难以推行敏捷或者迭代的工作方法,往往采用瀑布模式进行开发。但同时,又存在“老板驱动的流程” 也就是 领导“有极大权力, 极小责任”,需求变更随时随地,用户验收又不好好进行,导致项目质量和工期都难以把握。我觉得比较好的解决方法,有两个,1,是建立自开发团队,2是和外包团队签长期合作合同。这样就可以用敏捷迭代的方法来面对需求变更了。当然,这里也会带来工作量核算等等问题。
老师回复: 你说的第二个方案应该还是可行的,因为甲方关心的是产品质量和价钱,如果你的方案价钱差不多,质量可以更好,他们应该会支持的。
当然这个很多时候不是一个人就能解决的了的。及时是瀑布模型,也可以借鉴一些其他模型好的实践来优化,例如在开发阶段采用迭代模型或者敏捷开发,采用持续集成提升效率。
2,另外,老师提到瀑布里夹敏捷,我觉得这是大型项目常用的方法。比如对于大型系统的架构设计和落地,我觉得采用瀑布方法比较好,架构就如地基,如果需求不明,设计上经常要修改,自然会影响项目质量和进度。我觉得还是以造房子为例,越是地基和框架,越要少改,尽量一次成型。
老师回复: 还是看项目类型吧,因为架构一定是构建在需求之上的,如果需求不明确,很难设计出来合适的架构,所以难免会改,反倒不如先设计合适的架构,后面慢慢修改,一定阶段后重构。