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