软件互联网行业对敏捷开发及管理模式的应用及分析

2016-03-10 12:34:44黄胜男王艳松
电脑与电信 2016年9期
关键词:冲刺项目组软件

黄胜男王艳松

(1.时趣互动(北京)有限公司,北京 100000;2.国土资源部土地整治中心,北京 100035)

软件互联网行业对敏捷开发及管理模式的应用及分析

黄胜男1王艳松2

(1.时趣互动(北京)有限公司,北京 100000;2.国土资源部土地整治中心,北京 100035)

对目前国际上流行有效的敏捷项目管理方法之一的Scrum进行了研究,简要介绍敏捷开发定义、适用场景、管理工具,以及相应的管理模式。详细介绍Scrum冲刺流程和定义,以Scrum为例结合敏捷开发管理模式在互联网及软件行业实际应用情况,讨论了其存在的优势和可以继续优化的方向。

Scrum;敏捷开发

1 敏捷开发

1.1 简介

相对于"非敏捷",敏捷开发方法更强调整个项目团队之间的紧密协作,认为面对面的沟通比书面的文档更加直接有效。这种兴起于19世纪90年代的开发模式适用于需要频繁交付的软件版本,一般应用在紧凑、自我组织型的团队中,使得整个团队能够很好地适应需求变化带来的代码编写和团队组织活动;同时它也更加注重人力在软件产品开发过程中的重要作用。

1.2 适用情形

合理地应用此种方法会给当今软件互联网公司的管理和运营带来事半功倍的效果。在通常情况下,敏捷开发的适用性可以从以下方面来衡量:

(1)从产品开发的角度看,敏捷方法适用于需求萌动并且快速改变的产品,例如项目初期快速收集得来的需求,特别是客户对其自身需要毫无概念的情况下,拟定的需求可能会影响软件未来的开发周期及资金等问题。

(2)从团队的组织结构角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。如团队沟通顺畅,协作良好,大胆开放,乐于接触新的管理模式,可以尝试采用此方法。

1.3 项目管理

适用于敏捷开发方法的管理,已经有一些成熟的项目管理工具,可以用它们来帮助规划、跟踪、分析和整合敏捷开发工作。这些工具在敏捷开发中扮演重要的角色,也是知识管理的一种方法。通常包括:版本控制整合,进度跟踪,工作分配,集成发布和迭代规划,论坛和软件缺陷的报告和跟踪等。

当前互联网行业内常见的敏捷方法包括:敏捷数据库技术,敏捷建模,自适应软件开发,特性驱动开发,动态系统开发方法,精益软件开发,AUP,Scrum,极限编程,探索性测试等。常用的项目管理工具包括:JIRA,Microsoft Project,Clarity Process Manager等。

2 Scrum

2.1 Scrum流程简介

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发的管理。Scrum开发流程中包含了三大角色,包括同项目经理类似的Scrum主管角色,主要负责维护过程和任务,统筹管理项目;第二大角色产品负责人代表了利益所有者,主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容等,同时有接受或拒绝开发团队工作成果的特权;而第三类开发团队则包括了所有的开发人员,主要负责软件产品的开发工作,团队人数控制在5~10人左右,每个成员负责不同的技术,但要求每位成员必须要有很强的自我管理能力和表达能力;成员可以采用任何工作方式,只要能达到Sprint冲刺的目标即可。

每个周期叫做一次冲刺,时间一般控制在15到30天,在一个冲刺的时间内,开发团队创建可用的软件增量。冲刺周期中的每一天都会举行项目状况碰头的会议,被称为“Scrum”或“每日站立会议”。会议上,团队成员需要回答三个问题:今天你完成了哪些工作?下一步你打算做什么?完成你的目标是否存在什么困难?成员回答后,Scrum主管需要记录这些问题。每一个冲刺完成后,都会举行一次冲刺回顾会议,在会议上所有团队成员都来总结这个冲刺的工作,反思成果与问题。举行冲刺回顾会议是为了进行持续过程改进。

2.2 Scrum特点

Scrum提倡所有团队成员坐在一起工作,改善了交流,以团队为基础,有助于创造自我组织的团队,优化了合作方式;制定了一个非常简单的可重复执行的流程,强调项目有关的规范,是现有设计流程的一个总结。

