浅谈敏捷开发思维在轨道交通信号领域的应用

2019-09-24 18:41马鸿超
智富时代 2019年8期
关键词:对比效率

马鸿超

【摘 要】目前的轨道交通信号系统开发过程中,一般以V模型作为完整的开发流程。V模型以其验证和确认过程为核心,在系统的设计和实现过程中,逐层地对产出进行检查,以保证产品和产出物的正确性。但在这一模型中仍然存在一些由流式开发模型导致的效率问题。本文以新兴的敏捷开发思维和工具来尝试解决现有模型带来的问题和风险,提高开发效率。本文亦对两种开发方式进行对比,并指出这一过程中遇到的问题和难点,并提出一些解決办法,将这一过程中产生的经历与经验进行简要的阐述、分享和探讨。

【关键词】V模型;敏捷开发;效率;对比

在各种原因下,我们的信号系统开发,仍然在使用相对较老的管理方式和技术中。大量的信号系统开发团队,在面对这一问题时,通常采取增加培训、强化制度等传统方式尝试解决。结果上而言,这只是让更多的人适应当前的状况,而没有从源头上尝试解决问题,付出的成本不菲,而收效甚微,很难称得上有效的解决方案。

相对而言,同样部分源自计算机科学,互联网行业则是这一方面的优势选手。近年来,无论是管理技术、培训技术、工作流技术,互联网公司都创造了相当多宝贵的特质化技术和经验,低耗高效地优化了自身。另一方面,这些方面的变革也明显吸引了更多的毕业生等新鲜血液。在这样的趋势下,如何从互联网项目的成功经验中总结经验、优化自身,已经成为了传统领域项目共同的话题。

本文从项目管理的方向上,对轨道交通信号系统的项目管理进行反思总结,并结合自身经验,粗浅地探讨吸收敏捷开发思维,化为己用,优化自身的过程中的收获与问题。

1.采用V模型进行项目开发的现状

V模型作为一种源自瀑布模型的改良版本,对于项目成员而言,最为明显的特点之一,便是其开发流程中各个开发任务的粒度。开发过程中,尤其是早期阶段,相关人员始终以整个产品的视角出发,进行详细的分析、研讨等工作。这样的视角和粒度带来的问题之一,是项目成员承担的负载是不均等的。例如,第一线的软件开发人员,在进行具体功能的详细设计前,一直处于工作负载较低的状态,直到前置产出物完成。

V模型的线性工作流带来的另一个问题则是开发过程中的压力累积。即使投入了V模型的验证和确认过程,在单个阶段结束后仍然无法保证万无一失。而线性工作流下,更为有效的验证过程往往被前置阶段阻塞,导致一些较为隐蔽的问题无法被快速发现。而软件工程中,问题的排除一般无法估算具体的时间。这样的状况会导致项目组开启下个迭代的时间延后。

2.吸取敏捷开发思维以解决效率问题

在探索前述问题的解决方案时,目前十分流行的敏捷开发引起了我们的注意。概念上来说,敏捷开发并没有特别准确的定义,但其特点是业内一致认定的——快速迭代,快速反馈,拥抱变化。我们仍然保留了原先V模型的验证和确认过程,而在设计过程中采用了少量多次迭代的方针,降低每个任务的粒度。相比之下,少量多次迭代带来的优势是,每个项目成员都能够很快开始自己的工作,在整个项目中的工作压力相对均衡,每个迭代需要完成的任务和产生的问题有所减少。

在工作流方面,我们没有做非常大的改动,转而在优化工作粒度的基础上进行改进。调整工作流之后,对每个任务更为精准的验证确认可以更早开始,问题可以被更早发现和处理。更为重要的是,因为系统当时的复杂度相对更低,问题的排查和处理也变得更容易。

我们还在项目推进过程中增加了一些沟通环节。我们设立了频率更高、耗时更少的进度沟通,在每个阶段也让更多角色参与进来。在推行一段时间后,我们发现,定期的沟通更容易发现开发过程中每个成员遇到的问题,而更多角色的参与则减少了设计上的问题和反复返工的现象。我们还发现,在这样的模式下,更多的项目成员反馈称,他们更有信心顺利完成每个迭代结点,在工作过程中也有了更大的提升感。

3.投入敏捷开发的难点和解决方案

在推行过程中,我们的主要难点之一是对“敏捷”的理解不足。在粒度较细的设计过程中,因为团队过早地思考了非当前迭代的内容,花费时间进行了设计。而之后的开发证明,当时做出的设计已经不再适用,这产生了额外的开发成本。在研讨后发现,如果在当前迭代只考虑相关的设计,反而会减少类似的问题。与此类似的是,我们发现,在完全不修改之前迭代的情况下进行持续开发会产生额外的问题。在这个方面,我们通过周期性的沟通、研讨和简单复盘,付出一定的学习成本之后,这些问题都有明显的改进。

另一个问题是,面对全新的工具链,每个人都需要进行额外的学习,尤其是相关工具的搭建、修改和维护方面。在每个工具的投入前,我们都进行了详尽的调研,避免投入过多的系统,无谓地增加全体成员的学习成本。决定投入后,我们还提前准备了完整的培训方案,并构建了一定的实战用例。结果上,我们做出的准备收获颇丰,在工具的投入确实降低了出错的概率。而工具的选择和自定义方面,也因为充分的调研和调整,尽可能简化操作成本。得益于此,项目组很快地投入了实战生产,只产生了少量的操作问题。

4.对两种开发模式的对比与探讨

V模型作为传统的项目生命周期模型,其逐级推进的工作方式在项目整体的全局把控方面十分出色。此外,作为V模型的标志,每个阶段都有对应的验证和确认过程这一特性,一定程度上确保了项目整体的推进方向。

而投入敏捷开发后,整体的项目推进则更多地关注具体的任务和功能,快速迭代使得项目成员的压力分布更为均匀,每个迭代的目标更为明确简单,在推进过程中简洁轻快,每个人都有足够的参与度和更为明确的目标。

本次尝试中,我们只尝试了将敏捷开发中很小的一部分与V模型结合的方式。虽然在尝试的过程中,仍然绕了一些弯路,我们仍然付出了一定的试错成本和学习成本,结果而言,项目的推进速度有所提升,开发过程出现的问题有所减少,效果比较明显。

【参考文献】

[1]贾子河,段永刚,蒋博,段珊珊.轻松Scrum之旅—敏捷开发故事[M].电子工业出版社,2009(1).

[2]张文胜,陈宏.基于ThinkPHP模型的敏捷WEB开发的应用与实践[J].软件工程.2016.v.19;NO.20103:45-48

猜你喜欢
对比效率
注意实验拓展,提高复习效率
俄汉成语中动物形象特点分析
克里斯托弗·马洛与陶渊明田园诗的对比
跟踪导练(一)2
“钱”、“事”脱节效率低
提高讲解示范效率的几点感受