隨著計算機硬件水平的不斷提高,計算機軟件的規(guī)模和復雜度也隨之增加。計算機軟件開發(fā)從“個人英雄”時代向團隊時代邁進,計算機軟件項目的管理也從“作坊式”管理向“軟件工廠式”管理邁進。這就要求軟件開發(fā)人員特別是軟件項目管理人員更深一步地理解和掌握現代軟件工程的理論方法,完成思想觀念上的轉變。以下列舉了10個在現代項目管理中思想觀念上容易陷入的誤區(qū),希望能夠拋磚引玉,引發(fā)大家更多的思索和討論。
誤區(qū)1:軟件項目的需求可以持續(xù)不斷的改變,而且這些改變可很容易地被實現。的確,在具體實際中由于種種原因客戶方很難在需求分析階段全面而準確地描述所有問題。隨著開發(fā)進度的推進,往往會有一些需求的改變。而現代軟件工程理論也利用軟件的靈活性特點通過各種方式來適應這種情況。不過,這并不表明“軟件項目的需求可以持續(xù)不斷的改變 ,而且這些改變可很容易地被實現”。實踐表明:隨著開發(fā)進度的推進,實現軟件需求更改所需要的代價呈指數形式增長。假定在需求分析階 段實現需求更改需要花費1倍的代價;那么,在系統(tǒng)設計和編碼階段,需要花費1.5-6倍的代價;在系統(tǒng)測試階段需要花費10-20倍的代價;在軟 件版本發(fā)布以后,甚至可能要花費60-100倍的代價。由此可見,在項目開展過程中,軟件需求的改變應當盡量早地提出。這樣才可能花費少, 容易被實現。
誤區(qū)2:既然在項目人員配置中設置了專門的測試人員,那么軟件所有的內部測試工作全部應該由測試人員完成。分析:軟件程序測試可以分為“白盒法”和“黑盒法”兩種方式。由于使用“白盒法”對測試人員各方面素質的種種要求,在進行程序測試時 測試人員總是優(yōu)先使用“黑盒法”。他們的工作方式往往是先對程序進行“黑盒法”測試;如果測試沒有通過,不得已這才考慮對程序代碼 進行“白盒法”測試。顯然,這種對“白盒法”有意無意的“逃避”,對軟件的可靠性和穩(wěn)定性構成了威脅。如何解決這個問題?一方面需要 提高對測試人員的要求,另一方面也需要程序員完成部分的“白盒法”測試(實際上,程序員往往也是進行“白盒法”測試的佳人選)。
誤區(qū)3:軟件項目管理只是相關技術部門的事情,與公司其他部門無關。在競爭日益激烈的今天,軟件項目規(guī)模大、復雜度高而且時間要求緊迫。要想提高公司的軟件項目管理水平,這就需要提高公司的整體參與意識,需要公司各個部門協同作戰(zhàn)。例如需要會計部門協助進行項目預算,財務管理和費用控制;需要研究部門(技術委員會)指派專家 協助進行各種風險評估,提供技術指導;需要后勤部門提供各種保障。
誤區(qū)4:在開發(fā)進度滯后的情況下,可以聘請更多的程序員加入到開發(fā)團隊中,通過增加人力資源來趕上進度。分析:在注重團隊開發(fā)的時代,開發(fā)方應該根據目前的軟件項目管理水平慎重考慮這個做法。如果新加入的程序員對目前軟件項目的應用行業(yè) 有一定了解,并且可以很快適應了開發(fā)方的項目管理方式、軟件開發(fā)風格、團隊協作氛圍;那么"新人"的加入是有益的。否則,可能會"好心好意做壞事"。因為盡管其個人能力很高,但是為了使其與大家一起協同工作,開發(fā)團隊不得不分出人手對其進行與項目有關的技術/業(yè)務培訓,更重要的(也是難度大的)是還要引導其融入團隊。這可能需要花費開發(fā)團隊許多時間和精力,很有可能使項目進度更慢。
誤區(qū)5:技術骨干應該成為項目的項目經理,項目經理一定是所有項目成員中薪水高的。分析:在"軟件作坊"時代,這是一種普遍使用而且效果不錯的方法;而在"軟件工廠"時代,這種方法卻帶來各種問題,有時甚至直接導致 項目失敗。究其原因這主要是因為隨著現代軟件開發(fā)分工的細化,對項目經理的要求也發(fā)生了根本的改變--注重的不是其對某項專業(yè)技術 的掌握程度,而是其組織、領導、協調開發(fā)團隊的能力(當然,可以兩者均突出好)。
誤區(qū)1:軟件項目的需求可以持續(xù)不斷的改變,而且這些改變可很容易地被實現。的確,在具體實際中由于種種原因客戶方很難在需求分析階段全面而準確地描述所有問題。隨著開發(fā)進度的推進,往往會有一些需求的改變。而現代軟件工程理論也利用軟件的靈活性特點通過各種方式來適應這種情況。不過,這并不表明“軟件項目的需求可以持續(xù)不斷的改變 ,而且這些改變可很容易地被實現”。實踐表明:隨著開發(fā)進度的推進,實現軟件需求更改所需要的代價呈指數形式增長。假定在需求分析階 段實現需求更改需要花費1倍的代價;那么,在系統(tǒng)設計和編碼階段,需要花費1.5-6倍的代價;在系統(tǒng)測試階段需要花費10-20倍的代價;在軟 件版本發(fā)布以后,甚至可能要花費60-100倍的代價。由此可見,在項目開展過程中,軟件需求的改變應當盡量早地提出。這樣才可能花費少, 容易被實現。
誤區(qū)2:既然在項目人員配置中設置了專門的測試人員,那么軟件所有的內部測試工作全部應該由測試人員完成。分析:軟件程序測試可以分為“白盒法”和“黑盒法”兩種方式。由于使用“白盒法”對測試人員各方面素質的種種要求,在進行程序測試時 測試人員總是優(yōu)先使用“黑盒法”。他們的工作方式往往是先對程序進行“黑盒法”測試;如果測試沒有通過,不得已這才考慮對程序代碼 進行“白盒法”測試。顯然,這種對“白盒法”有意無意的“逃避”,對軟件的可靠性和穩(wěn)定性構成了威脅。如何解決這個問題?一方面需要 提高對測試人員的要求,另一方面也需要程序員完成部分的“白盒法”測試(實際上,程序員往往也是進行“白盒法”測試的佳人選)。
誤區(qū)3:軟件項目管理只是相關技術部門的事情,與公司其他部門無關。在競爭日益激烈的今天,軟件項目規(guī)模大、復雜度高而且時間要求緊迫。要想提高公司的軟件項目管理水平,這就需要提高公司的整體參與意識,需要公司各個部門協同作戰(zhàn)。例如需要會計部門協助進行項目預算,財務管理和費用控制;需要研究部門(技術委員會)指派專家 協助進行各種風險評估,提供技術指導;需要后勤部門提供各種保障。
誤區(qū)4:在開發(fā)進度滯后的情況下,可以聘請更多的程序員加入到開發(fā)團隊中,通過增加人力資源來趕上進度。分析:在注重團隊開發(fā)的時代,開發(fā)方應該根據目前的軟件項目管理水平慎重考慮這個做法。如果新加入的程序員對目前軟件項目的應用行業(yè) 有一定了解,并且可以很快適應了開發(fā)方的項目管理方式、軟件開發(fā)風格、團隊協作氛圍;那么"新人"的加入是有益的。否則,可能會"好心好意做壞事"。因為盡管其個人能力很高,但是為了使其與大家一起協同工作,開發(fā)團隊不得不分出人手對其進行與項目有關的技術/業(yè)務培訓,更重要的(也是難度大的)是還要引導其融入團隊。這可能需要花費開發(fā)團隊許多時間和精力,很有可能使項目進度更慢。
誤區(qū)5:技術骨干應該成為項目的項目經理,項目經理一定是所有項目成員中薪水高的。分析:在"軟件作坊"時代,這是一種普遍使用而且效果不錯的方法;而在"軟件工廠"時代,這種方法卻帶來各種問題,有時甚至直接導致 項目失敗。究其原因這主要是因為隨著現代軟件開發(fā)分工的細化,對項目經理的要求也發(fā)生了根本的改變--注重的不是其對某項專業(yè)技術 的掌握程度,而是其組織、領導、協調開發(fā)團隊的能力(當然,可以兩者均突出好)。