浅谈敏捷开发及Scrum(二)实施与难点

上一篇浅谈敏捷开发及Scrum(一)概念与理解写了一些关于敏捷开发和Scrum的相关概念及个人理解,这里来说说实施与遇到的一些困难。

9166166-c1796e4c7219cca6.jpg
Scrum.itlao5.com

如何实施

敏捷开发的实施,我们是用的Scrum迭代开发,关于Scrum的一些介绍上一篇已经说了,这里说一下实施流程及其关键点。

一个Scrum迭代一般建议2-3周,具体视团队情况而定,一般团队中有一个PO,一个SM,以及5-7个团队人员(开发及测试,而且这里面最好有1-2个以上的多面手)。

迭代的管理,我们用的是leangoo,bug管理是用的禅道,下面是迭代流程:

Scrum迭代

1、Scrum开发中,所有的需求都需要进入到PO的Project Backlog;
2、在迭代启动前,由PO将里面的代办需求进行优先级排序,并整理成能执行的有价值的Story,移入Spring Backlog中(注意:这些Story是可执行的,PO一般应清楚需求的验收点,并对该Story有一个预估的时间点);
3、在迭代周期内的第一天,这一天主要是进行项目启动会(需求评审、时间评估、实现思路及细节讨论、故事拆分、时间安排等),PO会对Spring Backlog中的Story进行描述,团队成员进行细节询问后,会进行一轮开发点评估(按团队成员进行一个增删改查业务为一个点来评估Story需要几个点进行开发或测试);第一轮评估后,会由团队成员阐述评估时间点的原因,之后再进行1~2轮时间点评估。团队成员之间评估相近,且PO认为合理,取最终评估点最大值(注意:开发评开发时间,测试评测试时间);如果最终评估点过大(我们一般取3以下的点,超过3则认为过大),需要进行Stroy拆分,拆分后继续评估;
4、所有Story评估完毕后,由团队成员自主领取任务,每个成员能完成的任务量参考之前迭代的任务量(一般是几个迭代后,才能比较准确的得到一个迭代团队和个人能顺利完成的任务点数);
5、评估完毕后,当天,所有成员需要进行故事拆分,拆分为每天或者每半天能完成的任务,并给每个任务定一个时间点,一般是开发先定完时间点后,在开发的时间点基础上,测试再加上相对应的测试时间;
6、一般第二天或者第三天,会进行测试用例评审,这个主要是PO和测试参与,有需要时可让对应Story的开发人员参与;
7、每日站会,在迭代中,每天成员开始工作应该是先根据leangoo梳理每日的工作,然后在每日站会上叙述昨天完成的内容,今天计划做的以及面临的困难,是否需要支持(这个会议时间不宜过长,原则上是仅叙述,不实际解决问题,最重要的一点是PO闭嘴,因为PO一旦说话,肯定会聊到详细内容,然后整个团队的时间就浪费了。所以问题在会后解决,当然,更加提倡的时开发时候碰到问题立即解决,而不是等待每日站会)
8、项目验收会,在迭代的最后一天上午,我们一般会对项目进行验收,由测试展示给PO,由PO最终决定每一个Story是否达标,迭代是否顺利完成,这是PO的验收会,也是整个团队的成果展示会。
9、在最后一天下午,一般会进行迭代总结会,会评选出迭代之星,迭代中的优缺点,以及缺点的解决方案,并将解决方案分配到负责人,下个迭代努力去改进。
10、一般,在迭代中途,我们会有一些代码ReView,可以在成员的每次提交代码前进行update时看看别人的代码,并建议每周花一两个小时进行团队的代码ReView。

ps: 以上是一个迭代的主要流程(写得仓促,但愿没遗漏)。

