最近报名参加了微信小程序应用开发赛,也是作为走向职场前的一次锻炼,为了模拟企业开发的流程,我们团队决定使用敏捷开发模式来管理项目。这篇文章,是对在近些天来网上学习到的Scrum敏捷开发模式的总结。
将一个大的项目分为多个互相联系或者独立运行的子项目,围绕最小化可行产品的特性进行产品规划,并且分别完成。每个子项目都经历规划(Plan)、开发(Build)、测试(Test)、评审(Revidw)四个阶段,这四个过程合称为一个
迭代
(Sprint),通常一个迭代需要一到三个星期。
1.PO——产品或业务负责人(Product Ower):
类似于产品 经理,确定产品的方向和愿景,发布和需求的优先级。
2.SM——敏捷教练(Scrum Master):
熟悉敏捷开发模式和流程,
团队负责人
。
3.交付团队
设计、产品、开发、测试、运维人员
1、迭代计划会(Sprint Planning Meeeting)
在迭代之初,
由产品负责人(PO)讲解需求
,并由开发团队进行估算的会议。
2、每日立会(Daily Scrum Meeeting)
团队每天进行沟通的内部短会,用于同步信息,尽早发现风险。
团队负责人发布任务。开发团队,可以通过类似以下的任务展板领取任务。
从昨天的立会到现场,我完成什么?从现在到明天的立会,我计划完成什么。有什么阻碍我的进展。
3、迭代评审会(Sprint Review Meeeting)
向客户或者其他利益干系会展示,
获取客户反馈
4、迭代回顾会(Sprint Retrospective Meeeting)
每个迭代后总结开发中经验和教训,进行持续改进。一般会进行定量和定性分析。
(1)定量分析:是否完成目标?
迭代速率、迭代燃起燃尽图、迭代计划故事和实际完成故事、计划发布日期与实际发布日期、客户满意度、团队满意度、生产环境Bug数、生成Bug解决时间、用户故事。
(2)定性分析
哪些做得好的保持,哪些坏的要丢弃
-
用户故事(User Stories):一种表达产品需求的语言格式。
产品经理通过用户故事了解用户需求细节,为团队合理制定任务的优先级。
-
产品需求列表(Prodcut Backlog):汇集用户需求的列表,
产品经理会从众多用户故事中筛选出优先项,并把他们列入产品待办列表中。
-
迭代需求列表(Sprint Backlog):单个迭代要做的需求列表,一次迭代中往往选取当前优先级最高并经过讨论的用户故事,剩下的继续评估,交给下次迭代。
-
燃尽图(Burundown Chart):用以展示整个Sprint待办列表的进度。当燃尽图曲线接近于0时,也就意味着这次迭代即将完工。
-
第一阶段
:首先产品经理(产品团队)把需要上线的产品特性做成产品需求列表(Prodcut Backlog),由产品经理(产品团队)基于产品整体战略、目标、业务价值、实现难度等因素甄选出优先级最高的项目,交个整个团队进行讨论。
-
第二阶段
:召开迭代规划会议,研发团队、产品经理和开发团队负责人(Scrum Master)讨论用户故事的优先项,且决定本次次迭代要研发的需求项。
并由开发团队负责人开展可行性评估和工时评估,确定迭代的需求排期,形成迭代需求列表(Sprint Backlog)。
-
第三阶段
:会议结束后,团队中的每个成员需要对每个用户故事有深刻的理解。
团队负责人根据需求拆分相应的子任务,分配相应的开发成员执行,并评估相应的工时。
-
第四阶段
:研发团队要在一到三周的时间里开发完成迭代需求列表中的需求,
在迭代中,每日站会用于团队来交流他们做完了什么,正在做什么,以及遇到的问题,及早发现风险。
-
第五阶段
:每次迭代的产出都是一个可以发布的产品版本,在迭代结束前,会进行迭代评审会(Sprint Review Meeeting),
由研发团队向产品经理做案例演示并接受评价。产研团队根据整个迭代需求的完成情况和缺陷处理情况,最终决定整个产品是否上线,也可以在发布前增加新功能
。确认上线后,由运维进行上线环境部署,正式上线。
-
第六阶段
:在迭代结束时,产品和开发会举行迭代回顾会(Sprint Retrospective Meeeting),团队一起思考工作中可以改进的地方,制定改进措施。
每次迭代都需要进行这样的会议,来不断改进产品的质量。
-
最后,产品团队在产品功能上线后,持续收集用户的反馈,分析数据形成新的用户故事,进入下一次迭代。
PS:平时写代码如何通过测试并入库?需求如何完成?
首先,测试团队会根据产品需求文档,进行进行测试用例撰写工作和开发工作同步进行。 开发人员开发完成自己的需求任务之后,使用测试团队写好的测试用例进行自测(跑各种静态检查、复杂度、测试用例、功能测试等),自测通过转移给测试,自测不通过,自行修复,直到通过再转给测试。
测试团队再次进行测试, 发现Bug则建立缺陷,将缺陷关联到相应的需求任务上,并指定个相应的开发者进行修复。
测试完成后,提交代码。触发CI(持续集成)流程。跑完流程后,进入代码评审,通过后,才能入库。
teambition敏捷研发讲解。
1.
敏捷开发
是什么
在传统的软件研发模型中,从提出需求到最后交付,时间周期较长。瀑布模型遵循需求分析、设计、编码、集成、测试、维护六个步骤进行。一旦需求发生变化,不仅浪费前期投入,还不易于调整。
敏捷开发
是一种应对快速变化的需求的
软件开发
能力。特别是互联网软件,前期设计不可能十分完美,在研发的过程中,会不断地调整、优化。
敏捷开发
是面向交付、面向协作的。相较于主张完善的设计、文档、流程规范,
敏捷开发
强调的是持续交付,让目标更早得到验收,让缺陷更早暴露。
在实践过程中,我们需要保持 1-2 周的迭代