内容简介:敏捷开发(scrum)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。因此敏捷开发是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程。三:Scrum三大角色
一.什么是敏捷开发
敏捷开发(scrum)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。因此敏捷开发是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程。
二 . 敏捷的特点及呈现
❶敏捷开发模型 ✦特点: 不要求需求预先完备定义,支持用户参与,支持需求的渐进式完善和确认,能够适应用户需求的变化。 ✦使用范围: 需求复杂、难以确定、动态变化的软件系统。 ❷传统瀑布模型 ✦特点 简单,分阶段,阶段间存在因果关系,不支持用户参与,要求预先确定需求。 ✦使用范围: 需求易于完善定义且不易变更的软件系统。 ❸ 敏捷过程展现
三:Scrum三大角色
➀ 产品负责人PO
主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。
✚职责:
★ 清晰地表达产品代办事项列表条目;
★ 对产品代办事项列表中的条目进行排序,最好地实现目标和使命,并且最大化实现ROI;
★ 确保开发团队所执行工作的价值;
★ 确保产品代办事项列表对所有人可见、透明、清晰,并且显示 Scrum 团队的下一步工作;
★ 确保开发团队对产品代办事项列表中的条目达到一定程度的理解。
➁ Scrum Master
主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍。
✚职责:
★ 领导并指导组织采用 Scrum;
★ 在组织范围内计划 Scrum 的实施;
★ 帮助员工及干系人理解并实施 Scrum 和经验性产品的开发;
★ 发起能提升Scrum 团队生产力的变革;
★ 与其他 Scrum Master 一起工作,帮助组织更有效的应用Scrum.
➂ Scrum 开发团队
主要负责软件产品在Scrum规定流程下进行开发工作,包括功能实现、测试等团队,不同职能的团队人数控制在5~10人左右,相互协作使得最终能达到Sprint的目标。
✚职责:
★ 他们是自组织的,没有人(即使是 Scrum Master 都不可以)告诉开发团队如何把产品 代办事项列表变成潜在可发布的功能;
★ 开发团队是跨职能的,团队作为一个整体拥有创造产品增量所需要的全部技能;
★ Scrum 不认可开发团队成员的头衔,无论承担哪种工作他们都是开发者。此规则无一例外;
★ 开发团队中的每个成员可以有特长和专注领域,但是责任归属于整个开发团队;
★ 开发团队不包含如测试或业务分析等负责特定领域的子团队。
4
◆ 四. Scrum的三个工件和运作模式 ◆
产品待办事项列表(Product Backlog) |
产品待办事项列表是一个经 排序 的持续完善的清单列表,包含所有产品需要的东西,也是产品需求变动的唯一来源。产品负责人负责产品待办事项列表的内容、可用性和优先级。 |
待办事项列表 (Sprint Backlog) |
Sprint 待办事项列表是一组为当前 Sprint 选出的产品代办事项列表条目,外加交付产品增量和实现 Sprint 目标的计划。整个列表将记录整个开发过程中各个事项的实现情况。 |
燃尽图 (Burn-down Chart) |
Sprint Burndown Chart 显示了Sprint中累积剩余的工作量,它是一个反映工作量完成状况的趋势图。 图中Y轴代表的是剩余工作量,X轴代表的是Sprint的工作日。在Sprint开始的时候,Scrum Team会标示和估计在这个Sprint需要完成的详细的任务。所有这个Sprint中需要完成,但没有完成的任务的工作量是累积工作量,团队会根据进展情况每天更新累积工作量,如果在Sprint结束时,累积工作量降低到0,Sprint就成功结束。 |
❶应用Scrum的团队中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(唯品花目前使用1周的Sprint). ❷ 在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求。 ❸在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog. ❹ 在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。
5
Scrum的日常
➀ 我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个是由产品负责人 负责的;
➁Scrum开发团队(包括产品负责人)根据Product Backlog列表,做工作量的预估和安排;
➂有了Product Backlog列表,我们需要通过 Sprint计划会议从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;
➃ Sprint Backlog是由Scrum开发团队去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量控制在0.5-1天内能完成),并将细化后的任务以贴便签到看板的形式体现出来供后续跟进;
➄ 在Scrum开发团队完成计划会议上选出的Sprint Backlog过程中,需要进行每日站立会议,每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人发言完成后,要同步更新自己负责的看板;
➅ 在Scrum每日站立会议过程中,将参会成员遇到的问题整理到所有人可见的看板中,记录所有需要跟进的事项;
➆ 当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 评审会议,产品负责人和客户都要参加(最好本团队老板也参加),每一个Scrum开发团队的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);
➇最后就是 Sprint回顾会议,也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;
⑨ 当一轮Sprint的工作完成时,就开始计划下一轮的Sprint的工作计划,直到所有Story都完成为止(计划好的n轮Sprint计划);
六:敏捷开发流程的优点
❶ 精确:瀑布模式通常会在产品起点与最终结果之间规划出一条直线,然后沿着直线不断往前走。然而当项目到达终点时,用户通常会发现那已经不是他们想去的地方。而敏捷方法则采用小步快跑,每走完一步再调整并为下一步确定方向,直到真正的终点;
❷ 质量:敏捷方法对每一次迭代周期的质量都有严格要求,这些都为敏捷项目的整个开发周期提供了可靠的质量保证;
❸ 速度:敏捷团队只专注于开发项目中当前最需要的、最具价值的部分。这样能很快地投入开发。另外,较短的迭代周期使团队成员能迅速进入开发状态;
❹丰厚的投资回报率:在敏捷开发过程中,最具价值的功能总是被优先开发,这样能给客户带来最大的投资回报率;
❺高效的自我管理团队:敏捷开发要求团队成员必须积极主动,自我管理。在这样的团队中工作,每个团队成员的技术能力、交流、社交、表达和领导能力也都能得以提高。
七:Scrum常见问题总结及解决方案
➀ 故事分解任务过程中任务规划较粗,会造成在评估时造成工时不准确,存在资源浪费和资源使用不均衡的情况。
团队把工作拆分成更加细致的任务,控制在小时级的工作量,不要超过一天。这样更有利于团队为了同一个故事而共同努力,也便于协调多人同时参与,可以有效保证团队资源的均衡利用,同时也便于成员确认每天的进展。
➁ 每日站会过程中,Scrum Master会不自觉的成为主导、主持人的角色,通过问答形式与站会成员交流。
团队成员面对所有参会人员进行交流,而不是单独为PMO进行工作汇报,并引导团队成员自己掌控每日站会,从而带动整个团队的参会、工作积极性,同时控制好会议有序高效进行。(前一天做的事情、当天准备做的事情、遇到的问题)。
➂ 个别核心人员迟到或缺席,导致站立会的效率和质量下降。
确定项目的固定站会时间和必须参会人员,原则上缺席需要安排BackUp;若确定缺席,需提前告知团队成员,以便评估早会是否照常进行还是适当推迟进行;必要时可引入奖罚机制。
➃ 没有实施Sprint回顾会议,进行问题总结和跟踪。
固定1-2个迭代周期组织团队成员发起Sprint回顾会议,借助回顾的方式与团队成员共同参与讨论,总结出在上一个迭代中遇到的所有问题,并商讨产出完整的后续改进方案和流程,重要的一点是在以后的迭代中能够做到有效地跟踪并解决这些问题。
➄ 没有做好Product BackLog管理。
协调各产品经理(Product Owner)统一整理并维护Product BackLog,制定明确的优先级,使得开发、测试团队成员能够清晰、高效地筛选并完成每个Sprint内容。
今日推荐
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法分析
Mark Allen Weiss / 冯舜玺 / 电子工业出版社 / 2016-8 / 89.00元
本书是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书中内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找树算法、k-d树和配对堆等。本书把算法分析与C++程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。一起来看看 《数据结构与算法分析》 这本书的介绍吧!