一旦您确定业务系统值得建设,第二个问题很快就会出现:谁来建设?是做自由职业的朋友的朋友,是您自己雇用的开发人员,还是一家软件开发公司。每一种都可能做出好系统,每一种也都可能出问题,而供应商的类型所能说明的,远不如工作的安排方式。本指南把这个选择当作一组决策标准,而不是一个排名,让您可以根据自身情况匹配选项,并清楚在承诺之前该问什么。
您真正要选择的是什么
很容易把它看成价格之争,但更有用的问题是:谁承担哪一部分责任。总得有人把您粗略的想法变成清晰的规格,设计界面,编写软件,测试,托管,出问题时修复,业务变化时修改。不同的供应商承担这份清单的不同部分,而他们没有承担的,就会落到您身上。
- 自由职业者通常是一个人,因特定工作而被聘用,之后转向其他客户。项目管理,以及这一个人变得无法联系的风险,由您承担。
- 内部开发人员是员工。他们会深入了解您的业务,每天都能响应,但雇佣、管理,以及系统完成后他们做什么,都由您承担。
- 软件开发公司是为交付项目而组织起来的团队,设计、开发和测试通常不止一个人参与。您承担的协调较少,代价是按既定范围和书面报价来推进。
每种选择通常适合什么场景
三者之中没有哪一个是稳妥的默认选项。每一种都在特定类型的问题上最有优势,而这取决于工作的大小、它持续变化的可能性,以及您自己能承担多少监督工作。
在联系任何人之前,一个有用的测试是用一页纸写下系统必须做什么、谁会使用它,以及需要连接什么。如果您能清楚地写出来,较小的安排风险更低,因为开发者需要猜测的内容更少;如果写不清楚,您会受益于能帮助梳理范围的供应商,以及记录结果的书面报价,因为误解的代价会随项目规模而增大。
自由职业者:适合什么场景,该问什么
当工作规模小、定义明确、交付后基本完结时,自由职业者可以是极好的选择:一个内部工具、一份写入表格的表单、一个简单的仪表盘。由于您直接与做事的人打交道,沟通可以很快,额外开销也少。代价是集中风险:您的项目取决于一个人的时间、技能和持续的兴趣,而您通常要自己担任项目经理。
- 还有谁能读懂这些?问问如果他们生病、太忙或一个月联系不上会怎样,以及代码和笔记是否能让另一位开发者看懂。
- 他们负责哪些部分?有些自由职业者擅长开发,但不擅长设计、测试或托管。问清每一项由谁负责,免得日后意外。
- 他们如何处理范围?清楚的书面范围保护双方;含糊的范围正是自由职业项目最容易偏离的地方。
- 交付之后呢?问问修复和修改是包含在内、另行收费,还是不提供。

