敏捷模式在互联网企业大获成功后,开始在各行各业风靡起来,包括传统的地产、金融以及医疗等行业。敏捷、迭代开发 、MVP 等词汇在各种行业的人们口中说出,不说点这样的词汇好像就已经跟不上现代的社会了一样。与此同时,‘瀑布式模式’ 或者 ‘预测型生命周期’ 成了一个大家唯恐避之不及的东西,就好像 ‘瀑布式开发’ 成了落后的代名词一样。实际上瀑布式开发模式也曾经是世界的主流,现在仍然是在各行各业中其中巨大作用。
实际上开发模式没有高下之分,只有是否合适的区别。合适的才是最好的,如果环境确定,目标清晰,那么瀑布式开发就是最好的选择。如果环境动态多变,需求不清晰,但是公司组织结构层级分明,或者不具备全栈或自组织的开发团队,那混合型的生命周期可能是你的最佳选择。
在公司从 ‘瀑布开发模式’ 向 ‘敏捷开发’ 转型的过程中,常常陷入一个被称之为 ‘小瀑布’ 的陷阱之中而不自觉。什么是小瀑布?
将传统的大瀑布切割为一段一段的小瀑布。比如传统 的 100 个任务,我们每个从中挑选优先级最高的 10 个任务来迭代,迭代中的模式还是模块分明的 ‘需求’ -> ‘设计’ -> ‘开发’ -> ‘测试’-> ‘验收’ 阶段,开发进行第 N 个迭代开发的同时,产品进行第 N + 1 个迭代的 ‘需求’ -> ‘设计’ ,这样开发完成第 N 个迭代后,立刻可以进行 N + 1 个迭代的开发,同时产品同学进行第 N + 2 个产品的 ‘需求’ -> ‘设计’ 的工作。以此循环进行,直到产品的结束。这个小瀑布的模式与敏捷的区别是什么呢 ? 直观的看下图:
上图描述了瀑布与敏捷的区别,小瀑布也是瀑布,只不大瀑布可能是以几个月月或一年时间为周期,小瀑布是两周或三周,但是不改变瀑布模式是在一段时间内集中完成一个过程的动作本质。而*敏捷并非在一段时间集中完成一个过程,而是将所有过程中的每个部分集中在一段时间内完成。正是因为这样,所以敏捷才要求团队成员每个人都是多面手,每个人都是全栈,这样才可以做到没有中心节点,因为每个人都是中心节点,由此而完成团队的去中心化。