敏捷开发之开发流程

敏捷开发流程

一、迭代周期

我们团队的迭代周期一般是2周,如果研发评估时间过长的话也会将周期延长至一个月,但是大多数我们是2周的迭代周期。

这里说的2周是研发开始coding、提测、测试、上线,也就是说2周以后要上线相应的能力。并不包括产品需求设计与评审的时间。

2周的时间一般coding的时间为6到7天,本次迭代功能测试3天,整体功能回归测试2天。一般会分步提测(某些能力在第三天的时候开发完成就能提测),不然整体时间会超出两周(10工作日)。

二、敏捷开发流程

1. 需求准备阶段

​ 作为产品经理我一般都是在迭代开始前2周或提前一个月来准备需求,不然会导致研发资源空置同时也会影响下一个阶段的排期计划。

​ 需求准备时要想好本次迭代要解决用户的哪些问题或为用户创造的价值,也可以称为本次迭代的主题,是否是在整体roadmap的路线上。确认本次的迭代方向后及时与团队成员进行沟通与信息的同步,如有问题需要及时调整迭代方向。

​ 需求来源主要包含之前制定的roadmap能力以及用户高频反馈的问题,所有需求统一管理在需求池中,通过我们内部的项目管理工具进行统一管理。

​ 该阶段主要产出产品文档与UI设计稿(产品经理协同UI产出设计稿)并通过产品内部的初步评审。每个需求需要保证完整的闭环,而且要控制整体的需求研发时间,防止无法按时交付的问题。在需求准备阶段可能会出现需求不符,需要重新设计的情况,需要产品经理能顶住压力重新设计新的方案。一般情况,需求文档需要改进2到3次才能通过内部的初审。UI设计稿也需要多次调整直至符合产品需求为止。

2. 需求评审阶段

​ 一般会在上个迭代的整体功能回归测试时,大概有2到3天的时间进行本次迭代的需求评审,产品经理负责同步本次的需求文档和UI设计稿(产品主讲,UI辅助)。

​ 在这个阶段是需要产品,研发 ,测试,UI深度参与的阶段,研发和测试会提出很多问题,可能是逻辑问题,交互细节问题,甚至有些问题会推翻整个需求设计进行重构。这期间需要产品经理记录并解决研发提出的所有的问题,有些问题能立刻解决,但是有些问题会耗时长一些。

​ 需要鼓励大家提出问题(最好是站在用户角度提问题),这样避免在后续的阶段造成成本浪费。大家提出问题非常考验产品经理的处理方式,产品经理需要站在用户角度去分析解决问题,提升大家在此阶段的参与度。同时产品经理要能接受不同的声音,如果是真的问题需要敢于否定自己,并抓紧准备新的需求。

​ 需求评审完成后产品经理将相关的产品资料同步至迭代看板中(内部的项目管理工具),供技术负责人进行整体排期。

3. 研发评估排期阶段

​ 该阶段技术负责人会与研发同步技术方案,各端研发会按照实际情况评估所需时间。会存在评估时间与迭代时间冲突的情况,产品经理需要协调团队内部解决,无法解决的需要上升解决。协调资源或者赶进度等方式。减少需求的情况也会发生,但属于比较差的解决方案

​ 研发评估排期后需要与测试、产品经理确认提测时间与上线时间。测试会依据研发时间评估测试所需时间,出现整体排期问题时,产品经理需要协调各方资源与时间保证本次迭代的落地。

​ 一经确认排期时间需要各方准确保证,因为涉及多方协作,需要避免出现延期问题。保证准确交付。评估排期需要每个人都对自己的排期负责,需要保证排期的准确性。一经确认排期时间需要各方准确保证,因为涉及多方协作,需要避免出现延期问题。保证准确交付。评估排期需要每个人都对自己的排期负责,需要保证排期的准确性。

​ 排期确认后需求就进入了研发阶段,每个需求在研发阶段都会确认一个研发负责人,该负责人负责跟进需求的进度,解决需求开发过程中遇到的技术问题,保证需求能顺利提测并上线。基本上每个研发都会负责一个需求,该措施能确保每个需求都有负责人进行跟进,保证需求在开发过程中能直接找到对应负责人,同时也锻炼了负责人的横向能力。

4. 研发阶段

​ 研发阶段团队成员每天通过早站会的方式同步每个需求的进度,在会议之前需求的研发负责人都会在需求看板中更新当前的研发进度,问题与风险,当天的问题原则上需要当天解决,会议中大家也会对着需求看板同步进展。

