先选团队的类型,再选公司,依据是你所处的阶段,以及产品有多大部分属于高难度的工程。然后考察三个候选,并付费做一次试做。
不知道你在做什么,谁也没法诚实地说出哪家公司适合你的初创公司。决定选择的是两件事:你的产品有多大程度依赖高难度的工程,以及你处在哪个阶段。如果是普通的网页或移动端产品,一个小型产品工作室或两位资深自由职业者通常就够了;如果你不懂技术,再在自己这边配一位有经验的技术顾问。有些产品只有在某个难做的部分跑通之后才能成立,比如交易平台,或者在用户等待的那一刻就要做出决策的模型。对这类产品,要找一家已经在生产环境中运行着同类系统的公司。
简短的答案是:先确定你需要哪一类团队,再去找公司。把同一份一页纸的需求说明发给这一类中的三个候选,并给每个候选的两家产品已经上线的客户打电话。挑出最有说服力的两个候选,付费请他们做一个简短的试做任务。从第一天起,代码和云账户都放在你公司的名下。
初创公司可以找的团队有六类。比时薪更重要的是另外两件事:谁来规划工作,以及工作停下时,关于你产品的知识留在哪里。
自由职业者是你直接签约的单个工程师,按小时或按任务付费。自由职业者适合做原型,或者一件边界清楚的单项工作,比如一个落地页或一个管理后台页面。你要自己管理他们,而一个人一走,他对你产品的了解也跟着走。
外包开发公司或产品工作室会把整个第一个版本做出来,设计也包括在内,通常按固定总价或按月收费。一家好的工作室已经上线过很多和你类似的产品,对注册、支付这类常见模块很熟。如果你产品里难的那部分很特殊,它就弱一些。要问清楚:卖给你这个项目的人,是不是也会亲自做这个项目。
专精型工程公司只做一小类高难度的系统,比如交易平台,或者必须在零点几秒内作答的广告竞价。它能给你看一套正在生产环境中运行的这类系统。它的收费方式和工作室或专属团队一样,按项目或按月。对普通应用来说,它是错误的选择,因为你会为用不上的专业深度付钱,而这类公司里好的那些会直接这样告诉你。
专属团队是一家外部公司派出的一组工程师,只做你的产品,按月付费。它适合计划变动太频繁、没法按固定总价来做的阶段。你这边必须有人每周决定接下来做什么。
内部工程师是你的员工,所以产品的知识留在你公司里。一旦产品就是业务本身,这一点最为重要。不管计划清不清楚,这笔成本每个月都照付不误。
兼职 CTO 是一位有经验的技术负责人,以兼职方式为你工作,比如每周一两天。他负责写需求说明、与候选人面谈、评审工作,并在事情开始出问题时尽早告诉你,而写代码的是你请来的团队。如果你不懂技术,无论选哪个团队,都给它配一位兼职 CTO,并在一开始就问清楚:他是否从自己推荐的公司那里收取费用。
你的产品有多大程度依赖高难度的工程?问问自己:如果它有一分钟变慢或出错,会发生什么。如果只是用户在等、在抱怨,那工程是普通的,一支好的通才型团队就能做。如果这一分钟会让你赔钱,比如以错误的价格成交,或者丢掉一次广告竞价,你就需要以前做过这类系统的人。
你处在哪个阶段,账上已经有多少钱?有了一轮融资的钱,你就可以签下一支按月付费的团队。融资之前,把钱花在证明有人想要这个产品上,工程投入保持在小规模。
如果你产品里难的那部分是交易平台或 AI 系统,下面这几篇文章讲得更深入:
对这个问题只报一个名字,那只能是猜测,本文也不给公司排名。本文能推荐的,是上一节里的团队类型,以及一套方法,把这个类型落实成三个你亲自核实过的名字。
值得打电话联系的候选,来自这么几个地方:
然后写一页纸:产品做什么、为谁做,第一天就必须跑通的那一件事,已经有了什么,你的截止日期,以及你这边由谁拍板。把同一页纸发给三个候选。他们提的问题和他们的方案一样说明问题:做过类似东西的团队,会先问你的用户和你的风险,然后才谈技术。
2006 年,Y Combinator 的创始人之一 Paul Graham 写道,20 世纪 90 年代的电商初创公司,大多是被糟糕的程序员害死的。按他的说法,这些公司的创始人分不清好程序员和差程序员。至于自己不是程序员的人该如何挑选好程序员,他写道:“我认为这个问题没有答案。”
不过,判断一支团队并不需要你会读代码。先从可工作的软件入手,这是你看得见的。2001 年《敏捷软件开发宣言》遵循的原则之一写道:“可工作的软件是进度的首要度量标准。”如果一家公司说自己以敏捷方式工作,就用这句话去要求它,每周都要一样你能点开来用的东西。
你看不见的部分,就花钱请看得见的人。一位由你付费、与那家公司毫无瓜葛的兼职 CTO 或独立工程师,可以每月读一次代码,用大白话告诉你他担心什么。
有四项核查不需要任何技术知识。
先从它的客户查起。请对方提供两家产品已经上线、并在过去两年内与这家公司合作过的客户,然后亲自给他们打电话。问他们:
接着弄清楚到底是谁来做你的产品。问清每个人的名字和角色,以及他们每周有多少时间花在你这里。问一问销售会上的人里,有没有人会写代码。签约之前见一见对方的技术负责人,并把这些名字写进合同,而不只是写在方案里。
付费做一次试做。给两个候选同一小块真实的工作,按他们的正常费率付费,并在开始之前以书面形式谈定验收标准。一到两周就够了。无论最后选哪支团队,成果都归你;而且在你承诺几个月的工作之前,就能看到每一方怎么提问、怎么报告问题。
签约之前就约定每周演示。从第二周起,你每周都应该能通过一个自己打得开的链接,看到可工作的软件。幻灯片和用百分比表示的进度报告都不算数。如果一个月过去了,还没有任何你能点开的东西,那就在付下一张发票之前停下来,问清原因。
产品运行所依赖的一切都登记在你公司名下,给外部团队的访问权限要比你自己的人更窄。
合同应以书面形式把代码和产品转让给你的公司。如果这家公司保留其自有可复用组件的权利,就要一份逐项列名的清单,以及一份在双方终止合作之后仍允许你继续使用这些组件的许可。上面链接的那篇关于专属团队的文章详细讲了合同。
在上面这六类团队中,amBrain 属于专精型工程公司。它为交易、金融科技和广告技术构建并修复实时系统,也承接任何行业的 AI 项目。除 AI 之外,它不接这几个领域以外的工作。如果你的初创公司做的是一款核心不涉及 AI 的普通网页或移动端产品,产品工作室或资深自由职业者会更适合你。
amBrain 自 2019 年起开发软件。它的合作方式一句话就能说完:“三种合作方式:整体交付、专属团队,或工程师嵌入你的团队。”它的所有权条款也是一句话:“客户拥有产品与代码的全部所有权,我们的可复用组件除外。”和对待任何一家公司一样,签约之前要求对方逐项列出这些组件的名称。
如果你的初创公司属于这几个领域之一,amBrain 可以成为收到你那份一页纸需求说明的三个候选之一。
带上您当前的架构和让您担心的故障场景,我们用半小时一起梳理。