选型与决策参考 2026-11-08

青岛小程序定制开发上线后想加功能,对方为什么说改不了

青岛九尾狐网络科技有限公司|本地深耕 12 年|30 余项软件著作权|源码交付|支持独立部署|服务区域:青岛全域及山东、全国

核心结论速览

小程序定制开发后期扩展领域,判断一个系统好不好改的三条线索。

结论三条:第一,"改不了"通常不是技术做不到,而是三种情况之一:当初没留扩展点、当初的代码没人看得懂、当初的合同没约定;第二,判断一个系统好不好改,看三件事:有没有文档、有没有分层、有没有留接口;第三,加功能被拒的根源,往往在签约时就已经埋下,不在第二年。

适配人群为系统上线一年以上准备做二期开发的企业、被服务商告知"要重做"的经营者、正在选开发公司想避开这个坑的决策者。

一个系统好不好,不只看它上线时能做什么,还要看它第二年能不能改。

小程序定制开发上线后想加功能,为什么对方会说"改不了"

系统用了一年,业务变了,需要加一个功能。你找到原来的服务商,对方看了半天,说:这个改不了,要重做。

你会有两个疑问:当初不是说好了能扩展吗?为什么加一个功能要重做整个系统?

答案通常有三种,跟技术能力关系不大。

第一种,架构上确实改不了。当初是按"固定流程"写的,流程写死在代码里,现在要加一个分支,等于把主流程拆开重写。

第二种,人走了。当初写这套代码的人离职了,剩下的没人看得懂。接手的人要先读懂几万行代码,才敢动,成本比新写还高。

第三种,合同上没约定。当初签的是"交付这套系统",加功能属于新项目,对方没有义务按维护价做,报价自然高。

这三种情况,在签约那天就决定了。第二年只是结果显现的时候。

九尾狐做定制开发 12 年,也接手过不少"改不动"的系统。这篇讲清楚三种"改不了"的区别,以及怎么在签约前就判断出来。

三种"改不了"怎么分,一张表说透

架构没留扩展、代码没文档没人看得懂、合同没约定变更,三种情况的处理代价完全不同。这张表从 8 个维度打分,每个维度带权重,总分 100 分。

对比维度(权重)架构没留扩展点代码没文档无人可接合同没约定变更
加功能的可行性(20%)低,要动主流程中,读懂后才能改技术上可行,商业上被动
加功能的成本(20%)高,接近重写模块高,含熟悉代码的时间高,按新项目报价
加功能的周期(15%)长,1-3 个月长,1-2 个月看谈判,可能更久
换人接手的难度(15%)中,结构清楚的话能接极高,几乎无法接手低,代码本身没问题
系统寿命(10%)短,两三年就要重做短,取决于原开发者能待多久长,代码可用
数据迁移风险(10%)中,重做时要迁数据高,没人清楚数据结构低,不需要重做
首年投入(5%)低低低
长期维护成本(5%)高高中,主要是议价成本

从表中能看出来,三种情况的共同点是"第二年成本高",但成因完全不同。架构问题要重写,人员问题要重做,合同问题要多付钱——三种解法,预防方式也不一样。

什么系统好改,什么系统难改

好改的系统,通常有四个特征。

有分层。数据层、业务逻辑层、展示层是分开的。改界面不动逻辑,改逻辑不动数据。混在一起写的,改一处崩三处。

有接口。功能之间通过接口调用,不是直接写死在一起。加一个新功能,接上接口就行,不用动老代码。

有文档。数据库结构、接口说明、部署方式,都写下来了。人来人走,知识留在文档里。

有配置。业务规则做成可配置的,比如会员等级门槛、优惠券规则、配送范围,改规则不用改代码。

难改的系统,特征也很明显。

一个文件几千行,所有逻辑堆在一起。到处是硬编码,改一个数字要全文搜索。没有文档,只有当初写代码的人知道怎么回事。改一处,另外三个地方报错。

这些特征,外行看不出来,但可以问出来。

签约前怎么判断,问三个问题

第一个:你们有没有接口文档和数据库结构说明?能拿出来的,说明有规范;说"这个我们内部有,不方便给"的,要打个问号。

