我的軟體專案過程管理經驗(轉)

ger8發表於2007-08-15
當前,在整個軟體行業的激烈競爭下,專案開發的成敗將關係到軟體企業的生存與發展,而專案的開發只能建立在自我不斷創新和高質量滿足客戶要求的基礎上。建立這種基礎的前提就是要具備很強的對“需求、問題或機會”的識別能力以及提出相應解決方案的能力,這也是專案開發的前提條件及專案管理者和領導者應該具備的能力。

下面,就專案的開發過程進行簡單的闡述。

首先,進行一個專案開發之前,要明確客戶的需求。客戶的需求往往是潛在的,要使這種需求明確化,相關部門和專案組管理者和領導者需要在對客戶情況準確判斷的基礎上,自己提出需求建議書和相應的解決方案申請書(所有人員必須對客戶的需求業務和本專案組的軟體技術能力非常瞭解,然後提供切實可行的需求解決方案)。這一工作完成的是否出色對獲取客戶合同以及能否成功完成專案的開發和產品的推廣至關重要。目前軟體業中普遍存在的產品與技術大多重在突出技術特點本身而忽視了對客戶需求的調查及自己如何滿足客戶,造成了與客戶觀念上的一些脫節。我個人認為先對需求進行分析、總結和概括,然後提出準確可行的解決方案是非常重要的。因為只用這樣才能明確專案的內容和目標。

完成了專案建議書和解決方案申請書後,根據實際需求和市場實際運作效果,我們就可以確定是開始進行專案產品開發還是進行其它研發或者根據新的客戶需求完善本專案。所有這些取決於市場的反饋資訊,根據不同的市場反饋做出不同的開發計劃,只有這樣才能避免閉著眼睛走路,同時專案更有了明確的開發目標。一旦專案列入開發計劃,我們就應該集中技術人員、成立專案組、確定專案負責人進行實質性的專案開發工作。

在專案實現過程中,所有的依據應該原於客戶的需求和當前技術允許範圍。客戶的需求在目前階段體現為上述解決方案;而技術允許範圍是指根據當前專案組的技術水平來估計專案組的技術能力,保證應用的方案必須是可行的,否則專案開發就此中止,導致整個專案在此階段失敗。同時,必須在此階段對整個專案過程中的難點進行預測和估計,並能對可能發生的突發情況做出準備並提供相應的解決方法。總之,在此階段必須對專案做好充分的準備,為專案的順利進行提供保障。實際上,此過程為一個將具體問題進行抽象和建模的過程,然後對模型進行可行性分析,得出結論。為下面的專案實現做出充分準備。

專案可行性分析完成以後,則開始進行軟體實現。主要包括以下幾部分:系統結構設計(大體體現和概括了業務邏輯和業務流程)、軟體結構設計(軟體的體系結構、效能分析、瓶頸問題解決方案、子系統劃分等)、軟體模組分配、編寫程式碼、軟體模組整合、軟體子系統整合、軟體子系統測試、系統聯調、軟體系統整體測試、軟體發行。以上各個步驟,為典型的軟體設計過程,在這裡我就不再闡述。但是值得提出的一點是:軟體實現過程越規範,效率和軟體質量越高,專案可維護性就越好。

上面已經開始了一個專案的實際開發實現。至於專案成功與否,在目前階段最大的因素取決於專案組成員間的合作、工作效率和士氣。優秀的專案領導者、有效工作的專案團隊、對專案管理有利的組織結構,是一切專案成功的理想環境。專案團隊往往因為缺乏充分的授權和支援,造成逐漸衰落並最終導致專案的失敗。

既然是一個團隊,如何保持整個團隊的狀態和團結呢?我認為最為重要的是如何處理和協調專案組成員間的關係以及如何保證整個團隊的目標不發生偏離。首先,專案成員間必須相互信任,成員間只有彼此相互信任,才有可能達成共同的目標,才可能成功的進行專案開發。其次,調動專案成員的積極性。專案成員間必須要多交流和溝通,包括技術交流和感情溝通。第三,每個專案成員都應有責任感,必須敢於承擔責任,整個專案團隊是一個整體,每一個成員只是團隊這部機器的一個零件。綜上,我認為團隊的合作主要包括以下兩個方面:首先是關於合作的態度和精神。軟體產業本身的發展在於有一個讓所有從事軟體業的人共同認可的文化平臺,在這個平臺上,當每個人強調自己聰明才智的時候,實際上他們也在最大程度地分享別人的成果,使知識、資訊極大共享,使大家都能得到很快的提高。所以有人講,搞軟體或搞知識產業的人可以在短時間內創造奇蹟,而創造這個奇蹟的前提就是每個人開放的思想和互相合作、互相促進、互相交流的行為。其次是關於創新。我們從事軟體業不應把創新習慣性地理解為純粹的技術創新,這樣往往在市場上就不能表現出很強的競爭能力。創新,應該表現在從技術的產生到技術的市場應用的一系列過程。

最後我想說的是:軟體業以人為本,軟體企業必須為從事軟體產業的個人創造出一種激發他們樂於奮鬥、並且能夠在其中充分體現個人價值的環境和文化。
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7839396/viewspace-958743/,如需轉載,請註明出處,否則將追究法律責任。

相關文章