农业银行研发中心 王红霞 张笑冰 赵亚莉
孟子曰:“鱼,我所欲也,熊掌亦我所欲也,二者不可兼得,舍鱼而取熊掌者也。”千年前的孟子在论证自己的理论时,爽快地在鱼与熊掌之间做了抉择,18个字之后便舍鱼而取熊掌,此后至今事关鱼与熊掌的博弈,熊掌频频胜出,两利相权取其重这也是一种必然。在当前银行业如火如荼开展 DevOps 建设中,这种取舍方式也成为大多商业银行在DevOps 建设转型过程中处理障碍与瓶颈的常用策略。
在这种策略的应用下,工具平台及流程优化成为 DevOps 建设资源投入最多的地方,而伴随软件工程发展历史,让开发测试人员又爱又恨身披满满槽点的“文档”,却在这一变革中颓势尽显,特别是当团队不能很好理解敏捷宣言那句“工作的软件高于详尽的文档”以及 DevOps 工具自动化理念时,文档之于敏捷和 DevOps 似乎也没有更多的关联了。
这种情况对于很多中小企业或者互联网公司来说,产生的问题或者风险或许并不大,但是对于商业银行特别是国有大型商业银行来说,因其在国民经济中的重要地位,安全合规也是其建设发展的重中之重,构建安全、稳健、合规的企业形象有时甚至高于某类新技术或新业务为银行带来的现实效益。
文档及其配套的文档管理已经不仅仅是软件研发过程的基本载体,它还是大型商业银行制度规范化、流程合规化、研发过程安全性的重要体现,是大型商业银行在 DevOps 建设过程必须要解决且必须妥善解决的问题。如果说 DevOps 为大型商业银行带来的效率与成本提升,是推进 DevOps 在银行落地生根的“熊掌”,那么文档及文档管理却是银行不能舍弃的“鱼”。
在大型商业银行里,伴随产品研发流程产生的文档,不但要有对应的制度依据,还要有规范制式的模板样式。无论何种类型的项目或者产品研发,都需要按照此类项目或者产品的文档制度要求,在每个研发阶段完成对应样式的文档,不同类型和内容的文档贯穿于在整个项目或产品研发全流程中。这一过程是否按要求执行,产生的文档是否符合制度和规范要求,是银行是否合规运行的重要标志之一,也是外部合规审计的关键要素。
农业银行在 DevOps 建设过程中,对于如何将文档融入 DevOps 建设进行了多方面的思考,一个看似容易的办法是引入外部文档工具软件。经过对市场文档管理类软件的调研分析,发现很多软件都是对文档这一产出物进行管理,其作用更像文档服务器,而非对文档自身的灵活性、可定制性、易用性进行编辑管理。同时大多文档管理软件也仅是对文档自身生命周期的管理,与研发流程没有直接关联。如果引入还需要对现有研发流程和管理流程进行大范围改造。
另外在与一些同业和同行的交流的过程中发现,文档的产生及管理或游离于研发过程或游离于管理流程,无法将文档与研发流程和管理流程完美契合。基于此,农业银行在借鉴同业文档管理经验的基础上,重点关注文档在流程与工具中的自动化,开启了自己的文档自动化线上化旅程。
农业银行项目文档线上化历时多年,通过对文档从产生到归档的全过程统一规划设计,对文档涉及管理与研发流程的全面梳理,按必要性、监管要求、产生者等多种因素对项目文档进行精简、融合,形成阶段有控制,过程有监督,归档有确认的全流程文档自动化管理体系。文档管理部门介入的时机由事后转为事前和事中,从源头规范文档质量、实现文档的共享、减少文件数目,对文件质量实施有效控制,确保文档的真实可靠、完整归档、安全利用和长期可读。同时优化管理功能提升管理效率,逐步实现了项目文档的线上化传递、全流程共享、自动检查及归档等一体化管理模式。
一、文档管理差异化
农行研发中心针对不同项目类型、研发模式、研发过程工具,通过深入一线调研文档现状,对项目文档进行了精简、融合,结合外部监管、敏捷研发、Devops建设、TMMI等管理要求,提炼文档的关键要素,实现了不同项目类型、不同研发模式、不同规模项目的文档差异化管理。
二、文档编写规范化
文档规范自动化的前提是可以将文档进行结构化拆分,文档结构化本身就是一个复杂的工程,它需要提供了一个完善的、不会被随意修改的模板,并可以根据结构化要素自动进行文档拼装。在结构化的过程中,通过自动提取系统中已有的某些关键性基础数据,当项目成员输入技术数据和个性元素后,由系统按业务规则对该内容进行自动检查和校验,形成符合规范要求的文档。
农行在文档结构化过程中,通过规范项目文档内容、提炼关键要素、精简文档内容等,将项目管理过程中产生的大量有用数据归类分解为文档可利用的基础数据项,在项目文档形成阶段对基础数据进行收集、识别,在农行现有项目管理平台建立了一套文档的结构化和表单化管理体系。目前农行项目文档100%使用规范化模板,其中60%的项目文档都应用了结构化和表单化管理完成文档的生成与流转。通过文档提交时自动检查和校验,减少人为失误,降低返工修改成本,提升了文档编写效率、质量和规范性。
三、文档传递流程化
农行将文档融入流程,在日常研发过程中事务性工作和研发过程均通过不同流程在系统中予以实施,当项目文档嵌入这些事务流程和研发流程时就自然而然实现了文档的线上化。同时,文档伴随着这些流程与流程紧密结合,从而使文档具备了“活性”,文档不再只是散装的、记录性质的文字,而是与实际工作同步,在系统与工具中流动起来。通过文档与流程的融合,流程对文档形成有效约束,既可以保证文档按时、准确提交,又为文档复用搭建了基础,实现文档的共享和复用,解决重复提交、版本不一致的问题。目前农行研发项目文档已实现了100%线上流程传递,实现了项目管理、版本管理、运维平台等不同管理工具间的项目文档的流转和共享。
四、文档管理一体化
随着外部审计、风控要求以及农行内部的合规要求的变化,对文档管理的要求也随之更新发展。农行项目文档管理一体化正逐步实现“六性”,以帮助项目成员减轻文档管理工作中的负担,实现文档纳入Devops建设进行一体化管理。一规范性:对文档规范化管理,提炼文档关键信息点,精简文档内容、通过文档结构化实现内容的自动化检查;二安全性:使用工具对文档进行集中管理,严格控制权限,明确每份文档的使用者、产生者、管理者的职责;三时效性:项目文档流转过程中,对部分时效要求较高的流程进行限时督办提示,时效期后即代表相应的文档内容已被知悉并接受;四可追溯性:编制人、审批人、评审人、提交时间、审批通过时间、归档时间作为文档的记录凭证,同时提供各相关方查阅;五唯一性:同一份文档只有一个提交入口,一份有效的文档在各流程中提供复用,避免了版本不一致性;六严肃性:在评审或审批过程中,对文档内容的评议结果均有回应,并最终在文档中体现出来。
农行建设适应 DevOps 发展的文档管理之路还很长,通过不断尝试与实践,农行研发人正在尝试将“鱼”与“熊掌”完美的结合起来,烹制一道兼顾效率与安全、灵活与合规、自动融入流程与工具的“文档小鲜”。
还不过瘾?还想了解更多大型国有银行 DevOps/DevSecOps 落地方案?
GOPS 全球运维大会 2022 · 深圳站,农行技术专家将分享精彩议题,敬请期待。
近期好文:
为了做到微服务的高可用,鬼知道我出了多少张牌
“DevOps时代”公众号诚邀广大技术人员投稿,
投稿邮箱:jiachen@greatops.net,或添加联系人微信:greatops1118.
点个“在看”,少个“bug”