云迈科技Yunmell Technology
YUNMELL ARTICLE

APP源码交付里,甲方和乙方各自负责什么

导读

按功能、性能、文档、源码工程、数据与账号、培训与售后六个部分讲清APP源码交付的验收内容与甲乙分工。

同样是项目结束,两种结果差别很大:一种只拿到能运行的安装包,后续每次改功能都要回到原团队;另一种拿到完整的源码工程,代码、文档、账号、构建环境一应俱全,换个团队也能接手。APP源码交付的差距,就藏在这两种结果的对比里。

源码交付不是"把代码发过来"这一个动作,而是一整套验收内容。很多纠纷的根源在于签约时没写清交付范围,验收时才发现缺文档、缺仓库、缺账号。这篇按功能、性能、文档、源码工程、数据与账号、培训与售后六个部分,把源码交付的验收清单逐项列开,供企业在合同谈判和项目验收两个时点对照使用。

在验收功能清单的场景中

功能验收是源码交付的前置条件,功能没验收通过,谈源码没有意义。对照合同附件的需求清单逐条走查:

  1. 每条功能按使用角色走一遍完整流程,记录通过与否;
  2. 异常路径单独过一遍:断网、重复提交、权限不足、输入超长内容;
  3. 与第三方系统的对接点逐个验证,包括回调与失败重试;
  4. 验收结果形成书面清单,双方签字确认,作为源码交付的启动条件。

清单走查的另一个作用是把隐藏功能找出来。演示里看不到的定时任务、数据同步、消息重试,都是日后要维护的对象,走查时把这类后台逻辑一并列入核对项,交付范围才完整。

指标口径在这里就要对齐。功能覆盖率的分母是需求清单条数,不是开发自评的功能点数;通过的定义是该流程在真实数据下跑通,不含演示数据和临时绕行。

对比一下两种验收方式的结果差异就明白这一步的分量:只演示不核对清单的项目,验收当天气氛良好,上线后问题逐个冒出来;按清单逐条签字的项目,验收当天慢一些,上线后的问题反而少。前者的时间省在了验收当天,加倍还给了运营期。

在性能与兼容性测试的场景中

源码拿到手之后能否长期演进,取决于工程质量,而工程质量最直观的体现是性能与兼容性数据。验收时建议约定三项基线:首屏加载时长、接口在既定并发下的响应时长、主流机型的崩溃率。测试报告要包含测试环境、样本量与原始数据,而不是一句"性能良好"。基线数值来自同类业务的常识区间,签约时谈一次,验收时照单核对,双方都不用临场发挥。

兼容性重点看两处:一是操作系统版本的覆盖范围,二是弱网环境下的表现。列表页在弱网下是否白屏、提交是否重复,这些问题的代码痕迹都能在源码里找到根源,验收阶段发现比运营阶段发现成本低得多。

除了跑分式的指标,还有两类静态检查值得做:一是代码注释与命名的一致性,注释率不必高,但关键模块的注释要与当前逻辑对得上;二是敏感信息扫描,源码里不应残留测试环境的密钥、内部测试账号和硬编码的地址。这类问题不影响演示,却会在源码移交后变成安全隐患,检查放在性能验收一并做掉。

数据指标导向的做法是把每项基线写成数值:比如启动时长不超过多少秒、崩溃率低于千分之几。达不到基线的,修完再进入源码交接,次序不能颠倒。

长沙APP源码交接验收内页配图

在代码与文档交接的场景中

这是源码交付的核心环节。交付物不是一堆压缩包,而是一个可以独立构建运行的工程。逐项核对:

  1. 代码仓库:完整提交历史,分支与标签说明,而非只给最终快照;
  2. 构建环境:依赖清单与版本号、构建脚本、环境配置说明,按文档从零搭建一次并构建成功;
  3. 部署文档:服务器环境、域名与证书、发布流程,照着文档能独立完成一次发布;
  4. 接口文档:每个接口的入参、出参、错误码,与线上一致;
  5. 数据库文档:表结构说明、关键字段含义、初始化脚本。

术语卡:源码工程指包含全部代码、配置与构建脚本、可独立编译运行的完整项目,不是只有业务代码的片段;持续集成指代码提交后自动构建与测试的机制,有它的工程,交接后改代码的风险低得多。