需要注意的是:1、在迭代中,SM需要保证团队不收到外界干扰,所有的外界骚扰都先经过SM或PO,不能直接进入团队。2、PO需要在迭代前花费较多的时间来梳理清楚用户需求,才能让迭代更顺畅,不让等进入迭代遇到问题再去梳理用户需求。3、PO工作任务很大,责任也是最重的,必须保证一个迭代的任务是不轻易变化的,不得已非要变化时,需要进行Story替换。4、对于有线上维护任务的团队,视情况预留线上支持的任务点。5、如果有团队成员需要休假,最好在迭代启动会提出,并预留时间。6、团队的稳定性非常重要,团队稳定了,才能准确预估一个迭代能完成的点数,才能保证一个迭代顺利完成。7、迭代启动会对需求的讨论越详细越好,这样在开发中才能少进行错误的或者重复的工作。8、开发中有问题及时沟通,主张面对面沟通,不建议问题留到开会时解决,主张主动、积极。9、迭代总结会是很重要的,能让一个团队清除自己的长处和短处,而更重要的是持续迭代中对于短处的改进,这些将会让团队战斗力越来越强,迭代越来越轻松。11、迭代是为了更轻松更合理更及时的完成用户需求,所以强制给成员分配工作、频繁的需求变更等都不应该存在,这些会让迭代变得更沉重,让成员觉得迭代开发毫无生趣。

大项目实施

然而,一个大项目往往需要很多个迭代才能完成,那么,在大项目研发中,如何进行迭代呢?
这就需要将一个大的开发周期(几个月)拆分为一个个小的开发周期(2-3周),然后进行一轮轮的迭代;可以考虑在2-3个常规开发迭代后插入一个强化迭代(进行代码调整、问题修复、性能优化等),确保前几个迭代完成的任务能保质保量;在完成所有开发迭代后,再进行2-3个强化迭代(不断测试及修复问题、优化性能、优化用户体验等);当然,最后还最好有一个发布迭代(用于整体回归测试、发布准备等)。
于是这个大项目的开发可能是这样的:
常规迭代-->常规迭代-->常规迭代-->强化迭代-->常规迭代-->常规迭代-->常规迭代-->强化迭代..........-->强化迭代-->强化迭代-->强化迭代-->发布迭代

9166166-828717bd12407cec.jpg
Scrum.itlao.com

遇到的困难

在迭代中,遇到一些困难时难免的,重要的是想着怎么去解决它,去保证迭代的正常进行,这样,迭代才会越来越顺利,任务进度才能有保障,成员才会越来越轻松。

1. 会议混乱,偏离主题

会议偏离主题,这个是我们团队迭代中存在了很长时间的问题,往往讨论一个问题,或者每日站会进行汇报时,随着一个成员的介入,主题越来越分散,最后甚至变成框架不支持、之前代码太混乱一类的抱怨。

  • 针对这一问题,我们这样改进:
    1.团队应该清楚任何讨论都是为了解决问题;2. SM应该把控好每一个问题讨论的范围,适当中止并引导回到主题;3. 在每日站会,PO绝对不允许发表任何看法,任何成员不能打断别人的叙述,有其他意见,站会后讨论;
2. 线上问题过多,干扰正常迭代

因为我们项目已经上线,而且主要是预约和缴费,所以线上有问题大多需要及时解决(毕竟对于用户及公司来说,涉及到钱的问题就是大问题),于是,刚开始的几个迭代我们做得很累,同时迭代也往往是以失败结束。

  • 针对这一问题,我们这样改进:
    1.根据上个迭代的经验,预留足够的任务点来作为线上支持;2. 所有线上问题先经过PO或SM过滤,保证开发人员不能被打断;3. 一些常规问题尽量让运维解决;4. 解决真正紧急且耗时不多的问题,其他问题留到下个迭代;
3. 外部原因导致迭代任务无法正常完成

因为我们有很多第三方的依赖,包括接口、资源申请等,往往在迭代中,我们完成任务,但第三方未能及时提供,导致不能联调甚至我们自己开发的一些步骤无法进行下去。

  • 针对这一问题,我们这样改进:
    1.在迭代开发前由PO确定好第三方能提供接口或资仅源的时间,降低任务的不确定性;2. 使用工具进行接口模拟,降低开发对第三方接口的依赖;3. 在迭代故事中,区分第三方的任务和我们自己的任务,将开发与联调分离;4. 当缺少第三方支持和资源时,主动及时提出,并找对方协商;
4. 测试无法融入团队的问题

在开发完成任务后,测试

5. 线上问题的管理
6.

简书:ThinkinLiu 博客: IT老五

关于敏捷开发,还在学习、实践及总结中,后续也会在这里记录新的问题和感想;如果有什么意见,欢迎共同探讨。

相关内容:
浅谈敏捷开发及Scrum(一)概念与理解
浅谈敏捷开发及Scrum(二)实施与难点
浅谈敏捷开发及Scrum(三)工具leangoo
浅谈敏捷开发及Scrum(四)工具zentao

