• 快捷搜索
  • 全站搜索

软件开发工艺改进之路

2016-05-09 20:03:23作者:中国银行软件中心副总经理 王铿编辑:金融咨询网
工艺改进的根本目的还是更好地支持业务发展。为客户提供更好、更快、更便捷的服务,“敏捷开发”是达到这一目的的必由之路,“软件复用”、“持续集成”则为“敏捷开发”提供了现实支撑和基础保证。三个专题互相配合、共同推进,在实践中取得了很好的效果

中国银行软件中心(以下简称中心)将质量管理体系改进做为“工艺优化”的全目标方案,工艺改进的“着力点”从“问题驱动”转变为“价值驱动”,工艺改进的“驱动力”则由“自顶向下”的组织推广转变为“自底向上”的主动完善。

返璞归真,寻求“敏捷”开发之道

        敏捷开发模型的自组织管理、迭代交付、拥抱变化、轻量文档等特点,能很好地适应互联网时代应用系统变化“快”与应用“轻”的特点。中心探索了借鉴敏捷开发“快速响应”与“贴近客户”的特点,优化现有的瀑布开发过程模型。开发模型的变化涉及到千头万绪,转型必须确保过程风险可控。中国银行确定了“微观放开、关键抓牢”的基本策略。“微观放开”指允许项目组发挥创造力,在规范框架内灵活使用敏捷方法,“关键抓牢”指组织级技术与过程管理部门,牢牢抓住实施过程中的关键环节,确保风险可控。

        2013 年,中国银行启动了第一个敏捷开发试点项目“中银开放平台项目”,选择业界主流的SCRUM模型,结合用户故事、每日站会、任务板、燃尽图、结对编程、持续集成等敏捷实践,整个项目采用迭代开发,仅数月就完成1.0 版本的投产,并在后续每两个月完成一次大版本升级,远远超出了采用瀑布开发模型系统的重大升级交付速度。去年开始逐步扩大试点范围,并形成了每年12 个敏捷项目投产机制,第一步工作取得了圆满的成功。2015 年技术管理部门的流程专家深入敏捷试点项目,再次梳理流程差异,识别组织级敏捷开发管理关键点,计划在2016 内完成第二步的工作计划。

        敏捷开发是最“原始”的一种开发模型,同时又蕴含着最“先进”的开发理念。返璞归真,去寻求“敏捷开发”之路,既是现实的需要也是要为今后的发展探索一条新的道路。

兼顾质效,规范软件复用活动

        “软件复用”是从软件诞生起就被大力举荐的一个理念,是一个人人叫好,理解各不相同的开发工艺。只有当“软件复用”工艺从“自发”转为“自觉”,管理从“无序”转为“有序”,主体从“个人”转为“组织”,软件复用才能真真发挥其应有的作用。

          要推广“软件复用”工艺改进,关键在于找到有效的管理办法。通过研究,我们将软件复用划分为生产者复用(又称:领域工程)、消费者复用、复用过程管理三大过程,并引入行业复用软件标准- IEEE1517,通过组织级活动来推进这项活动的开展。在生产者复用过程中,领域研究是第一个切入点,通过与业务专家一起深入业务领域研究,共同预测、规划业务发展方向,通过抽象整合关键业务模组,在基础架构设计时以建设平台系统为目标开展工作。

        产品线建设是第二个切入点,按照开发语言(C、JAVA、COBOL 等)设定了6 大生产线,以充实复用资产为目标,通过丰富功能、抽象封装提高资产层级,通过统一规划、独立实施快速充实产品线复用资产,健全产品线规范体系、支持工具,为生产线内的项目开发提供支撑。

        经过多年持续投入和产品线技术平台建设,已形成了Java 类J2EE 开发框架-BFWJ、全业务开发技术平台-CSPS、批量调度平台-JOBCTL 等一批优秀的技术平台类资产。其中CSPS 平台实现了面向全生命周期开发流程管理与支持,封装了成熟的银行联机交易处理实现机制,构建了自动代码复查、自动构建、自动测试、自动部署的工具体系,在业务功能方面则形成了票据、统一授权、单点登录、时区管理等应用广泛的复用组件。

        在消费者复用过程中,注重资产的复用的有效性。把消费者复用袖珍生命周期加入各个工程活动阶段,支撑文档模板、源代码、接口等各类复用资产的寻找、选择、使用和评价等活动,制定相应的使用细则、参考指南,指导资产消费工作开展。同时,建立基于项目规模(功能点数量)复用资产生产/ 消费量化指标,规范指导复用资产消费、评价工作有序开展。

        在复用过程管理中,侧重复用资产管理工具化和管理活动的常态化。资产管理工具是过程管理的必要基础,将业界成熟的软件资产管理工具与软件管理系统和工具实现了无缝集成;管理活动的常态化是确保软件复用不流于形式的有效手段,建有软件复用支持机构,定期举办技术交流活动,定期度量通报软件复用进展,年度还会举办专项竞赛和评优活动。

        经过几年的持续建设和改进,中国银行在软件复用方面取得了显著效果。优秀复用资产目前已积累了5000 多项,46.7% 的资产得到了有效复用,BFWJ、CSPS 已在中国银行88 个产品中得到复用。2015 年复用资产消费达到5 万多人次,节省工作量投入9 万多人天,在开发效率提升的同时,也为高质量产品开发提供了坚实的基础。

