- 在泰国承接网站和 App 开发的,有自由职业者、小型代理公司和软件公司(Software House)三类,各自适合不同规模的项目。
- 无论哪家供应商,都用同一组问题衡量,分五项:实绩、流程、合同、匹配度和警示信号。
- 最先要问三件事:谁真正写代码,代码和所有账号归谁,多久能看到一次真实进展。
- 只要出现任何一个警示信号,即使总分很高,也先把这家放一放。
三类供应商,以及对每一家都公平的比较方法
选网站开发公司,有点像为公司用车挑一家固定的修车厂。您想看到它修过的车至今仍跑得好,想知道由哪位师傅动手,想拿到写得清楚的书面估价,也想把车辆登记证留在自己手里。软件也是一样。这里的登记证,就是源代码、域名和系统的每一个账号。
泰国市场上有三类供应商。自由职业者一两个人工作,适合范围清楚的小项目。小型代理公司通常擅长设计和营销,能用现成平台很快做出公司网站或网店。软件公司拥有固定的工程师团队、测试流程和交付后的维护,适合需要连接内部数据或要用很多年的系统。每一类都有好的供应商,也有该避开的。所以本文不给公司排名,只给出能用来衡量任何一家的问题,包括我们自己。
第 1 项:实绩(能亲自打开的作品,和真正写代码的人)
好的实绩是您能亲自打开使用的作品。请对方给出仍在线的网站链接,或应用商店里的 App 名称,再用您自己的手机试一试,看看速度和泰语界面。演示文稿里的截图只能说明那个项目曾经存在过。然后请对方提供两位老客户的电话,问问项目是否按期完成,交付后出了问题多快得到答复,以及会不会再次合作。
最容易被忘记的问题,是谁真正写代码。来提案的人往往是销售。签约前,请至少见一次将负责您项目的工程师。直接问清楚哪些部分会交给公司外部的人做,核心成员中途离职时由谁接手。有自己团队的供应商,当场就能回答。
第 2 项:流程(原型、演示、测试和代码审查)
好的流程有四个从外部就能看到的点。第一是原型,也就是写正式代码之前就能点击操作的界面。改草图比改已经做好的系统便宜得多。第二是演示的频率:您每周都能看到真实进展,还是到交付时才第一次看到?两次演示之间的空档,正是误解在无人察觉中不断累积的时候。
第三是测试:由谁测试,有没有与正式系统分开的试用系统,也就是预发布环境,让您的团队在上线前先试用。如果系统要存放客户数据,请参考 Vibe Coding 时代的网络安全中的检查项目。第四是代码审查。问一句:“代码写完后,上线前由谁检查?”好的答案是一位资深工程师的名字。
第 3 项:合同(范围、价格、付款阶段、源代码和所有账号)
好的合同从逐条写明的范围开始:系统做什么,哪些不包括,中途追加需求怎么计费。需求明确时,适合按固定范围定价;答案还在摸索中的工作,适合按实际工时计费。两种都可以,只要合同写明采用哪一种。每笔付款都应与按验收标准验收通过的成果挂钩,这比只按日历日期付款更稳妥。
需要慢慢读的一条,是源代码所有权。合同应写明:付清全款后,源代码、数据库、系统文档和设计成果都归贵公司所有,并可以交给其他团队继续开发。如果供应商使用了自己拥有版权的组件,也要写明贵公司可以在什么条件下继续使用。
看似小事却很要紧的,是各种账号:域名、主机、云服务、App Store 和 Google Play 的开发者账号、LINE 官方账号以及广告账号。每个账号都应以贵公司名义开设、用公司的卡付款,再给供应商开通操作权限。以供应商名义开设的账号,在您想更换维护方的那一天会很难转移。这就是代码之外的供应商锁定。
这一项还有四点。保修期:免费修复缺陷几个月。保修期满后的维护计划,以及写成服务水平协议(SLA)的响应时间。符合泰国《个人数据保护法》(PDPA)的条款:供应商能接触贵公司客户数据到什么程度,项目结束后何时删除。还有税务单据:已登记增值税(VAT)的供应商可以开具税务发票,有些还能开具 e-Tax Invoice;未登记的自由职业者只能开收据。公司的法人登记状态,可以在泰国商业部商业发展厅(DBD)查询。
第 4 项:匹配度(团队规模、语言、行业和敢于说不)
团队规模应与项目相称。问清楚您的项目有几个人参与,每个人同时还负责几个其他项目。语言方面,如果使用者是泰国员工,界面和操作手册必须是好读的泰语;如果企业主或母公司在海外,系统文档和进度报告还需要英文。问清楚团队里谁能用两种语言沟通,日常由谁回复您。
如果对方从没做过您这类业务,就看他们在第一次会议上问得够不够深入。最后一点是敢于说不。好的供应商会在您要的功能暂时不该做,或者现成系统比自己开发更划算时,直接告诉您。第一次会议就全盘答应的供应商,往往之后再回来收追加费用。
| 项目 | 要问什么 | 好的回答 | 警示信号 |
|---|---|---|---|
| 实绩 | 能提供正在使用中的作品链接吗? | 发来链接或 App 名称让您亲自试用 | 只有演示文稿里的图片 |
| 实绩 | 这个项目的代码由谁来写? | 签约前安排与工程师见面,说明哪些部分自己做 | 只说“团队会做”,说不出具体的人 |
| 流程 | 多久能看到一次真实进展?代码由谁审查? | 每轮都有固定日期的演示,由资深工程师审查代码 | 交付时才第一次看到 |
| 合同 | 付清全款后,源代码归谁? | 归贵公司,写进合同 | “做完再说” |
| 合同 | 域名和应用商店账号用谁的名义? | 贵公司名义,供应商只有操作权限 | 供应商名义 |
| 合同 | 每笔付款与什么挂钩? | 每个阶段验收通过的成果 | 开工前先付一大笔 |
| 匹配度 | 本公司的需求里,哪些暂时不该做? | 至少指出一项并说明理由 | 全部答应 |
模拟案例
佛统府的一家纸包装工厂(公司名称和细节均为虚构)想要一个网页应用,让客户自己重复下单、下载税务发票。两家供应商报价相近。第一家用演示文稿里的图片展示作品,每次开会都派销售来,还提出“为了方便”,用自己的名义注册域名和主机。第二家发来老客户正在使用的系统链接让工厂试用,带工程师来开会,并提议在写代码前先做一个可以点击的原型。
厂长和会计主管用五项表格分别打分。第一家在匹配度上得分不错,却踩中两个警示信号:账号在供应商名下,合同里关于源代码只写了“按约定”。第一家不肯修改这两点,工厂于是选了第二家。
半小时完成五项打分
把上面的表格当作评分表,每家供应商占一列。
五项评分表
- 第 1 步:提前发出问题。 给每家供应商发同一组问题,请对方附上依据作答。
- 第 2 步:按 0 到 2 分打分。 0 分是答不上来或含糊其辞,1 分是有回答但没有依据,2 分是有依据,比如链接、具体人名或合同草案。
- 第 3 步:警示信号与分数分开看。 凡是触及下一份清单中任何一条的供应商,在改正之前先放一放。
- 第 4 步:两个人分别打分。 然后只讨论分数不同的项目。
- 第 5 步:分数接近时怎么定。 选择与真正写代码的人沟通后,更快达成一致理解的那一家。
如果项目包含 AI,有关模型、数据和 AI 智能体权限的问题,请看聘请 AI 开发公司之前要准备什么。
第 5 项:应该先停下来的警示信号
- 还没问您的业务,就马上报价
- 开工前要求付一大笔钱,没有与验收挂钩的付款阶段
- 不让您见真正写代码的人
- 合同里没提源代码,或写明源代码归供应商
- 坚持用自己的名义注册域名、主机或应用商店账号
- 没有书面的范围
- 问到交付后的维护,只说“随时可以联系”,却没有响应时间
我们如何回答这份清单
报价之前,DNA Maker 会先请求与真正使用系统的人交谈,包括销售、会计、仓库或门店人员,再把范围写成一看就能想象出来的清单,并坦率说明哪些功能在第一阶段暂时不该做。上面表格里的每个问题,都可以拿来问我们;我们会用作品链接和合同草案来回答。
为您做项目的是 DNA Maker 自己的团队,没有分包。写代码之前您可以先试用原型,每周看到基于真实数据的演示,上线前由资深工程师审查代码。范围和价格在开工前固定。我们按范围交付源代码和系统文档。我们为泰国的银行、医院和大型企业集团也是这样做的。详情请看生产级的开发标准和泰国定制软件开发,或在聊天页面问 Dream。
SOFTWARE ENGINEERING GLOSSARY
软件工程术语表
| 术语 | 是什么 | 通俗示例 | 高管应问开发团队的问题 |
|---|---|---|---|
| 范围(Scope) | 列明系统做什么、不包括什么的清单 | “支持重复下单,积分功能放在第二阶段” | 中途追加需求,价格怎么算? |
| 原型(Prototype) | 写正式代码之前就能点击操作的界面 | 系统开发前,客户先试点下单页面 | 什么时候能试用原型? |
| 源代码所有权(Source Code Ownership) | 交付后代码和文档归谁所有的约定 | 合同写明付清全款后归贵公司所有 | 哪些部分仍归供应商所有? |
| 供应商锁定(Vendor Lock-in) | 代码或账号绑在现有供应商身上,无法更换维护方的状态 | 域名在供应商名下,所以迁不走 | 如果明年更换开发团队,哪些东西带不走? |
| 移交(Handover) | 把代码、文档、账号和知识交给接手团队 | 新团队只看文档就能装好系统 | 谁测试过按文档能装好系统? |
