敏捷项目中的进度控制
敏捷项目中的进度控制
消除浪费
时间是软件开发过程中最为稀缺并不可替代的资源。其浪费将直接影响项目的进度。而软件开发过程中存在各种各样的浪费。因此,消除浪费是加快进度的一种重要途径。
返工则是软件开发过程中常见的一种浪费。避免返工不仅有利于加快进度,同时也能够提升软件的质量。敏捷开发中的一些优秀实践,如"定义完成的标准"、"结对编程"、"测试驱动开发"(TDD)等都有助于避免返工。
"定义完成的标准"通过定义质量要求和产出物避免返工。"结对编程"通过及时的 code review 避免缺陷在后期才被发现而造成返工。"测试驱动开发"则是通过明确需求,避免因需求理解错误引入缺陷而造成的返工。
过度设计也是一种常见的浪费。所谓"过度设计",指在设计阶段为未来可能发生的变化做过多的预测,并针对这些预测在设计上做过多预防。正如俗话所说"计划不如变化快",过早地为这些可能根本就不会出现的变化做处理成了一种浪费。因此,敏捷开发中提倡的是"简单设计"(SimpleDesign)。所谓简单设计并不是没有设计,而是采用尽可能简单的设计方案。事实上,真正能够以"不变应万变"的设计方案是不存在的。如果它存在,它必然是一种简单的方案,因为其简单,它可以被轻易得推倒重来,这才是适应"万变"的方法。
时间盒管理
项目进度管理中很重要的一个方面是进度风险的控制。出于应对风险的需要,在安排计划时往往会留出所谓的缓冲时间,这有其合理性。但是,这个缓冲时间延长了任务的持续时间。而关键任务持续时间的延长则延长了整个迭代持续的时间。值得注意的帕金森定律(Parkinson's Law)所阐述的现象却给了我们在某些情况下要适当压缩任务尤其是关键任务的持续时间。
帕金森定律告诉我们:只要还有可用的时间,一件工作消耗的时间就会不断地扩展,直到用完所有的可用的时间。也就是说,一件任务如果需要 3 天时间完成,而计划安排的持续时间是 5 天的话,这个任务会消耗 5 天甚至更多的时间才能完成。
这种现象的方面给了我们一个启示:如果一件任务需要 3 天时间完成,而计划安排的持续时间是 2 天,那么这件任务真的可能在 2 天内完成,最多也可能是 4 天时间完成。这也比将该任务计划为 5 天完成节省时间。可见,过于宽松的机会反而可能拖慢了进度,而有一定紧迫感的计划所带来的适当压力可以激发人的动力和潜能反而可以加快进度。
提高进度信息的获取频率可以尽可能早得发现进度障碍,为消除障碍争取了最大时间,从而有效减低进度风险。由于敏捷开发中的一个迭代周期持续的时间较之传统项目要短得多,进度信息的获取频率也要相应有所体现。笔者通常每天对项目进度信息进行汇总。
自由认领任务
任务采用认领的方式而非采用分配的方式落实到人,也有助于规避人力风险导致的进度风险。比如,在需求评审与分析的时候,笔者并不指定谁负责哪个 Story,而是要求全体成员对本次迭代的所有需求都要有所理解,并能够讲解自己对本次迭代中的任意一个需求的理解。敏捷开发采用迭代的方式,每次迭代所要实现的需求量同传统项目比较要少得多,这使得每个团队成员对本次迭代的所有需求都进行理解成为可能。
在确认每个团队成员对本次迭代所要实现的所有需求都有所理解之后,笔者才让团队成员对相应需求的开发测试任务进行认领,具体落实到人。采用这种任务认领的方式,使得每个团队成员对本次迭代的所有需求都有所理解。从而,在人力变更(如原先负责某个需求的开发人员请假了)时,可以快速的找到能够承接任务的人,进而规避了进度风险。从一开始就将需求落实到相应的开发测试人员,很容易就造成团队成员只关注自己手头上的"一亩三分田",从而使得对于需求的理解没有备份人力,一旦人力变更则很容易影响项目进度。
积极求助
笔者在项目组中强调一个个人规避进度风险的原则。该原则要求团队成员在遇到问题时,通过个人的努力消耗了 30 分钟而仍然未能将问题解决时,要及时寻求帮助,而不是继续在问题上打转,甚至于走进问题的死胡同。当然,团队成员在遇到自己无法解决的问题时,可能会觉得不好意思被人知道,而项目经理要消除他们的这种顾虑。尤其是一些工作经验不长的员工,由于个人经验、能力等方面的限制,在遇到问题时候,往往容易只是一门心思地想着要解决问题,而完全没有顾及到时间。这往往使得他们对于问题的解决就像是走进了一条死胡同,心里明明想要走出去,可是越是往前走,就越是走不出去,而时间却悄然而逝!
敏捷项目中的进度控制相关推荐
- 【项目管理】项目中的进度管理,你知道多少?
有效实施项目进度计划,是项目成功的重要保障,项目进度管理也是每位项目经理都非常重视的问题. 项目中的进度管理可以帮助您了解项目当前进度,估计项目是否能顺利完成. 项目管理就是通过的对知识.技能.工具的 ...
- 业务分析师在敏捷项目中的作用
业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 下午12时35分 社区 Agile 主题 客户及需求 标签 补充实践 敏捷软件开发实践的文化中存 ...
- 业务分析师在敏捷项目中的作用(ZT)
业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 领域 过程 & 实践, 架构 & 设计 主题 客户及需求 , 敏捷 , 补充实践 ...
- 软件外包项目中的进度管理
案例 A公司是一家美资软件公司在华办事机构,其主要的目标是开拓中国市场.服务中国客户,做一些本地化和客户化的工作.它的主要软件产品是由总部在硅谷的软件开发基地完成,然后由世界各地的分公司或办事机构进行 ...
- 项目管理中的进度控制与目标计划
项目进度控制是项目经理的一项重要职责.项目进度管理是在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理,目的是保证项目能在满足其时间约束条件的前提下实现其总体目标,在规定的时间内,拟 ...
- 项目管理过程之进度控制
简单说,进度控制就是比较实际状态和计划之间的差异,并作出必要的调整使项目向有利的方向发展.这其实也说明计划和实际状态之间总会存在一些差异,也就是"计划跟不上变化",有的人因此得出结 ...
- 阿里云视频上传视频获取进度条问题(使用session方案,获取进度一直为0的解决方案)补充:前后端分离项目中获取进度解决方案
1.场景描述: 之前用阿里云上传视频,前端反应上传视频经常出现获取视频url失败问题.但是接口我测过很多遍都是没有问题的.后台这边提供了一个视频上传的接口返回一个videoId,还提供了一个根据vid ...
- python日期迭代_计算敏捷项目中迭代时间安排(Python3版)
节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行.针对产品的不同周期,方案有所不同. 迭代开发.jpg 通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项 ...
- 在vue项目中使用v-show控制元素隐藏导致swiper的轮播图及分页无法正常显示
一.需求问题 在之前的项目开发中,使用了swiper插件.由于是vue项目,对于swiper的轮播图我们使用了v-show命令,进行动态隐藏与显示.只有当点击进行一些操作以后,swiper的轮播图才会 ...
最新文章
- python入门简介
- leetcode 318. Maximum Product of Word Lengths | 318. 最大单词长度乘积
- java mp4 视频时间戳_MP4文件中音视频时间戳的计算
- 深度学习之基于卷积神经网络实现超大Mnist数据集识别
- Spring Integration –轮询文件的创建和修改
- 2019年总结人工智能未来发展趋势
- Adobe Experience Design是什么软件?xd mac版下载安装教程 XD 2021发布
- [转载]GIF、JPEG 和 PNG的区别在哪里?
- String的按值传递,java传参都是传值
- jQueryUI modal dialog does not show close button (x) JQueryUI和BootStrap混用时候,右上角关闭按钮显示不出图标的解决办法...
- 如何用密码保护 macOS 文件夹?
- 河北2021高考成绩查询具体时间,2021河北高考时间具体安排表
- 串口的定义,232,485,UART,TTL之间的区别和关系到底是什么
- unity Animator做简单的人物动画
- 百度地图API秘钥问题
- CODO是一款为用户提供企业多混合云、自动化运维、完全开源的云管理平台
- 30-TCP 协议(糊涂窗口综合症)
- 马虎词汇教程21-25(转载)
- Java菜鸟如何入门?1分钟入门
- oracle数据库闪回详解