代碼的價值和演變過程和一個公司的發(fā)展密不可分,價值體現(xiàn)也有不同,
。大致分為三個階段。
第一個階段:滿足需求
這個階段的代碼比較接近用戶,用戶有什么需求,就什么樣的功能,用戶驅(qū)動非常明顯,主要的工作都是功能性的,實現(xiàn)形的。
這一階段的主要價值是:使用需求,即代碼轉(zhuǎn)化為的solution,具有可使用性,用戶基本可以用起來,增加的需求可以不斷的被支持,這一階段比較接近用戶需求。
第二個階段:改進需求
這個階段的代碼相對原理用戶,接近機器,接近開發(fā)方法,原理等,一個最主要的特色是代碼的面向的人群增加了工程師,工程師也是代碼的用戶,這個階段一個重要特征是代碼的量化指標建立起來。例如搜索引擎的準確率,召回率等指標,這些東西不開放給最終用戶,但是工程師都可以看到,這給持續(xù)改進奠定了基礎(chǔ)。
這一階段的主要價值是:支持改進,即代碼具有支持改進的能力,這種價值使得代碼可以活得更久,通常這是公司已經(jīng)發(fā)展的很不錯,大量的工程師和代碼相互結(jié)合,
《
代碼的價值》(
http://www.msguai.com)。這一階段比較接近算法和優(yōu)化。
第三個階段:移植需求
產(chǎn)品線需要豐富,底層的技術(shù)往往可以大量復(fù)用,但需要代碼支持移植的能力,甚至共同改進的能力,例如網(wǎng)頁搜索在發(fā)展到一定階段,可以直接分支出來做新聞搜索,博客搜索等等。
這一階段的主要價值是:支持移植和復(fù)用,這往往需要代碼具有比較強的通用性,這對設(shè)計提出了很高的要求,對一致的東西需要做很好的抽象,對不一致的地方需要開放修改,這一階段比較接近架構(gòu)設(shè)計。
當(dāng)然第二個階段和第三個階段有時候交織在一起,一個代碼要就有很好的價值,一定是在實踐中證明有效的,且能夠被量化被持續(xù)改進,最終具有移植和復(fù)用,乃至集成到其他產(chǎn)品的能力,如果一個工程師能把代碼寫的兼具這三項價值,那是非常了不起的。