敏捷开发scrum在软件项目管理中的运用

2018-12-20 08:43王俊
赢未来 2018年24期
关键词:运用

王俊

摘要:传统的软件开发方法,由于其过长的开发周期、经常性的超预算成本、不令人满意的软件质量控制等因素,让原本就繁重、复杂的软件开发过程越来越不能适应现实的需要。随着互联网技术的迅速发展,对当前软件项目的管理要求是约来约高。影响软件项目的因素也越来越多,新技术的产生、需求的变化、成本的竞争、市场的竞争等,敏捷技术应运而生。作为新技术,敏捷开发方法被很多国内外软件企业推广和使用。因此文章重点就敏捷开发scrum在软件项目管理中的运用进行略述。

关键词:敏捷开发scrum;软件项目;运用

目前,软件行业经过了几十年的发展后,我们所面对的软件系统变得越来越复杂。传统的软件开发方法,由于其过长的开发周期、经常性的超预算成本、不令人满意的软件质量控制、流动频繁的开发为员团队、不适合且僵化的管理体系、迅速变化的软件需求及市场环境等因素,让原本就繁重、复杂的软件开发过程越来越不能适应现实的需要。尤其随着互联网技术的迅速发展,在软件项目开发中,项目需求变化的速度也越来越快,如何应对客户需求的快速变化,交付高质量的软件,已成为现阶段软件开发公司生存的关键。因此,对软件项目管理就提出了较高要求。在这样的环境下,一种轻量级的软件敏捷开发方法应运而生。近年来,Scrum 敏捷开发方法被越来越多的软件企业关注,国内外各大软件企业开始纷纷推广和实践。

一、软件企业所面临的问题与挑战

在信息技术的不断发展推动着生产力的不断提高,并且互联网技术的迅速进步将信息和通信技术推向了一个新的高度的新时代背景下,软件行业的技术需求也逐渐渗透到了社会与生活的各个领域,并且以更加快速的方式向前发展。对于软件企业而言,将走向一个崭新的发展阶段,但未来也会面临着以下诸多挑战:

(1)新软件产品投放市场的时间太慢;

(2)项目失败的比例非常高,投资回报低;

(3)对变化与变更的响应,难度大且成本高;

(4)客户体验及以客户为导向的实现性很差;

(5)软件质量不过关;

(6)员工士气,动力及责任感很低;

(7)人员流失率非常高;

二、敏捷开发Scrum 概述

Scrum 是一种敏捷开发方法,是一个增量的、迭代的开发过程。在这个方法中,整个开发周期由若干个小的迭代周期,每个小的迭代周期称为一个Sprint,每个Sprint的建议长度为2 到3周。在Scrum中,使用产品Backlog来管理产品的需求,产品 backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的用户需求。在每个Sprint中,Scrum团队从产品Backlog中挑选最有价值的用户需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。

三、敏捷开发scrum在软件项目管理中的运用

(一)建立敏捷项目团队

团队成员通过对 Scrum 方法中相关理论、敏捷的特点以及角色和活动的掌研究,对开发团队进行了组建Scrum 敏捷开发团队确定了三种角色,具体为品负责人、Scrum Master和开发团队。

(二)建立 Scrum 项目开发流程

Scrum 敏捷开发模式,是迭代的、增量的开发过程。敏捷开发模式将项目分解为多个迭代,每个迭代周期时间为 2 到 3 周,每个迭代称为一个 Sprint。在 Scrum中,用 Product Backlog 管理用户需求。对 Product Backlog 中软件跟进需求的优先级进行排序,在 Sprint 计划会上,通过讨论再将优先级高的 Product Backlog 中的需求进行拆分,形成更详细的 Sprint Backlog,最后由 Scrum 开发团队对 Sprint Backlog 的用户故事进行认领和开发。Scrum 开发流程中,通过两个 Backlog 任务列表文件,对用户需求进行了详细的管理,用这两个列表代替了传统开发模式下大量的需求管理文档,优化了管理模式,这两个列表分别为:他们分别是产品任务列表(Product Backlog)和 Sprint任务列表(Sprint Backlog)。

1.Product Backlog

产品负责人通过收集客户需求,负责将用户需求按照相关格式整理到 Product

Backlog 列表,并对整理的需求内容进行优先级排列。产品列表是持续完善的动

态的列表,用户需求需要持续的进行完善,列表中的任务也随着迭代的完成,其

状态也会有相应的变化,具体状态为计划中、已交付、已删除。项目启动后,TJSNBG 项目敏捷实施产品负责人进行 Product Backlog 制定,产品负责人将产品待办事项列表的内容、可用性和优先级进行梳理。

2.Sprint Backlog

