敏捷开发实践

简介: 我们在第一次使用Scrum进行项目管理时,并没有看Scrum的规则,从直觉上做了以下几件事,巧合的是,跟Scrum中项目的前期准备sprint0 很多地方是一致的,这让我们后期切到Scrum更加顺滑。

下仅是我本人在敏捷方面的实践经验,仅供参考。。


方法论先进性问题


来源https://insights.stackoverflow.com/survey/2017#development-practices


50.png


每日站会(一直在践行)


  • 昨天为冲刺做了什么
  • 今天为冲刺要做什么
  • 遇到什么阻碍冲刺的事情了


sprint == 迭代周期 ==冲刺


 每一个迭代周期一般时间固定。


 我们在第一次使用Scrum进行项目管理时,并没有看Scrum的规则,从直觉上做了以下几件事,巧合的是,跟Scrum中项目的前期准备sprint0 很多地方是一致的,这让我们后期切到Scrum更加顺滑。


51.png


我们在准备阶段,分别让

  • 前、后端包括UED进行了架构设计,产品设计文档
  • 进行了一些技术难点和问题点的调研
  • 也有了第一个release的发布计划
  • 初步的backlog
  • 和测试、产品一起同步数据的抓取方案

  不过还缺少审核检查表等。(缺的不多)


与产品梳理故事,并对故事的优化级进行了排序


将不同故事安排在不同的sprint中


评估时间

  第一次评估故事和开发时间,是用计划扑克,将故事点和开发人天设置为一样,这样做是为了大家方便理解,先试用一次,并且是我自己将story拆分成task的。从第二次开始,将故事点和开发时间分开评估,由大家一起将story拆分成task,然后由大家认领task,交给最适合做这个task的开发同事。再根据task,每人分别评估开发时间。


与测试一起制定测试与开发周期的结合点,这块并没有完全按照scrum的方法做,我的做法是想尽量让测试与开发并行,将测试与开发的工作周期拉开一周,原因是在早期项目的开发节奏较快,任务比较多。


与UED一起制定了UED与开周期的结合点,UED整体早开发一个周期,这样当开发进行到一定任务时,UED已准备好。


通过 以上两点  设计、开发、测试 的工作周期能够比较好的咬合在一起,当然实际效果要在日后的工作中持续检验。


产品可以持续在backlog中添加待办事项,同事们就可以排sprint来进行一个又一个周期的安排。然后开发的同事们来具体实施完成。


“鸡”在scrum中不能说话。


   鸡可以观察每日Scrum,但不能够参与 参考文章:https://cloud.tencent.com/developer/article/1073880


在开发中发现很多细节问题,这些问题都是在需求及设计阶段没有讲清或更新不及时导致的,所以在流程中又加入了评审过程。

 

评审分两块:

     1:需求+设计 ,这部分的评审我们将需求和设计结合起来一起做,因为产品和UED是在开发的前一个周期的,所以时间上是有的,另外,二者合起来对于开发接收的信息更完整,更利于开发的顺利介入。评审时间是在开发拆分story之前。


     2:测试评审,具体就是针对测试用例进行评审,主要目的是使开发和测试对所做的东西有一个一致的认识,让不同角度的双方进行一轮信息的交流,达成共识。评审时间是在开发的中前期,具体时间由测试负责人决定。


加入了验收人和验收时间,在每一个sprint结束后需要验收人来进行验收,我们并没做全员的成果演示,简化些流程,只做产品的验收。但是会在大版本发布前做一个多功能的成果演示。目的是让全员对产品成果有概念,让参与的同事有成就感。


验收人员由产品改为 产品+UED


在提测前加入了UED走查,这样UED在评审、走查、验收三个环节都有机会介入校验开发的成果是否和设计一致。


召开了敏捷回顾会议,通过总结

  • KEEP(做的好的,要保持的)
  • CHANGE(做的不好的,需要改进的)
  • TRY(可以尝试的)


    产出了 action list ,为后面每一个sprint的行动

   keep change try 每人每项最多列举三项,然后大家匿名贴在白板上(反过来贴,字在里面)可以消除大家的心理障碍。开会时,主持一张一张的读出来,然后大家发言讨论下,直到最后一张讨论完,总结出ACTION LIST。


将bug fix的修改周期和提测周期粒度拆细,由原来的按sprint算,改为在一个sprint中分功能多次提测,在重要sprint中,按照当时项目的情况灵活掌握,具体来说就是:bug按优先级灵活处理,重要的先处理,排进当前sprint故事中,不重要的暂时搁置。


调整了故事和任务的粒度

   因为经过了几次迭代后,大家对开发的模式很清楚了,在互相信任的前提下, 我们提高效率,减少了录入整理和频繁的看板操作,将任务的粒度变粗,而故事的任务变粗可以方便拆分成有意义的任务,否则如果故事太细,任务不好拆分,就算拆分了也意义不大。比如一个关注功能,虽然可以拆分成数据库设计、缓存设计、接口契约制定、实现,前端实现,后端逻辑实现,但如果所有故事都这么干,任务量太大和对任务的管理就会比较麻烦。


有关敏捷的思考


   敏捷开发不是偷工减料,不是贪图速度。只是因为每一个人相对独立后,减少了沟通成本,从效果来讲变快了。如果在工作中,不做防范(写文档,测试,测试用例),一味降低成本。后来人走了,接不上,成本更高。



相关文章
|
7月前
|
敏捷开发 程序员 定位技术
敏捷开发
敏捷开发
62 0
|
敏捷开发 持续交付 UED
什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同
什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同。从本质上讲敏捷开发的一个重要目标是建立持续价值交付的能力。这种能力最终必须服务于业务的创新,促进业务的成功。
720 0
什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同
|
敏捷开发
为什么选择敏捷软件开发-考虑敏捷开发的主要优势
为什么选择敏捷软件开发-考虑敏捷开发的主要优势
391 0
|
敏捷开发 弹性计算 架构师
如何基于TAPD实践Scrum的敏捷开发?
Scrum是一种用于开发创新产品和服务的敏捷开发方式,我们首先来看一下敏捷开发过程和特点,并着重介绍Scrum框架的角色、活动和工件等内容,然后介绍团队利用TAPD中的需求管理、缺陷管理、迭代管理等应用功能来帮助团队有效实践Scrum敏捷开发。
822 0
|
敏捷开发 运维 数据可视化
|
敏捷开发 数据可视化 项目管理
关于敏捷开发
目录 前言 什么是敏捷开发 敏捷软件开发宣言 敏捷的项目管理--追求最大价值的成功 总结   一、前言         在这瞬息万变的环境里,企业的生存与发展状况取决于其快速响应变化的能力,而敏捷运作是构建该能力的核心。
1335 0