两个术语对应两种交付形态,也对应两种后期境遇。有持续集成的工程,改一处代码自动验证影响范围;没有的,每次改动靠人工回归,改三处漏一处。判断方法也简单:交接演练时让开发方现场从提交代码到产出安装包走一遍,能自动走完的才算有。

判断交接是否合格只有一个标准:甲方的技术人员按文档从零开始,能独立把工程跑起来、改一个功能并发布出去。做不到,交接就不算完成。云迈科技在长沙的项目里把这一步叫做"交接演练",安排在正式移交之前进行,演练不过关就不进入账号移交环节。

在数据与账号移交的场景中

账号移交经常被遗漏,事后最麻烦。需要移交的包括:开发者账号与应用商店账号、第三方服务账号(推送、地图、统计、短信)、服务器与域名管理权限、各平台的密钥与证书。每项账号记录归属邮箱、找回方式与到期时间,形成一份移交清单,双方各存一份。到期时间尤其值得单列一列:证书、短信套餐、推送服务各有各的续费周期,移交后第一个因为到期而故障的服务,往往就是清单上没写到期日的那一个。

数据移交包含两部分:生产数据的备份文件与数据库结构说明,以及历史数据归属于谁的书面约定。数据备份要在正式移交前完成并验证可恢复,光有备份文件、没验证过恢复流程的,等于没备份。

移交的时点也有讲究。建议把账号移交安排在验收通过之后、尾款结算之前,并把移交清单作为结算的前置条件之一写进合同。时序对了,双方都有确定的动作可依,不用靠信任硬撑。

在培训与售后衔接的场景中

源码交付之后,甲方团队要能自己维护,培训是衔接环节。培训至少覆盖三块:日常运营操作、常见问题的排查路径、发布更新的流程。培训要有录屏或文档留存,人员流动后新同事能照着学。培训深度也有讲究:运营人员学到会操作即可,技术对接人则要走到能看懂报错、能定位到模块的程度,两类对象分开培训,效果远好于混在一场里。

售后衔接要写清楚边界:质保期内修缺陷免费,新增需求另计;响应口径按问题分级约定。常见的分级方式是三级:影响核心流程的故障当天响应、一般缺陷一周内排期、体验优化随版本迭代安排。分级写成文字,验收之后遇到问题就不需要临时扯皮。

还有一个衔接项是源码的后续演进建议。负责任的开发方会在移交时附一页说明:哪些模块稳定可放心改,哪些模块耦合重、改动前要先补测试,技术债集中在哪里。这页说明在甲方的技术团队接手初期,价值不亚于接口文档,能省掉大量试错时间。

常见疑问集中在这几处:

  • 问:交付的源码包含第三方组件的授权吗?答:开源组件按其许可协议使用,商用需授权的组件要在合同里写明由谁采购,验收时核对授权凭证。
  • 问:后续找别的团队接手,原开发方有义务配合吗?答:以合同约定为准,通常约定一个交接配合期,涵盖环境答疑与问题定位。
  • 问:源码交付和只交付部署包,价格差异怎么理解?答:差异在于工程完整度与可维护性,这属于合同谈判内容,验收标准本身不变。

归纳成一份自查顺序:功能与性能验收通过,代码仓库与构建环境按文档独立跑通,账号与数据完成移交并验证可恢复,培训与售后边界书面确认。四步走完,APP源码交付才算闭环。把这份清单与合同附件逐条对应,每一项写明交付形态与验收方式,签约前的十分钟比对,省掉的是验收当天整天的争执。

云迈科技不接没有源码交付约定的纯部署单,也建议企业在签约前把这篇清单里的每一项写进合同附件。湖南云迈科技有限责任公司在交付工程的同时要求文档与演练同步达标,缺一项就不算APP源码交付完成。长沙与湖南的企业如果正在评估APP项目,可以把需求清单与这篇验收清单对照着读,再参考APP开发全流程指南里的交付节奏和移动应用开发的选型经验,APP开发服务页对各交付物的边界有逐条说明。验收标准先于开发谈妥,源码到手那天才不会只剩一堆看不懂的文件。

需要根据业务定制开发方案?

把业务目标、角色权限、流程和数据字段告诉我们,云迈可以协助梳理功能清单、技术路径和报价范围。

在线咨询

想把文章里的思路落到项目方案?

把你的业务目标、角色权限、流程和数据字段告诉我们,云迈AI助手会协助梳理功能清单和开发路径。