給V的一封信

親愛的V:

你在這種時候來找我, 和你促膝聊聊人生聊聊工作聊聊感情. 喝點酒, 在每一個乾與不乾之間.

一直以來我不只把你當成好兄弟, 也對你有著一些複雜的情緒, 很多壓力是我帶給你的, 也很多我應該為我兄弟做的, 我都沒有也沒能為你做. 所以若你在這種人生的交叉點, 這種心智整個被迷惑時來找我, 與其說我想告訴你我的經驗, 不如說我想告訴你我根本沒有什麼可以拿出來說的經驗.

不過無論如何, 我總還是感謝你願意來找我聊聊.

你要知道, 人生其實並不存在什麼最高指導原則或是什麼優先順序, 有人愛錢, 有人愛自由, 有人愛面子….etc, 不過事實上那些都是奢侈的煩惱. 當你吃飽了, 才能煩惱什麼比較好吃; 當你賺到錢了, 才能煩惱怎麼樣賺更多. 在此之前, 這種無謂的煩惱只會讓你搞不清楚下一步怎麼走下去而已.

而其實我也才活到30幾歲, 也只活過這麼一次, 甚至我現在的人生經驗對也不算是有意義的: 我哪知道我10年後會不會在街上當乞丐? 所以我沒辦法告訴你我怎麼贏 — 我根本不覺得自己贏了, 可是我可以告訴你我怎麼活下來, 我用什麼手段跟心態讓自己活到看見陽光, 看見可能來臨的希望.

我們都一直在人生中遭遇失敗與痛苦, 失敗可以小到破不了Zoo Keeper紀錄, 也可以大到少一隻手少一隻腳, 當然更可以大到直接Game Over. 我常說, 人是所有過去累積出來的, 不了解過去, 就不了解自己. 當你不知道怎麼往下走, 怎麼選的時候, 我只能真誠的建議你回憶你的所有過去, 你在哪個時間做了什麼, 發生了什麼, 為現在的你帶來了什麼, 然後你就會慢慢清楚你要什麼, 你要怎麼走. 就算沒有, 至少記住所有幫過你的, 踩過你的, 傷過你的, 扶過你的, 然後用適合你的方式去回報那些人.

最後我想說, 永遠永遠不要欺騙自己, 不要讓自己被那種來自人性怯懦的煙霧迷失. 想到, 就去做, 至於後悔與否, 那是做完才能想的事情. 還沒做就在想後悔, 那是弱者的行為. 我們不見得一定要成為強者, 但是至少不要成為弱者.

當然我絕對相信你不是弱者, 我的好兄弟沒有一個是弱者, 我們還要一起橫越屬於我們的偉大航路. 海賊王的夥伴不可以是這樣的.

重新開始的必要之惡與無奈

最近發生了一些事情….其實這樣的開頭根本是廢話, 因為天天都在發生事情, 沒有停過.

我經手過的很多系統, 網站, 甚至包含小程式, 大多數都會經過兩三次的重寫, 重新檢視需求, 重新規劃等等. 事實上對於一個不斷擴增及持續成長的東西來講, 這種「砍掉重練」的過程總是很必要, 而且躲都躲不掉.

我持續在讀重構:改善既有程式的設計 (二版)這本書. 雖然這本書比較著重在一些方法論, 但是其實透過一些case study可以提供一點有意思的思考.

因為人的思考總有其極限, 太過發散的想像與設計也會帶來發散的專案時程跟經費, 所以免不了一定會有一個像歌手demo帶的雛型產生, 這樣的雛型可能只是為了某些idea的呈現, 或是某些features的實驗等等. 當這樣的東西被接受, 被使用, 被成長時, 立刻要面對很多問題, 例如flexible, performance, availability, scaling 甚至是cost curve等等問題, 所以無可避免要經過一些修改, 而這些修改到了極限後再去修修補補其實無濟於事, 就像一台喜美改到極限也不會跑贏法拉利, 終究要面對問題從底部開始打掉重來.

日本mixi網站的Presentations就是一個非常好的技術範例與case study, 他們面臨快速成長帶來的龐大壓力, 限有的技術又不足以負擔之下, 只能逐步逐步的修正整個架構來降低cost curve, 但是這些修正其實有龐大代價的, 先不談背後需要多少技術人員跟多深的背景知識, 光是這種「穿著衣服換衣服」的痛苦過渡期, 應該讓這些員工減損不少陽壽.

