2.迭代开发的过程是怎么样的

article/2025/10/4 8:36:00

    敏捷开发系列文章目录

    在讨论PO如何给团队讲好故事这个问题之前,先给大家了解一些基本的敏捷概念,然后讲讲我们敏捷团队构成与整个敏捷开发的过程。

 


    当初敏捷老师讲课的时候就跟我们所过,敏捷没有什么具体的形式,每个敏捷团队可能做法都不一样,表现出来的性格也不一样,比如有挑战型团队、有保守型团队等。但敏捷有一个核心是不能变的,这个核心就是3355。

1、3个角色:SM、PO、开发团队(自然包括了我们的开发人员和QA)。
2、3个产出物:Product Backlog、Sprint Backlog、交互的可用软件工件。
3、5个活动:计划会、sprint评审会、回顾会、每日立会、Product Backlog的梳理(发生在整个SCRUM周期的任何时间)。每一个会议都有自己的时间盒,其长短在SCRUM中都有比较明确的建议。当你召开某一个会议的时候,超出了这个时间盒或者召开某个会议的时候出现一些问题,也是一种有问题的信号。一个团队在冲刺的周期内,去充分的暴露问题,然后在回顾会上去分析问题,再进行改进。在每日立会上比较强调的是,根据昨天完成的情况来做出新的调整,我们每日立会上所描述的,一定是对有助于完成当前sprint目标的事情。同时,特别需要强调的是,在sprint评审会上,团队除了对当前sprint完成的故事进行show case还需要对剩余的任务卡进行梳理,可以让团队有机会去回顾和识别版本发布的风险。
4、5个价值观:公开、专注、勇气、承诺、尊重。
    另外,还讲到了SCRUM最重要的时间盒,这个是我之前所理解的SCRUM里面,没有发现它竟然是如此重要的。还学到一个新的理论:番茄工作法是一个人的SCRUM,SCRUM是一群人的番茄工作法;理解到跨职能是团队层面的概念,而一专多能是每个团队成员层面的概念。现在回过头来看,发现曾经团队在尝试SCRUM的过程中,对有些方面是理解得不够的,包括为什么最终团队放弃了SCRUM转向看板,其缘由也不完全是曾经以为的迭代周期的问题,需要系统的来看待这个问题。不管一套理论是如何的完善,结合到实际的工作中的时候总会遇到这样和那样的问题,但抓住最本质的东西才是最重要的,抓住其精髓的部分,然后再加以灵活应用,以问题为出发点,能够真正的解决实际的问题才能给大家带来信心。

 

    我所在的团队有11个人,1个PO(也就是我自己),1个SM(他有兼职好几个团队的SM),6个开发和3个测试,这算是一个比较大的敏捷团队了,一般6,7个人一个团队刚刚好。然后我们团队开始开发一个系统,当然这个系统在分配到我们团队之前在公司是已经立过项的,有一个基本的PRD文档,架构设计也都已经确定下来(我们做应用系统的架构一般比较固定)。这时候我就会把所有的需求整成一个故事地图,然后根据故事的紧急程序会把故事放到对应的Product Backlog,然后请求开发团队对这些故事做一个简单的估算,好让我知道这些故事大概需要多少个迭代完成。迭代开始,PO拿出第一个迭代的故事给到团队,我们一个迭代是2个星期,10个工作日,一般第1个工作日开迭代计划,最后一个工作日做集成测试和迭代回顾,所以一个迭代真正做事的时间只有8个工作日。迭代第一天由产品经理给团队讲故事,然后团队对故事进行估点,这个一般都花费好几个小时,重点就是团队所有人都搞清楚这些故事有一些什么东西,再接着就是团队成员自由领用自己的故事,然后对自己的故事拆分任务排计划,这天最后团队一起给出一个本次迭代完成的信用值,信用值从1-5,5表示本次迭代肯定完成,4表示努力一把还是能够完成的,3表示可能加班才有可能完成,2表示加班都有可能完不能,1表示怎么搞都完不成。

    一般开迭代计划会之前PO会把本次迭代的故事都会提前发给团队,让大家都提前熟悉一下故事,这样可以速缩短迭代计划会的时间。开完迭代会第二天不会马上就开始动手编码,一般上午会开设计评审和测试用例评审两个会议,开发人员设计的产出包含用例图、概要类图、数据库表结构和界面原型,设计评审就是对这些东西就行讨论。测试人员编写的测试用例,开发人员参与评审,就是验证测试理解的功能实现与开发想的是否一样,与PO想表达的是否一样。

    评审之前开发人员可以准备一些资料,最好用图来表达自己的设计思路,不必编写一个什么设计文档来应付评审。接下来就可以进入编码实现阶段,每天早上准时开每日站会,大概10分钟,由SM组织,简要说明一下今天要做的任务,有什么困难加强团队的沟通协助。迭代过程中最重要的一张图就是燃尽图,基本上每个人都会关注,如果发现这张图下降得不正常,那么SM一般就会找出问题并进行干预。第一周周五的下午会组织一次代码走读,然后迭代完成的前一天会再进行一次代码走读。然后所有故事开发完成后,测试进入集成测试。集成测试完之后,测试会给出一个DI值,这个值的大小会决定本次迭代的成功或失败。然后开sprint评审会,由PO来验收本次迭代的成果。接下来就是最重要的迭代回顾会了,回顾会中全体成员总结本次迭代遇到的问题,以及解决方法,还有团队好的方面也要记录并保持下去,还会对之前迭代制定的解决方法进行回顾是否有用。

    最后回顾会议中还会评出本次迭代的迭代之星,表扬表现最突出的成员,迭代之星最后会获得团队提供的一些小礼物。然后下周继续开始下一个迭代。

    PO对产品负责,开发团队勇于对自己承诺的故事,SM是团队的保护伞。

    敏捷开发系列文章目录


