AppWorks 創業的青春記事——CityTasker
本篇是「我的職涯地圖:一個工程師的 20 年回顧」系列的第 3 / 12 篇。你可以從系列總覽開始閱讀,也可以直接接著看本文。
2013 年,我做了一個很衝動的決定:去創業。
但在講這個決定之前,先讓我補上一段空白。
2008 年從北科大畢業之後到 2013 年之間,我有大約五年的時間沒有出現在這個故事裡。這段時間我做了什麼?簡單說:當兵、工作、持續接案。退伍之後進了幾家公司做網站開發,同時從沒停過接外包案子。那幾年的技術棧也在進化——從學校時期的 PHP + MySQL,慢慢接觸了更多的框架和工具。真正的獨立承攬經驗就是在這段期間大量累積的:獨立面對客戶、獨立估時程、獨立解決所有技術問題。這些經驗讓我在後來每一份工作中,都能很快進入狀況。
2013 年,台灣的創業圈正熱,行動網路崛起,每個人都在講 App、講 O2O、講「改變世界」。我也被這股浪潮感染了。帶著一個模糊的想法和一腔熱血,我和夥伴一起報名了 AppWorks 第七屆創業育成計劃。
出乎意料地,我們入選了。
CityTasker:整個城市都有我的好幫手
我們的第一個產品叫 CityTasker,概念是「整個城市都有我的好幫手」。簡單說,就是一個媒合日常任務的平台——你需要有人幫你搬家、修水管、遛狗,在平台上發布任務,附近的人可以接單來幫你完成。
現在回想,這個概念在當時其實很前衛。Uber、TaskRabbit 在美國也才剛起步,台灣的共享經濟還在萌芽階段。
技術上,這是我第一次同時使用兩種不同的後端框架。CityTasker 的早期版本用 CodeIgniter(一個輕量級的 PHP 框架,快速但功能簡單),後來需要更多功能的時候轉向了 Ruby on Rails。Rails 在 2013 年是最火的 Web 框架之一,它的「Convention over Configuration」哲學讓我大開眼界——很多設計決策框架已經幫你做好了,你只要按照慣例走就可以很快做出東西。
前端串了 Google Maps API 做地理位置的媒合——使用者發布任務的時候標記地點,附近的接單者可以看到周圍的任務。Facebook API 則用來做社群登入和分享功能,那個年代每一個 App 都要接 Facebook,不然使用者根本不想註冊。我負責全端開發,前端後端一手包。
做 CityTasker 的那段日子,是我職涯中最高強度的學習期之一。在那之前,我是一個接案的工程師,寫的是「客戶要什麼我就做什麼」的程式。創業讓我第一次從產品的角度思考:使用者是誰?他們的痛點是什麼?技術怎麼服務於產品?
三個產品,一段青春
CityTasker 之後,我們又陸續做了兩個產品:VDOshow 影片彙集平台和 HelloFans 粉絲團管理工具。
三個產品,代表三次從零開始的嘗試。每一個產品都是從一個想法開始,經歷需求討論、技術選型、開發、測試、上線、然後面對冷酷的市場反饋。那種週五晚上還在辦公室裡和夥伴一起 debug 到半夜的日子,回想起來既瘋狂又珍貴。
在 AppWorks 的環境裡,我們和其他同屆的團隊一起成長。每週有 mentor 的指導,有各種業界前輩來分享,有同屆團隊之間的互相打氣。那個氛圍很特別——每個人都在做一件不確定會不會成功的事,但大家都相信自己正在做對的事。
創業教會我的三件事
最後,CityTasker 沒有走到大規模商業化的那一步。但這段經歷教會我三件在後來的職涯中反覆用到的事:
第一,產品思維。當工程師很容易陷入「技術完美主義」的陷阱,覺得架構要漂亮、程式要優雅。但創業讓我學會了,技術是為了解決問題而存在的,使用者不在乎你的程式碼寫得多漂亮,他們只在乎產品能不能用、好不好用。
第二,全局觀。做全端工程師,讓我對一個產品從前端到後端、從使用者介面到資料庫設計都有了完整的理解。這個全局觀在後來的每一份工作中都派上了用場——即使我後來專注在 Backend,我仍然知道前端需要什麼、使用者在意什麼。
第三,面對失敗的能力。創業最大的教育就是讓你習慣失敗。一個功能上線後沒有人用、一個行銷方案砸了錢卻沒有效果、一個你覺得很棒的想法被市場否決。這些經歷讓我後來在面對工作上的挫折時,心態穩定很多——失敗不可怕,重要的是你從中學到了什麼。
青春的重量
2014 年,CityTasker 團隊的旅程告一段落,我也開始尋找下一站。
那一年多的創業時光,沒有在我的銀行帳戶裡留下什麼數字,卻在我的人生經驗裡存了一筆巨大的財富。它讓一個只會寫程式的工程師,開始懂得從商業和產品的角度思考問題。
多年後的現在,我在建立自己的內容品牌和教育事業時,腦海裡浮現的很多思維,都可以追溯到在 AppWorks 那間辦公室裡的深夜討論。
創業沒有成功,但那段青春,我一點都不後悔。