周期与交付
软件项目想分两期开发,通常是分期交付还是整体规划、分阶段实施?
我们更推荐"整体规划、分阶段实施"。也就是先把一期和二期的整体蓝图画清楚,技术架构按完整版来设计,但开发和上线按阶段推进。这样一期上线不会因为二期需求重写架构,二期开始也不必推翻一期的代码重来。商务上签一份框架协议、按阶段付款,或者两期分别签约都可以。
为什么不建议"一期就只想一期"?我们之前接过一些客户的二开项目,前一家供应商一期做完,二期一开始才发现:
- 数据库表设计没预留扩展字段,加新业务模块要全表迁移
- 用户体系是单租户的,二期想做多门店/多组织要重写权限模型
- 接口没有版本管理,新业务一加,老 App 直接报错
- 没有设计后台的角色与权限框架,二期新增角色只能硬塞
这些问题如果在一期方案阶段就考虑过,二期开发能省下 30%–50% 的时间。所以滚水科技的标准做法是:
方案阶段
- 把一期、二期的功能都列出来,标记哪些是一期必上、哪些是二期再加
- 数据模型按"包含未来字段"来设计,关键扩展点留好接口
- 权限、租户、配置中心按完整版规划,一期只跑核心角色
开发阶段
- 一期只开发一期范围的功能,但代码结构、命名、模块化按全量设计
- 接口文档统一管理,二期新增接口按版本号扩展,老接口不动
- 关键技术选型(数据库、中间件、消息队列)按二期峰值来选,避免一期上线后立刻要做技术债
商务安排
- 预算清晰、决策能一步到位的客户,建议签一份完整合作协议,约定一期、二期分阶段付款,每阶段一笔款
- 内部审批流程比较长、二期范围还不明朗的客户,可以一期、二期分别签约,但二期合同金额、技术框架在一期方案阶段就要预估出来
- 极端情况下二期由别的团队接手,也是可以的:我们交付一期的源码、文档、数据库结构都按可移交标准做
我们在 社交 App 智能社区、智慧赋能-工厂管理数字化 这类多期项目里就是这种节奏,一期上线后无缝接二期,没有出现过推翻重做的情况。客户那边需要做的,就是在前期方案阶段多花一两周想清楚二期想要什么,这点投入会在二期开始时收回十倍。