第一部分 传统规划失败的原因 vs 敏捷规划有效的原因
传统的项目规划方式往往会让我们失望。要回答-一个 新产品的范围/进度/资源的组合问题,传统规划过程不一定会产生令人非常满意的答案和最终产品。以下- -些论据可以支持这个结论:
●大约2/3的项目会显著超出费用预算(LedererandPrasad1992)
●产 品中64%的功能很少或从不会被使用(Johnson 2002)
●一般项目花费的时间会超出进度表100%(Standish2001)
导致规划失败的5个原因:
- 传统规划方法的一一个 关键问题就是,它们强调的是各项活动的完成而不是对功能的交付。基于活动的规划的第一个问题在于客户并不能从活动的完成中获得价值。功能才是客户价值的计量单位。因此,规划也应该是在功能层面上,而不是在活动层面上。
- 传统规划方法常会失败的第二个原因是多任务处理,也就是同时处理多个任务。多任务处理会对生产率产生可怕的影响。
- 传统规划方法不定能够带来高价值产品的第三个原因是,制订的计划没有按照对用户和客户所具有的价值大小来排列工作的优先级。
- 传统规划方法的第四个缺点是不承认不确定性的存在。我们忽视了与产品相关的不确定性,假定最初的需求分析就可以产生对产品的完整、完善的定义。
- 在每个估计中都包含了-一个可能性,它表示一项特定工作在估计的时间内完成的可能性.很多公司把估计当成了承诺.
敏捷规划的目的是以迭代的方式发现总体产品开发问题的最佳解决方案, "在哪段时间内使用哪些资源来得到哪些功能"。
敏捷估计和规划方法可以成功找到这样的解决方案的原因包括:
- 计划是在不同层次上做出的,并且重规划频繁地发生;
- 计划是根据功能而不是根据任务做出的;首先估计规模,然后根据规模的估计值推算出持续时间;
- 小故事保持L作的流动,而且每次迭代结束时会消除处理中的工作;
- 是在小组层次而不是个人层次对进度进行度量;承认不确定性并为之做计划。
敏捷估计和规划的12条原则:
(1)让整个小组参与。建议就是虽然可能很明显只有1~2个特定的小组成员会处理正在估计的故事或任务,但整个小组做出的估计才是最好的。小组成员间分担的职责越多,小组可以共享的成功也就越多。
(2)在不同层次上进行规划。发布计划、迭代计划和每日计划分别以不同的精度覆盖了不同的时间范围,而且各有其特定的用途。
(3)使用不同度量单位,让对规模和持续时间的估计保持独立。
(4)用功能或者日期来体现不确定性。如果新功能的量是固定的,就把不确定性表示为一个日期范围(“我们会在第三季度完成”或者“我们会在7~10次迭代中完成" )。如果日期是固定的,就需要表示在要交付的确切功能上的不确定性(“我们将在12月31日完成,产品至少会包含这些新功能,最多可能只会再包含那些新功能”)。不确定性较大的时候,就使用较大的单位(例如迭代、月,然后是季度)。(5)经常重规划。
(6)跟踪进度并沟通。燃尽图和其他让人一眼就能看明白的项目进度指示器是最好的。
(7)承认学习的重要性。
(8)规划具有适当规模的功能。迭代中用0.5人天作为单位;
(9)确定功能优先级。
(10)把估计和计划建立在事实上。有关一一个功能完成了多少的问题。很容易知道-一个功能完成了0%的时候(我们还没有开始处理它),也相当容易知道我们已经完成了100%的时候(产品所有者的所有满意条件测试都已经通过了)。(11) 保留一些松弛度。尤其是在规划一次迭代的时候,不要规划用掉所有小组成员100%的时间。
(12)通过前瞻规划协调多个小组。在涉及多个开发小组的项目中,应该通过滚动前瞻规划来协调他们的工作。通过前瞻和把特定功能分配到即将到来的特定迭代,可以规划和调节小组间的依赖。
第二部分 敏捷规划与估计
1. 规模估计: 相对故事点 vs 理想人天, 更建议用故事点做规模估计
,
故事点 | 理想人天 |
有利于采用故事点进行估计的要点 ●故事点估计通常更快 | 有利于采用理想日进行估计的要点 ●理想日在小组以外更容易解释 ●理想日估计更容易开始 |
注: 1. 不要过分估计, 估计有回报递减原则; 小组共同估计. 2. 规划扑克; :斐波纳契数列:0,0.5,1,2,3,5,8,13,20,30,50,无穷大 等比数列; 3. 故事--史诗--主题; 故事的规模要控制在一个数量级内,小于10人日; |
2. 为价值做规划
确定优先级的因素 | (1)获得这些功能带来的经济价值。 --进度风险;成本风险;功能风险;技术风险;商业风险;
|
确定功能满意度优先级 | 1. kano模型,
评估方法1: 问卷调查功能的正反两个态度
评估方法2: 相对权重法---专家判断,有此功能的收益和无此功能带来的惩罚做估算
|