9166166-931fd471780b7e64.jpg
IT老五(it-lao5):关注公众号,一起源创,一起学习!
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 敏捷开发流程是一种快速、灵活的软件开发方法,它通过迭代的方式来开发项目,并且重视通过持续的交流、协作和调整来满足客户的需求。 Scrum 是一种敏捷开发流程的具体实现方法。它是由三种角色组成的:产品负责人、Scrum 团队和 Scrum 经理。产品负责人负责确定项目的目标和范围,Scrum 团队负责执行项目并交付可用的产品,而 Scrum 经理则负责协调团队的工作并确保项目的进度。 Scrum 流程通常分为以下几个步骤: 1. 冲刺计划会议:在开始新的冲刺(迭代周期)之前,团队会进行冲刺计划会议,确定在本次冲刺中要完成的工作。 2. 每日站立会议:每天举行的短暂会议,用于更新团队成员的工作进度、讨论任何问题并寻求解决方案。 3. 冲刺审查会议:在冲刺结束时举行的会议,用于回顾本次冲刺的成果、讨论改进方法并确定下一步工作。 4. 冲刺总结会议:在冲刺结束后举行的会议,用于回顾 ### 回答2: 敏捷开发流程是一种迭代、增量式的软件开发方法。它强调通过紧密合作和快速响应变化来提高团队的效率和产品的质量。敏捷开发流程主要包括需求分析、计划、设计、编码测试和发布等阶段,每个阶段都是迭代进行的。团队成员在每个迭代期间都要进行会议讨论、交流以及及时地调整开发计划和需求。敏捷开发流程注重客户需求的积极响应,团队与客户之间的密切合作和及时反馈是其关键。 Scrum是一种敏捷开发框架,它是通过在开发过程中强调团队合作、迭代开发和持续改进来实现项目管理的。Scrum流程包括三个关键角色: 产品负责人、Scrum团队和Scrum大师。产品负责人负责所有关于产品的决策和需求管理,包括产品待办事项的整理和优先级排序。Scrum团队由开发人员组成,他们承担编码、测试和提交可交付的工作成果。Scrum大师负责支持团队高效完成工作,并确保Scrum流程的正确执行。 Scrum流程由一系列时间盒(time-boxed)的活动组成,例如每日站会、Sprint计划会议、Sprint评审和Sprint回顾会议。每个时间盒内的工作是固定的,活动的目标必须在规定的时间内完成。这种时间限制鼓励团队高效工作,并提供了一个持续改进的机会。 总结来说,敏捷开发Scrum流程都强调迭代开发、团队协作和持续改进。它们通过灵活的方法和强调人际间的互动,帮助团队更好地应对需求变化和提高工作效率,从而保证项目的成功。 ### 回答3: 敏捷开发流程是一种迭代与增量的软件开发方法,它强调通过频繁的沟通、快速回应变化以及高度协作的方式来适应需求的变化。敏捷开发流程可以提高团队的灵活性和适应性,同时也能够减少开发中的风险。 Scrum 流程是敏捷开发流程中的一种常见方法,它侧重于团队合作和自组织。Scrum 流程将工作分为若干个可以在短时间内完成的时间段,称为“冲刺”。每个冲刺通常持续一至四个周,在冲刺开始前,团队确定要完成的任务和目标。在每个冲刺期间,团队会每天进行短暂的会议,称为“每日站会”,以便了解进展情况和解决问题。 Scrum 流程中的关键角色包括产品负责人、Scrum Master 和开发团队。产品负责人负责定义产品需求和优先级,并在每个冲刺中确定需要完成的任务。Scrum Master 负责确保团队能够按照 Scrum 流程进行工作,并协调团队内外的事务。开发团队是负责实际开发任务的成员,他们通过自组织的方式进行工作,并在每个冲刺期间交付可用的软件。 Scrum 流程强调快速的反馈和可视化,通过可见的工作看板和冲刺回顾会议,团队能够及时了解项目的进展和问题,并做出相应的调整。Scrum 还鼓励团队进行定期的迭代回顾和持续改进,以提高团队的工作效率和建设质量。 总之,敏捷开发流程和 Scrum 流程都是遵循快速响应变化,并通过高度协作的方式进行工作的软件开发方法。它们能够提高团队的灵活性和适应性,同时也能够加速项目的交付进度,提高客户满意度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值