为了解决瀑布模型的问题, 大家在实践中提出了各种变形:
· 生鱼片模型 (各相邻模块像生鱼片那样部分重叠)
这个模型解决了各个步骤之间分离的缺点, 同时也带来了一些困扰– 究竟什么时候上一个阶段结束呢?
· 大瀑布带着小瀑布
为了解决不同子系统之间进度不一, 技术要求迥异, 需要区别对待的问题。有人引入了子瀑布模型:
在这种瀑布群下, 要把各个子系统统一到最后做”System Testing” 的阶段,难度不是一般的大啊! 但是在这样的开发流程中, 用户只有到了最后才能看到结果, 用户真是等不起。
老板驱动的流程 (boss-driven process)
在我和中国一些企业的软件开发者交流的时候, 不少人提到开发流程事实上是由行政领导主导, 或者由公司的老板驱动, 我们姑且把它命名为 boss-driven process.
这种模式也不是全无道理,我个人认为有几个因素:
· 当软件订单的获得不是主要靠技术实力, 而是靠个人关系, 或者暗箱操作的时候, 老板的能力决定了一个团队是否能获得订单, 既然软件的具体功能并不重要(或者哪个团队做水平都差不多), 老板说做什么就做什么。