Scrum的一个关键原则是承认客户可以在项目过程中改变主意,采用了经验方法——承认问题无法完全理解或定义,关注于如何使得开发团队快速推出和响应不断出现的需求的能力最大化,是最大化生产率的一种方法。

更重要的是,在项目负责人的带领下,团队会定期反省如何能够做到更有效,并相应地调整团队的行为,不断优化进步。

3 实际应用

3.1 计划管理方法

Scrum在本文的应用中主要是指用作项目计划管理方法。按照每个季度或长期存在的产品的整体计划划分Scrum项目组。每个Scrum组的人员组织形式包括:一个项目负责人,即项目主管;开发团队;QA团队;以及一个产品经理。

3.2 季度计划

每个季度之初的第一次冲刺会议上,项目负责人先跟产品经理协商,列表整个季度的主要计划:按照完成的难易程度分为最低目标,最高目标。全员参会讨论各个目标的合理性,头脑风暴对于各个目标的实现方式和方法,并由项目负责人进行汇总,最后确定整个季度的最低目标和最高目标。

3.3 冲刺周期的任务拆分

每个冲刺周期的工作计划是从产品经理处提出新的产品需求,交予项目主管,同时加上项目主管提出长期工作计划,制作成的冲刺计划表。计划表中的每个计划按照优先级不同排序完成。项目组全体成员参与冲刺会议,讨论本冲刺中各项需求计划,大家都没有异议后,按照自己负责的领域主动领取冲刺计划表中属于自己领域内的任务项,并根据难度及能力给出一个预计完成时间。如果遇到大型或较为繁琐的任务,领取后可自行拆分为一个冲刺周期内可实现的小任务,然后给出子任务的进度估计,以及总体任务需几个分期。每个冲刺周期持续时间2周,如果任务完成冲刺时间还没到可以继续领取剩余的拆分任务项;如果一个冲刺的预期时间内没有完成任务,也可申请延期。

3.4 月末产品展示会

每个月两次冲刺周期的时间结束后,月末有一个产品展示活动。各个Scrum项目组分别拿出自己阶段性成果在公司平台范围内做一个分享展示,并不要求一定是成型的产品,某个功能的简单优化也可以,只要能体现出不同和优化的点即可,主要目的是鼓励交流分享,鼓励创新和阶段性成果。

3.5 一些其他改进

为了节约时间,互联网公司在实际应用时,一般是前面一个冲刺的总结会和下个冲刺的讨论会同时进行,放在每个冲刺的第一天。其中冲刺总结会相对轻松,提的意见和建议也并不要求是实际的技术问题,只要与项目进展相关都可以提。

月末的产品展示会上也是一个各个Scrum组交流的场合,类似茶话会,气氛比较轻松。

关于日常考勤,对于Scrum组中的同事也做出了人性化的调整,凡是参与Scrum项目的员工,理论上上下班无需按时间记录考勤,只需要完成日常工作即可。

4 积极影响

应用敏捷方法不仅可以在项目的开发上带来便捷,也可以对日常工作的管理工作产生积极影响,比如:在项目负责人的选择方面:为了适应敏捷开发,项目组的负责人首先在技术上面应充当领头羊的作用,可以在任何人遇到疑惑时指出合适的方向,同时又不应讷于言表,应当思维活跃清晰,又善于引导项目组成员发散思维,重视头脑风暴,重视团队协作,有效沟通。

关于技术分享:敏捷方法注重沟通。无论谁掌握着新技术或做出了新的突破都会以实际资金激励的方式鼓励员工组织展开分享。鼓励分享与共赢,共同进步。鼓励项目组内部的技术分享会,也会鼓励公司级别非技术层面的综合分享,可以拿出自己任意领域的知识经验和阅历,只要可以帮助到团队都会得到支持。

不断创新和学习:重视创新,无论开发的流程上,测试的探索上,还是项目管理上,都应不断学习,不断探索新方法新思路;同时在项目组内部也鼓励改革,尝试新技术新手段。

5 可优化的空间

使用敏捷方法对于项目进展而言遇到的一个很重要的