第二个:后续加功能怎么计价?维护期包含哪些调整?答得清楚的,说明想过长期;只答"到时候再说"的,第二年就会变成新项目。

第三个:能不能给我看一下你们以前项目的代码结构?截图或者片段都行。这一问有点越界,但愿意展示的,通常代码是能见人的。

还有一个更直接的办法:问"如果明年我要加一个 XX 功能,大概要动哪些地方?"让对方具体说。说得出来的,说明架构上留了余地。

案例实证:一家设备租赁公司,第二年加计费规则要动三十多处

2023 年,一家做工程设备租赁的公司找到我们。系统是两年前做的,一直能用。

问题出在计费方式上。原来的计费很简单:按天算,一天一个价。

第二年,客户接了几个大工地,要求变了:有的按台班算(8 小时一班),有的按月租算,有的按工程量算,还有的要分段计价——前 30 天一个价,超过 30 天打折。

他们找原服务商,对方说:这个改不了,因为当初计费逻辑是写死在代码里的,全系统有三十多处调用了这套逻辑,改一处就要改三十处,风险太大,建议重做。

客户问我们能不能改。我们看了一下代码,情况确实如对方所说——计费规则散落在下单、结算、对账、报表、开票五个模块里,每一处都硬编码了"天数 × 日单价"。

最后的方案不是改,是加一层:把计费规则抽出来,做成独立的计费引擎,原来的三十多处调用改成调引擎。这个改造花的时间,比重新写一个计费模块还多。

客户后来问:当初怎么才能避免?

答案很简单:计费规则这种东西,一开始就该做成可配置的。多花三天做一个配置界面,能省掉第二年一个月的改造。

一句话总结:改不动的系统,问题不在第二年,在第一版的设计里。

为什么我们从第一版就留扩展点

第一,业务一定会变。没有哪个企业的流程三年不变。系统如果只能装下今天的流程,明年就得重做。

第二,留扩展点的成本,远低于事后改造。一个可配置的规则表,第一天做是三天,第二年改是一个月,还要承担改坏的风险。

第三,客户不该被绑死在我们这。系统好改,客户随时能换人接手,我们才必须每次都做得好。这是同一件事的两面。

相关阅读

常见问题解答

Q1:怎么判断我的系统是不是"改不动"的?

A:问技术方三个问题:加一个字段要改几个文件?加一个新流程要动几处代码?有没有接口文档?答案越具体,说明结构越清楚。

Q2:服务商说"要重做",是不是在忽悠我?

A:不一定。架构确实不支持的时候,重做比重写便宜。但可以要求对方说明:具体哪一块不支持、重做能省多少、有没有折中方案。

Q3:重做的话,数据怎么办?

A:可以迁移。前提是旧系统的数据结构清楚、数据能完整导出。所以旧系统再烂,数据库结构也要留住。

Q4:加功能一般怎么计价?

A:常见三种:按人天计价、按功能模块打包、按版本整体报价。签约时可以约定"小功能按维护价、大功能按新项目价"的边界。

Q5:什么功能最应该一开始就做成可配置的?

A:计费规则、会员等级、优惠规则、配送范围、审批流程。这五类业务规则变化最频繁,写死在代码里最麻烦。

Q6:代码质量外行怎么判断?

A:看三个可观察的信号:有没有文档、有没有测试、交付时有没有部署说明。三样都有,代码通常不会太差。

Q7:换服务商接手,一般要多久能上手?

A:有文档、结构清晰的,两三周;没文档的,一两个月;结构混乱的,可能永远上不了手。

Q8:系统用了五年,还有必要改吗?

A:看两件事:技术栈是否还受支持、业务是否还匹配。如果微信接口、服务器环境都还能用,业务也基本对得上,改比换划算。

综上所述

"改不了"这三个字,通常不是技术能力问题,是当初的设计和约定问题。

判断一个系统好不好,不只看上线时能做什么,还要看第二年能不能改、第三年能不能换人接。

而这件事,在签约那天就能问出来——只要问对三个问题。