FIELD GUIDE / 定制开发
定制开发避坑指南:从需求梳理到 UAT 验收
这份指南写给要为系统掏钱、签字、担责的人。它不教你写代码,只讲清每个节点该看什么材料、该问什么问题、该在什么文件上签字。把九个节点走完,项目失败的概率会大幅下降。
- 适用:官网 / 小程序 / 管理系统
- 阅读时间:约 25 分钟
- 湖南天枢云智科技有限公司
一、这份指南解决什么问题
定制开发的纠纷极少是因为代码写不出来,多数出在三个环节:范围没谈清就签合同、过程没有可核对的记录、验收没有可执行的标准。等到系统上线那天才发现问题,改起来的代价是立项阶段的十倍以上。
这份指南把定制项目拆成九个节点:选型、需求梳理、报价、合同、过程管理、验收、上线移交、质保、迭代。每个节点给出「该产出的材料」和「该问对方的问题」。无论你找谁做开发,这些材料都应该拿得到。
一个判断方法:如果开发方在需求阶段拿不出功能清单,在报价单上列不出不包含项,在合同里不肯写验收条款,那么后面的过程大概率也不会透明。前期材料是过程质量的先行指标。
什么时候读这份指南?三个时点:立项前,用第二、三节判断要不要定制、需求怎么谈;签约前,用第四、五节核对报价单与合同条款;上线前,用第七、八节准备验收与移交。已经签约的读者可以跳到对应章节,缺什么补什么——合同没写的内容,仍可以在补充协议里约定,越早越主动。
二、选型:定制、SaaS 还是低代码
选型先回答三个问题:流程与同行差异大不大、数据必须放在哪里、未来三年会不会持续加功能。流程高度标准、预算有限、希望几周内上线,优先看成熟的 SaaS 产品;流程有行业或企业自身特点、要与现有系统打通、计划长期演进,再考虑定制开发。
低代码平台介于两者之间,适合表单、审批、登记类内部工具。它的边界在于:复杂计算规则、高并发场景、深度系统集成、特殊交互效果,仍需要写代码实现。把功能清单列出来,逐条判断「能配置 / 需开发」,就能看清低代码能覆盖多少。
还要算一笔隐性账:SaaS 的成本随账号数与年份线性增长,数据迁出往往没有现成通道;定制开发前期投入高,但源码在自己手里,二次开发可以换人做。三年的总成本、数据归属、退出成本,比单次报价更值得比较。
三、需求梳理:把一句话变成功能清单
「做一个像某某一样的系统」不是需求,只是参照物。需求梳理的目标是产出一份功能清单:每条有编号、模块、功能描述和验收方式,能拿去报价,也能拿去验收。梳理通常需要两到四次访谈,每次一小时左右。
访谈按四个层面推进:角色(谁用系统、各自能做什么)、流程(单据从哪来、经过谁、到哪去)、数据(记录哪些字段、谁填、怎么校验)、规则(数量怎么算、权限怎么判、异常怎么处理)。把四个层面问完,八成的需求歧义会暴露出来。
一份能用的 PRD(产品需求文档)至少包含八项:业务目标与成功标准、用户角色与权限矩阵、主流程与异常流程、功能清单、字段与校验规则、接口与集成清单、非功能要求(性能、并发、浏览器与机型)、本期不做的事项。其中「本期不做」一份要紧的清单——它划定了范围边界,是防止需求蔓延的依据。
需求文档由谁写?常见做法是开发方出模板并主持访谈,业务方提供流程与规则,双方共同确认后签字。如果开发方说「你写好需求我们再报价」,而你的团队没有经验,等于把梳理成本和风险都留给了自己。梳理本身就是专业工作,应该由卖方承担引导责任。
确认需求时有三个自查问题:这条功能业务方能演示验证吗?两条需求之间有没有互相矛盾?删掉哪一条项目照样能用?第三个问题帮你在预算受限时排优先级——按「必须有 / 应该有 / 可以有」分级,先锁定必须有的部分。
需求梳理阶段通常还会产出原型,注意区分保真度:低保真线框只表达页面有几个区块、按钮在哪里;高保真静态稿加上真实视觉与文案;可点击原型把页面串成操作路径。需求阶段看结构与路径就够了,不必在视觉细节上反复打磨——视觉确认是下一个独立环节,混在一起会拖慢范围锁定,也容易把「好看」误当成「能用」。原型确认后要在功能清单上同步编号,清单、原型、报价三者对得上,后期的争议才有据可查。
四、报价单怎么看:拆成五列再比较
拿到报价先做一件事:把总价拆开。一份合格的报价单应该有五列——功能条目、人天估算、单价档位、交付物、不包含项。只有一行总价的报价单没法比较,也没法审计。两家公司报价差一倍,往往就是差在包含项上。
比较时把每家的「包含 / 不包含」列成对照表:后台管理含不含、数据迁移含不含、操作手册含不含、一年内缺陷修复含不含、服务器与第三方费用谁出。对齐之后再看价格,才有可比性。参考区间(湖南市场常见水平):官网 2–8 万,小程序 5–15 万,轻量管理系统 10–25 万,多端业务系统 25–50 万。
固定报价与按人天计价是两种模式,适用场景不同。范围能锁死的用固定报价,超范围走变更单;范围说不清的(典型如遗留系统改造)按人天更公平,参考 1200–2500 元/人天,但要求对方提供工时记录。警惕两种极端:远低于市场水平的报价,通常靠砍掉文档与测试补回来;按「页面数」计价的报价,会把页面切得尽量薄。
付款节点建议跟着里程碑走,例如签约、原型确认、开发过半、UAT 通过、上线后质保金,比例在合同里写死。尾款比例太低(例如一成以下)会削弱验收的话语权;把一部分款项留到验收通过之后,是保护甲方的基本手段。
人天口径也要在签约前问清:一次需求沟通、一次缺陷确认算不算工时?文档编写与测试算不算?差旅与驻场怎么计?这些「隐性工时」由谁承担,不同开发方差异很大。发票类型(服务费发票的税率)、报价含不含税、第三方费用(短信、支付通道、云资源)由谁采购并持有账号,都写进合同附件,避免结算时各执一词。第三方服务的账号应注册在甲方主体下,这是后面随时可换开发方的底气。
五、合同与知识产权:必须写进去的九条
定制开发合同的核心不是「甲方乙方」,而是把范围、验收与交付写成可执行的条款。以下九条建议逐条核对,缺哪条就在签约前补哪条:
- 范围条款:功能清单作为合同附件,写明「以本清单为准」,超出部分走变更单流程。
- 变更条款:变更单需写明内容、影响模块、增加人天与工期影响,双方签认后生效,口头变更不执行。
- 交付物条款:源码、数据库脚本、部署手册、接口文档、账号清单逐项列出,与尾款节点挂钩。
- 著作权条款:定制部分的著作权归属、授权范围、可否委托第三方二次开发,逐句写清。
- 验收条款:验收方式(演示 / 数据核对 / 日志)、验收期限、不通过的处理与复验流程。
- 缺陷条款:缺陷分级定义与修复时限,质保期起算点与覆盖范围。
- 保密条款:业务数据、客户信息、接口密钥的保密义务与存留期限。
- 开源条款:使用开源组件的清单与许可证类型,因许可证问题导致的整改责任。
- 终止条款:中途终止时的已完成部分归属、交接义务与费用结算方式。
关于源码交付再多说一句:拿到源码不等于拿到著作权。源码是「物」,著作权是「权」。合同里两者都要写,同时要约定第三方组件的处理方式——如果系统里嵌了商业 SDK,甲方即使有源码也无法自由替换或二次分发。
六、开发过程:盯三件事,别盯错地方
过程管理不需要懂技术,但要盯三样东西的「存在与更新」:周报(本周完成、下周计划、风险与阻塞)、测试环境(一个随时能打开体验的地址)、缺陷表(问题、等级、状态、责任人)。这三样持续更新,项目就在正轨上;连续两周没有更新,就要当面问原因。
不要盯「代码写了多少行」,也不要盯「加了几天班」。工作量指标容易催生虚假进度,可运行的功能才是真的进度。每个迭代结束要求演示当期完成的功能条目,对照功能清单勾掉已完成项,进度自然可见。
一份合格的周报只需要四栏:本周完成的功能条目(对应清单编号)、下周计划、风险与阻塞(谁负责、什么时候解决)、需要甲方配合的事项(内容、账号、决策)。超过一页的周报多半是姿态,四栏周报才可核对。同样,缺陷表至少要有编号、描述、等级、状态、责任人、发现日期六个字段——缺了等级就没有修复优先级,缺了状态就不知道关没关。
环境与账号也要在过程里管起来:代码仓库是否对甲方开放只读权限、测试数据用的还是不是生产数据、第三方服务(短信、支付、地图)注册在谁的账号下。这些细节拖到交接时才发现,处理起来非常被动。生产环境与生产数据,开发方应只拥有受控的发布权限,并保留操作日志。
七、UAT 验收:怎么准备、怎么判、怎么签
UAT(用户验收测试)是由业务方执行的验收,不是开发方自测。它的输入是三份材料:功能清单、验收用例、真实化的测试数据。验收用例按「前置条件—操作步骤—预期结果」三段编写,每个用例对应功能清单的编号,执行时记录通过与失败。
验收环境要接近真实:数据量级接近日常水平、使用与生产一致的浏览器与机型、由真实岗位的人来操作。开发方在旁边只记录问题、不当场改代码——当场修复会打乱记录,也容易漏测回归。验收分轮次进行,首轮暴露的问题修复后,再做一轮回归验证。
举一个用例的样子:「前置条件:测试库存在一张 8.6 万元的采购单且审批人已配置;操作步骤:以审批人身份登录,打开待办,点击通过;预期结果:单据状态变为财务复核,产生一条操作日志,金额与申请人不变。」三段都写清,谁来执行结论都一致——这就是可执行的验收标准。
判定标准在验收前就应写好:功能项按清单逐条判定通过与否;性能按合同口径在预发布环境测量;缺陷按等级统计,阻断级与严重级清零是一般项目的上线前提,一般级与建议级可列入遗留清单并约定关闭时间。验收结论只有三种:通过、有条件通过(列明遗留项与责任方)、不通过(列明阻断项)。没有「基本差不多」这个选项。
签字环节注意两点:验收单附上功能清单签署版与缺陷统计表,一并归档;验收不通过时的处理路径(整改期限、复验方式、与尾款的关系)按合同条款执行,避免验收会议现场临时谈条件。如果开发方拒绝把验收标准写进合同,这就是明确的预警信号。
八、上线与移交:收尾十件事
上线不是按一下发布按钮,而是一组可以核对的交接动作。按下面十件事逐项打勾:
- 生产环境检查:配置项、域名与证书、备份策略逐项确认。
- 数据迁移核对:迁移前后记录数、关键字段、汇总金额三方核对一致。
- 回退预案:万一新系统异常,多久能切回旧系统,由谁执行,写成一张纸。
- 账号与权限移交:管理员账号重置密码,交接双方在场记录。
- 源码与脚本移交:源码仓库、数据库脚本、构建说明齐全并可构建。
- 文档移交:部署手册、接口文档、操作手册、字段说明各一份。
- 第三方过户:短信、支付、地图等服务账号变更为甲方主体。
- 旧系统处置:下线或转只读,数据归档并注明保留期限。
- 一次移交讲解:录屏留存,参与人签字,纳入交付纪要。
- 质保起算确认:质保期限、响应方式、联系人与升级路径书面确认。
数据迁移值得单独展开,它有五个固定动作:字段映射(旧字段到新字段的对照表,含义不明的字段标注「待确认」而不是猜测)、清洗去重(同名客户、重复单据先合并)、抽样试迁(挑一周或一个部门的数据先迁,人工核对)、全量迁移与核对(记录数、金额汇总、关键字段抽样核对三方一致)、回退演练(在测试环境演练切回旧系统的步骤与耗时)。核对报告由双方签字,作为验收材料归档。
上线窗口选在业务低峰,例如零售类避开周末与促销,办公类避开月底。上线后安排一至两周的观察期,期间开发方按约定的响应级别待命,业务方每天反馈异常清单。观察期结束、异常收敛,项目才算真正收尾。
九、质保与长期迭代
质保期内修复的是「交付时已存在的缺陷」,不是「新提出的想法」。两者的边界在合同里要写清:缺陷修复不收费,新增功能走变更单或进入年框排期。质保期通常 3–6 个月,起算点是验收通过之日,不是上线之日——这两点有时相差数周。
系统进入稳定期后,需求不会消失,只会换一种方式到来:用户的操作抱怨、管理层的报表想法、上游系统的接口调整。如果没有一个持续的迭代机制,这些声音会重新散落到微信群和口头传达里,系统随之逐渐失修。年框(参考 8–20 万/年)解决的就是这个问题:固定的排期节奏、缺陷分级响应与定期复盘。
无论是否购买年框,都建议每季度做一次「系统健康检查」,四个动作每次必做:看错误日志有没有堆积(异常突增往往早于故障)、挑一份备份做真实恢复演练(能备份不等于能恢复)、核对依赖组件有没有安全更新(尤其是涉及登录与支付的部分)、按人事变动清理账号权限(离职与转岗人员的账号要及时停用)。每次检查半小时到两小时,写成一页记录留档。这几件事花的时间不多,出问题时能救命。
十、16 个高频问题
- 定制开发和模板建站有什么区别?模板建站是在现成框架里换内容,上线快、费用低,但栏目结构、交互与后台能力受模板限制;定制开发按业务目标设计信息架构与功能,可集成、可扩展、可交付源码,周期与投入相应更高。对外展示为主、预算有限,模板够用;要承载业务流程与数据资产,再考虑定制。
- 管理系统开发前,需求梳理怎么做?按角色、流程、数据、规则四个层面访谈,把「现在怎么做」原样记录下来,再讨论「哪里要改」。产出物是功能清单与字段表,每条功能标注验收方式。梳理建议两到四次、每次一小时,业务方带上一线使用人参加,避免只听管理层的想象。
- PRD 要写什么?至少八项:业务目标与成功标准、角色与权限、主流程与异常流程、功能清单、字段与校验规则、接口与集成清单、非功能要求、本期不做的事项。写不清的部分标注「待定」并排期确认,不要留白让开发方自行发挥。
- UAT 验收具体怎么做?准备三样东西:功能清单、验收用例(前置条件—步骤—预期结果)、接近真实的数据。由真实岗位的人按用例逐条执行,开发方只记录不修,失败项进缺陷表分级。回归轮次结束、阻断与严重级清零后签验收单,遗留项写明责任方与关闭时间。
- 源码交付是什么意思?指在约定节点移交可编译运行的源代码、依赖清单与构建说明,配套数据库脚本与部署手册。它解决「换人也能维护」的问题,但不等于著作权转移,两者要在合同里分别约定,同时附开源组件清单与许可证类型。
- API 接口对接要注意什么?先拿文档再谈对接:路径、参数、返回结构、错误码、限流与鉴权方式。注意四件事:联调环境是否稳定、测试数据是否够用、对方接口变更如何通知、超时与重试怎么处理。对接排期要给对方的响应速度留余量,接口审批类流程(如支付资质)另计时间。
- 遗留系统怎么改造?第一步是盘点而非重写:源码能否构建、依赖是否还能安装、数据库结构有没有文档、哪些模块还在被使用。之后三选一:补功能、换外壳保留核心、整体重构。数据迁移走字段映射表,抽样试迁、全量核对、保留回退路径,切换选业务低峰。
- 企业官网大概多少钱?参考区间 2–8 万:下沿对应标准栏目与内容后台,上沿对应定制视觉、多语言或与业务系统的集成。域名与服务器、商业摄影、文案撰写通常另计。比较报价时看包含项:响应式适配、后台功能、基础 SEO 配置、内容迁移是否都在内。
- 小程序开发多少钱?参考区间 5–15 万,由功能复杂度决定:展示型靠近下沿,含会员、支付、预约或与业务系统对接的靠近上沿。微信认证费、短信与支付通道费率由平台或通道收取,一般不含在开发报价里。提审与整改由开发方协助,审核周期以平台实际反馈为准。
- 定制开发和 SaaS 哪个划算?短期看 SaaS 划算:上线快、初始费用低、不用管服务器。长期算三笔账:账号数与年费的增长曲线、数据迁出的难度、深度定制的空间。流程与同行高度一致就用 SaaS;流程有自身特点、数据要留在自己手里、计划三年以上持续演进,定制的总成本往往更合理。
- 开发公司怎么选?看四样东西:需求阶段能否产出功能清单、报价单有没有不包含项、合同肯不肯写验收与源码条款、过往项目的文档样例。让两家以上按同一份功能清单分别报价,把差异点拿出来当面问。对「什么都能做、什么都便宜、什么都答应」的供应商保持警惕。
- 外包做到一半跑路了怎么办?立即做三件事:固定证据(合同、付款记录、沟通记录)、盘点现有资产(已交付的源码、文档、部署环境)、评估可接手的开发方。预防比补救有效:付款跟里程碑走、代码仓库对甲方开放只读、文档分阶段交付、关键账号注册在甲方主体下。
- 低代码能不能替代定制开发?部分场景可以:审批、登记、报表类内部工具用低代码搭建,速度快、成本低。但复杂计算规则、高并发、深度系统集成、特殊交互仍要写代码。判断方法是把功能清单逐条标注「能配置 / 需开发」,需开发的比例超过一半,低代码方案的优势就不存在了。
- 小程序开发流程是什么样的?六步:需求与范围确认、原型与报价、主体认证与资质准备、开发与联调(支付、消息等接口)、提审与整改、上线与质保。认证与提审的周期不受开发方控制,涉及经营类目的还需前置资质,立项时应把这部分时间计入总排期。
- 验收不通过,对方却催尾款怎么办?回到合同:验收条款约定的通过标准、遗留项处理与尾款支付条件是依据。把不通过项整理成带复现步骤的清单,书面发送并留存记录,注明整改期限。协商不成时,已完成且达标的部分与未达标部分分别结算的思路,通常比全款或全拒更容易达成一致。
- 需求文档由业务方写还是开发方写?开发方出模板、主持访谈、负责成文,业务方提供流程与规则并确认签字,这是常见且合理的分工。文档写成后要有双方签字版。如果全部推给业务方写,等于把专业梳理成本转嫁给外行,后续争议时也没有中立依据。
写在结尾
定制开发本质上是一次知识转移:把你脑子里的业务规则,转移成对方能执行的清单与代码。转移得越完整,系统越接近预期;转移得含糊,验收时就只能靠感觉。这份指南里的每份材料——功能清单、报价五列、合同九条、验收用例、移交十件事——都是在降低转移过程的损耗。
如果你正在评估一个项目,可以带着这份指南去和任何一家开发方聊:对方能主动提供这些材料,是专业度的直接体现;对方没听过这些名词,你也有了判断依据。
更新日期:2026-11-10 · 作者:张鹏(CISP 2022)· 湖南天枢云智科技有限公司