我為自己的婚禮開發(fā)了一個(gè)軟件,沒想到賺了數(shù)千萬!
1.無心插柳
安迪結(jié)婚的時(shí)候,七大姑八大姨,領(lǐng)導(dǎo)同事朋友來了60個(gè)人。
在婚宴上,需要把這60個(gè)人座位安排好,讓大家都舒舒服服的。
安迪覺得這是一個(gè)簡單的“優(yōu)化”問題,就自告奮勇去搞定它。出乎意料的是,安排座位這件事非常難,安迪下載了幾個(gè)軟件,都不好使。
既然現(xiàn)有軟件不行,那就自己做一個(gè)吧!
安迪之前用FORTRAN、C 和 C++ 開發(fā)過運(yùn)籌學(xué)、衛(wèi)星圖像處理、印刷電路板設(shè)計(jì)、環(huán)境建模和分布式系統(tǒng),有相當(dāng)多的開發(fā)經(jīng)驗(yàn),他寫了一個(gè)很簡陋的軟件,成功地解決了座位安排的問題。
婚禮以后,安迪就想:“能不能把座位安排軟件給商業(yè)化了?”
但是這樣的軟件有市場嗎?有人會(huì)用嗎?能靠它謀生嗎?
當(dāng)時(shí)安迪在一家創(chuàng)業(yè)公司工作,公司前景黯淡,與其坐以待斃,不如自己勇敢試一試。
2005年,基于Web的軟件還處于起步階段,他用C++和跨平臺(tái)的框架QT編寫了一個(gè)桌面軟件:PerfectTablePlan。
沒想到,軟件在推出24小時(shí)之內(nèi),就獲得了一個(gè)訂單,這讓安迪信心大增:看來給活動(dòng)安排座位是個(gè)有需求的市場。
他成立了公司,獨(dú)自包攬了開發(fā)、銷售、推廣、客服等工作,而會(huì)計(jì)的活兒就讓老婆來做。
在安迪的不斷打磨下,PerfectTablePlan越來越完善。
除了婚禮之外,PerfectTablePlan還可以用于各種慶典、聚會(huì)、活動(dòng),只要是需要安排座位的場合,它都能勝任。
用戶可以用圖形的方式布置圓形、方形、長條形桌子,還還支持輸入?yún)?huì)者的詳細(xì)信息:
A必須坐在B的旁邊
C想和D坐在一起
E和F不想和G坐在一起
X是素食主義者,Y對堅(jiān)果過敏
是否確認(rèn)來參加會(huì)議
諸如此類的信息,一句話:它考慮了組織一次大型活動(dòng)時(shí)所有可能出現(xiàn)的情況。
圖片
圖片
圖片
圖片
它還可以按照桌子,團(tuán)體來打印座位表:
圖片
圖片
還能定制、打印各種各樣的座位卡:
圖片
甚至可以在場地的大屏上滾動(dòng)顯示座位安排:
圖片
PerfectTablePlan的客戶越來越多,在那個(gè)年代,網(wǎng)絡(luò)還不普及,很多客戶要求郵寄CD。
安迪不得不請他的父親來幫忙,郵寄了大約5000張CD,直到2016年才停止了郵寄業(yè)務(wù)。
PerfectTablePlan影響力有多大呢?
到2015年,10年內(nèi)賣了4萬多份,收入達(dá)到數(shù)百萬英鎊!
一些非常著名的組織和非常著名的活動(dòng)(處于保密原因,安迪也沒有權(quán)限透漏具體)都在使用它,它接待過皇室成員、名人和國家元首。
有一次,安迪不得不熬夜解決一個(gè)問題,確保一個(gè)舉世聞名的事件不會(huì)變成一場災(zāi)難。
無數(shù)用戶對PerfectTablePlan贊譽(yù)有加:
“我每年都會(huì)主持一場 500 人參加的慈善活動(dòng)。您的軟件對我?guī)椭艽?.....”
“上個(gè)月,我使用 Perfect Table Plan 為 250 位客人組織了一場聲望頗高的正式晚宴,我發(fā)現(xiàn)這個(gè)程序幫了我大忙....”
“只是想讓你知道,你的程序?qū)ξ业?2,500 名客人來說效果非常好!這個(gè)周末我真的很享受使用它的樂趣......”
“PerfectTablePlan 在我們最近的活動(dòng)中救了我們一命?!?/p>
“我非常喜歡 PerfectTablePlan,這是我花過的最值得的錢......”
2.生活方式
過去的20年,雖然競爭對手和操作系統(tǒng)在變來變?nèi)ィ浖鷳B(tài)也發(fā)生了很大的變化,安迪一直在維護(hù),更新PerfectTablePlan。
現(xiàn)在軟件大約有14.5萬行C++代碼,雖然代碼有些丑陋,但產(chǎn)品非??煽?,幾乎沒有錯(cuò)誤。
用戶文檔也寫得非常詳盡,PDF版本將近500頁!
安迪非常享受這種個(gè)人開發(fā)的生活,他說他沒有獲得投資,沒有招聘員工,更不可能成為下一個(gè)Google或者Facebook,也不可能有噴氣式飛機(jī),但是他對生活很滿意。
他不會(huì)被解雇,也不用給別人發(fā)工資,睡覺時(shí)也能賺錢。
每天的通勤距離大概是10米,每天在兒子上課前和放學(xué)后都能見到他。
不用參加任何會(huì)議,沒有“最后期限”,沒有人告訴他花括號(hào)放在什么地方,或者強(qiáng)迫他推出糟糕的軟件,只是為了滿足某個(gè)發(fā)布日期。
當(dāng)覺得自己效率不高時(shí),就去跑步或者做點(diǎn)兒家務(wù)。
其實(shí),這就是真正自由的感覺。
當(dāng)然,這種自由也有很大的代價(jià),他不得不去做一些原本不喜歡的工作:寫文檔,處理發(fā)票,折騰網(wǎng)站。
一年364天都在回復(fù)客戶的支持郵件,每次出去度假都必須要帶著電腦,確保自己處于有網(wǎng)絡(luò)的環(huán)境下。
3.技術(shù)挑戰(zhàn)
安迪的PerfectTablePlan接待過4000人的活動(dòng),這是個(gè)非常大的人數(shù),因?yàn)榘才抛豢雌饋砗芎唵?,但是讓?jì)算機(jī)來做的話就是個(gè)排列組合問題。
不可能嘗試所有客人和座位的組合,因?yàn)榻M合實(shí)在太多了。
比如25個(gè)客人,排列的方式就有25!=15,511,210,043,330,985,984,000,000 種方式來分配座位。
所以需要一種有效的方法來搜索可能的布局,以便在合理的時(shí)間內(nèi)找到一個(gè)好的解決方案,安迪使用遺傳算法來實(shí)現(xiàn)這一點(diǎn)。
遺傳算法的工作原理是模仿達(dá)爾文的自然選擇過程,不斷代代相傳:
(1) 使用各種經(jīng)驗(yàn)法則(“啟發(fā)式”)來創(chuàng)建初始布局。
(2)布局隨機(jī)變異和拼接,產(chǎn)生新的布局,并添加到種群中
(3) 弱布局(得分較低的布局)將被剔除出種群
(4) 轉(zhuǎn)至步驟 2
這個(gè)過程持續(xù)進(jìn)行,直到得到令人滿意的解決方案。
由于遺傳算法的工作方式,它不能保證給出數(shù)學(xué)上最優(yōu)的答案 ,想得到最優(yōu)解,傳統(tǒng)計(jì)算機(jī)要運(yùn)算幾年時(shí)間。
量子計(jì)算機(jī)才能真正解決這個(gè)問題,實(shí)際上,加拿大 D-Wave 公司用于展示突破性新“Orion”量子計(jì)算機(jī)的時(shí)候,選擇了三個(gè)程序來證明量子優(yōu)越性,其中一個(gè)就是PerfectTablePlan。
安迪給D-Wave定制了一個(gè)PerfectTablePlan版本,讓量子計(jì)算機(jī)來實(shí)現(xiàn)一次16個(gè)客人的最優(yōu)座位安排。
4.營銷
安迪現(xiàn)在過上了悠哉悠哉,讓人羨慕,享受被動(dòng)收入的生活。
但是剛開始時(shí),絕對不是這樣,個(gè)人創(chuàng)業(yè)的第一年非常辛苦,收入不確定很強(qiáng),2005年8月,在他創(chuàng)業(yè)幾個(gè)月后,他曾經(jīng)在論壇上發(fā)過這樣的貼子:
“我每周工作 60-70 小時(shí),最后只給自己發(fā)100英鎊工資。如果只拿最低工資,我做漢堡可以賺到 3 倍的錢,希望這種情況不會(huì)永遠(yuǎn)持續(xù)下去……”
很快安迪就意識(shí)到,不能只是整天編程,在確保自己開發(fā)了一個(gè)人們愿意花錢購買的軟件以后,還必須要做好營銷。
安迪在營銷上花費(fèi)了大量時(shí)間,嘗試了各種各樣的手段:
- Google按點(diǎn)擊付費(fèi)
- 和各種媒體合作,發(fā)新聞稿
- 參加婚禮和活動(dòng)策劃展,但是攤位費(fèi)太貴了
- 電子郵件營銷,獲得了一份合法的、包含一千多名準(zhǔn)新娘的列表,并向她們發(fā)送了一封關(guān)于 PerfectTablePlan 的電子郵件,但是沒有做成一筆生意。
- 在英國和美國的婚禮和活動(dòng)雜志上花費(fèi)了幾千英鎊來做廣告,效果有限
- 在潛在客戶經(jīng)常光顧的論壇上閑逛,回答相關(guān)問題,巧妙地推銷產(chǎn)品,引導(dǎo)客戶到自家網(wǎng)站
- 電話營銷,通常由厚臉皮的人進(jìn)行,還得有書面腳本,安迪座位程序員拉不下面子,做了幾次就不做了
- 寫博客自己宣傳,這一點(diǎn)安迪做得很好
- 讓下載網(wǎng)站納入自己的軟件
......
可以說,市面上能想到的營銷活動(dòng),安迪基本上都試過了。
最能體現(xiàn)他營銷策略的是他對盜版軟件的處理方式,人紅是非多,國外也有很多人在用盜版,有人試圖下載破解版。
所以Google上經(jīng)常會(huì)出現(xiàn)類似這樣的搜索:
圖片
安迪認(rèn)為,軟件是不可能防止破解的,他自己也做了一個(gè)“破解”頁面,并且在Google搜索種排名很高(安迪做了SEO):
圖片
用戶點(diǎn)進(jìn)去以后發(fā)現(xiàn),這個(gè)頁面解釋了為什么下載破解版PerfectTablePlan是危險(xiǎn)的,以及為什么應(yīng)該購買正版的License。
用這種辦法,安迪成功地“說服”了很多人購買正版,從中獲取了不少收入。
5.總結(jié)
安迪無意間發(fā)現(xiàn)了座位安排這個(gè)小眾的市場,開發(fā)了一個(gè)軟件來實(shí)現(xiàn)這個(gè)需求,在不斷打磨軟件的同時(shí),又不斷地進(jìn)行各種各樣的的營銷活動(dòng),最后終于達(dá)到了一人公司,在家工作,被動(dòng)收入的舒服狀態(tài),這可能就是程序員理想中的生活吧!