CopyRight 2009-2020 © All Rights Reserved.版权所有: 中国海关未经授权禁止复制或建立镜像
敏捷开发模式在“单一窗口”建设中的实践
作者:田书库 熊涛
田书库 熊涛
摘要当前软件开发面临着需求的不确定性和频繁变更,客户希望快速交付,以往的开发模式已渐渐不能帮助软件开发取得成功,敏捷开发模式的出现,有效解决了软件开发中的痛点,本文从“单一窗口”软件项目的实施出发,讲解了采用敏捷开发模式在项目中的应用实践,帮助“单一窗口”项目取得成功的案例。最后提出敏捷开发模式应在项目开发中得到更广泛的推广和应用。
关键词 敏捷开发;单一窗口;看板;迭代;自组织团队
The Practice of Agile Development Mode in "Single Window" Construction
TIAN Shu-KuXIONG Tao
AbstractAt present, software development is facing with the situation of the uncertain requirements and frequent changes, customers want to deliver quickly. The traditional development mode has gradually failed to help software development succeed. The emergence of agile development mode has effectively solved the pain points in the software development. Starting from the implementation of "the single window" software project, this paper explains the application practices in the project of agile development mode, helped " the single window" project succeed. At last, it is suggested that agile development model should be widely used in project developments.
Keywords Agile development; single window; kanban; iteration; self-organizing team
1 前言
敏捷开发是互联网行业使用最多的软件开发方法之一,面对需求的不确定性和频繁变更,客户希望快速交付,以往的开发模式已渐渐不能适应,敏捷开发方法的出现,有效解决了这些问题,使得项目快速成功实施成为可能。[1]
中国电子口岸数据中心(简称数据中心)在承担国际贸易“单一窗口”(简称“单一窗口”)建设时,面临了同样的问题,在需求不能一次性完整提供的 情况下就需要软件功能快速上线,如果沿用原有的开发模式,很难完成,工程实施团队选择了敏捷开发方法,事实证明选择是成功的,“单一窗口”的项目 在时间紧、任务重的条件下实施敏捷开发,保证了软件功能按时上线,实现了应用所提供的服务,得到了政府部门的肯定和企业用户的称赞。
2 敏捷开发方法
从上世纪90年代开始,各国开发的软件系统越来越复杂,开发之前需求不确定、界限模糊,开发过程复杂,造成了软件开发的规模和复杂度已经和以往不可同日而语,发生了指数级的变化,庞大的多团队开发已经是常态,如何快速开发出大规模系统,又要最大限度减少软件危机的发生,促使业界专家积极探寻新的软件开发方法。
2001年2月,由17位软件开发领域的软件顾问成立了敏捷联盟(Agile Alliance),开始定义敏捷的软件开发过程。专家们认为敏捷是一种思维方式,它是由价值观定义,由原则指导,通过许多不同的实践体现。同年,《敏捷软件开发宣言》(Manifesto for Agile Software Development)正式发表,代表了21世纪互联网时代软件开发模式的一种先进理念和价值观的正式建立。
敏捷开发较传统开发模式的优势是采用了迭代开发,具有高适应性,同时又是以人为本、轻量型的一种开发方法。它能更加灵活并且充分利用每个开发者的优势,调动每个人的工作热情,从而极大提高项目研发的整体工作效率。
敏捷开发使用的主要方法包括Scrum(见图1)、XP等。
3 在“单一窗口”上应用
“单一窗口”最初概念是来自联合国贸易便利化和电子商务中心(UN/CEFACT)的33号建议书,各国也有相应的解释,综合各方论断,当前明确解释是:“单一窗口”是指参与国际贸易和运输的各方,通过单一的切入点提交标准化的信息和单证,以满足相关法律、法规及管理要求的平台。[2](见图2 )
2016年10月, 国务院口岸工作部际联席会议办公室印发了《关于国际贸易“单一窗口”建设的框架意见》,指导全国开始全面建设“单一窗口”。目前“单一窗口”已与科技部、工信部等25个部委系统实现对接,完成货物申报、舱单申报、运输工具等16大类基本服务功能,对外提供进出口货物申报、原产地证办理、出口退税申请等495个服务事项,累计注册用户数270多万,日申报业务量800多万票。
数据中心在建设“单一窗口”工作中,使用了敏捷开发方法,完成应用研发项目60多个。数据中心的敏捷开发是应用Scrum方法实施的,Scrum方法是基于经验过程控制理论,用于开发、交付和持续支持复杂产品的一个框架。Scrum采用迭代、增量式的方法来优化对未来的预测和控制风险。 透明、检视和适应是其三大支柱,支撑起每一个过程的实施。Scrum框架由Scrum 团队以及与之相关的角色、事件、工件和规则组成,框架中的每个部分都有其特定的目的,其对于Scrum的成功使用是至关重要的。[3]
Scrum方法是由一些相关实践组成的,在“单一窗口”建设中用到了以下基本实践:
3.1 需求梳理
项目开始实施前先要进行需求梳理工作,将软件需求条理化和颗粒化,这项工作与以往不同的是强调需求的价值体现,每项需求体现的价值要在项目团队中达成共识。需求拆分后要按照价值比重进行实现优先级排序,最终划分到各次迭代当中去,形成项目实施的迭代开发计划。
3.2 自领任务
项目组在编制迭代开发计划时,需要进行任务分配。过去基本上是项目经理进行任务分配,敏捷开发要求尝试自领任务,就是让项目组成员自己领取任务,这样的好处是提高团队成员的积极性,促使个人有机会迎接创新和挑战,同时降低项目经理分配工作的难度和工作量,提升整个团队的工作效率。项目团队通过自领任务,建设自组织团队。
3.3 任务看板
任务看板是敏捷方法中的核心实践,用于跟踪迭代开发期间任务完成情况,项目经理在迭代开发之前建立本项目的任务看板,任务负责人根据各自任务完成情况随时更新看板上的任务卡片到相应的状态列。任务看板以物理板形式展现,体现了敏捷方法中的透明原则,对实施团队的激励作用很大。
3.4 每日站会
每日站会是敏捷实施中一项基础实践,团队每天采用站立形式召开的短时间会议,主要目的是让组内成员相互了解彼此进展,从而了解项目整体进展。同时给团队成员一种精神激励,每一个人都要为每日的工作目标完成情况而努力。每日站会可以帮助项目经理及时了解团队成员面临的障碍,进而快速排除。每日站会培养团队文化,让每个人都意识到“整个团队在一同战斗”。
3.5 提测演示
提测演示是在“单一窗口”应用敏捷实践时的一项创新,即在代码开发完成后,没有按照传统的开发过程进入测试阶段,而是先由开发人员对完成的功能模块进行现场演示,演示时需求、开发、测试人员必须参与。演示通过后,测试人员才开始进行测试工作,演示不通过,开发人员还需要继续修改,直到演示通过。团队执行这项实践保证了迭代开发的代码质量,同时提高了测试的工作效率。
3.6 召开回顾会
召开回顾会是敏捷实践在一个迭代中的最后环节,也是相当重要的一个实践。回顾会议主要用于进行周期性的回顾,总结工作中的经验和教训,一般在每次迭代结束时进行,整个团队都会参加。回顾会议倡导以人为本,每个人都要发言,提出团队在迭代实施期间做得好的地方,还需要做得更好的地方,以及有什么新想法或者建议,每个人轮流表达意见后,还要经过投票选出大家最关注的地方,好的方面继续保持,不足的地方制定行动计划进行改进。项目组召开回顾会议可以识别问题原因,积累经验,不断提升团队自身能力。
3.7 敏捷实践教室
敏捷实践教室也是应用敏捷实践时的一项创新,“单一窗口”建设时期,研发团队中新人很多,为了让新人快速熟悉敏捷开发方法,在项目中熟练应用,我们建立了具备实操性环境的敏捷实践教室,前面所列举的敏捷实践全部都可以在教室中进行学习和反复练习,让项目团队最快一天就可以掌握敏捷开发基本实践,马上就可以在项目中去应用,这种方式极大提高了敏捷方法培训的效率和效果。同时敏捷实践教室也是团队成员进行经验交流和沟通的场所,对提高数据中心整体敏捷实施能力帮助很大。
3.8 “拥抱敏捷”公众号
敏捷开发在“单一窗口”建设中的落地离不开宣传和推广工作,在“互联网”使用和移动通讯广泛普及的今天,项目团队日常工作也越来越离不开网络和移动终端。为了使项目组便捷和及时获取敏捷知识,我们建立和维护了“拥抱敏捷”公众号,用于发布敏捷方法,案例和项目实施经验,开展敏捷实施调研工作。公众号有力地宣传了敏捷开发,推动了敏捷开发在“单一窗口”建设中的实施。
4 展望
敏捷开发模式在 “单一窗口”建设工作中得到了成功应用,我们对“单一窗口”实施的实际经验和案例进行提炼和总结,编写发布了《数据中心敏捷开发流程指南》。指南发布后,有力推动了中心软件项目采用敏捷开发模式实施,项目取得了很好的效果。目前90%以上新立项的项目都选择了敏捷实施,越来越多的团队依靠敏捷开发取得了项目成功,敏捷开发已经深入人心,怎样提升敏捷实施的效果已经成为数据中心下一步探索的方向,我们相信,更多的敏捷创新会为项目实施带来更大的价值,团队能力建设也会迈上新的台阶,敏捷开发一定会带给我们更美好的明天!
图1
图2
参考文献
[1]丛斌, 知行合一 实现价值驱动的敏捷和精益开发, 2017.
[2]UN/CEFACT: Recommendation and Guidelines on establishing a Single Window, Recommendation No. 33, 2005.
[3]Ken Schwaber, Jeff Sutherland. Scrum 指南, 2017.