问题是对项目的拆分比较困难:大的需求问题开发起来势必花费较长时间,做不到短平快就失去了冲刺的意义,不得不拆分成小问题;但大需求一旦拆分成很多小需求,每个需求的改动在每个冲刺结束后便不易看到整体上的实质效果,同时,在业务方面联系紧密的模块在实际的拆分上面总会互有依赖,如何减少耦合也是项目拆分时候的难点。

而且目前的敏捷方法还是在开发层面使用广泛,在管理流程中并没引入设计人员和运营人员参与。目前运营人员扮演的角色还是主要与用户打交道,以及反馈bug给QA人员,更偏向于产品的技术支持,而产品的新需求多数还是产品经理设计出来的,虽然说基于大量用户数据,但数据是死的人是活的,如何使死的数据应运而生出不断变化的需求,是一个需要考虑的问题;因此考虑是否可以在管理的每个冲刺会议中引入运营人员,更真实地反应用户遇到的实际问题和真正有用的需求,会比开会头脑风暴时由业务设计者本身代替用户想的要周到和实际。而目前的设计人员只同产品经理和前端开发人员打交道,只有当开发提出一个设计需求时,设计人员才会参与到项目中,个人感觉也可以增加设计人员在项目中的比重,多收集反馈,倾听用户的声音,同时关注同类产品;用户的反馈可以直接交予设计提前做准备,这样当开发或者产品提出对应需求时,设计人员可以有的放矢,而不是纸上谈兵。

另外,Scrum会议的效率还可以进一步提高,例如每日的站会可以在项目组内建立讨论组或者QQ群,借助网络在线交流一下,本身不会花费很久的时间,同时在线交流的优势在于交流记录可以留存,方便周期结束后总结会议上使用。

第三,不同于KPI,Scrum不是能够明确量化个人任务的管理方式,其实还是比较注重团队合作,项目的目标制定也是以Scrum团队为单位,具体分给个人的工作任务相互之间也是有需求有交集的,不太适合公司层面的绩效考评,因为任务完不成只需向项目负责人申请延期即可,与项目组成员自身关系不大,在管理层面而言,并不是一个好的激励团队的方式,因此,如果找到一个能更好的挂钩项目组成员绩效的管理方式,也许会对员工起到更积极的促进作用。

[1]韩鹏.小规模团队的敏捷开发研究[J].软件工程师,2011(7):42-46.

[2]陈楠,陈文培.敏捷开发中相关技术的应用[J].计算机应用与软件,2011,28(4):202-204.

[3]JIM BIR D.三种敏捷开发方式技术指南[EB/OL].http://www. searchbi.com.cn/showcontent_86688.htm,2014.

[4]陈国栋,罗省贤.Scrum敏捷软件开发方法实践中的改进和应用[J].计算机技术与发展,,21(12):97-99.

[5]张智海,周国祥.Scrum方法的研究与分析[J].合肥工业大学学报(自然科学版),2010,33(2):197-200.

Application andAnalysis ofAgile Development and Management Mode in Software Internet Industry

Huang Shengnan1Wang Yansong2
(1.Time Interest Interaction(Beijing)Co.Ltd,Beijing 100000; 2.Land Management Center of Ministry of Land and Resources,Beijing 100035)

tract】 Scrum,which is one of the popular and effective agile project management methods in the world,is introduced in this paper.The definition,application scenarios,management tools and management modes of agile project management are introduced briefly.Scrum sprint process and define are introduced.Taking Scrum as an example,combining with the practical application of agile development and management mode in the Internet and software industry,the advantages and optimization direction of agile development are discussed.

words】 Scrum;agile development

TP311

A

1008-6609(2016)09-0087-03

黄胜男,女,山东济南人,硕士,软件工程师,研究方向:软件工程。

猜你喜欢
冲刺项目组软件
冲刺
禅宗软件
英语文摘(2021年10期)2021-11-22 08:02:26
CSCO生物统计学专家委员会RWE项目组简介
Association between estradiol levels and clinical outcomes of IVF cycles with single blastocyst embryo transfer
基于数字化平台的项目组管理实践
软件对对碰
冲刺
文苑(2018年20期)2018-11-09 01:35:52
谈软件的破解与保护
精品(2015年9期)2015-01-23 01:36:01
向着自贸区冲刺
项目组研究式教学对社会主义学院教师能力素质的要求及培养