​ 虽然研发阶段遇到的问题也会很多,但是基本上不会遇到颠覆性的问题(因为前期团队已经解决了大方向上的问题,在需求准备与排期阶段已经有了比较充分的讨论),如果真的遇到颠覆性的问题需要产品经理协调相关成员尽快确认解决方案同时要避免再次出现此类问题。

​ 研发阶段开始时产品经理就需要开始准备下个迭代的需求,以保证下个迭代能顺利开始。在此阶段测试人员会准备好测试用例,并在研发开发完成前完成测试用例评审,研发自测也会依据测试用例完成自测走查

5. 测试阶段

​ 开发完一个需求后,产品经理会进行功能验证并发起提测单,产品验证后提测能保证是按需求开发的,提高测试人员的效率。测试人员在此阶段会进行3天(一般为3天左右,实际会按照需求进行调整)的功能测试(包括app web pc客户端),研发也会在这三天内修改bug。

​ 在此阶段产生的bug需要解决并趋向于零,bug的产生有可能是产品需求引起的,可能是历史原因引起的,整体的原则是不能带问题上线,需要尽快解决问题,有些bug属于需求问题的需要尽快给出解决方案。如遇到当前迭代不能解决的问题也需要确认解决方案后安排到最近的排期迭代中。

​ 此阶段是产品上线前的最后阶段,对测试人员的要求很高,需要进行功能,视觉,交互等测试,也需要提出自己在测试中遇到的需求问题。总之需要对测试结果与线上问题负责。同时产品经理在此阶段也需要提前介入测试,如遇到问题提前调整,避免遗留问题。

​ 功能测试完成后,研发会将本次迭代功能上线至预发环境将整体的能力进行回归测试,回归测试大概有2到3天的时间,产品与研发可以在此阶段评审下个迭代的需求。

6. 上线与用户反馈

​ 上线后要及时通知用户本次的上线内容并收集用户反馈,对用户反馈的问题要及时跟进处理,处理完成后要反馈用户。整体原则是避免线上存在问题对用户产生影响,线上问题属于优先级比较高的问题,要第一时间处理。

​ 用户反馈的问题也可能是需求,需要产品经理判断好优先级并给出相对准确的回复,比如什么时间上线,或者不做的原因,维护好与用户之间的关系。

​ 每一个能力都是解决用户的问题,如果某项能力上线后没有达到预期,团队则需要复盘原因,避免下一次出现此类问题,每次都需要保证研发资源都用在了正确的产品路径上。

总结

​ 敏捷如果用好了,真的可以提高产研效率,拥抱变化、快速迭代,但是敏捷也不是万金油,需要满足天时地利人和,条件有些苛刻,下面是一些经验之谈:

  • 老板大力支持:这个是一切的前提,比如我们之前是老板大力推广敏捷,全部门就能搞起来,后来老板方向变了,敏捷就不搞了;
  • 项目能支持小步迭代:敏捷比较适合探索类的项目、或者是 APP 之类的迭代快的项目,因为需求非常容易变更、任务好拆分;如果是传统项目,需求一开始就定好了,任务也不好拆,你就还是老实用瀑布模型吧;
  • 团队成员闭环:敏捷的团队成员,需要全部 follow 到该项目中,因为迭代节奏很快,任何一个人不可能再去搞别的项目,否则他会成为敏捷的瓶颈;
  • 团队成员目标一致:因为迭代节奏非常快,所以产品、研发、测试和UI必须目标一致,如果有任何一位同学心不齐,敏捷也很难搞起来

敏捷不是万能的,结合自己的场景,合理使用,适合自己的才是最好的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flink operator 拉取阿里云私有镜像(其他私有类似)

创建 k8s secret kubectl --namespace flink create secret docker-registry aliyun-docker-registry --docker-serverregistry.cn-shenzhen.aliyuncs.com --docker-usernameops_acr1060896234 --docker-passwordpasswd --docker-emailDOCKER_EMAIL注意命名空间指定你使用的 我…

从0开始python学习-50.pytest之多接口用例封装

1. yaml用例设计--一个yaml中多个用例,且互相存在关联关系 - # 第一个用例request:method: posturl: http://192.168.0.1:8010/apijson:accounts: adminpwd: 123type: usernameheaders:Content-Type: application/json- # 第二个用例request:method: posturl: http:…

Linux:多线程

目录 1.线程的概念 1.1线程的理解 1.2进程的理解 1.3线程如何看待进程内部的资源? 1.4进程 VS 线程 2.线程的控制 2.1线程的创建 2.2线程的等待 2.3线程的终止 2.4线程ID 2.5线程的分离 3.线程的互斥与同步 3.1相关概念 3.2互斥锁 3.2.1概念理解 3.2.2操作理解…

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测 目录 分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本…

js控制浏览器前进、后退、页面跳转

