前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >敏捷开发方法如何展现项目整体规划

敏捷开发方法如何展现项目整体规划

作者头像
PM吃瓜
发布2019-08-12 16:46:44
6440
发布2019-08-12 16:46:44
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

敏捷开发方法的阶段划分与传统的瀑布型生命周期是不一样的。敏捷展现出来的是一个又一个迭代,似乎难以展现项目的整体情况。与领导沟通汇报时难以在短时间内说清楚。

首先,识别项目的整体工期限制。 项目的整体限制主要在工期、工作量、成本。 一般常见的限制是项目最终结束日期。比如有些项目是获得了政府资助,那么政府对这些项目在何时结束是有要求的;有些项目是按年度计划的,要在12月结束;有些项目是根据客户合同来的,那么根据客户的时间要求来进行。 也有部分少数项目确实没有明确的工期限制,或者难以估计何时能够完工,这种情况下常见的做法是分期进行,把相对明晰的、优先级高的内容放在第一期中,把未知的、可变的部分放到后面的第二期或第三期。

其次,确定迭代周期 迭代周期是指迭代历时多少时间。常见的迭代周期是2周~4周,也存在1周的迭代周期,一般而言最长的迭代周期是8周,约2个月。 短迭代是敏捷开发方法区别于传统开发方法的最大特征。

迭代的英文原文是Iterative,这个词是舶来词汇,它的英文注释:Iterative是英文Iterate的形容词形式。看一下韦氏大辞典中Iterate一词的定义。 Iterate: To say or do again or againand again (重复地说或者做)。 很显然我们的迭代开发(Iterative)中的迭代取的是它的“不断地做(Doagain and again)”的意思。因此迭代开发背后的思想是一种与传统思维模式截然不同的方式,传统思维方式往往希望一遍做好,一次成功;但是迭代开发意味着反复地 做,不断地根据客户和市场的反馈进行调整。 敏捷开发的首要意图是尽快的将有价值的功能交付到用户手中,识别最高价值的可行的最小功能集,最快速的部署。来自于真实用户的反馈是最佳的标准。这些功能使用的反馈将指导后续的开发,特别是前期需求有误的,通过反馈修正后的功能将更有价值。 所有敏捷中的反馈很重要。敏捷开发的速度需要匹配于项目获得可靠信息的速度,也就是说反馈循环的紧密程度。团队的生产力也受限于所收到反馈的质量。反馈循环的紧密程度就与迭代周期长短紧密相关。短迭代带来了快速的反馈,能够快速的发现问题,尽早的进行调整。所以敏捷开发方法对迭代的时间长度有限制。

常见问题:迭代周期是否根据每个迭代的情况来调整迭代周期时间长短? 尽量按照固定的迭代周期,把迭代作为一个时间箱来进行。在长跑运动中,保持不变的节奏是最省力气的,同样的,团队按照固定的迭代节奏开展工作,能够让内部外部各方有明确的预期。 对于时间箱而言,如果时间节点到达时尚未开发完所有功能,可以把没有完成的功能在下一个迭代继续开发。 但是如果有外部事件的重要时间节点,可以适当调整时间窗使得某个迭代结束时与外部项目吻合。 当总工期长度和迭代周期确定后,再考虑项目起始和收尾的情况,就可以把全部迭代计划做出。对于项目起始,常见的做法是安排第0迭代,第0迭代一般的时间长度不超过普通迭代的时间长度,主要的任务在于组织团队、建立开发环境及其他一些初始化的工作。 对于项目收尾,根据具体各个组织的要求来安排,诸如考虑进行外部测试、书写项目结题材料、对外宣传材料,等等。 然后,在选择合适中间点进行beta交付。 将得到初步识别的各个核心功能或特性安排到计划的迭代中。

以上规划中,识别的规模尽量不要超过开发能力的50%,因为敏捷开发不要求开始就有详尽需求分析,不少新的需求会在每个迭代的交流中出现。 根据需要开发的核心功能或特性,组合合适的迭代,安排beta交付或release交付。 常见的,每三个迭代安排一个beta交付;也有每个迭代都进行beta交付的做法;不少互联网的做法是每个迭代都进行release交付。

在迭代开展后,在向领导汇报时,可以这样简短的汇报:本项目总共规划了12个迭代,每个迭代周期是4周,当前进行到第5个迭代,前4个迭代原规划的 功能基本都实现了,除了……,并且新增加了什么什么重要功能。前4个迭代结束后,我们将满足beta发布的版本交付给了某个用户试用,目前收到8条反馈, 正在处理当中。 另外,迭代总体燃尽图也是一个展现项目整体的好工具。 如下是一个项目的功能点迭代燃尽图实例,纵轴是待实现的功能点数,横轴是迭代数。

通过这个图,已经进行了29个迭代,预示还需要6个迭代,可以把所有功能点数“燃尽”。

通过这个图上已经进行了29个迭代,预示还需要8个迭代,这就与功能点迭代燃尽图的预测不一致,项目组可以从中分析原因,采取措施,保证最后的工期。 上述图最直观的原因是剩下未完成功能比较难做,而前期已经完成功能可能需要修补。在这种情况下,有必要适当的在第28以后的迭代中加大工作负荷。

综上,对比下瀑布开发和敏捷开发,如果同样是工期为一年的项目,在瀑布开发下,可以作出开发计划、需求、设计、编码、测试等等阶段里程碑的安排,每 个阶段的平均工期约是2个月,而且就算是在编码刚开始的时候,也无法直观的看到需要的软件是什么样子,只能查阅大量篇幅的文档。

而在敏捷开发下,假设一年安排了11个迭代,每个迭代为期1个月左右,把已经识别的关键功能分配到各个迭代当中,每个季度交付一个beta版本,从计划颗粒度上讲就比瀑布开发来得更细, 从执行中的跟踪来讲,可运行的半成品软件较之经过里程碑评审的文档而言更加直观,更加说明已经获得的成果。 因此,敏捷项目整体规划是可以作的,而且其颗粒度并不比传统生命周期更粗。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档