敏捷和线性的本质区别
如上文所说,个人认为冲探索轻预测是敏捷和线性开发方式的本质区别。如下所示:
敏捷开发:关照不确定性→探索式,注重应变→价值中心
线性开发:关照确定性→遵守规程,注重良好设计→过程中心
敏捷开发承认环境、团队、用户和自身的不确定性,认为市场需求难以预测,因此包容试错、探索前进,在小步快跑中实时校对方向。校对的参照点是用户价值,是否能为用户创造价值作为评价工作的关键指标。
相对而言,线性开发关注确定性的内容,强调准确预测市场,根据预测进行尽可能完美的设计,设计出来的蓝图必须严格呈现,因此评价工作的标准也是蓝图实现程度,即使市场反馈可能并不尽如人意。
敏捷的适用场景
线性开发因为重预测,便于流程控制,但难点在于必须一开始就确定正确的设计范围;敏捷开发因为是探索导向的流程,可以不断深挖问题本质,提炼真正问题,但缺点是大项目跨部门时时间成本高。
由于敏捷方法以用户价值为目标,瀑布方法以完美呈现蓝图为目标,项目制团队中容易就价值达成一致,但是跨团队跨部门甚至跨公司的项目中,各方理解的价值未必一致。如果能就用户价值(也就是要交付的产品)达成共识,才能应用敏捷开发。如果无法达成共识,只能通过过程的控制减少沟通和时间成本,宜采用瀑布式开发。
根据优劣势,不管是敏捷还是线性开发都有其适用场景——常用于战略决策的Cynefin框架非常适合解释敏捷开发
1. 简单域(simple)-已知的已知
当因果关系显然而见时。处理手法为”感受-归类-反应” (Sense-Categorise