http://chatgpt.dhexx.cn/article/dsR8fEV9.shtml

相关文章

RUP之动态结构:迭代开发

迭代过程一般分为四个阶段:初始、细化、构造和移交,简称为I,E,C和T。每个阶段以一个重要的里程碑(milestone)结束。 初始(Inception)阶段 确定最终产品的构想及其业务用例、并定义项目范围 初始阶段以生命周期目标(LCO)里程碑为结束点 细化(Elaborat…

开发模式(敏捷开发,瀑布式开发,螺旋型开发,迭代开发,devOps开发)

一. 敏捷开发 以人为核心、迭代、循序渐进的开发方式 简化文档,提取文档重点,主要在于人与人之间的沟通, 对开发产品进行迭代,最终完成开发。 迭代:迭代是指把一个复杂且开发周期很长的开发任务,分解为很…

敏捷开发-快速迭代

(转自:http://blog.csdn.net/xiaoxian8023/article/details/8883791) 今天跟大家分享的是“敏捷开发、快速迭代”。我们大都采用的是“瀑布开发模式”,有了问题,就得返工,虽然最终的产品会比较齐全完善,但是…

一文搞定软件过程模型——瀑布模型、增量式开发/增量开发与迭代开发的区别

软件开发比较经典的过程模型有: 瀑布模型:该模型将基本的过程活动、描述、开发、有效性验证和进化,看成是一些界限分明的独立的过程阶段,例如,需求描述阶段、软件设计阶段、实现阶段、测试阶段等。增量式开发&#xf…

软件迭代开发流程

如果对python自动化测试、web自动化、接口自动化、移动端自动化、大型互联网架构技术、面试经验交流等等感兴趣的老铁们,可以关注我。我会在公众号(程序员阿沐)/群里(810119819)不定期的发放免费的资料链接&#xff0c…

迭代开发流程

转载于:https://www.cnblogs.com/gispathfinder/p/8747869.html

git 迭代开发分支流程规范

前言 Git 的名称太响了,相信大家都听说过,鼎鼎大名的同性交友网站 GitHub 就是基于 Git 作为唯一的版本库格式进行托管的平台。本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支流程规范,需要对 Git有一定的了解。 简述 G…

迭代开发和增量开发

(转自:http://blog.csdn.net/l12345678/article/details/5642851) “迭代”和“增量”是敏捷软件开发中的两个重要概念。弄清楚“迭代”和“增量”以及其依据,我们就可以在实际的操作中有章法可循。 为什么要迭代? 我们…

转」最佳方案:迭代式开发

前言 Fred Brooks 在 25 年前就曾写到:“不要指望一次成功,无论如何你都要这样。” 敏捷开发,小步快跑,持续迭代,不断改进,产品升级。 在用例需要之前,不要添加数据成员 在代码之前编写测试 …

alert意为:警告、警报。

在JavaScript代码中&#xff0c;alert的作用是弹出一个浏览器对话框&#xff0c;"JS代码"为提示对话框的内容 <body><script type"text/JavaScript"> alert("提交成功&#xff01;我会尽快与你取得联系"); </script></body…

JS中alert和alter

JS中没有alter&#xff0c;只用alert&#xff0c;alert表示输出后面的语句

js 的 alert函数问题

alert是js人非常熟悉的东西&#xff0c;可以用来调试&#xff0c;写在这里是想警醒我自己&#xff0c;以后再遇到这样的问题的时候谨记这么修改。 看一个简单例子&#xff1a; <body><div οnmοuseοveralert((function(){return"abc";}()))>abc</…

Alert 提示框的使用

1. Alert 基本的使用 1.1 实现 /// 提示框 struct AlertBootcamp: View {State var showAlert: Bool falseState var alertType: MyAlerts? nilState var alertTitle: String ""State var alertMessage: String ""State var backgroundColor: Color …

java中的alert是什么意思_javascript 中如何使用alert?

alert不行的,要变通的话还是用showModalDialog试试吧. window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框&#xff0c;由于是对话框&#xff0c;因此它并没有一般用window.open()打开的窗口的所有属性。 window.showModelessDialog()方法用来创建一个显示HTML…

Grafana面板(panel):报警功能(alerts)

文章目录 alerts(报警设置)Create a Grafana managed alerting ruleAdd Grafana managed rule alert notifications增加一个notification channel alert报警邮件中的链接地址错误如何配置alert产生的报警如何删除&#xff1f;alert设置注意事项 alerts(报警设置) 注意&#xf…

alertmanger 入门

alertmanger 安装 tags: alertmanager 文章目录 alertmanger 安装1. 简介2. 安装2.1 二进制包部署 AlertManager2.1.1 下载2.1.2 创建 alertmanager 配置文件2.1.3 启动2.1.4 查看状态 2.2 docker 安装2.3 关联 Prometheus 与 Alertmanager 2. 配置文件说明3. 配置示例&#x…

alertmanager的使用

alertmanager的使用 一、Alertanager的安装1、下载2、安装3、启动4、alertmanager和prometheus的整合 二、告警分组1、告警规则2、alertmanager.yml配置3、分组相关的alertmanager的配置4、邮件发送结果 三、告警抑制1、告警规则2、alertmanager.yml 配置抑制规则3、邮件发送结…

JavaScript window.alert

文章目录 相关背景HTML中嵌入JS的第一种方式实现代码图是结果在HTML中插入JS的第二种方式实现代码实现结果HTML中引入JS的第三种方式实现代码实现结果 相关背景 HTML中嵌入JS的第一种方式 实现代码 <!DOCTYPE html> <html lang"en"> <head><me…

Window alert() 方法

一 定义和用法 alert()方法用于显示带有一条指定消息和一个确认按钮的警告框。 二 语法 alert(message) 三 代码 <html> <head> <title>警告对话框的应用</title> <meta http-equiv"Content-Type" content"text/html; charsetgb2312…

html中js alert函数,javascript的alert是什么

alert是javascript中的一个内置函数&#xff0c;用于显示带有一条指定消息和一个“确认”按钮的警告框&#xff1b;语法“alert("文本")”。警告框经常用于确保用户可以得到某些信息&#xff1b;当警告框出现后&#xff0c;用户需要点击确定按钮才能继续进行操作。 本…