接私活--程式設計師到底接還是不接
我本身是 Java 工程師出身,寫程式碼至今已超過 15 年,創業也超過 10 年,曾經外包過很多專案給別人,也接過很多外包的專案,現在不接了,只經營電子報傳送平臺,在二年內累積超過 5000 家企業使用者使用。身處在創業圈,只要有創業朋友主動問過我的,我都會和他說如果你能不接就不要接 ( 當然我也知道,如果不是為了活下去,誰願意接 ? ),因為這其中有太多陷阱,我分享如下給大家作個參考:
因為你寫程式碼很快
通常會出來接私活的工程師大多是有些年資,也會有自己擅常的工具及 library,所以往往可以很快完成主管交代的工作,會認為客戶的需求只要能在很短的時間內完成,這個專案就賺錢了。
【BUT】專案完成的快慢取決於客戶的心情,只要他心情不好,就慢慢拖吧。你以為你的 Code 可以 reuse,最後你才發現真正被 reuse 的是你的肝。
因為你寫程式碼很快,所以只要客戶比價、殺價、壓你結案時間,你就會心裡想一下:嗯,只要我努力趕一下,應該沒問題。
【BUT】,無形中你就犧牲了你的利潤空間,只有賺到微利,你知道工程師估完成時間的準確率有多少嗎 ? 準確率有多高,賺到微利的機率就有多高。
因為你可以賺每年的維護費
接私活是這樣,只要你接了,之後的維護客戶也很難不找你維護,只要慢慢的累積,每年都會有可觀的維護費可以賺。
【BUT】,你知道大部份臺灣公司有個不成文規定,同一套系統的維護費預算是每年遞減的,客戶會想:系統每年調整也該穩定了吧,都穩定了你也沒作什麼事為什麼還要拿這麼多錢 ? 接下來,你可能會想說如果客戶想加新功能第一個一定先找你,試想一下,叫你照著三年前自己寫的程式碼架構來新增功能,如果沒有吐血,大概代表這三年你也沒什麼長進。不接總行吧 ? 偏偏你就這麼有責任感,你不接客戶也只能打掉重來請別人重新作一套,你忍心嗎 ? 所以你覺得這維護費好賺嗎 ?
因為你很能為客戶著想
你因為很為公司著想,常常在開發過程中發現缺了什麼或是主管規劃錯了,你會主動的加班把這些缺的部份補上調好,公司對你讚譽有加,如果接私活的時候以這樣的態度來對待自己的客戶,那雙方合作的感覺一定很好。
【BUT】,你的客戶當然好啊,因為你主動幫他加功能把系統調的更好,都不用再花錢啊。加錢 ? 合約當初就簽好了,如何告訴客戶要加錢 ? 況且這是你自己主動要加功能的。可以不加嗎 ? 可以啊,但你可以忍受你的作品明明可以更好的而不讓它更好嗎 ? 如果是當初規劃就錯了,不調整能驗收嗎 ?
因為你知道客戶要什麼
因為在公司時主管常常也語無倫次,但你總是能分析出主管要的是什麼,你也都能完成它,所以接私活時就算對方不懂技術,你也能完成他需要的功能。
【BUT】,你知道客戶要的是什麼嗎 ? 不,你不知道,因為絕大部份客戶自己要什麼都不知道,而且你知道客戶的上面還有老闆嗎 ? 你知道客戶的老闆要的是什麼嗎 ? 不,你不會知道,因為連他老闆自己都不知道,這是最可怕的嗎 ? 不,還有更可怕的,他們會告訴你他們知道想要的功能是什麼,但你就是無法作出他們想要的。
因為你很能規劃
你是個邏輯觀念很好的人,只要主管告訴你他的需求,你可以很快畫出系統架構圖、程式碼架構圖甚至是資料庫架構圖,準確率非常高,所以接私活的時候只要客戶告訴你需求,你很快腦中就會出現各種架構圖雛形。
【BUT】,你知道規格是誰開的嗎 ? 對,是客戶開的,因為他不開你就無法報價,如果他要你開,你也怕開完後報價他不接受就等於作白工了。那你覺得客戶的邏輯會有你好嗎 ? 所以通常你要作的是先了解客戶的邏輯,然後找出矛盾的地方,然後提出更好的解決方桉,這一段來來回回就要花不少時間了,喔對,這一段通常是收不到錢的,客戶會覺得你要接我的專案,你本來就要先來了解我的需求。
因為你有團隊
因為你在業界有一定的人脈了,自己會寫程式碼,再找個業務高手、美編高手,這樣最小單位就好,大家可以分工,這樣接私活的問題就變少、進行更順利。
【BUT】,因為你有三個人,所以你只能接可以養活 >= 3 個人的專案,這種專案通常會稍大一點,因為以上所述種種原因會造成結案很慢,如果不結案人卡在這個專案拿不到錢,新的專案接不了,怎麼辦 ? 對,加人,所以你的團隊變成了 4 個人,接下來你只能接可以養活 >= 4 個人的專案,這個時候如果來了個大專案呢 ? 對,你會陷入無限迴圈,直到你再也接不到更大的專案。
因為你想用客戶的專案來練兵
正如阿甘說的:人生就像一盒巧克力,你永遠不知道下一個會是什麼口味。所以你永遠不知道下一個專案在那裡,但當你開始有了團隊,每個月都要付薪水時,這時來一個不大不小的專案,反正也不知道下一個專案何時進來,這個剛好可以付團隊薪水又可以拿來練兵,這也蠻好的。
【BUT】,接私活有個特性是你接了這個專案就會降低接下個專案的能力,因為人力及時間總是有限,如果你因為接了一個小專案造成大專案沒人力接,你說大家氣不氣 ? 不幸這個小專案的業主特別麻煩 (基於上述原因,你知道這機率還不小),那你磨練團隊的可不是他們的技術,你磨練的可是大家的身心靈啊,慢慢的就會有一股將相無能,累死三軍的聲音傳出來了 … 你為何不自己開發個小產品來練兵呢 ?
因為你應對客戶有一套
你的個性很好,以前在公司的時候都可以和廠商或客戶相處很好,可以接的接,不可以接的也會擋,如果出來接私活和客戶應對對不會有問題。
【BUT】,客戶百百款,你對客戶有一套,客戶對你可是有好幾套,他可以議價、殺價、壓時間、加功能、拖驗收、會計不見、老闆出國 …..,最後怪你為何拖這麼久再扣你一筆錢,說了一句:你們不是專業的嗎 ? 開發階段你們是朋友,驗收階段你們就變甲乙雙方。
因為你從來不缺客戶
你從來不需要自己去陌生開發,客戶都是透過朋友介紹或是客戶轉介紹來的,這比一般公司好太多了,別人想要客戶都還沒有呢。
【BUT】,你有沒有想過,你有上面所述種種優點,重點是你還比別人便宜,別人不找你,我都想找你了。所以你賺到錢了嗎 ?
因為你都有籤合約
為了避免以上不必要的問題,每個專案你一定都會籤合約保護雙方,凡事照合約走就沒問題了。
【BUT】,對方有法務你有嗎 ? 對方有錢你有嗎 ? 真正要打官司你打的起嗎 ? 你真的有把握合作過程中你完全沒錯 ? 合約裡有辦法規範到所有的功能細節、操作流程 ? 合約訂了一大本,你客戶會和你籤 ? 所以,你真的能照合約走嗎 ?
你最近一次開心寫程式碼是什麼時候
在我和你有一樣能力的時候,我曾經說過一句話:我希望我死前的最後一個動作是按下 【Enter】,我寫程式碼的動力不是賺錢 ( 當然賺錢很重要,但如果只是賺錢,我大可去作直銷、賣保險、到大公司上班 … ),精準來說不只是賺錢,我的動力來源來自於我寫出來的程式碼可以讓非常多人使用,真正幫助到很多人,而且很多人都說好。( 相信我,如果你真的作到這一點,其實你也賺到錢了 )
但自從我接私活之後,我最多隻能幫助到我有限的客戶,說精準一點也許就只有真正使用系統的某些人,也只有這些人會說我好,其它人也只會認為那是你該作的,但只要最後驗收時他離職了、他生氣了、一切努力就沒了。所以那時我只有二個時候點是開心的,一個是收到訂金、另一個是收到尾款,中間一大段時間是痛苦的,當同時多個專案進行,其實所有時間都是痛苦的。我還記得我那時常說的一句話:收到你冷冷的支票,我的心就覺得暖暖的。
當然一定有人接私活接的很好,只是別人的成功很難複制,但別人的失敗可以避免,如果你能避掉我以上所說的陷阱也無法保證你能成功,因為這也只是冰山一角,我已經離開接私活的狀態很久,很多事忘了也不想去想,只是希望你在決定接私活前,仔細想一下,你真的只有接私活這個選項嗎 ? 如果可以,我會建議你應該要開發自己的產品及服務。