稳固基础,不断推进持续集成工作

        持续集成解决的是软件产品全生命周期中“生态环境”的问题。

        在软件开发、尤其是大型软件实施过程中,由于系统规模庞大、内部关系复杂,需要分模组并行开发,分阶段逐步组装,多系统统一投产;在开发、测试、维护过程中还需要不断响应新的需求、及时解决暴露的各类问题,开发的过程复杂度已远远高于通常理解的“小作坊式”软件开发模式。在这一过程中,开发实施、质量保证、进度控制、资源调配等既需要科学、合理的管理体系支撑,更需要完善、有效的工具体系支撑,“持续集成”则是开发管理体系在工具体系中的集中体现,发挥着举足轻重的作用。可以说没有“持续集成”的支持,大型软件开发会举步维艰甚至难以为继。

        持续集成的“出发点”在全生命周期的支持。经过多年的建设,中国银行软件中心建设的软件开发支持平台已覆盖了需求获取、方案设计、编码实现、构建测试、版本部署等全生命周期,覆盖了主机平台、开放平台、X86 平台等主流系统平台, 覆盖了COBOL、JAVA、C/C++、PLSQL、WINDOWS 等技术生产线,覆盖了工程活动、管理活动、支持活动等全软件过程领域。一个需求或变更从进入需求酝酿阶段后,就处于全面的支持管理过程之中,各过程紧密衔接、自动流转直进入投产运维阶段,整个产品生命周期中各类事件都可正、反向追踪并实时调整。

        持续集成的“落脚点”在工具体系的建设。工具体系中,代码复查工具能对代码实施自动复查,提前排查风险;版本构建工具能实现版本的“一键构建”,与配置库、构建环境、版本库无缝集成,版本出库、构建、入库完全自动化;版本完整性检查工具,确保了构建过程、部署过程的真实可信;自动化测试工具,能够在一小时内完成对核心银行系统几万个通用业务场景的测试,确保及早、及时发现致命的功能、性能问题;版本部署工具则实现了“一键部署”,支持多环境、多版本的出库、版本合成、版本部署、环境客户化工作、环境确认和检查功能。

        应该强调的是,持续集成工具是中国银行自主规划、自主实施并享有完全自主知识产权的一套软件产品。如发明了源码对执行码的数字签名技术,能通过源码对执行码进行端对端认证,确保部署结果安全可信。

        工艺改进的根本目的还是更好地支持业务发展。为客户提供更好、更快、更便捷的服务,“敏捷开发”是达到这一目的的必由之路,“软件复用”、“持续集成”则为“敏捷开发”提供了现实支撑和基础保证,是实施“敏捷开发”的前提和必备条件。三个专题互相配合、共同推进,在实践中取得了很好的效果。

(文章来源:《金融电子化》杂志)

扫码即可手机
阅读转发此文

本文评论

相关文章