好在這是一個很「善良」的時代, PlurkFacebook這兩大當紅的社群很善意的釋出了一些他們現用的技術(Plurk的LightcloudFacebook Develipers), 而這些技術只要好好被使用, 好好的被了解每一個設計背後需要排除的問題及帶來的新問題, 就能大大減少「砍掉重練」的次數, 提高員工們的壽命….

雜七雜八說這麼多, 我想說的重點是: 身為經營者或決策者, 有時候不要把「重寫」看得這麼大這麼痛苦, 假如你實現一個新的idea花掉了一年, 那個用同樣的開發團隊做一次Refactoring其實不會等量的消耗掉一年, 因為這一年內除了持續開發之外, 耗費掉了很多溝通流程, 設計界面, 討論一些fork與取捨的時間, 甚至包含局部設計變更所消耗的重複時間, 因此假如開發團隊的腦袋夠清醒而且很精確的知道目前問題在哪裡, 整個Refactoring可能只需要1/2甚至更少的時間. 但是不管這會耗用多少時間, 永遠都是痛, 畢竟這段時間幾乎是沒有產能的, 只能期待新的一份生出來時能夠有美好的一切, 這就是必要之惡啊.

而能適度減少這些痛苦的時間與痛苦的次數, 依靠的是有經驗的SA, 以及有良好背景知識與態度的開發人員. 剛好這就是台灣資訊產業缺乏的, 大多數新血投注在新且炫的技術(我常稱之為奇技淫巧), 對經驗不屑一顧; 而主事者看見開發人員累積足夠經驗後便急著把人從技術職拔擢至管理職, 或者是把經驗豐富的SA當成一般開發人員, 不願意給予對應的待遇與尊重, 造成開發人員只要累積了經驗便想立刻轉向管理職以得到更多報酬或地位. 這些綜合的因素讓台灣這個資訊之島一直沒有辦法誕生一個可以真正跨越國界的網站, 真正行銷到世界的系統.

我們的電子業有曹興誠張忠謀兩大先知, 製造業有著郭台銘施振榮林百里等等霸主, 我們的網路服務業呢? 我們的軟體開發業呢?

壓力、低潮、撞牆期

我這個人啊, 工作效率最好的時候, 大概是Loading約80%~120%的時候, 雖然幾乎是滿載, 但是因為可以很順暢的一件接著一件做完, 所以這種適度的擠壓可以讓我腦中不用放進一些雜七雜八的思考. 但是低於50%或是高於150%的時候就是最糟的工作效率, 前者會讓我偷懶, 而後者會壓到我擺爛而讓每件事情都用很低的完成度低空飛過.

以往總是固定在一年的某個時段會進入低潮期, 而每隔兩三年會碰到所謂撞牆期. 低潮期就是一種身心不協調的狀態, 身體還能做, 腦袋也還清醒, 但是心裡開始會抗拒, 所以變成不想做而不是不能做, 持續在這個領域這麼多年了, 對自己的低潮期非常敏銳, 大概差不多開始時就會警覺的把工作重心轉往其他地方, 在P社時可以靠永遠放不完的年假跟其他被Pending的規劃工作來填塞; 自己開業時可以靠社交跟客戶開發來填塞, 所以一直都不是什麼大問題.

撞牆期就是更恐怖的事情, 學了再多的東西總會碰到超出理解能力的東西, 碰了幾次後大概也知道怎麼應付, 就只是再去讀書, 再去學更多理論來幫助自己理解, 雖然很麻煩但是也不至於造成困擾.

不過這是第一次, 三件事情一起來.

現在的工作壓力大概在120%~150%之間, 很緊繃不過還不至於被壓倒, 而低潮期一如往常在夏季的尾聲出現, 可是撞牆期就是來的無聲無息, 或許跟轉換跑道, 要接觸的領域變廣泛, 而原本深耕的領域在新環境裡不用過度深入而造成, 可是並沒有時間可以讓我再去學啊, 一切都在deadline的逼近而只能全部大口大口吞下, 卻消化不了.

我真的很討厭那種無法自己掌控, 生死要靠別人來決定的狀態.

雖然也很清楚, 以往經驗告訴我, 每一個大的跳躍, 都會出現在挑戰自己都不相信自己做的到的工作後才發生, 只是這麼強烈的不安全感讓我越來越沒有把握, 尤其當很多人對我有信心時, 我心裡會浮出問號:「真的可以對我這麼有信心嗎?」

為了夥伴們的支持, 為了老闆的信任, 為了自己的自尊, 一步都不能退.

性格決定命運, 或許這就是我的命運. 如同九把刀說的:「人生就是不斷地戰鬥!」

還有, 索隆超帥的啊 XD