我很樂于幫助早期創(chuàng)業(yè)公司。我自己在創(chuàng)辦Buffer前后曾犯過很多錯誤,也有不少經(jīng)驗教訓(xùn),因此我十分愿意和起步階段的創(chuàng)業(yè)者分享。上周,我見了5個創(chuàng)業(yè)團隊(每次會面時間在30分鐘左右,面對面交流或通過Hangouts)。這5個項目中,我驚奇地發(fā)現(xiàn),其中3個團隊都面臨著創(chuàng)始人不懂技術(shù),想要外包開發(fā)的境況,因此我決定寫一篇文章來討論這個問題。
選擇外包開發(fā)的思考過程
如果你不懂技術(shù)也不會寫代碼,那么當(dāng)你有一個創(chuàng)業(yè)的idea時,你自然會想要尋求幫助。人們的第一反應(yīng)往往是尋找技術(shù)合伙人或者把開發(fā)外包給個人或公司,開發(fā)出最小化可行產(chǎn)品(minimum viable product)。
就我的經(jīng)驗而言,如果你想要盡快建立一家成功的公司,不論是把開發(fā)外包給公司還是個人一般都不是最優(yōu)的選擇。
以下是為什么我認(rèn)為你不應(yīng)該把創(chuàng)業(yè)項目外包的原因:
1. 你和外包服務(wù)商的目標(biāo)是完全不同的
如果你仔細(xì)想一下就會發(fā)現(xiàn),自由職業(yè)者、設(shè)計機構(gòu)或公司的目標(biāo)是服務(wù)更多不同的客戶,并最終賺到錢。而你創(chuàng)業(yè)的目標(biāo)則是開發(fā)出符合市場需求、能夠吸引更多用戶的產(chǎn)品。兩者迥異的目標(biāo)使得你們要成功所采取的方式是截然不同的。
對于自由職業(yè)者來說,最頭痛的問題就是開發(fā)過程中客戶反復(fù)修改需求。自由職業(yè)者和開發(fā)機構(gòu)接一個項目通常都是收取固定的費用,因此在開始工作之前,他們需要詳細(xì)地分析整體工作量有多少,明確項目的范圍,并依此報價,確保客戶不超出預(yù)算。這就意味著,在項目一開始,他們就要十分明確項目中包含的內(nèi)容,他們的目標(biāo)是掙錢,所以會盡量避免在開發(fā)過程中隨意改動需求,避免工作量和成本的增加。
但對于創(chuàng)業(yè)者來說,你的目標(biāo)是使產(chǎn)品盡可能地符合市場需求,所以你應(yīng)該盡早將產(chǎn)品投放到市場進行測試,并根據(jù)市場反饋隨時做出調(diào)整。Automattic(WordPress母公司)的創(chuàng)始人兼CEO Matt Mullenweg對此曾有過精妙的分析:
投入實際使用對于各種創(chuàng)意來說就像氧氣。只有將產(chǎn)品放在實際的使用場景中,你才能真正了解用用戶對于你開發(fā)的產(chǎn)品是如何反饋的。這就意味著你的產(chǎn)品晚一刻面向公眾,就會因為缺乏現(xiàn)實世界的氧氣而離死亡更近一步。
因此,創(chuàng)辦一家成功公司最理想的方式就是盡快把產(chǎn)品拿出來,然后再根據(jù)用戶反饋的新信息進行迭代。但是這種開發(fā)模式和外包服務(wù)商希望你采取的方式是大相徑庭的。大多數(shù)自由職業(yè)者或者開發(fā)機構(gòu)一般開發(fā)的都是更加成熟和更加可預(yù)期的商業(yè)網(wǎng)站,他們并不是太理解創(chuàng)業(yè)公司的特點。
這并不是說服務(wù)商或者開發(fā)機構(gòu)做得不對,他們只是傾向于做模式更確定的項目,比如開發(fā)一個飯店、咖啡店或者高爾夫俱樂部的網(wǎng)站。用《精益創(chuàng)業(yè)》作者Eric Ries的話來說,這些服務(wù)商愿意做那些已知問題,已知解決方案”的項目。一個飯店的網(wǎng)站應(yīng)該包括菜單和位置信息,這是非常明確的。但是創(chuàng)業(yè)公司所面臨的是未知問題,未知解決方案”的情況,我們不知道新的想法是否可行。因此外包服務(wù)商的工作方式并不適合你。
2. 外包的方式會把你做產(chǎn)品的思路帶入歧途
這一點和第一個問題非常相關(guān)。我認(rèn)為如果把項目外包,你對于成功創(chuàng)業(yè)公司的思考方式很可能誤入歧途。
我很幸運自己在12歲時就開始寫代碼。在我加入創(chuàng)業(yè)公司后,我也一直在做程序開發(fā)的工作。但是幾年后我卻發(fā)現(xiàn),我被技術(shù)蒙蔽了視野,看不到怎樣才是成功的產(chǎn)品,只是不停地開發(fā)。但是實際上寫代碼并不是創(chuàng)業(yè)公司成功最主要的因素。
我認(rèn)為總想著把開發(fā)外包的創(chuàng)業(yè)者可能也會遇到同樣的問題,他們錯誤地認(rèn)為成功實現(xiàn)自己idea的方式就是開發(fā)出來。
但是當(dāng)你把這個idea投入到實踐中驗證之后你可能發(fā)現(xiàn),它根本就行不通。
開發(fā)一款成功產(chǎn)品的關(guān)鍵在于消除產(chǎn)品不可行的方面,做出用戶或顧客真正想要的東西,找到產(chǎn)品與市場最佳的契合點。代碼僅僅是實現(xiàn)這一目的的手段。
我認(rèn)為在現(xiàn)在的網(wǎng)絡(luò)環(huán)境中,你完全可以不寫代碼就拿出一個可行的產(chǎn)品。你可以將Wufoo、Unbounce、WordPress、Google Forms等工具結(jié)合在一起使用,甚至可以手動完成一些工作。當(dāng)然,這樣的方式無法推廣和擴張,但卻可以幫助你理解產(chǎn)品的哪些特性是可行的,哪些是不可行的關(guān)鍵。
你可以通過這種方式做出一個早期的(非常不完美的)產(chǎn)品,通過快速迭代改進產(chǎn)品的缺陷。如果你能吸引到用戶,就會有很多扇門為你打開,你也更容易找到幫你完成代碼和美化產(chǎn)品的人。
任何像樣的程序員都不會愿意聽信一個只有idea的人就去幫他開發(fā)產(chǎn)品。但另一方面,好的程序員會非常愿意投身到一個沒有代碼也能吸引用戶的創(chuàng)業(yè)項目中。因為在這里他們能大展拳腳,而且產(chǎn)品擁有著巨大的前景。
3. 創(chuàng)始團隊?wèi)?yīng)該了解公司的方方面面
我認(rèn)為你不應(yīng)該外包開發(fā)的另一個理由在于:創(chuàng)始團隊?wèi)?yīng)該了解公司方方面面的情況。以下是原因:
親自參與到產(chǎn)品的設(shè)計中會讓你覺得你已經(jīng)可以實現(xiàn)各種功能了,只要搞定程序開發(fā),找個簡單方法實現(xiàn)就可以了。
你可以保持對于項目各個部分的控制,并能快速迭代。
在你開始招人時,你了解應(yīng)聘者是否適合某一崗位。
你對公司各方面的發(fā)展都充滿熱情。這在將來的發(fā)展中大有裨益。如果創(chuàng)始人對公司的某項工作沒有熱情,就很難招到別人來熱情地工作了。
因此,我強烈推薦你和你的聯(lián)合創(chuàng)始人在開始時親自完成各項工作。在我們公司創(chuàng)辦初期,我和我的合伙人Leo完成了開發(fā)、設(shè)計、數(shù)據(jù)庫、系統(tǒng)權(quán)限管理、客服和營銷等各種工作。我甚至還開發(fā)了我們的第一版Android應(yīng)用,后來才請了Sunil到團隊來接手?,F(xiàn)在公司中幾乎沒有哪項工作是我和Leo原來沒做過的。我對公司的各項業(yè)務(wù)都非常熟悉,也能跟公司的任何人就任何業(yè)務(wù)進行深度的討論。
那么應(yīng)該怎么做?
我相信親自開發(fā)產(chǎn)品是創(chuàng)辦一家成功的企業(yè)最好的,也是最快的方法。
這么說可能有違直覺,你完全不會任何代碼怎么快速開發(fā)產(chǎn)品。但我想表達的是,你的產(chǎn)品在最開始時并不一定需要代碼,你可以借助其它途徑,東拼西湊先做出來,再進行驗證。
我之所以認(rèn)為這是最快的方法是因為如果你只是有一個idea,那么你會非常努力的尋找技術(shù)聯(lián)合創(chuàng)始人,但是如果你把開發(fā)外包的話,就沒法完成開發(fā)—衡量—學(xué)習(xí)”這樣的循環(huán),沒法快速迭代適應(yīng)市場需求。
所以,我推薦的方法是你自己先想辦法把這些東西做出來,同時在當(dāng)?shù)氐膭?chuàng)業(yè)圈找一些技術(shù)人員聊聊。我相信當(dāng)你把產(chǎn)品做到一定程度時,就會有技術(shù)合伙人感興趣愿意加入你們。如果你沒有技術(shù)合伙人(或者愿意加入公司負(fù)責(zé)技術(shù)的員工),你就應(yīng)該繼續(xù)想辦法,多和顧客接觸,驗證你的假設(shè),最終開發(fā)出一款吸引人的產(chǎn)品。