本文關(guān)鍵字
摘 要:每個(gè)軟件開(kāi)發(fā)項目都要經(jīng)過(guò)漫長(cháng)的生命周期,有很多因素可以影響其成功與否。本文從四個(gè)方面闡述了軟件開(kāi)發(fā)項目的成敗關(guān)鍵,并給出了一些案例。
關(guān)鍵詞:軟件開(kāi)發(fā);軟件項目;項目管理
引言
軟件項目的開(kāi)發(fā)過(guò)程經(jīng)過(guò)了數十載的磨合與改進(jìn),迄今為止,軟件開(kāi)發(fā)已經(jīng)進(jìn)入到了一個(gè)前所未有的時(shí)期,然而,軟件項目的質(zhì)量并沒(méi)有得到提高,相反卻有所下降。任何一個(gè)軟件開(kāi)發(fā)項目都必須經(jīng)過(guò)問(wèn)題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試、軟件維護等8個(gè)階段,開(kāi)發(fā)軟件項目過(guò)程中所涉及的內容都是無(wú)形的東西,其最終產(chǎn)品是軟件的程序代碼及一些文檔。開(kāi)發(fā)軟件項目是一個(gè)龐大的系統工程,需要將開(kāi)發(fā)人員的主觀(guān)設計思想和工程化的開(kāi)發(fā)結合起來(lái),利用軟件工程方法管理、規范整個(gè)開(kāi)發(fā)過(guò)程。
盡管編程語(yǔ)言和測試工具在逐年改進(jìn)、完善,但是軟件開(kāi)發(fā)項目仍然仍然很難滿(mǎn)足客戶(hù)的實(shí)際需求。據Standish Group咨詢(xún)公司發(fā)布的數據可看出,軟件開(kāi)發(fā)項目的成功率仍然很低。一個(gè)軟件開(kāi)發(fā)項目從其成立開(kāi)始,項目各方人員都期望項目能夠根據既定的計劃一步步順利地走向成功,然而影響項目的成敗因素是多方面的。
1 項目范圍管理
項目范圍的管理就是對項目應該包括什么和不應該包括什么進(jìn)行相應的定義和控制。它包括用以保證項目能按要求的范圍完成所涉及的所有過(guò)程,包括:確定項目的需求、定義規劃項目的范圍、范圍管理的實(shí)施、范圍的變更控制管理以及范圍核實(shí)等。
在軟件開(kāi)發(fā)項目中其范圍、時(shí)間和成本是互相影響的,其中項目范圍的管理尤為重要。項目的范圍越大,其耗費的時(shí)間和成本就會(huì )越多,反之亦然。因此,必須在項目開(kāi)發(fā)之初明確項目的范圍,從而保證項目成本和時(shí)間的可控制性。
失敗案例:某企業(yè)需要開(kāi)發(fā)一生產(chǎn)管理軟件,因為項目管理范圍界定不清,隨著(zhù)用戶(hù)反復更新需求,使得該項目的投資成本比預期高出了幾倍,最后在項目啟動(dòng)一年后,只能半途而廢。
成功案例:所有成功的軟件開(kāi)發(fā)案例一樣,在項目啟動(dòng)之前就會(huì )明確用戶(hù)的需求,而且將這些需求量化,項目組所在的公司也制定了一套完善的變更控制管理流程,在項目進(jìn)行中,所有內容都按找原計劃規范進(jìn)行。一般項目完成時(shí)間和成本與預先估算的相差無(wú)幾。
2 開(kāi)發(fā)隊伍
在開(kāi)發(fā)軟件項目的過(guò)程中制約項目成敗的最關(guān)鍵的因素是“人”,因此,開(kāi)發(fā)隊伍的建設至關(guān)重要。
2.1 確立軟件項目經(jīng)理權威、主導地位
軟件項目經(jīng)理是整個(gè)軟件開(kāi)發(fā)團隊的帶領(lǐng)者,必須有能力領(lǐng)導項目團隊準時(shí)、優(yōu)質(zhì)地完成全部工作,確保項目目標的實(shí)現。軟件開(kāi)發(fā)的項目經(jīng)理,既要是一個(gè)軟件開(kāi)發(fā)技術(shù)上的專(zhuān)家,能夠設計易懂好用的軟件,還要是一個(gè)管理專(zhuān)家,能夠得心應手的計劃和管理一個(gè)開(kāi)發(fā)項目,協(xié)調團隊中間的合作,推動(dòng)項目進(jìn)程的管理專(zhuān)家。這就要求軟件項目經(jīng)理必須熟悉整個(gè)項目開(kāi)發(fā)的全過(guò)程,同時(shí)具有統領(lǐng)全局的眼光,在關(guān)鍵時(shí)刻要能做出準確的決策。只有具有良好溝通能力和勇于承擔責任的項目經(jīng)歷才能在軟件開(kāi)發(fā)團隊中樹(shù)立自己的權威。
2.2 充分發(fā)揮軟件開(kāi)發(fā)人員的個(gè)性
每個(gè)軟件開(kāi)發(fā)人員都有不同的個(gè)性,在軟件開(kāi)發(fā)過(guò)程中,項目經(jīng)理應該根據各個(gè)開(kāi)發(fā)人員的個(gè)性分配不同的開(kāi)發(fā)任務(wù)。這樣既可以充分調動(dòng)開(kāi)發(fā)人員的積極性和工作熱情,又可以提高項目開(kāi)發(fā)的效率,同時(shí)又有利于整個(gè)團隊的和諧。當然,這一切必須基于軟件開(kāi)發(fā)的規范和企業(yè)的管理制度。
2.3 培養團隊的集體榮譽(yù)感
軟件開(kāi)發(fā)項目的執行過(guò)程是一個(gè)由很多團隊共同出力、同步進(jìn)行的過(guò)程,需要整個(gè)開(kāi)發(fā)部門(mén)的各個(gè)團隊良好的配合和協(xié)作來(lái)幫助最后達到項目的整體目標,制造出優(yōu)秀的軟件。在軟件開(kāi)發(fā)項目的執行過(guò)程中,團隊的配合十分重要。一個(gè)好的團隊才有可能開(kāi)發(fā)出一個(gè)優(yōu)秀的產(chǎn)品,一個(gè)軟件開(kāi)發(fā)項目的成功實(shí)際上是整個(gè)項目開(kāi)發(fā)團隊的努力的結果。因此,必須強調協(xié)作配合的精神,增強團隊的凝聚力。
2.4 形成溝通、互助、互信的工作氛圍
任何項目的實(shí)施都不可能一帆風(fēng)順,遇到問(wèn)題應及時(shí)溝通處理。通過(guò)溝通消除彼此誤解,快速找到解決問(wèn)題的辦法。不僅需要項目經(jīng)理充分扮演好“潤滑油”的角色,還需要所有人員充分投入。只有彼此信任互相幫助,整個(gè)團隊才有可能協(xié)調統一,才會(huì )默契十足。在溝通、互助、互信的工作氛圍內,實(shí)現工作的效率的最大化。
3 設計能力
項目組設計人員能力的不足是項目失敗的原因之一。在開(kāi)發(fā)軟件項目過(guò)程中,由于設計人員的能力不夠而導致設計結果無(wú)法實(shí)現的時(shí)有發(fā)生。一些中小型團隊,為降低成本,只重視代碼、實(shí)現任務(wù),不重視需求分析、架構設計等,對軟件開(kāi)發(fā)過(guò)程管理非常不規范,增加了軟件開(kāi)發(fā)項目的風(fēng)險。開(kāi)發(fā)技術(shù)人員的流動(dòng)性也影響著(zhù)開(kāi)發(fā)團隊的穩定,另一方面在一些中小城市,缺乏優(yōu)秀軟件開(kāi)發(fā)人員。如何吸引高素質(zhì)開(kāi)發(fā)人才,培養穩定優(yōu)秀的開(kāi)發(fā)團隊,是目前軟件開(kāi)發(fā)企業(yè)需要解決的問(wèn)題。
失敗案例:
由于開(kāi)發(fā)人員本身的技術(shù)問(wèn)題而造成的項目失敗的案例非常多。很多剛起步的小型軟件公司,急功近利,只想把項目拿到手,不管自己團隊的能力如何。我的一個(gè)朋友就是如此,拿到了一個(gè)ERP的項目,就想自己開(kāi)公司,拉了一批好朋友單干,結果因為能力不足,不僅項目泡湯了,剛開(kāi)的公司也宣告結束了。
4 軟件開(kāi)發(fā)文檔的完善與規范
雖然在真正的軟件開(kāi)發(fā)中,文檔、測試等工作對軟件產(chǎn)品的質(zhì)量起著(zhù)重要的作用,但是開(kāi)發(fā)人員對編碼往往比對文檔重視,這樣造成的后果是對軟件的后期維護帶來(lái)了很大的困難,從而使得最終的軟件產(chǎn)品不合格,導致軟件開(kāi)發(fā)項目的失敗。
很多軟件公司不重視甚至是根本不做文檔的編寫(xiě)工作,認為項目能夠按期完成就是最重要的。而在軟件開(kāi)發(fā)流程中的最后階段,軟件測試和維護的時(shí)間實(shí)際要占整個(gè)軟件生命周期的一半甚至還要多,在軟件維護的過(guò)程中,如果沒(méi)有完整的軟件文檔,軟件維護工作是相當困難的。在一些中小型軟件公司人才流動(dòng)性大,一旦原來(lái)開(kāi)發(fā)的團隊解散了,再想在軟件維護的時(shí)候將他們重新組織起來(lái)討論,基本上不可能。
失敗案例:
早期很多軟件項目因為缺乏完整的或者有參考價(jià)值的文檔,造成后期軟件維護異常艱難,軟件架構很難一下子摸得清楚,原班人馬又組織不起來(lái),因此公司不得不放棄原來(lái)的軟件而重新組織人馬重新開(kāi)發(fā),造成大量的人力物力的浪費。
5 結論
軟件項目成敗是由許多因素決定的,也許其中某一個(gè)環(huán)節某一個(gè)不經(jīng)意的錯誤就會(huì )導致整個(gè)項目的失敗。開(kāi)發(fā)團隊中的每一個(gè)人都必須規范整個(gè)軟件項目開(kāi)發(fā)的詳細過(guò)程,才能將開(kāi)發(fā)風(fēng)險降到最低,從而保證軟件開(kāi)發(fā)項目的成功完成。