1 背景
研发部团队在系统建设过程中,多有与公司内外部系统能力对接的场景。对接的质量不尽相同,有些团队对对接的各个环节把控严格,则质量会偏高,有些团队把控较弱,则质量偏低。对接质量直接影响团队的研发成本、开发效率及线上系统稳定。
外部集成对接的场景较多,比如对接公司内部成熟能力、对接公司内部团队同步迭代支持的能力、外部供应商能力等等,本文聚焦的场景是公司外部供应商能力对接、公司内部同步迭代支持等需要我方与外部团队紧密协作的场景。
2 问题、目标和原则
基于对团队项目的调研,外部能力对接过程中普遍存在以下问题:
•接口或同步协议字段含义沟通不明确
•接口字段数据获取来源不清晰:对请求接口协议的字段未进行细化梳理,不清楚字段所需数据的来源在哪以及如何获取,是被集成方提供还是我方系统补充等等,等到了开发或联调阶段才发现无法获取该字段数据,或者获取成本较高,影响开发进度甚至推翻集成方案。
•外部系统能力限制不清晰:只考虑了功能层面,忽略了外部能力的吞吐量限制,比如并发能力,导致在生产环境的高并发场景被下游系统限流,或者接口可用性降低,或者打垮下游系统。
•外部交互协议中对象的状态机不清晰:外部系统的接口或消息响应实体的状态机至关重要,这些外部状态必须明确的、无歧义的映射的本方系统状态。如果响应状态机不完整,可能会导致潜在的线上风险。
•没有明确的对接支持人:该问题与协作相关,无明确的统一的对接人,影响双方沟通效率。
•没有明确的对接里程碑:对接经常出现的问题就是项目延期,双方就项目的推进计划未明确的达成共识,以及缺少响应的风险处理机制,导致项目频繁延期。
•接口文档过期,描述与实际不一致:常见的问题,但最容易被忽视
•......
针对外部系统对接的场景,为团队提供一个通用的对接流程以及技术视角的关注点参考检查单,以便团队(产研测)在对接早期以及对接过程中对相对通用的问题更加聚焦,及时识别对接过程的不确定性,降低后期的变更和返工风险。
•原则一:一定要明确对接过程的相关干系人及职责,确立明确的沟通机制,特别是在跨多团队协作场景
•原则二:一定要明确依赖接口或服务的详细协议、技术限制和风险
•原则三:一定要明确多方的对接及交付节奏
•原则四:尽量可能的汲取已有项目经验
•原则五:建议有明确的风险上报机制
3 参考过程
从需求到发布涉及的外部对接整体过程如下图所示:
3.1 产品方案阶段
【目标】基于我方产品方案及依赖方能力调研,确定可行的产品方案
【主要角色及职责】
•产品经理职责:
◦明确产品业务流中依赖外部哪些平台、哪些能力
◦明确对方提供的能力接口文档
◦明确对方的产品及研发侧接口人
◦明确交互协议的业务字段是否匹配以及业务字段含义和数据来源
◦明确高层的交互方式,比如同步/异步
3.2 技术调研
【目标】从技术视角提前对依赖方能力进行了解,汲取团队内外部已有对接经验,识别不确定项以便为技术确认会提供输入
【主要角色及职责】
•研发人员:
◦接口能力调研,关注其完备性、性、和限制性
◦详细的接口协议调研
◦明确对依赖方的系统级资源诉求,比如相应时间、并发量等
◦汲取已有项目经验:与内部及外部团队沟通,汲取已有对接经验
3.3 技术确认会
【目标】我方同依赖方干系人明确所依赖的接口或能力的技术细节,尽早识别技术风险。
【角色及职责】
•产品经理:发起正式的技术确认会,邀请我方研发、测试(按需)及依赖方干系人参加,包括但不限于对方产品经理、研发人员
•我方研发:主导技术确认会的技术细节沟通;明确依赖方的接口或能力细节;
•对方研发:对我方技术相关问题予以解答和确认;
3.4 联调
【目标】确保外部干系人资源支持到位,保证我方的开发联调及集成联调工作
【主要角色及职责】
•我方产品经理
◦同外部干系人明确具体的资源要求:比如外部干系人的响应及时性
◦在内部测试、研发对接受阻时,承担内部问题统一收口及协调外部支持的职责
•外部系统相关干系人
◦需要对集成过程中的技术问题给予答疑、定位和支持解决
◦需要对集成联调过程中出现的问题给予答疑、定位和支持解决
3.5 测试及验收
【目标】确保外部干系人资源支持到位,保证我方的测试及线上验收工作
【主要角色及职责】
•我方测试人员:
◦支持测试验证及线上验收工作,对过程中出现的验证他问题及时协调我方研发及外部直接对接人解决
◦如果问题阻塞,同步至产品经理侧进行升级,交由产品经理对外协调
•我方产品经理
◦负责线上验收,对过程中出现的问题及时协调内部测试、研发以及外部对接人解决
◦作为内部与外部的统一对接人,在内部测试、研发对接受阻时,承担内部问题统一收口及协调外部支持的职责
•外部系统相关干系人需支持
◦测试验证过程:支持测试过程中的问题定位和排查;支持测试过程中的数据准备
◦在生产验收阶段:支持生产环境的数据准备; 支持环境的真实链路验收
3.6 风险处理
对于我方主导的需要与外部进行对接的需求迭代,团队需要建立相应的风险处理机制,以便对可能出现的生产问题及时、有效响应。我方主导推动对接方确立明确的生产问题响应机制,包括不限于应急沟通群、线上问题响应机制、双方产研值班机制等
4 结语
与外部系统的集成往往是影响系统稳定性的重要因素之一,因此,团队需要在整个集成过程中提前考虑集成的质量,将可能存在的风险降至最低。