`
bryanzk
  • 浏览: 58513 次
文章分类
社区版块
存档分类
最新评论

敏捷开发时间迭代实施流程

阅读更多
从4月中旬开始,我们部门进行了破天荒有史以来第一次敏捷项目实践,两周的时间虽然 不长,但是整个团队感觉无论从技术上,还是沟通与合
作上,都有很大收获。当然,还有很多我们事先没有想到的纰漏和问题,经过与团队每个成员的面谈,我为后续的迭代整理出了下列的优化流程。
说明:
◇在下面的流程中着重迭代开始的规划和迭代中,开发团队与测试团队的协作过程,对PO的review会议和回顾会议没有做详细阐述
◇本流程仅针对我们目前特有的项目,有些特征不具有一般性。
◇其中使用到的一些缩略用语
        PM: 项目经理/项目负责人/项目协调人
        US/us: user story
        PB: product backlog
        PO: Product Owner
1.      PM根据上个迭代的结果,对已有的PB做修正,添加需要修正的BUG,未完成的us等,并提交给PO作为参考
2.      PO根据PB和自己的业务需求,并根据优先级 顺序,提出本次迭代希望完成的us和PB; 并对这些us和PB的细节部分进行整理
3.      PO将整理后的us和PB提交给PM
4.      PM提前一天将po提交的文档作为planning meeting会议提纲的一部分,分发给项目团队
5.      项目团队成员仔细研究PO的需求,并记录自己针对业务需求和逻辑的想法或疑问
6.      PRODUCT PLANNING会议
  a)    参与者:PO,PM,开发团队、测试团队
  b)    过程
    i.  项目团队对PO提出的需求进行讨论, 并由会议记录人记录每个us的细节
    ii. 涉及到某个业务细节,讨论的时间不超过5分钟, 并且最终拍板权在PO手中
  c)    会后
    i.  由会议记录人负责,将本次迭代涉及到的us 其描述和相关细节,直接建立在部门内部的 wiki中
        记录形式:所有的us按照迭代的周期不同 放在不同的page中,每个us以 panel相包裹
7.      ITERATION PLANNING会议
  a)    参与者:PO(可选),PM,开发团队、测试团队
  b)    过程
    i.  根据us和记录的PB,对本次迭代的任务进行 拆分和估算
    ii. 要考虑各个任务之间的前后逻辑关系, 以确定优先顺序
         注意:估算时,应该把DEBUG的时间也要考虑在内
    iii.        如果估算的时间超过了本次迭代的可用时间,那么PM找PO进行协调,请求放弃不能完成的US和PB
   c)   会后
    i.  会议记录人负责将会议中最后确定的任务分配情况提交给PM
       ii.      PM在jira中建立任务并分配到人
        使用us作为jira中的COMPONENT
        同时使用us作为一个task的名称,将与该us相关的任务作为subtask作为us task的子问题
8.      DBA 可以开始考虑在数据库中进行建表等操作了
9.      ITERATION DESIGN会议
  a)    参与者:PM,开发团队、测试团队
  b)    过程
    i.  根据本次迭代要完成的任务,开发团队与测试团队确定每个us和PB 要验收测试所涉及到的代码接口
    ii. 开发团队使用类图、顺序图等uml工具,对 代码中的一些接口和调用方法进行名称的定义
    iii.        可以使用照相手机等工具,把白板上绘制的简要图表拍摄下来,并上传至部门的wiki中
10.     PM准备一个项目变更日志,用来记录迭代中,某时间点发生的变化,包括下列内容
  a)    数据库字段的变化
  b)    us的细节的补充
  c)    ......
         注意:对该日志的访问必须方便和直观
下面进入开发阶段
11.     开发团队
  a)    采用tdd的方式,完成各自的任务
  b)    每当一个任务中的细小任务完成,并确认在 本地编译无错误,而且单元测试都可以通过后, 才允许上传到ci服务器
  c)    上传完成后,开发人员要注意即时监控ci服务器的反应, 如果有问题,马上进行解决
  d)    当开发人员确认自己的任务完成后,对应的sub task可以解决, 并且记录工作实际完成时间
  e)    每个任务的完成,都有可能触发一次CODE REVIEW的过程
    i.  如果发现问题,或者需要对代码进行重构, 在完成后,负责人要修正任务的实际工作完成时间
  f)    团队针对一项任务的CODE REVIEW结束,并且负责人修改完成后,该负责人可以针对自己剩余商未开始的任务,调整估算的时间,
12.     测试团队
  a)    负责维护测试库
  b)    并且要根据与开发团队定义好接口, 撰写针对每个us的自动化测试脚本, 准备自动化测试的TEST SUITE
13.     PM
  a)    当一个us相关的任务都完成后,PM修改jira中的us task的状态,变更为"等待集成测试",并通知相关的开发人员和测试组 马上对
该us进行集成测试,并在测试完成 后,马上进入修正阶段
14.     在这个过程中,如果任何人发现US有任何不完整的地方, 都应马上与PM和PO进行协调和沟通,如果需要马上补漏的, 发现者应该对wiki中
的相关us进行补充。如果不需要在本次 迭代中进行考虑,那么PM应该记录到项目变更日志中
15.     开发人员仍然要坚持每日立会,每日立会后,PM更新BURNDOWN CHART
16.     项目中用到的一些特殊的技术,可以考虑在某日立会之后, 用半个小时左右的时间,该技术的掌握者向整个团队分享该知识
进入迭代收尾阶段
17.     所有的us都已经完成(测试团队完成验收测试,开发团队修正完毕并且无误)
18.     PO REVIEW 会议
19.     团队回顾会议

上面的任务分析过程中,每个分拆出来的任务,我认为都应该有对应的us,理由如下:
◇ 如果没有,那么这个任务对于PO的业务价值在哪里体现呢?
◇在任务分析时,发现了某些隐藏的而又是必须完成的任务,那就说明,还有隐藏的us没有发现。这就需要找PO进行沟通,看这些隐藏的任务是否对其有价
值,如果有的话,那么就分析隐藏的us,并根据当前迭代的任务完成和分配情况,进行本迭代应完成的任务和us的调整
◇没有对应的us,没有与PO讨论,PO可能在将来经过缜密的思考后,提出的要求,目前的解决方案可能不能够满足,就增大了返工的几率
◇没有对应的us,测试组没有参与,那么一些验收测试的细节就很难得到充分的发掘;
◇除此之外,还有可能造成系统切分的粒度过粗,从而增加了这些没有us的功能代码和与其相关的功能代码之间的耦合度,由此可能带来的一系列后果:
   ◆针对这些无us的代码,没有自动化验收测试的脚本;测试组需要等到与这些代码相关的us的功能代码提交后再进行测试,从进度上讲,会延迟测试组
和开发人员的协同合作的时间,并延迟一些问题的暴露时机(我们都知道:问题暴露的时机越早,解决起来成本越低)。
   ◆针对这些无us的代码,大家的关注度和思维的缜密性可能不如有us的代码,那么在这对这些代码做tdd和debug的时候,投入相对较小,出现
纰漏的几率就变大了。当我们在开发或调试与其相关的代码的时候,对于发生的问题的定位,这些代码就会造成一定的困扰


bryanzk 2007-05-18 13:19 发表评论
分享到:
评论

相关推荐

    产品迭代开发流程图

    ### 产品迭代开发流程详解 #### 一、项目立项与规划 在进行任何具体工作之前,首先要明确项目的立项。这一步骤通常涉及到对项目背景、目标、预期成果以及潜在风险等因素的综合考量。项目立项阶段完成后,需要进一步...

    敏捷Scrum开发流程培训总结.docx

    Scrum作为敏捷开发的一种方法,基于经验型流程控制理论,倡导从实际经验中学习并据此作出决策。它的核心价值观包括承诺、专注、公开、尊重和勇气。Scrum的特点包括高效、简单、快速响应、自组织和良好的沟通。目标是...

    软件工程实践中的敏捷开发与迭代开发模式1.pptx

    - **敏捷开发与传统开发模式的比较**:传统开发强调严格的计划和流程控制,而敏捷开发更注重灵活性和快速响应变化。 - **敏捷开发的核心理念**: - **持续交付**:确保软件产品能够持续地、频繁地交付给客户。 - *...

    敏捷开发流程

    Scrum的实施流程包括以下步骤: 1. **确定Product Backlog**:由产品负责人列出产品需求列表,并按照优先级排序。 2. **Sprint Planning Meeting**:团队根据Product Backlog选择本次迭代要完成的目标,形成Sprint ...

    敏捷开发知识体系

    《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...

    敏捷开发介绍与实施过程

    敏捷开发的实施策略通常包括以下步骤:理解敏捷的核心理念,选择适合的敏捷框架(如Scrum、Kanban等),培训团队成员,制定初始的敏捷流程,持续改进和调整,并定期评估敏捷实践的效果。例如,通过采用看板系统进行...

    软件迭代开发计划模板

    软件迭代开发是一种敏捷开发的方法论,其核心在于将整个开发周期分为若干个较短的迭代周期来进行,每个迭代周期内完成一部分功能的开发、测试及部署。这种方式能够快速响应市场变化,及时收集用户反馈并对产品进行...

    了解敏捷测试的开发流程

    敏捷开发测试流程中还特别强调了“Lead Time”的概念,即从一个想法产生到这个想法变成可工作软件的时间。敏捷致力于缩短Lead Time,从而提高响应市场的能力。在敏捷流程中,需求分析、设计、编码、测试等环节是相互...

    敏捷软件开发-敏捷软件开发流程

    敏捷开发的实施过程中,常见的误解应该被澄清,例如认为敏捷开发可以不要文档、设计和计划,或者认为敏捷只适用于小项目。实际上,敏捷开发需要适当的文档、设计和计划,只是强调它们应保持灵活且适应变化。同时,...

    论文参考:基于敏捷开发方法的企业信息化系统开发流程改进研究

    通过对传统流程模型的全面分析,论文提出利用敏捷开发方法来优化流程,强调了敏捷开发的迭代周期短、用户需求匹配度高以及风险控制能力强等优势。通过实际案例验证,展示了这种方法在实践中的应用效果,为企业的系统...

    敏捷开发知识体系.pdf

    此外,对于那些习惯了传统瀑布式开发的组织来说,向敏捷开发转变需要时间和努力。 ### 敏捷开发与组织的适应性 敏捷开发方法论的适应性是其最大的优势之一,但这并不意味着敏捷开发可以“一刀切”地适用于所有组织...

    敏捷软件开发与测试过程

    敏捷开发强调的是快速响应变化、用户参与、团队协作以及持续改进,它不仅仅是一种开发方法,更是一种思维方式。 #### 二、敏捷软件过程概述 敏捷软件过程是一种注重快速迭代和持续改进的软件开发方法论。相比于传统...

    2012 敏捷开发大会 ppt

    Kanban是敏捷开发的一种可视化工具,姜信宝的分享可能涵盖了如何利用Kanban板来优化工作流程,提高团队的透明度和协作效率。 9. **张刚-敏捷视角下的设计方法改进**: 从敏捷的角度出发,张刚可能介绍了如何改进...

    软件公司 敏捷开发材料

    在本套材料中,我们将深入探讨敏捷开发的概念、实施过程及其在软件公司的应用。 首先,"软件公司 敏捷开发材料(概念普及).ppt"将介绍敏捷开发的基本概念。这可能包括敏捷的四个核心价值观和十二个原则,以及敏捷...

    敏捷开发&敏捷开发&敏捷开发

    #### 三、敏捷开发实施条件 - 团队规模:至少需要三名研发工程师。 - 角色分配:团队内部需要一名合适的ScrumMaster角色,负责指导团队按照敏捷原则执行开发任务。 - 执行力衡量:通过完成度、评估准确度、计划合理...

    如何用leangoo看板工具完美实施单团队scrum敏捷开发(1).docx

    敏捷开发与Scrum电子看板工具应用场景 本场景描述的是针对10以下小型产品研发团队或小型...Leangoo单团队敏捷开发项目模板提供了一个完整的敏捷开发流程,帮助小型团队快速实施敏捷开发,提高团队协作和任务管理效率。

    某敏捷开发框架专业版7.0.rar

    本文将详细介绍某敏捷开发框架专业版7.0的核心特性、优势、实施流程以及如何利用其进行高效的软件开发。 1. **敏捷开发理念**: 敏捷开发强调快速响应变化,通过短期迭代的方式不断交付可用的软件产品,从而在项目...

Global site tag (gtag.js) - Google Analytics