既然軟件開發(fā)是高風(fēng)險(xiǎn)項(xiàng)目,如何避免失敗則是眾多軟件從業(yè)者重點(diǎn)關(guān)心的問(wèn)題。根據(jù)現(xiàn)代軟件工程的特點(diǎn)和對(duì)一些典型案例的分析,在軟件工程管理中應(yīng)當(dāng)注意以下一些重要事項(xiàng):
(1)項(xiàng)目評(píng)估
項(xiàng)目評(píng)估的意義在于確定軟件項(xiàng)目的規(guī)模、范圍、成本和周期。項(xiàng)目評(píng)估更多地是一個(gè)商務(wù)過(guò)程,只有精確的評(píng)估才能對(duì)客戶和軟件供應(yīng)商提供正確的商務(wù)參考。在項(xiàng)目精確評(píng)估的基礎(chǔ)上,客戶和供應(yīng)商雙方才能建立可信的商務(wù)關(guān)系,這是軟件項(xiàng)目得以正常實(shí)施的前提。
項(xiàng)目規(guī)模與范圍的評(píng)估需要軟件的供需雙方坦誠(chéng)相待,共同以軟件應(yīng)用目標(biāo)為導(dǎo)向,深刻分析軟件的作用范圍及其可能的演變。對(duì)于規(guī)模過(guò)大的軟件項(xiàng)目,可能很難估計(jì),這種情況下就需要對(duì)軟件項(xiàng)目進(jìn)行分解,使其形成相對(duì)獨(dú)立的評(píng)估基準(zhǔn)點(diǎn)。
項(xiàng)目成本和周期的評(píng)估聯(lián)系非常緊密,其核心是工作量和資源評(píng)估相結(jié)合的過(guò)程。軟件開發(fā)活動(dòng)是科技人員的群體智力活動(dòng),由于軟件人力資源的票賦和結(jié)構(gòu)特點(diǎn),對(duì)于相同的工作員,其研發(fā)成本可能出現(xiàn)出幾倍的差異。對(duì)于項(xiàng)口開發(fā)周期而言,也會(huì)因?yàn)檐浖_發(fā)資源配置的不同而出現(xiàn)顯著差異。
(2)需求定義
相對(duì)于項(xiàng)目評(píng)估,需求定義則是對(duì)項(xiàng)目規(guī)模和范圍進(jìn)行細(xì)化。需求定義是在充分理解軟件項(xiàng)目目標(biāo)的基礎(chǔ)上,對(duì)其應(yīng)用領(lǐng)域進(jìn)行業(yè)務(wù)分析與優(yōu)化。需求定義的重點(diǎn)在于對(duì)分解的業(yè)務(wù)進(jìn)行軟件語(yǔ)言的表達(dá),使其能夠被軟件開發(fā)人員無(wú)歧義地理解。
需求業(yè)務(wù)的軟件語(yǔ)言表達(dá)是指將業(yè)務(wù)表達(dá)為計(jì)算機(jī)科學(xué)善于處理的邏輯業(yè)務(wù)流程、相關(guān)業(yè)務(wù)數(shù)據(jù)以及由此形成的業(yè)務(wù)信息流。
除此以外,需求定義還必須關(guān)心人機(jī)界面。軟件的可用性集中體現(xiàn)在人機(jī)界面上。隨著計(jì)算機(jī)圖形技術(shù)的發(fā)展,特別是Windows視窗技術(shù)和瀏覽器技術(shù)的出現(xiàn),在現(xiàn)代軟件工程中已經(jīng)越來(lái)越注重軟件界面設(shè)計(jì),用戶對(duì)此也提出了更高的要求。
人機(jī)界面的定義以方便業(yè)務(wù)處理為目標(biāo),以簡(jiǎn)潔性為原則。在此基礎(chǔ)上則兼顧操作員的使用習(xí)慣和用戶的企業(yè)文化等其他因素,從而保證軟件的可用性和外在質(zhì)量。
(3)過(guò)程思維
過(guò)程思維是管理控制的一種基本思維方法,其核心方法是對(duì)所控制的對(duì)象進(jìn)行分解,以增加控制對(duì)象的透明度。應(yīng)用這種思維方式,人們?cè)诠こ坦芾砗蜕a(chǎn)管理中提出了卓有成效的管理方法,加國(guó)際質(zhì)量控制體系ISO9000系列。軟件工程領(lǐng)域也以此思維方式為基礎(chǔ)提出了著名的CMM(I)成熟度模型。
過(guò)程思維應(yīng)用在實(shí)際的軟件工程管理中就是根據(jù)軟件項(xiàng)目開發(fā)周期的特點(diǎn),在整個(gè)生命周期中設(shè)置若干檢查點(diǎn)和里程碑,增加軟件開發(fā)過(guò)程的可靠性。可靠的過(guò)程保證、可靠的軟件開發(fā)過(guò)程質(zhì)量是過(guò)程思維在軟件開發(fā)中的具體目標(biāo)和方法。
檢查點(diǎn)和里程碑的具體設(shè)置是一種管理藝術(shù),它需要根據(jù)實(shí)際情況而定。對(duì)某些軟件項(xiàng)目和開發(fā)團(tuán)隊(duì)而言,可以設(shè)置長(zhǎng)過(guò)程以降低用于質(zhì)量保證的成本;而對(duì)某些軟件項(xiàng)目和開發(fā)團(tuán)隊(duì)而言,則適合設(shè)置短過(guò)程以保證軟件的成功開發(fā)。
(4)開發(fā)環(huán)境
開發(fā)環(huán)境是指軟件人員在從事軟件開發(fā)過(guò)程中所處的工作環(huán)境。開發(fā)環(huán)境是影響軟件開發(fā)人員工作效率的關(guān)鍵因素。
開發(fā)環(huán)境主要包括兩個(gè)方面的環(huán)境:
一方面是指開發(fā)團(tuán)隊(duì)了作的技術(shù)環(huán)境,所有開發(fā)人員應(yīng)該有一個(gè)一致的工作平臺(tái),該平臺(tái)一般內(nèi)配置管理組進(jìn)行保證。一致的工作平臺(tái)可以減少協(xié)同開發(fā)的溝通難度,還可以保持開發(fā)團(tuán)隊(duì)一致的努力方向。
另一方面是指開發(fā)閉隊(duì)工作的軟環(huán)境.主要包括企業(yè)文化、團(tuán)隊(duì)精神、協(xié)作方法等人文方面的環(huán)境。一個(gè)好的軟環(huán)境能為開發(fā)團(tuán)隊(duì)提供輕松的工作氛圍,增強(qiáng)團(tuán)隊(duì)的凝聚力,這對(duì)于需要不斷激勵(lì)智力的軟件開發(fā)活動(dòng)來(lái)說(shuō)尤共重要。軟環(huán)境的好壞直接影響開發(fā)團(tuán)隊(duì)的創(chuàng)新能力。
(5)組織管理
組織管理是軟件項(xiàng)目成功的組織保障,任何社會(huì)化生產(chǎn)都離不開組織與管理,發(fā)活動(dòng)也不例外。然而,沈陽(yáng)軟件開發(fā)的組織管理又顯著區(qū)別于傳統(tǒng)的組織管理模式,些自己的特點(diǎn)。
管理對(duì)象的自主特性。沈陽(yáng)軟件開發(fā)的從業(yè)人員一般都受過(guò)良好的高等教育,有著自己獨(dú)立的價(jià)值觀和獨(dú)特的工作方式,在軟件開發(fā)團(tuán)隊(duì)中,總能表現(xiàn)出多元化的文化特征和行為特征。這對(duì)管理者提出廠較高的要求。
科研活動(dòng)的不可預(yù)測(cè)性。軟件開發(fā)過(guò)程中,往往伴隨著大量的科技創(chuàng)新工作,這些工作在工作量和工作時(shí)間上很難進(jìn)行精確的評(píng)估,這使得對(duì)時(shí)間、成本和質(zhì)量三方面的控制與權(quán)衡會(huì)變得較為困難,也常常是軟件開發(fā)工程管理者難于把握的因素。
軟件項(xiàng)目的外部性。相對(duì)于軟件項(xiàng)目本身,軟件開發(fā)活動(dòng)中還存在外部性特征。軟件項(xiàng)目持別是應(yīng)用軟件項(xiàng)目往往與其他外部因素糾纏在一起,很多問(wèn)題必須要多方參與才能解決,如何協(xié)調(diào)相關(guān)各方也是組織管理的難題。
因此,在沈陽(yáng)軟件開發(fā)工程管理中,注重組織管型形式和在此基礎(chǔ)上處理好組織管理活動(dòng)是執(zhí)行既定軟件項(xiàng)目計(jì)劃的關(guān)鍵一環(huán)。
(6)團(tuán)隊(duì)協(xié)作
團(tuán)隊(duì)協(xié)作是個(gè)老生常談的問(wèn)題。只要存在社會(huì)化大生產(chǎn),都會(huì)存在團(tuán)隊(duì)協(xié)作的問(wèn)題,只是在軟件開發(fā)活動(dòng)中該問(wèn)題顯得尤為突出。
在現(xiàn)代軟件工程中,已經(jīng)不再適合單打獨(dú)斗的軟件開發(fā)方式,這也是軟件產(chǎn)業(yè)發(fā)展的自然要求和結(jié)果。軟件汗發(fā)活動(dòng)中必須注意團(tuán)隊(duì)協(xié)作,這巴經(jīng)在眾多的軟件工程實(shí)踐中得到了證明。
軟件開發(fā)活動(dòng)中的團(tuán)隊(duì)協(xié)作應(yīng)該是一種高層次的協(xié)作,不能像傳統(tǒng)的生產(chǎn)流水線是簡(jiǎn)單的、僵硬的協(xié)作。它是一種智力的協(xié)作而非體力的協(xié)作。協(xié)作各方應(yīng)當(dāng)具備較強(qiáng)的溝通能力和溝通愿望,清晰地闡述自己的觀點(diǎn)和知識(shí),使得很多http://www.chang999.cn/問(wèn)題在交談中或工作會(huì)議中即可得到解決。
(7)與用戶互動(dòng)
用戶是檢驗(yàn)軟件項(xiàng)目成功與否的權(quán)威,充分了解用戶的想法也就等了解軟件項(xiàng)目努力與成功的方向。因此,在沈陽(yáng)軟件開發(fā)工程管理中,還要注意加強(qiáng)與用戶互動(dòng)。
與用戶互動(dòng)應(yīng)該貫穿整個(gè)軟件開發(fā)過(guò)程,而不是只在需求階段或測(cè)試階段進(jìn)行。這是因?yàn)橛脩舻挠^念是變化的,明日今天提出的需求,明大就想修改。
考慮到用戶對(duì)軟件的認(rèn)識(shí)程度可能不夠成熟,在與用戶互動(dòng)的過(guò)程中還要注意提高用戶的軟件認(rèn)知成熟度。這種相互充分的溝通容易對(duì)變化的軟件日標(biāo)達(dá)成共識(shí),將問(wèn)題盡早提出,從而為低成本解決問(wèn)題創(chuàng)造條件。
(8)持續(xù)改進(jìn)
所有事物都是不斷演化的,軟件尤其突出。軟件因?yàn)槠湎鄬?duì)容易的再造過(guò)程使得持續(xù)改進(jìn)成為經(jīng)常件的活動(dòng)。
社會(huì)發(fā)展到現(xiàn)在,軟件是最能模擬人類日常工作和管理的產(chǎn)品,上作和管理制度以及人們自身喜好的變化都會(huì)要求軟件隨之進(jìn)行變化,所以要一蹴就地滿足變化的需求是不可能的,只有分階段的開發(fā)和持續(xù)改進(jìn)才能緊跟不斷變化的需求。這也是軟件總是行眾多版本的原因。
要適應(yīng)軟件的持續(xù)改進(jìn),軟件的基礎(chǔ)架構(gòu)就顯得尤為重要,采用開放的體系結(jié)構(gòu)和遵循相關(guān)的國(guó)際/國(guó)內(nèi)標(biāo)準(zhǔn)是唯一正確的途徑。