隨想
問題在于軟件開發(fā)驚人的困難,造成很少有開發(fā)人員能夠說出軟件自始至終是怎樣開發(fā)的,并能夠?qū)@個(gè)過程中會(huì)遇到的不同選擇所隱含的結(jié)果表現(xiàn)出適度的理解。
在軟件開發(fā)人員還很年輕的時(shí)候(十幾歲或二十出頭),他們通常集中精力學(xué)習(xí)和使用技術(shù),稱自己為perl程序員、Linux專家、EJB開發(fā)人員、.NET開發(fā)人員等。對(duì)他們來說技術(shù)是最重要的事情。因?yàn)榧夹g(shù)在不斷的變化,年輕的程序員傾向于大致學(xué)習(xí)一個(gè)技術(shù),在一到兩個(gè)項(xiàng)目中使用,然后重新開始學(xué)習(xí)新技術(shù)或者是學(xué)習(xí)以前使用過的技術(shù)的最新發(fā)展。這里的問題是,他們一遍又一遍的重復(fù)的學(xué)習(xí)的不過是同樣的低層次基本技能的不同風(fēng)味。
幸運(yùn)的是,很多開發(fā)人員在經(jīng)過了幾輪技術(shù)學(xué)習(xí)之后逐漸意識(shí)到:一旦用COBOL、Java、C#等語言為事務(wù)控制編寫過代碼,就會(huì)開始認(rèn)識(shí)到基本的、本質(zhì)的東西是不變的。不同環(huán)境下的數(shù)據(jù)庫訪問、用戶界面設(shè)計(jì)等領(lǐng)域也是同樣的情況。不久以后,開發(fā)人員逐漸認(rèn)識(shí)到無論具體的技術(shù)怎樣,很多基礎(chǔ)性的東西是保持不變的,這些基礎(chǔ)性的東西有的在學(xué)校里講過,有的沒有。
這種認(rèn)識(shí)經(jīng)常發(fā)生在開發(fā)人員接近三十歲或剛過三十歲的時(shí)候,通常是人們開始穩(wěn)定下來,結(jié)婚、買房的時(shí)候。這是比較幸運(yùn)的情況,因?yàn)樯厦嫣岬降倪@些新的個(gè)人需求意味著他們不可能再投入大量的時(shí)間去學(xué)習(xí)新的技術(shù),他們需要用這些時(shí)間和家庭成員在一起。突然的,高層次的角色如項(xiàng)目負(fù)責(zé)人、項(xiàng)目經(jīng)理、(非敏捷的)建模人員等對(duì)他們變得非常有吸引力,因?yàn)檫@些角色不需要持續(xù)花費(fèi)大量的時(shí)間和精力去學(xué)習(xí)新技術(shù)。于是,等到開發(fā)人員開始真正學(xué)到技藝的時(shí)候,他們已經(jīng)處于離開開發(fā)人員角色的轉(zhuǎn)變過程中了。所幸的是,新的“小年輕”不斷的跟上來,這個(gè)過程在不斷的循環(huán)重復(fù)。最終的結(jié)果是:大部分最活躍的正在開發(fā)軟件的人通常不是最稱職的做這件事的人,而他們自己甚至還不知道。
posted on 2006-07-24 11:31 fisher 閱讀(2258) 評(píng)論(6) 編輯 收藏 所屬分類: Other