很多朋友不同意我的意見,其實我想表達的是一個先後順序的問題, 並非是重要程度。好的產品能讓技術重要起來。
做專案,特別是創業專案, 實現好的點子總是一件令人抓狂的事情。明明非常有經驗,為什麼還是總延期呢?看上去沒有技術難度,卻很容易陷入到實現細節中出不來呢。這幾天想了很多,基本上筆者總是遇到下面一個迴圈:
① 關於某個功能,有了一個好點子
② 開始實現,但是很快發現在細節上要做的東西貌似比較多
③ 於是開始設計複雜的物件關係和結構,希望通過程式碼把它們管理起來. “以後好擴充套件”(很多人的口頭禪)
④ 但是…發現點子需要調整, 設計上有變化。
⑤ 發現明明只是小調整, 卻要改很多地方, 大量的”以後好擴充套件”的設計完全用不上了?
⑥ 直接重新開始寫程式碼, 但是不知不覺又慢慢滑入步驟3的流程中.
這個迴圈,很明顯會浪費掉寶貴的時間。如果是創業的小團隊,更是耗不起,但是為什麼會這樣呢?直觀的看:這是過度設計。但是這個錯誤背後,我覺得有一個更大的錯誤:在好產品還不存在的情況下,就開始追求好程式碼。
這是一個錯誤嗎? 我想很多人可能不會同意。 但是仔細想一下, 它很有可能是! 特別是在時間緊迫的情況下。 我的理解是這樣:好程式碼的用處不是為了自娛自樂, 而是為了方便修改, 應對變化. 但這一切都有賴於產品細節的支撐, 可惜的是, 初創的產品細節可以認為是最不穩定的. 沒有它們做支撐. 強求好程式碼, 結果多半是一些設計模式/經驗模式的堆砌. 寫起來很爽, 過期得更快. 畢竟我們人類的智力是總結經驗, 而不是預測未來。
結論: 對於創業的團隊來說, 最重要的東西不一定是最優先的,就算技術是核心競爭力,程式碼雖然重要,但是必須得先有好產品,等產品相對靠譜了,再仔細設計你的技術架構吧!