Sprint Backlog 具体记录了 Product Backlog 中拆分出的更加具体,更加详细的任务,这些任务呗标识为 Sprint1、Sprint2、Sprint3 等多個迭代,Sprint1 则为第一个迭代周期内需要完成的任务,Sprint2 则为第二个迭代周期内需要完成的任务,以此类推,每完成一个 Sprint 迭代,则为一个小的版本交付,直到所有的 Sprint迭代任务完成,则最终交付的产品实现完成。 在 TJSNBG 项目敏捷实施中,在小版本 Sprint1 迭代时,Scrum 团队进行Sprint Backlog 计划,在 Product Backlog 中选出一些功能任务,通过团队成员、PO、SM 一起讨论,确定 Sprint1 计划中相关任务的优先级,并进行工作量估算,形成一个可发布的 Sprint1 版本。

(三)建立 Scrum 会议机制

敏捷项目管理中,最重要的就是 Scrum 会议,他是 Scrum 管理的特色。通过Scrum 会议,团队可以不断的沟通、反馈、修改。 Scrum 的会议主要有版本计划会、Sprint 计划会、每日例会、Sprint 评审会和Sprint 回顾会。

(四)采用辅助工具

为了配合 Scrum 敏捷项目开发,万维公司在项目管理过程中,采用一些辅助工具来提高 Scrum 软件开发过程中项目质量。包括:持续集成平台 Jenkins,静态代码检查工具 Findbugs 和单元测试覆盖率统计工具 Eclemma。这些辅助工具在Scrum 开发过程中发挥了很重要的作用。

(五)Scrum 敏捷过程体系的建立

根据公司自身业务发展需要,结合 cmmi 最佳实践和敏捷思想,公司组织人员成立了虚拟过程改进小组,建立了敏捷过程体系,体系文件中,首先对软件过程进行阶段划分,具体阶段为:规划立项阶段、发布计划阶段、迭代开发阶段、发布冲刺阶段、项目结项阶段、维护支撑阶段。同时在每个阶段下有相关的指导书、指导程序、相关模版、相关检查单等,每个阶段具体成果物如下:

项目启动立项阶段:项目立项表;

发布计划阶段:配置管理计划、敏捷开发项目过程自定义表、业务目标陈述书;

迭代开发阶段:架构设计、数据库设计、接口及关键功能模块设计、轻量级监管(度量、评审、风险)、Product Backlog、Sprint Backlog;

發布冲刺阶段:放行测试报告、上线就绪审查表、配置审计报告、安装调测

申请单、安装调测上线通知;

项目结项阶段:项目总结报告、项目结项确认书、完工报告、客户验收申请、

验收报告、验收证明、客户工程资料移交单;

维护支撑阶段:问题列表;同时在整个开发过程管控中,还有全周期监控的管理,具体成果物为项目周报、检查单等。

四、效果评价

第一,Scrum 敏捷方法实施后,项目 Sprint 迭代发布基本上控制到了 2-3 周进行一次产品版本的迭代发布。这将避免了发布时间是由客户决定所造成的发布周期的不固定以及项目进度控制难的问题,成功的将项目的进度的控制权,从客户转移到项目团队。第二,Scrum 敏捷方法实施后,每个迭代的产品质量团队共同负责,而 Scrum 转型前,产品质量则由测试团队负责。这样也提高了Scrum 团队其他成员对产品质量的重视度,从而有助于提高产品的质量。第三,Scrum 敏捷方法实施后,所有的需求都由产品负责人统一管理。客户需求发生变化时,不会影响团队当前 Sprint 迭代开发任务。客时临时有需求变更时,则产品负责人会跟客户进行沟通协商,确定变更的需求是在本迭代中变更还是在下一个迭代中变更,能够更好的应对客户的需求。

总之,Scrum 是目前被应用最广的一种敏捷方法,是一种迭代的增量的软件开发过程。实践证明,Scrum在软件项目管理中的应用,能够极大的提升软件产品的生产效率和生产质量,值得推广应用。

参考文献:

[1]朱献文.软件开发综合实训课程Scrum敏捷开发方法研究[J].信息与电脑(理论版),2018(07)

[2]商志伟.敏捷开发研究[J].电子世界,2018(07)

[3]王丹.DD公司基于敏捷方法的研发项目流程优化研究[J].中国管理信息化,2018,21(02)

猜你喜欢
运用
试分析拓展训练在小学体育教学中的运用
启发式教学在高职院校足球教学中的运用
“赞赏发现”在高中语文教学中的运用
企业管理中社会网络的运用及相关问题阐述
节能降耗技术管理在电气设备的运用
工厂电气节能技术综述
游戏教学法在小学英语课堂教学中的运用
巧用插图,注入课堂活力