第五重:技術(shù)變化快,積累上不去
設(shè)想一下,一個(gè)10年前的高手,這10年他什么也不學(xué),那他會是什么樣的一個(gè)狀況。
我個(gè)人估計(jì)是快被淘汰了。
這是個(gè)極端的例子,但回顧一下軟件的發(fā)展歷程你會發(fā)現(xiàn),新技術(shù)的出現(xiàn)是爆炸式的。
在DOS的時(shí)代里,軟硬件的距離非常近,你只要會一種語言,了解基本算法和數(shù)據(jù)結(jié)構(gòu),再了解計(jì)算機(jī)硬件的知識,你可以寫大部分的程序。
接下來軟件和硬件間的層次越來越多,Windows加上一層,Java虛擬機(jī)加上一層,瀏覽器加上一層,F(xiàn)lash等再加上一層,諸如此類。
每多一層技術(shù)的種類增加一些。這導(dǎo)致軟件開發(fā)人員同時(shí)面對兩類壓力:一是項(xiàng)目上的時(shí)間壓力,一是技術(shù)更迭上的學(xué)習(xí)壓力。但偏偏一個(gè)的時(shí)間是有限的。

很多時(shí)候特定工作崗位會限定關(guān)聯(lián)技術(shù)的范疇,如果自身不做點(diǎn)安排,那真成吃“青春飯”的了。
第六重:究竟誰干的好,誰干的不好
大多時(shí)候,考評不能每個(gè)人都打A,否則成了吃大鍋飯的。
可在軟件的世界里,一旦要分個(gè)你好他差,難度出來了。
根據(jù)實(shí)績判斷,一個(gè)人很難全面理解很多人的工作。如果團(tuán)隊(duì)規(guī)模少于10人,這類的判斷還存在可能性;如果超過10人,那么誤判的幾率會直線上升,除非是天才。
根據(jù)數(shù)據(jù),大多數(shù)據(jù)真的不能用來評價(jià)軟件開發(fā)人員。生產(chǎn)率、Bug率這些是一定不行的,圈復(fù)雜度這類歧義性很小的指標(biāo)勉強(qiáng)可用,但說明的問題會比較片面。
根據(jù)感覺和印象的話,多少有些草菅人命的感覺。
于是考評大多時(shí)候總是天怒人怨的考評,而天怒人怨的程度很多時(shí)候取決于當(dāng)事人的在意程
第七重:弟兄們意見很多,統(tǒng)一很難
軟件很重要的一個(gè)特質(zhì)是仁者見仁,智者見智。
觀點(diǎn)的差異有的時(shí)候是是非問題,但大多時(shí)候是視角問題,是橫看成嶺側(cè)成峰式的。
而軟件團(tuán)隊(duì)大多時(shí)候在兩個(gè)極端間徘徊:要么沒意見,要么很多意見。
很少有團(tuán)隊(duì)會是在合適的時(shí)候有合適的意見---這是政治家干的事,程序員不大做的來。
沒意見的團(tuán)隊(duì)實(shí)是兵無戰(zhàn)心的團(tuán)隊(duì),其實(shí)更差,這里不去說他。
有意見的團(tuán)隊(duì)協(xié)調(diào)起來比較很辛苦。
程序員群體里大致上是越的越容易固執(zhí)己見,所以大致上越的團(tuán)隊(duì)吵得越多,越兇。
但不管怎么樣,終的選擇只有一個(gè)。這時(shí)候,不能只靠行政力量去拍,要在理解各種想法后,結(jié)合外部需求,時(shí)間壓力,人員狀況去協(xié)調(diào)。
這事其實(shí)很不容易。
小節(jié)
一定程度上講,這七重苦很難根絕。
好多即將做軟件的或做的時(shí)間不長的同仁大多時(shí)候關(guān)注的是新技術(shù),是創(chuàng)造性;但和陽光下總有陰影一樣,不管方法如何更迭,總有些東西無法徹底改善。
所以想做軟件的,并想堅(jiān)持做軟件的,要有點(diǎn)心理準(zhǔn)備,不能夢想的太美,那樣回頭會比較失落。
風(fēng)光的活是有的,臟活累活也很多,有了這樣的心理預(yù)期,才能在做軟件中找到快樂。
說了這么多,倒不是悲觀。
有些問題即使沒法徹底解決,但程度上還是不一樣的。
痛苦在那種程度上是事在人為的主戰(zhàn)場,這點(diǎn)上做和不做差別很大。
假如一個(gè)人不把眼光只局限于某個(gè)項(xiàng)目,而是把視野擴(kuò)展到整個(gè)軟件開發(fā)所對應(yīng)的方法論,那么關(guān)注現(xiàn)實(shí)中的痛苦,則是有所得得前提。