内部开发人员:适合什么场景,该问什么
当您的业务有的是持续的系统工作,而不是单个项目时,内部开发人员就合理:每月新的报表、需要维护的集成、随季节变化的流程。他们会逐步吸收您的业务逻辑,并且当天就能响应。成本不只是薪水,还包括法定缴款、设备、管理时间、休假替补和招聘所需的时间;而且一名员工同样有自由职业者那样的一人集中风险,另外您还需要有能力判断他们的工作。
- 您能监督技术工作吗?如果公司里没有人能审核开发者的产出,您就只能完全依赖信任。
- 持续的工作够多吗?已经完成且稳定的系统可能让员工无事可做,而无事可做的专才往往会离职。
- 如果他们辞职怎么办?坚持要求文档、账号共享访问,并把代码存放在公司能控制的地方。
- 他们的技能够全面吗?一位开发者很少能同样出色地覆盖设计、安全、托管和测试。
软件开发公司:适合什么场景,该问什么
当建设涉及多个环节时,例如带集成的业务系统,或者您希望设计、开发、测试和项目管理在一份报价下一并处理时,软件开发公司最合适。工作围绕既定范围组织,所以您可以比较它、据此规划,并要求对方兑现约定。代价是:对于很小的工作,公司通常不是最便宜的做法;当您的想法不断演变时,固定范围可能显得僵硬;您还需要确认上线后的修改如何处理。
- 实际做事的人是谁?问问您的日常联系人是谁,以及谁来编写和测试软件。
- 书面报价涵盖什么?它应该写明包含什么、不包含什么,以及范围变更如何计价。
- 最终您会得到什么?询问交接、文档,以及成品代码归谁所有,并在签约前阅读我们关于源代码所有权的指南。
- 上线后会怎样?问问修复、支持和日后的修改如何处理、如何收费,因为这是各种安排差异最大的地方。
三种选择并排比较
| 标准 | 自由职业者 | 内部开发人员 | 软件开发公司 |
|---|---|---|---|
| 最适合 | 小型、明确、多为一次性的工作 | 持续、不断演变的系统工作 | 范围明确的多环节建设 |
| 谁管理项目 | 通常是您 | 您,作为他们的雇主 | 主要由公司按书面范围负责 |
| 覆盖的技能 | 一个人所能提供的 | 一个人所能提供的 | 通常由一个团队分担多个角色 |
| 主要风险 | 单点故障 | 单点故障,加上持续的雇佣承诺 | 范围僵硬;上线后条款不清 |
| 有人离开时的连续性 | 完全取决于交接和文档 | 完全取决于交接和文档 | 团队中的其他人或许可以接手 |
| 成本形态 | 按既定工作付费 | 持续的雇佣成本,无论忙闲 | 按既定范围报价 |
| 最佳核实方式 | 要求查看类似的已完成作品,并联系使用过的人 | 在面试中加入实操任务 | 要求书面报价和类似的已完成作品 |
比标签更重要的问题
有经验的买家通常发现,无论选哪一种,少数几个问题就足以区分好结果与坏结果。
- 成品系统及其代码归谁所有?无论谁来建设,都要把答案写进书面文件。所有权与访问权是合同问题,而不是信任问题。
- 别人能接手吗?只有一个人看得懂的系统很脆弱。要求提供文档,并让账号和托管登记在您名下。
- 范围是怎么写下来的?一份写明要建什么、如何确认其可用的书面说明,能保护所有人。关于范围如何影响时间表,请参阅定制业务系统实际需要多长时间。
- 修改如何处理?每个真实的系统在上线后都会变化。了解修改请求如何提出、估算和收费。
- 能看到类似的成品吗?要求查看与您的需求相似的已完成作品,可能的话,与委托过的人聊聊。
三家企业,三个合理的答案
以下是示意性的情境,而非统计数据,用来说明这些标准如何指向不同的方向。
| 情境 | 可能的适配 | 原因 |
|---|---|---|
| 一家小型贸易公司想要一个简单的内部订单跟踪工具,完成后就不再动它 | 自由职业者 | 规模小、边界清晰且一次性,更大安排的额外开销很难说得通 |
| 一家成长中的公司运行多套系统,每月都有改动,需要每天有人在场 | 内部开发人员 | 持续的工作和深入的业务认识,超过了一名员工的成本 |
| 一家企业想要把会计、库存和销售工具连接起来的系统,并有明确的上线日期 | 软件开发公司 | 多个部分需要在同一范围下设计、建设、测试并连通 |
| 一家企业希望首个版本由外部建设,后续微调由内部完成 | 组合方式 | 先由公司建设,再招聘或培训人员,前提是一开始就约定好交接和文档 |
如何公平地比较报价
不同类型供应商的报价很少能逐项对应,所以应比较您得到的内容,而不是醒目的总数字。
- 写一份需求说明并发给所有人。描述问题、谁会使用系统以及它必须连接什么,让每份报价回答的是同一个问题。
- 列出每份报价包含什么。设计、测试、托管、数据迁移、培训、交接和上线后的修复,各自要么包含,要么不包含。
- 加上报价之外的成本。对于内部聘用,是薪水之外的一切;对于自由职业者,是您自己要花的管理时间。
- 按第一年计价,而不只是建设费用。把托管、修复和您已经知道想要的修改都算进去。
- 警惕异常含糊的数字。如果报价没有写明涵盖什么,就无法与写明的报价比较。
常见错误
- 只看醒目的价格。最便宜的报价往往把最多的工作留给您,例如测试、托管或交接。
- 把标签当作保证。“公司”或“自由职业者”都不能保证项目成功;真正起作用的是范围、书面条款和交接。
- 忽略所有权和访问权的问题。确保代码、账号和托管从一开始就在您的控制之下。
- 工作量不够就先招内部开发人员。员工是持续的承诺,而不是一个项目的成本。
- 只做口头说明。没有写下来,日后就容易有不同的理解。
- 忘了上线之后的事。每个系统都需要修复和修改,所以在开始之前就确定由谁来做。
Gotka Technologies 在其中的角色
Gotka Technologies是您可以索取报价的软件开发公司之一。Gotka的应用与系统开发服务可建设Web应用、业务系统和手机应用,参考起价为:Web应用与仪表盘RM8,000,业务系统与集成RM12,000,手机应用RM15,000,范围明确后均以书面报价为准。无论您走哪条路,先弄清楚买现成还是定制开发都有帮助,请参阅现成软件与定制软件,并通过我们的手机应用成本指南了解手机应用的建设费用。无论建设什么,也都需要一个可靠的运行环境,这正是Gotka云主机的用武之地。
本指南中使用的关键术语
- 自由职业者:按特定工作受聘、而非作为员工的独立开发者。
- 内部开发人员:由使用该系统的企业直接雇用的开发者。
- 软件开发公司:以团队和既定范围为客户开发软件的企业。
- 范围:关于将要建设什么、不建设什么的书面说明。
- 书面报价:写明包含内容的计价方案,使报价之间可以比较。
- 交接:将成品系统、访问权限和文档移交给企业。
- 文档:说明系统如何建设和运行的笔记,让其他人可以接手。
- 单点故障:一旦缺席就会让一切停摆的某个人或某个环节。
我应该请自由职业者还是软件开发公司来建设业务系统?
这取决于工作的规模和形态。自由职业者往往适合您能精确说明的小型、明确、多为一次性的项目;软件开发公司往往适合多环节的建设,例如带集成的系统,让设计、开发、测试和协调在一份书面报价下一并处理。请比较每一方包含的内容,而不只是醒目的价格。
什么时候聘请内部开发人员才合理?
当您的业务有持续的系统工作,例如定期的新报表、需要维护的集成和不断变化的流程,并且公司里有人能够监督技术工作时,就合理。这是持续的雇佣承诺,而不是一个项目的成本,所以对于之后几乎不需要照看的单个已完成系统,通常并不合理。
只依赖一位开发者的最大风险是什么?
最大的风险是对一个人的依赖:如果他们无法联系、离职或失去兴趣,可能没有其他人了解这个系统。这对自由职业者和单个员工同样适用。您可以通过要求文档、让代码、账号和托管留在公司的控制之下,并在一开始就约定交接流程来降低风险。
在同意开发之前,我应该问任何开发者什么问题?
询问成品系统及其代码归谁所有、范围如何书面记录、还有谁能接手工作、上线后的修改如何提出和收费,以及能否查看与您需求相似的已完成作品。请把答案落实到书面上,因为所有权、访问权和支持条款属于合同事项,而不是信任问题。
我可以采用组合方式吗,例如由公司建设、由员工维护?
可以,很多企业就是这样做的。公司可以按既定范围建设首个版本,之后由新聘人员或经过培训的团队成员处理持续的小修改。要让这种方式奏效,请在项目开始时就约定交接、文档和访问权限,让接手的人能够理解已建成的内容。
Gotka建设业务系统怎么收费?
Gotka应用与系统开发服务的参考起价为:Web应用与仪表盘RM8,000,业务系统与集成RM12,000,手机应用RM15,000。这些是参考起价而非固定价格,每个项目在范围明确后,均以书面报价为准。


