我很乐于帮助早期创业公司。我自己在创办Buffer前后曾犯过很多错误,也有不少经验教训,因此我十分愿意和起步阶段的创业者分享。上周,我见了5个创业团队(每次会面时间在30分钟左右,面对面交流或通过Hangouts)。这5个项目中,我惊奇地发现,其中3个团队都面临着创始人不懂技术,想要外包开发的境况,因此我决定写一篇文章来讨论这个问题。
选择外包开发的思考过程
如果你不懂技术也不会写代码,那么当你有一个创业的idea时,你自然会想要寻求帮助。人们的第一反应往往是寻找技术合伙人或者把开发外包给个人或公司,开发出最小化可行产品(minimum viable product)。
就我的经验而言,如果你想要尽快建立一家成功的公司,不论是把开发外包给公司还是个人一般都不是最优的选择。
以下是为什么我认为你不应该把创业项目外包的原因:
1. 你和外包服务商的目标是完全不同的
如果你仔细想一下就会发现,自由职业者、设计机构或公司的目标是服务更多不同的客户,并最终赚到钱。而你创业的目标则是开发出符合市场需求、能够吸引更多用户的产品。两者迥异的目标使得你们要成功所采取的方式是截然不同的。
对于自由职业者来说,最头痛的问题就是开发过程中客户反复修改需求。自由职业者和开发机构接一个项目通常都是收取固定的费用,因此在开始工作之前,他们需要详细地分析整体工作量有多少,明确项目的范围,并依此报价,确保客户不超出预算。这就意味着,在项目一开始,他们就要十分明确项目中包含的内容,他们的目标是挣钱,所以会尽量避免在开发过程中随意改动需求,避免工作量和成本的增加。
但对于创业者来说,你的目标是使产品尽可能地符合市场需求,所以你应该尽早将产品投放到市场进行测试,并根据市场反馈随时做出调整。Automattic(WordPress母公司)的创始人兼CEO Matt Mullenweg对此曾有过精妙的分析:
投入实际使用对于各种创意来说就像氧气。只有将产品放在实际的使用场景中,你才能真正了解用用户对于你开发的产品是如何反馈的。这就意味着你的产品晚一刻面向公众,就会因为缺乏现实世界的氧气而离死亡更近一步。
因此,创办一家成功公司最理想的方式就是尽快把产品拿出来,然后再根据用户反馈的新信息进行迭代。但是这种开发模式和外包服务商希望你采取的方式是大相径庭的。大多数自由职业者或者开发机构一般开发的都是更加成熟和更加可预期的商业网站,他们并不是太理解创业公司的特点。
这并不是说服务商或者开发机构做得不对,他们只是倾向于做模式更确定的项目,比如开发一个饭店、咖啡店或者高尔夫俱乐部的网站。用《精益创业》作者Eric Ries的话来说,这些服务商愿意做那些已知问题,已知解决方案”的项目。一个饭店的网站应该包括菜单和位置信息,这是非常明确的。但是创业公司所面临的是未知问题,未知解决方案”的情况,我们不知道新的想法是否可行。因此外包服务商的工作方式并不适合你。
2. 外包的方式会把你做产品的思路带入歧途
这一点和第一个问题非常相关。我认为如果把项目外包,你对于成功创业公司的思考方式很可能误入歧途。
我很幸运自己在12岁时就开始写代码。在我加入创业公司后,我也一直在做程序开发的工作。但是几年后我却发现,我被技术蒙蔽了视野,看不到怎样才是成功的产品,只是不停地开发。但是实际上写代码并不是创业公司成功最主要的因素。
我认为总想着把开发外包的创业者可能也会遇到同样的问题,他们错误地认为成功实现自己idea的方式就是开发出来。
但是当你把这个idea投入到实践中验证之后你可能发现,它根本就行不通。
开发一款成功产品的关键在于消除产品不可行的方面,做出用户或顾客真正想要的东西,找到产品与市场最佳的契合点。代码仅仅是实现这一目的的手段。
我认为在现在的网络环境中,你完全可以不写代码就拿出一个可行的产品。你可以将Wufoo、Unbounce、WordPress、Google Forms等工具结合在一起使用,甚至可以手动完成一些工作。当然,这样的方式无法推广和扩张,但却可以帮助你理解产品的哪些特性是可行的,哪些是不可行的关键。
你可以通过这种方式做出一个早期的(非常不完美的)产品,通过快速迭代改进产品的缺陷。如果你能吸引到用户,就会有很多扇门为你打开,你也更容易找到帮你完成代码和美化产品的人。
任何像样的程序员都不会愿意听信一个只有idea的人就去帮他开发产品。但另一方面,好的程序员会非常愿意投身到一个没有代码也能吸引用户的创业项目中。因为在这里他们能大展拳脚,而且产品拥有着巨大的前景。
3. 创始团队应该了解公司的方方面面
我认为你不应该外包开发的另一个理由在于:创始团队应该了解公司方方面面的情况。以下是原因:
亲自参与到产品的设计中会让你觉得你已经可以实现各种功能了,只要搞定程序开发,找个简单方法实现就可以了。
你可以保持对于项目各个部分的控制,并能快速迭代。
在你开始招人时,你了解应聘者是否适合某一岗位。
你对公司各方面的发展都充满热情。这在将来的发展中大有裨益。如果创始人对公司的某项工作没有热情,就很难招到别人来热情地工作了。
因此,我强烈推荐你和你的联合创始人在开始时亲自完成各项工作。在我们公司创办初期,我和我的合伙人Leo完成了开发、设计、数据库、系统权限管理、客服和营销等各种工作。我甚至还开发了我们的第一版Android应用,后来才请了Sunil到团队来接手。现在公司中几乎没有哪项工作是我和Leo原来没做过的。我对公司的各项业务都非常熟悉,也能跟公司的任何人就任何业务进行深度的讨论。
那么应该怎么做?
我相信亲自开发产品是创办一家成功的企业最好的,也是最快的方法。
这么说可能有违直觉,你完全不会任何代码怎么快速开发产品。但我想表达的是,你的产品在最开始时并不一定需要代码,你可以借助其它途径,东拼西凑先做出来,再进行验证。
我之所以认为这是最快的方法是因为如果你只是有一个idea,那么你会非常努力的寻找技术联合创始人,但是如果你把开发外包的话,就没法完成开发—衡量—学习”这样的循环,没法快速迭代适应市场需求。
所以,我推荐的方法是你自己先想办法把这些东西做出来,同时在当地的创业圈找一些技术人员聊聊。我相信当你把产品做到一定程度时,就会有技术合伙人感兴趣愿意加入你们。如果你没有技术合伙人(或者愿意加入公司负责技术的员工),你就应该继续想办法,多和顾客接触,验证你的假设,最终开发出一款吸引人的产品。