前言
隨著中國(guó)加入WTO后,外界對(duì)中國(guó)的軟件業(yè)帶來(lái)了機(jī)遇和挑戰(zhàn);為新新的軟件行業(yè)注入新的活力。但細(xì)細(xì)一想,其實(shí)所帶來(lái)的更多的是挑戰(zhàn)。我所說(shuō)的挑戰(zhàn)不單只是個(gè)人開(kāi)發(fā)中的水平問(wèn)題,更多的是我國(guó)軟件項(xiàng)目管理的問(wèn)題。下面我就幾個(gè)方面來(lái)談?wù)劇?br>
開(kāi)發(fā)人員問(wèn)題:
1、你開(kāi)發(fā)中按軟件工程做了嗎?
軟件工程,這對(duì)軟件開(kāi)發(fā)員來(lái)說(shuō)是多么熟悉的字眼,但其中的內(nèi)含你又知道多少,再進(jìn)一步說(shuō),在開(kāi)發(fā)中按軟件工程來(lái)做的又有多少。大家常在網(wǎng)上聽(tīng)到一些程序員在抱怨說(shuō):“我加班加點(diǎn)的寫了10萬(wàn)行的代碼,所以老板把我給開(kāi)除了?!边@話扎聽(tīng)有點(diǎn)好笑,但細(xì)細(xì)一想這是他的悲哀。他寫的代碼雖多,可是關(guān)鍵的又有多少。如果里面的代碼只要有80%的是關(guān)鍵的,我想老板是決對(duì)不會(huì)開(kāi)除他的。問(wèn)題出在10萬(wàn)行代碼中有多少是關(guān)鍵的。先不說(shuō)寫這10萬(wàn)行代碼所開(kāi)的時(shí)間了,就說(shuō)以后的維護(hù)問(wèn)題,要是你到一個(gè)公司,老板首先要求你看完這10萬(wàn)行代碼。我想你第一想到就是走人,第二想到的還是走人。因?yàn)閷?duì)于一個(gè)沒(méi)有按軟件工程來(lái)進(jìn)行開(kāi)發(fā)的程序,不要說(shuō)是這么多的代碼;那怕是幾十行、幾百行,讀起來(lái)也是很難受的事。記得我剛到深圳找工作,老板讓我接手另一個(gè)程序員所開(kāi)發(fā)的一個(gè)小系統(tǒng)。這樣理所當(dāng)然的就是看設(shè)計(jì)文檔,可是沒(méi)有,這樣只有看源程序;當(dāng)我打開(kāi)源程序時(shí),我呆了??戳艘惶齑a,我決定走人。當(dāng)我向BOOS提出時(shí),老板給我做思想工作。當(dāng)然加薪也是少不了的,這也打破加薪的記錄了。所以我就留下了。之后我開(kāi)始看代碼。在我看代碼的同時(shí)真不知道把寫這程序的程序員罵了不知道多少次。這讓我更加增強(qiáng)了對(duì)軟件工程的認(rèn)識(shí)。為了不讓以后維我的程序員不罵或少罵我。所以得好好按規(guī)定《軟件工程》辦事。說(shuō)這些只是想讓大家靜下來(lái)想想,你在開(kāi)發(fā)中按軟件工程做了嗎!
2、你是先寫文檔再寫程序的嗎?
一個(gè)好的程序是先寫好設(shè)計(jì)文檔再進(jìn)行編程的,在設(shè)計(jì)文檔的指導(dǎo)下,才能寫出安全的代碼。在文檔的指導(dǎo)下,這樣寫出來(lái)的程序至少不會(huì)出現(xiàn)寫了10萬(wàn)的代碼還被老板開(kāi)除的情況。如果你不寫文檔,一開(kāi)始就寫程序,這樣你就不會(huì)按已設(shè)計(jì)好的路線走,而是想到哪寫到哪。小功能還好說(shuō),要是大功能,你想想等你寫下一個(gè)時(shí),回過(guò)頭來(lái)看原來(lái)寫的,你早就不知所云了,那時(shí)你就覺(jué)得好像在云里霧里亂走,修改的代碼也就更不安全了。我所說(shuō)寫文檔不是說(shuō)很正規(guī)的,那怕你只用一張搞紙劃上幾畫也要畫點(diǎn)出來(lái)(這是對(duì)小功能來(lái)說(shuō)的)。對(duì)于大的程序來(lái)說(shuō),你就必須正規(guī)的寫了。因?yàn)檫@樣才能詳細(xì)的記下你的設(shè)計(jì)思想,如果開(kāi)發(fā)一段時(shí)間后,感覺(jué)須要對(duì)一些功能進(jìn)行修改或變態(tài)時(shí),記住別刪除原來(lái)的,而是在下面進(jìn)行變更說(shuō)明。這樣再次看文檔時(shí)你就會(huì)更清楚為什么要這么做的原因。一看就明白不是多好??偙饶闳ピ傧胍郧暗脑O(shè)計(jì)花的時(shí)間要少,如果刪除原來(lái)的設(shè)計(jì)思想,當(dāng)你再次看修改或變動(dòng)的功能時(shí),你可能會(huì)對(duì)其不理解。這是多么可怕的事呀!我想作為程序員應(yīng)該知道文檔的重要性??墒窃谝恍┬」?,先寫文檔后寫程序的開(kāi)發(fā)員又有多少。要成為一個(gè)好的程序員大家想想自己該怎么做的吧!
軟件項(xiàng)目管理問(wèn)題:
1、現(xiàn)代的軟件開(kāi)發(fā),技術(shù)不是關(guān)鍵:
隨著日益增長(zhǎng)的軟件需求和軟件系統(tǒng)功能的增強(qiáng),過(guò)去一個(gè)人開(kāi)發(fā)的歷史以不復(fù)存在?,F(xiàn)在單槍匹馬寫程序也只是一種娛樂(lè)。我們一般開(kāi)發(fā)的系統(tǒng)都是一個(gè)小組才能完成的。所以管理才是開(kāi)發(fā)出好的軟件的前提條件,沒(méi)有管理一定出不來(lái)好的軟件,當(dāng)然有管理也不一定出軟件的。一個(gè)成功的軟件不一定是最好的技術(shù),但在它背后一定有一個(gè)好的管理。所以現(xiàn)在的軟件開(kāi)發(fā)已不像從前把技術(shù)放在第一,而是該把管理放在第一位。我在網(wǎng)上看到一篇關(guān)于中國(guó)軟件和印度軟件的比較。我現(xiàn)在記的不是太多,但對(duì)我影響最深的是他們會(huì)去權(quán)衡技術(shù)和開(kāi)發(fā)效率問(wèn)題。如現(xiàn)在開(kāi)發(fā)一個(gè)軟件,用戶要求去在三個(gè)月內(nèi)完成,你在做系統(tǒng)分析時(shí)也認(rèn)為在三個(gè)月能完成。但你沒(méi)有考慮到一些細(xì)節(jié),你寫完系統(tǒng)的總體設(shè)計(jì),在進(jìn)行詳細(xì)設(shè)計(jì)時(shí)碰到要建一張不是太大的路由表。這時(shí)大多數(shù)國(guó)內(nèi)的設(shè)計(jì)人員就會(huì)想用什么算法,去花很多時(shí)間去設(shè)計(jì)研究新的算法和技術(shù),而人家首先考慮的是系統(tǒng)的運(yùn)行環(huán)境,而這個(gè)軟件設(shè)計(jì)了是在(CPU:1.1G,內(nèi)存:512M)中運(yùn)行,用戶也沒(méi)特意提出其運(yùn)行效率要求。所以人家就在內(nèi)存中開(kāi)一個(gè)大數(shù)組來(lái)對(duì)這個(gè)路由表進(jìn)行操作。從這點(diǎn)看,人家注重的是軟件的整體,而不像國(guó)內(nèi)大多數(shù)據(jù)設(shè)計(jì)員那樣,把個(gè)體放在首位。其實(shí)這方面我覺(jué)得我們的開(kāi)發(fā)員應(yīng)當(dāng)多向共產(chǎn)黨學(xué)習(xí)(本人不是共產(chǎn)黨員,團(tuán)員也因沒(méi)交團(tuán)費(fèi)被Cancel掉了)。把軟件設(shè)計(jì)的整體放在首位,而不去花太多的時(shí)間在不一定成功的技術(shù)上。如果花太多的時(shí)間在技術(shù)上去,這將對(duì)系統(tǒng)的按時(shí)完成帶來(lái)影響。我也不是說(shuō)不該研究技術(shù),我只是說(shuō)開(kāi)發(fā)中應(yīng)當(dāng)以全局為重。如果要加入新的技術(shù),必須在分析時(shí)就預(yù)算其所需要的時(shí)間,并設(shè)置技術(shù)風(fēng)險(xiǎn)管理。如果風(fēng)險(xiǎn)太大就應(yīng)當(dāng)取消用這項(xiàng)技術(shù),改用其它的已成功的技術(shù)代替。風(fēng)險(xiǎn)管理這是近來(lái)才提出的軟件管理方法。它對(duì)我們的軟件項(xiàng)目有著很好的控制作用。對(duì)于一些中、大型系統(tǒng),它是一把走進(jìn)成功之門的鑰匙。這里就不談了,我將在下面進(jìn)行說(shuō)明。
2、好的管理才能開(kāi)發(fā)出好的軟件(小系統(tǒng)除外):
大家都知道,軟件開(kāi)發(fā)中有太多的不可預(yù)知性。但這種不可預(yù)知是對(duì)總體來(lái)說(shuō)的,當(dāng)軟件進(jìn)行到一點(diǎn)程度時(shí),不可預(yù)知的東西就會(huì)變成可預(yù)知的東西。以住的做法是不去管理它,這樣所帶來(lái)的就是項(xiàng)目的失敗。要是有好的管理方法就可以控制這些不可預(yù)知的東西,軟件項(xiàng)目就會(huì)一步步隨著你的設(shè)計(jì)思路起向成功?,F(xiàn)在就和大家一起討論一些常用的軟件管理方法。
2.1、錯(cuò)誤管理:
小時(shí)候當(dāng)我做錯(cuò)事的時(shí)候,我父親總是把我叫到他身邊,對(duì)我說(shuō):“沒(méi)事,只要下次不做相同的錯(cuò)事就行了?!边@話也許很多家長(zhǎng)都對(duì)自己的小孩這么講過(guò)。小時(shí)還不覺(jué)得,慢慢長(zhǎng)大后,會(huì)發(fā)覺(jué)其中深刻的道理。這就是說(shuō)從錯(cuò)誤中吸取經(jīng)驗(yàn)教訓(xùn)。軟件項(xiàng)目開(kāi)發(fā)中的錯(cuò)誤也是一樣。軟件開(kāi)發(fā)是一項(xiàng)復(fù)雜的活動(dòng)。一個(gè)典型的軟件開(kāi)發(fā)項(xiàng)目可能會(huì)給我們提供很多的機(jī)會(huì)去從錯(cuò)誤中吸取經(jīng)驗(yàn)教訓(xùn)。一般的軟件項(xiàng)目也會(huì)提供少量的錯(cuò)誤給我們學(xué)習(xí)。學(xué)過(guò)開(kāi)車的人都知道,教練老是會(huì)這么講:“我希望你們從我身上學(xué)習(xí)我和前人的的經(jīng)驗(yàn),這些經(jīng)驗(yàn)?zāi)銈兙筒灰偃ピ嚵恕H绻嚹阋苍S會(huì)賠上錢甚至于生命?!彪m然軟件項(xiàng)目開(kāi)發(fā)不會(huì)賠上生命,但是失敗的軟件項(xiàng)目是一定會(huì)賠錢的。所是在軟件開(kāi)發(fā)中少不了要對(duì)錯(cuò)誤進(jìn)行管理。在項(xiàng)目的錯(cuò)誤管理中我一般是這么做的,現(xiàn)在和大家討論一下:
a、 列出典型錯(cuò)誤:
典型錯(cuò)誤中有人員方面的。如:對(duì)有問(wèn)題的員工失控、挫傷積極性、人員素質(zhì)低、英雄主義、項(xiàng)目后期加入人員、開(kāi)發(fā)人員與客戶之間發(fā)生摩擦、不現(xiàn)實(shí)的預(yù)期、缺乏有效的項(xiàng)目支持、缺乏各種角色的齊心協(xié)力、政治高于物質(zhì)、充滿想像等…
典型錯(cuò)誤中有過(guò)程方面的。如:過(guò)于樂(lè)觀的計(jì)劃、缺乏足夠的風(fēng)險(xiǎn)管理、缺乏計(jì)劃、在壓力下放棄計(jì)劃、在模糊的項(xiàng)目前期浪費(fèi)時(shí)間、前期活動(dòng)不合要求、缺少管理控制、缺少質(zhì)量保證措施、魯莽編碼等…
典型錯(cuò)誤中有技術(shù)方面的。如:過(guò)高估計(jì)了新技術(shù)或方法帶來(lái)的節(jié)省量、項(xiàng)目中間切換工具、缺乏自動(dòng)的源代碼控制手段等…
b、 列出自己的最差實(shí)踐:
注意典型錯(cuò)誤,建立自己的最差實(shí)踐列表,可以避免在以后的項(xiàng)目中犯同樣的錯(cuò)誤。
c、 列出項(xiàng)目中的最差實(shí)踐:
組織機(jī)構(gòu)和其他項(xiàng)目組總結(jié)經(jīng)驗(yàn),學(xué)習(xí)他們的錯(cuò)誤中得到的經(jīng)驗(yàn)。和其他組同事交流項(xiàng)目開(kāi)發(fā)中的磨難,學(xué)習(xí)他們的經(jīng)驗(yàn)。列出潛在的錯(cuò)誤,看到它我們就會(huì)盡量避免今后犯同樣的錯(cuò)誤。
打個(gè)適當(dāng)?shù)谋扔?,典型錯(cuò)誤好比我們學(xué)車時(shí)教練講的經(jīng)驗(yàn),自己的最差實(shí)踐就像我們?cè)趯?shí)際開(kāi)車當(dāng)中出的問(wèn)題,而項(xiàng)目中的最差實(shí)踐就是我們學(xué)車前的筆試的書。
公司在發(fā)展的同時(shí),也會(huì)積蓄一些各方面經(jīng)驗(yàn)。列出所有的經(jīng)驗(yàn),按其分類。系統(tǒng)分析中的經(jīng)驗(yàn)提供給系統(tǒng)分析,設(shè)計(jì)人員中的經(jīng)驗(yàn)提供給管理人員,技術(shù)中的經(jīng)驗(yàn)提供給開(kāi)發(fā)員。這樣我們就會(huì)有更多的時(shí)間花在新的錯(cuò)誤的防范上面。開(kāi)發(fā)出來(lái)的系統(tǒng)就會(huì)一個(gè)比一個(gè)好。
2.2、風(fēng)險(xiǎn)管理:
下面先看一下來(lái)自一段網(wǎng)上的文章吧!
“一般認(rèn)為賭博是在冒險(xiǎn)。拉斯維加斯老機(jī)的設(shè)計(jì)者將老虎機(jī)的最大賠付率定為97%,即你花一天時(shí)間,往老虎機(jī)里塞進(jìn)100元,最多只能贏回970元。
但是,如果比起軟件開(kāi)發(fā)所冒險(xiǎn),拉斯維加斯的賭博簡(jiǎn)直就可以稱為“安全的冒險(xiǎn)”了。軟件項(xiàng)目所面臨的不斷變換的用戶需求、糟糕的計(jì)劃與估算、不可信賴的承包人、欠缺的管理經(jīng)驗(yàn)、人員問(wèn)題、傷筋動(dòng)骨的技術(shù)失敗、性能欠佳…..等等不勝枚舉的風(fēng)險(xiǎn),使大型項(xiàng)目按時(shí)完成的概率幾乎為0,大型項(xiàng)目被取消的概率和賭博一樣成敗參半(Jones 1991)?!?br>
所以項(xiàng)目開(kāi)發(fā)中對(duì)風(fēng)險(xiǎn)進(jìn)行控制管理就大大提高了軟件開(kāi)發(fā)的成功性。軟件風(fēng)險(xiǎn)管理工作就是在風(fēng)險(xiǎn)成為影響軟件項(xiàng)目成功的威脅之前,識(shí)別、著手處理并消除風(fēng)險(xiǎn)的源頭。一般我們可以在幾個(gè)層次上定位、管理風(fēng)險(xiǎn)。
1) 危機(jī)管理---救火模式,就是在風(fēng)險(xiǎn)已經(jīng)造成麻煩后才著手處理它們。
2) 失敗處理---察覺(jué)到了風(fēng)險(xiǎn)并迅速做出反應(yīng),但只是在風(fēng)險(xiǎn)發(fā)生之后。
3) 風(fēng)險(xiǎn)緩解---事先制定好風(fēng)險(xiǎn)發(fā)生后的補(bǔ)救措施,但不做任何防范措施。
4) 著力預(yù)防---將風(fēng)險(xiǎn)識(shí)別與風(fēng)險(xiǎn)防范作為軟件項(xiàng)目的一部分加以規(guī)劃和執(zhí)行。
5) 消滅根源---識(shí)別和消除可能產(chǎn)生風(fēng)險(xiǎn)的根源。
1、2、3項(xiàng)都是被動(dòng)進(jìn)行的,亡羊補(bǔ)牢,為時(shí)以完。所以我們應(yīng)當(dāng)著力于預(yù)防風(fēng)險(xiǎn),更好的是消除風(fēng)險(xiǎn)根源。
風(fēng)險(xiǎn)管理由風(fēng)險(xiǎn)評(píng)估和風(fēng)險(xiǎn)控制。而風(fēng)險(xiǎn)評(píng)估由風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)優(yōu)先級(jí)組成:
l 風(fēng)險(xiǎn)識(shí)別:就是提出一個(gè)潛在破壞項(xiàng)目進(jìn)度的風(fēng)險(xiǎn)列表,就像生成錯(cuò)誤列表一樣。
l 風(fēng)險(xiǎn)分析:評(píng)估每一個(gè)風(fēng)險(xiǎn)出現(xiàn)的可能性及其影響,判定風(fēng)險(xiǎn)的級(jí)別。
l 風(fēng)險(xiǎn)優(yōu)先級(jí):按風(fēng)險(xiǎn)影響大小排出一個(gè)風(fēng)險(xiǎn)優(yōu)先級(jí),這個(gè)風(fēng)險(xiǎn)列表將作為風(fēng)險(xiǎn)控制的基礎(chǔ)。
風(fēng)險(xiǎn)控制由風(fēng)險(xiǎn)管理計(jì)劃,風(fēng)險(xiǎn)化解和風(fēng)險(xiǎn)監(jiān)控組成。
l 風(fēng)險(xiǎn)管理計(jì)劃:制定一個(gè)應(yīng)對(duì)每個(gè)重要風(fēng)險(xiǎn)的方案,同時(shí)就確保每一個(gè)單獨(dú)的風(fēng)險(xiǎn)管理計(jì)劃之間以及與整體項(xiàng)目計(jì)劃之間相一致。
l 風(fēng)險(xiǎn)化解:每個(gè)重要風(fēng)險(xiǎn)所對(duì)應(yīng)計(jì)劃的執(zhí)行。
l 風(fēng)險(xiǎn)監(jiān)控:就是對(duì)解決風(fēng)險(xiǎn)的過(guò)程進(jìn)行監(jiān)控,風(fēng)險(xiǎn)監(jiān)控還可以包括識(shí)別新的風(fēng)險(xiǎn)并將其反饋到正在進(jìn)行的風(fēng)險(xiǎn)管理進(jìn)程中等方面的工作。
現(xiàn)在以我以前做的項(xiàng)目來(lái)說(shuō)明一下我是怎樣進(jìn)行風(fēng)險(xiǎn)管理的。
接到項(xiàng)目對(duì)項(xiàng)目進(jìn)行調(diào)研工作,在調(diào)研中就要注意到刻服錯(cuò)誤列表中的錯(cuò)誤。調(diào)研完成后,寫需求說(shuō)明書初稿(一般根據(jù)情況至少給出二個(gè)以上的方案),為客戶進(jìn)行講解,結(jié)合客戶意見(jiàn)再次進(jìn)行修。把修改后的說(shuō)明書和同士進(jìn)行討論,再次進(jìn)行修改。在此期間寫出總體設(shè)計(jì)的初稿(大的框架)。最后再為客戶講解,再次修改少量的功能??蛻舸_定需求滿足后就可進(jìn)行總體設(shè)計(jì)了。在生成需求分析的同時(shí),注意列出需求中存在的風(fēng)險(xiǎn)。如:需求改變問(wèn)題、需求定義欠佳等風(fēng)險(xiǎn)。在進(jìn)行總體設(shè)計(jì)時(shí),多和客戶交流。因?yàn)樵诳傮w設(shè)計(jì)中修改需求比在詳細(xì)設(shè)計(jì)中修改要容易比在編碼階段修改就更加容易了。之后生成總體設(shè)計(jì)說(shuō)明書。同時(shí)在總體設(shè)計(jì)中也要對(duì)一些不定的因素進(jìn)行風(fēng)險(xiǎn)監(jiān)控。列出風(fēng)險(xiǎn)列表。根據(jù)總體設(shè)計(jì)說(shuō)明書就可以開(kāi)始詳細(xì)設(shè)計(jì)了。在詳細(xì)設(shè)計(jì)中除了要考慮系統(tǒng)設(shè)計(jì)外還要考慮一些技術(shù)風(fēng)險(xiǎn)問(wèn)題。把很難預(yù)見(jiàn)的問(wèn)題列到風(fēng)險(xiǎn)列表中。注意,從需求分析到詳細(xì)設(shè)計(jì),隨著系統(tǒng)開(kāi)發(fā)的進(jìn)行度。以前不明的因素將會(huì)慢慢顯露。同時(shí)也會(huì)出現(xiàn)新的不明因素。這樣就讓我們必須在整個(gè)設(shè)計(jì)開(kāi)發(fā)過(guò)程中進(jìn)行風(fēng)險(xiǎn)監(jiān)控、風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)化解工作。同理,在編碼中也同樣處理。在開(kāi)發(fā)過(guò)程中根據(jù)分析不同,把風(fēng)險(xiǎn)按階段分為需求分析階段風(fēng)險(xiǎn)、總體設(shè)計(jì)階段風(fēng)險(xiǎn)、詳細(xì)設(shè)計(jì)階段風(fēng)險(xiǎn)和編碼階段風(fēng)險(xiǎn)。并交由此階段的人員進(jìn)行監(jiān)控和化解。同時(shí),如果在化解安全區(qū)(規(guī)定解決問(wèn)題的時(shí)間段中)內(nèi)無(wú)法完成解決,則提交專家組(包括到外請(qǐng)的專家顧問(wèn))解決( 我們一般是在周五下午的討論會(huì)上進(jìn)行)。當(dāng)然軟件開(kāi)發(fā)中所碰到的風(fēng)險(xiǎn)是很多的。但不可能完全同時(shí)進(jìn)行風(fēng)險(xiǎn)監(jiān)控的。通常是把風(fēng)險(xiǎn)列表中認(rèn)為最會(huì)發(fā)生的風(fēng)險(xiǎn)乘損失的大小后的最大數(shù)進(jìn)行嚴(yán)格的監(jiān)控起來(lái)。隨著開(kāi)發(fā)進(jìn)度,風(fēng)險(xiǎn)是在變化的,所以風(fēng)險(xiǎn)列表可能會(huì)增加也可能會(huì)減少。只要風(fēng)險(xiǎn)管理好了。系統(tǒng)就成功了一大半。
2.3、人員管理:
不同人員之間經(jīng)驗(yàn)的不同導(dǎo)致績(jī)效差別是有目共睹的,大家可能對(duì)不同開(kāi)發(fā)人員之間生產(chǎn)效率差距達(dá)10:1的觀點(diǎn)較為熟悉,大家也知道一些明確激勵(lì)措施所帶來(lái)的正面影響。所以人員管理在軟件項(xiàng)目中也有較重的分量。很清楚,人力因素極大地影響著生產(chǎn)效率,同時(shí)任何關(guān)注提高生產(chǎn)效率的組織首先必須有一套良好的人員激勵(lì)、團(tuán)隊(duì)合作、員工選擇及培訓(xùn)的機(jī)制。這樣才能充分發(fā)揮人員的自身能動(dòng)性。為公司創(chuàng)造更多的價(jià)值。
除了以上幾個(gè)面的管理外還有其它方面的管理也決定軟件項(xiàng)目的成功與否。如:團(tuán)隊(duì)合作、團(tuán)隊(duì)結(jié)構(gòu)、生產(chǎn)率工具等等。這里就不多說(shuō)。大家還是抽空多看看書。因?yàn)橹灰氵x擇了從事計(jì)算機(jī)工作,你就選擇了永不能停止的學(xué)習(xí)、學(xué)習(xí),再學(xué)習(xí)。否則你就將被淘汰。這是多么殘酷但又多么現(xiàn)實(shí)的事呀!
在項(xiàng)目開(kāi)發(fā)中軟件工程VS項(xiàng)目管理:
開(kāi)發(fā)員對(duì)軟件工程是多么熟悉的呀!為什么會(huì)有這么熟悉呢?因?yàn)楝F(xiàn)在的項(xiàng)目要求開(kāi)發(fā)員“按章辦事”。否則充其量也只是一部編程機(jī)器。上面已講了軟件工程的重要性,這里就不多說(shuō)?,F(xiàn)在打個(gè)比喻,如果把軟件工程比做音樂(lè)家,那項(xiàng)目管理就是音樂(lè)指揮家。一個(gè)好的音樂(lè)家一個(gè)人能揍出動(dòng)聽(tīng)的音樂(lè),但一群好的音樂(lè)家在一起不一定能揍出好的交響樂(lè)。它還必須有一位好的指揮家。軟件開(kāi)發(fā)也是一樣的,有好的程序員只是前提條件,要開(kāi)發(fā)出好的軟件,還要有一個(gè)好的管理。
只代表個(gè)人關(guān)點(diǎn),請(qǐng)大家多多討論。不如之處請(qǐng)多多指教為謝。
【?發(fā)表評(píng)論?0條?】