在JavaScript中,你可以使用 window 对象的 history 对象来控制浏览器的历史记录。以下是一些常用的方法: 前进和后退: window.history.forward(): 前进到历史记录中的下一个页面。window.history.back(): 返回历史记录中的上一个页面。window…

模型的召回率(Recall)

召回率(Recall),也称为灵敏度(Sensitivity)或真正例率(True Positive Rate),是用于评估二分类模型性能的指标之一。召回率衡量了模型正确识别正例的能力,即在所有实际正例…

ctfshow php特性(web89-web101)

目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 php特性(php基础知识) web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/&…

Debezium发布历史77

原文地址&#xff1a; https://debezium.io/blog/2019/12/13/externalized-secrets/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 使用 Debezium 连接器实现秘密外部化 十二月 13, 2019 作者&#xff1a; Jir…

Docker项目部署()

1.创建文件夹tools mkdir tools 配置阿里云 Docker Yum 源 : yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker - ce.repo 更新 yum 缓存 yum makec…

【机器学习理论】2023 Spring Homework 1

Please login to Gradescope via your CUHK account and use the entry code: 6ZWGYD Problem 1 (Gaussian Distribution as an Exponential Family): We showed Gaussian distribution N ( μ , σ 2 ) \mathcal{N}\left(\mu, \sigma^{2}\right) N

军事课堂MR情景仿真实训教学

一、课堂应用场景 1、战术模拟&#xff1a;MR系统可以模拟各种战场环境&#xff0c;让学生在实际操作中了解和掌握各种战术技巧。通过模拟实战场景&#xff0c;学生可以在短时间内获得丰富的实战经验&#xff0c;提高他们的应变能力和团队协作能力。 2、武器操作训练&#xf…

Kafka-消费者-KafkaConsumer分析-PartitionAssignor

Leader消费者在收到JoinGroupResponse后&#xff0c;会按照其中指定的分区分配策略进行分区分配&#xff0c;每个分区分配策略就是一个PartitionAssignor接口的实现。图是PartitionAssignor的继承结构及其中的组件。 PartitionAssignor接口中定义了Assignment和Subscription两个…

三国游戏(寒假每日一题+贪心、枚举)

题目 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z&#xff08;一开始可以认为都为 0&#xff09;。 游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i个事件发生时会分别让 X,Y,Z 增加 Ai,Bi…

什么是低代码(Low-Code)?低代码平台的适用人群

低代码平台是一种革命性的工具&#xff0c;它让非专业的开发人员也能轻松创建应用程序。通过直观的可视化界面和拖放功能&#xff0c;开发人员能够轻松地构建和部署应用程序&#xff0c;无需专业的编程知识。低代码平台的出现&#xff0c;降低了应用程序开发的门槛&#xff0c;…

Layout_marginTop与Layout_marginBottom详解

Layout_marginTop与Layout_marginBottom详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们深入研究Android开发中两个不可忽视的布局属性—…

100天精通鸿蒙从入门到跳槽——第8天:TypeScript 知识储备:泛型

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

【java常用接口】Comparator学习

文章目录 1. 常见的应用场景2. 基本使用3. 常见用法4. 高级用法5. 示例代码及解析 Comparator 是 Java 中的一个接口&#xff0c;用于定义对象之间的排序规则。它可以用于对集合中的对象进行排序&#xff0c;或者用于自定义排序算法。 1. 常见的应用场景 对集合中的对象进行排…

火速收藏!2024 新年微信红包封面领取全攻略

2024“龙”重登场&#xff01;今年有哪些令人期待的红包封面&#xff1f; 前方大批精美红包封面来袭&#xff0c;全新品牌氛围红包封面上线&#xff0c;支持品牌定制特色氛围元素&#xff0c;沉浸感受浓浓年味儿&#xff0c;收获满满惊喜&#xff01; 新年开好运&#xff0c;微…

C# .NET读取Excel文件并将数据导出到DataTable、数据库及文本

Excel文件是存储表格数据的普遍格式&#xff0c;因此能够高效地读取和提取信息对于我们来说至关重要。C#语言借助.NET Framework和各种库的广泛功能&#xff0c;能够进行高效的数据操作。利用C#读取Excel文件并将数据写入数据库和DataTable&#xff0c;或者将数据用于其他目的&…

终于懂了!医师资格证和医师执业证有啥区别

医师资格证和医师执业证的区别&#xff08;总结篇&#xff09; 1、发证单位不一样: 《医师资格证》是由国家卫生部统一发放的。 《医师执业证书》是你获得了医师资格证书后申请由当地卫生局发的。 2、意义不一样: 《医师资格证》属于医疗技术方面的认可&#xff0c;证明持证人具…