敏捷开发指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
敏捷开发指南
一、 敏捷项目中的角色
敏捷项目角色设置采用SCRUM方式,在Scrum 中有三个基本角色,产品所有者(Product Owner)、开发团队和ScrumMaster
产品所有者:负责取得最大的商业价值,收集相关于产品的所有信息,从客户或产品的最终用户 、开发团队成员以及其他管理者中获取,并将这些信息转化为优先权项目列表。在最理想的情况下,产品所有者就是客户本人,在软件公司多数项目中,Product Owner由系统分析员来担任,他负责分析收集到的产品需求,并记录在Product Backlog中。
开发团队:负责构建产品。敏捷团队一定是“跨功能”的团队,包括支付每一Sprin中的任务,所需的各类专门人员(比如:开发、测试、资料等),并且它是有很高自律性和责任性“自我管理”的团队,团队承诺完成哪些任务,以及完成这些任务所采取的方式,敏捷团队成员通常包括五到十个成员,开发团队包括程序员、界面 设计师、测试人员和资料。开发团队不仅构建产品,他们也向产品所有者提供让产品尽善尽美的建议和想法,团队内部成员尽量保持稳定,大型项目开发通常会进一步划分几个敏捷开发团队。
ScrumMaster:ScrumMaster的任务是以任何方式帮助整个团队取得成功,ScrumMaster不是团队中的经理,他服务于整个团队 ,帮助团队铲除壁垒而取得成功,协助团队会议,并支持Scrum的实践,在软件公司敏捷项目中,ScrumMaster可由传统的SQA这个角色来担任,当然也可以来自不同的背景和学科:项目管理、工程技术、设计,检测,ScrumMaster和产品所有者不应是同一个人,不同于项目经理,ScrumMaster不会指示和分配工作,他们更多只是协助流程的实施,推动团队自我组织和管理。
项目经理:他支持团队开发团队,尊重项目规则和精神,帮助团队铲除壁垒,为整个项目的开发提供知识,技术和各种必要的协助,他需要转化以前的“保姆监管”式的角色(布置任务,收取进展报告等),取而代之的是需要承担起更多的“指导”作用,辅导、培训、铲除障碍,帮助解决问题,提供创新的建议和指导团队成员的技能发展,为了更好地实现这一变化,项目经理需要改进传统的管理方式,帮助开发团队找寻解决方案,而不是简单的解决方法并分配给开发团队。
二、 敏捷项目流程
1、先收到来自开发代表的SOW(工作任务书)
ProductBacklog(按商用价值,优先级排序)
2、 sprint计划会议(估算任务工作量,任务负责人)
3、每日站立会议
4、sprint评审会议(会议准备不会需要超过30分钟,到会人可以是任何对此感兴趣和相关的人,主要不是开发人员的“演讲”,是属于成果的展示会议)
5、Sprint回顾(组织Sprint回顾的最简单方法就是在白板上画两个分栏,分别注明“哪些项工作顺利”,“哪些项可以做的更好”)。
6、开发下一个Sprint
7、产品发布计划(Scrum强调在每一Sprint中都生产出可以随时交付的编码。)
三、 软件公司敏捷项目实施的几个基本活动
1、 组织跨功能的团队:整合系统开发、测试、资料等相关人员为一个统一的跨功能的敏捷团队,暂时在项目中抛弃传统的部门概念由这个敏捷团队共同完成版本的交付。
2、 迭代开发和管理:按照迭代的方式运作和管理 ,对项目划分迭代,并推荐按照Scrum的迭代管理方式进行整体的项目运作。
3、 持续集成:要能够敏捷起来,首先就是能反馈够快,能随时出版本,能够及时验证需求的实现正确性。
4、 简化文档交付件:根据项目的实际需要,敏捷项目强调两个交付件,一个是项目要做什么的用户故事(User Stroy)像描述故事情节一样站在用户使用的角度 来描述这个需求的含义,价值。另一个文档交付件就是维持一份统一的架构文档 ,这份架构文档仅仅描述程序的架构,描述系统内模块的划分和管理。
做到这几个 基本的互动,项目将具备初步的敏捷性,在这个基础上,逐步再引入敏捷相关的实践,比如测试驱动(TDD),用户故事(User Stroy),结对编程( Pair Programming)等,将使得我们逐步走向敏捷,逐步做到既快又好。