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