敏捷笔记【三】——《敏捷估计与规划》

估计和规划是重要的,但也是困难的和容易出错的。我们不能仅仅由于它很困难就不去做这些事。规划的目的是找到一个最佳答案,用于回答“要构架什么”这一产品开发的总体问题。这一答案综合了功能、资源和进度。优秀计划应该足够可靠,可以用作对该产品和项目进行决策的基础。敏捷规划更关注规划过程而不只是建立一个计划。它鼓励修改、产生易于修改的计划,并且延续到整个项目过程。

 1.规划的目的

 估计和规划并不仅仅是确定一个合适的最终期限和进度表。规划是对价值的探求。优秀计划应该足够可靠,可以用作对产品和项目进行决策的基础。好的规划过程通过以下活动来支持这种对价值的探求:

  • 减少风险
  • 降低不确定性
  • 提供更好的决策支持
  • 建立信任
  • 传递信息

 规划通过提供对项目风险的认识而提高了项目取得可能性。估计和计划可以帮助我们进行决策分析,以便在功能性与投入的精力、成本和时间之间做出妥协与平衡。

           经常性地、可靠地交付承诺的功能可以在开发团队和客户之间建立信任,可靠的估计使得可靠的交付成为可能,客户需要通过估计来确定重要的功能优先级并做出折衷的决策。

           计划可以传递项目的期待,可以建立和传递一组预期结果的基线。

 1.1敏捷规划过程的特点

 计划和规划的区别

  • 计划是文档或者图表,是一个项目在不确定的将来会如何展开的快照。
  • 规划是一荐活动,

敏捷规划将重点从作为结果的计划转向了规划的过程。敏捷规划的特点:

  • 更关注规划而不是计划
  • 鼓励修改
  • 产生易于修改的计划
  • 待续到整个项目过程

2 规划失败的原因

规划的目的是以迭代的方式达到“我们应该开发什么”这一新产品开发终极问题的最佳答案。规划通过减少风险、降低关于产品应该是什么的不确定性、为更好的决策提供支持、建立信任和传递信息来支持这一目的。

导致规划失败的5个原因:

  • 基本活动而不是基于功能进行规划
  • 多任务处理导致更多的延迟
  • 不按优先级开发功能
  • 忽视了不确定性
  • 把估计当作承诺

基于活动的规划导致超期的原因包括:

1.活动不会提前完成:帕金森定律:工作总是要拖到最后一刻才完成。

2.延误随进度表传递

3.活动不是独立的

应对不确定性的最佳方法是迭代。通过短迭代,每过几周就向用户展示可用的软件,可以降低开发产品的不确定性也便于和客户建立信任关系。

3 敏捷方法

【A good plan violently executed new is better than a perfect plan executed next week】 -----General George S.Patton

敏捷开发小认为可用的软件可以帮助开发人员在每次迭代结束时获得一个稳定的、逐渐增强的版本,从而尽早开始,并且更频繁地收集对产品和开发过程的反馈。这些反馈被回馈到开发过程,以保证开发小组始终是在处理最具价值的功能。

项目的敏捷开发方法:

  • 作为一个整体工作
  • 按短迭代周期工作
  • 每次迭代交付一些成果
  • 关注业务优先级
  • 检查与调整

项目应该被看作是迅速、可靠地产生有用的新功能和新知识的流程,而不是对一系列步骤的执行。项目会产生两类新知识:关于产品的知识和关于项目本身的知识。每类知识在使计划更精细,从而为机构获取更多价值上都 是有益的。

敏捷开发使用3个层次上的规划:发布规划、迭代规划和每日规划。发布规划展望一次发布的整个时间范围--通常是3~6个月。迭代计划只考虑一次迭代的持续范围--通常是2~4周。每日计划则由小组成员在每日例会上向其他人做出的承诺组成。

4 使用故事点估计规模

 故事点是相对的,表达用户故事、功能或其他工作的总体规模的度量单位。故事点是对开发此功能所需的工作量、开发工作的复杂性以及蕴藏的风险等方面的组合。

5 使用理想日估计规模

理想时间和软件开发

  • 假定所估计的用户故事是您将处理的唯一工作
  • 假定所需要的甩有东西在开始工作时都会准备好
  • 假定不会被打断

给出一个而不是多个估计值

采用理想日进行估计的时候,最好只为每个用户故事分配单一的估计值。(某个用户故事需要9个理想日,而不是主需要4个程序员,2个测试,3个产品所有者日) 

你可能感兴趣的:(个人笔记)