工程軟件如何進行管理(圖文)
軟件工程管理可以定義為對活動進行規劃、協調、測量、監視、控制和報告等管理應用程序,以確保軟件產品和軟件工程服務得到高效、高效的交付,并造福于利害關系方。相關管理學是所有知識領域的一個重要組成部分(KA),但是它肯定對這一知識領域比其他知識領域更有意義。量度也是所有知識領域中的一個重要方面,本文介紹測量方法。
從某種意義上說,管理軟件工程項目的方法也是可能的,這是其它復雜工作的。但是,在軟件項目和軟件生命周期流程中,存在著使有效管理更加復雜的方面,包括:
在項目管理知識系統(PMBOK)®和SWX中,用語初始化、計劃、執行、監視和關閉來描述過程組。
顧客通常不知道需要什么,什么是可行的。
用戶常常沒有意識到軟件工程內在的復雜性,尤其是在需求變化方面。
更多的了解和不斷變化的環境將可能產生新的或者變化的軟件需求。
軟件經常使用迭代過程,而非一系列封閉的任務,因為需求發生變化。
軟體工程學必須結合創意和紀律。有時很難在這兩者之間找到一個平衡。
其新穎性和復雜性一般都很高。
基本技術通常會快速升級。
軟體工程管理活動分為三個層次:組織與基礎結構管理、項目管理以及度量計劃的管理。在這個知識領域的描述中,后兩個將會詳細介紹。但是,這并不意味著降低組織和基礎設施管理問題的重要性。一般認為,軟件組織工程經理應熟悉本知識領域所描述的項目管理和軟件度量。也應對某些特定領域有所了解。與此類似,如果復雜項目和程序(其中軟件是系統體系結構的一部分)的管理者能夠認識到軟件過程引入項目管理和項目度量的不同之處。
分解軟件工程管理知識領域的主題。
機構管理的其他方面(例如,組織的方針和過程提供一個進行軟件工程項目的框架)也對軟件工程有影響。為有效地開發和維護軟件,可能需要根據需要對策略和流程進行調整。另外,為了有效地管理組織層面的軟件工程,可能需要制定或者確立一些具體的軟件工程戰略。舉例來說,針對軟件工程任務(如軟件設計、軟件構建、評估、監測和報告)制定一個組織范圍的過程或過程,通常需要有策略。這類政策對跨組織軟件工程項目的長期有效管理非常重要(例如,通過該政策為以往的項目業績分析和實現改進建立一個連貫的基礎)。
機構管理的另一個重要方面是人事管理政策和程序,這些政策和程序不僅在項目層面上進行招聘、培訓和職業發展指導,還包括組織的長期成功。軟體工程師可能會面對獨特的培訓或人員管理挑戰(例如,在基礎技術經歷快速、不斷變化的環境中維持貨幣)。
交流管理也常被提及,它是個人在某一領域被忽略卻很重要的方面,準確了解用戶需求、軟件需求、軟件設計都是必不可少的。另外,“投資組合管理”,它提供了一種全面的視圖,不僅僅是目前在各種項目和程序(集成項目)中開發的軟件,而且也是組織內規劃并目前使用的軟件,都值得考慮。另外,軟件重用也是維持和提高生產率和競爭力的關鍵因素。要有效地重用,就必須有戰略眼光,反映重用的優缺點。
除理解管理方面對軟件項目產生的獨特影響外,軟件工程師也應該對本知識領域所討論的管理方面有一個更為普遍的理解(即使是畢業后的最初幾年)。
與企業其他職能領域相結合的組織文化和行為屬性,可以間接地影響組織的軟件工程過程。
在項目管理知識體系指導(PMBOK®指導)和PMBOK®指南(SWX)的軟件擴展中,可以找到關于軟件項目管理的大量信息。每個指南包含10個項目管理知識:項目綜合管理、項目范圍管理、項目時間管理、項目成本管理、項目質量管理、項目人力資源管理、項目溝通管理、項目風險管理、項目采購管理、項目利益相關方管理。每一個領域的知識都直接關系到軟件工程管理的知識范圍。
其它參考資料以及本知識領域的進一步閱讀也會提供其它信息。本知識范圍為軟件工程管理知識,包括軟件項目管理過程的前五個主題圖7.1(開始和范圍定義,軟件項目計劃,軟件項目開發,審查與評估,結束),+軟件工程測量在第六主題中,軟件工程管理工具。盡管項目管理和度量管理常常被認為是分離的,但事實上,每一種都有很多不同的特性,緊密的關系導致了本知識領域的綜合處理。遺憾的是,軟件業普遍認為,軟件產品交付太遲,超過預算,質量差,功能不完善。
所有真實工程學原理(參見工程基礎知識領域的測量)都能幫助提高知覺和現實。沒有度量(定性和定量)的管理,基本上就意味著缺乏紀律,沒有管理的度量就意味著缺乏目標或環境。高效管理需要綜合衡量和經驗。
在此,工作的定義如下:
管理學是為了達到組織確定的戰略目標而需要的過程和控制體系。
測量涉及到軟件工程工作產品、流程和資源以及從其派生出來的模型,無論模型是否采用了統計或其它技術開發。
在這一知識領域的軟件工程項目管理中,軟件工程度量被廣泛應用。
這一知識領域與指南中的其它知識領域緊密相關,閱讀以下對此尤其有用:
工程學基礎知識領域描述了一些通用的度量概念,它們可以直接應用到知識領域的軟件工程度量部分。另外,本節中介紹的工程基礎統計分析中介紹的概念和技術可直接適用于許多主題。
軟體需求知識域描述了在項目開始和范圍定義階段需要進行的一些活動。
軟體組態管理知識范圍涉及軟件組態的識別、控制、狀態統計和審核,以及軟件發布管理和傳送及軟件配置管理工具。
軟件工程過程知識是對軟件生命周期模型、過程與工作產品之間關系進行描述的。
在軟件質量知識領域,許多軟件工程活動都以質量為管理目標。
軟體工程經濟知識領域主要討論如何在商業環境下進行軟件相關決策。
分解軟件工程管理主題。
由于大部分軟件開發生命周期模型需要相似的活動,可以以不同的方式執行,因此主題的分解是基于活動的。圖7.1中顯示了這種細分。最高級元素分解圖顯示的是執行的活動,通常在軟件開發項目的管理、一個獨立的軟件開發生命周期模型(軟件工程過程知識領域,參見下一步的軟件生命周期模型)中,已選定一個具體的項目。不建議將特定生命周期模型用于這一細分。分拆只表示正在進行的事情,并不表示每項活動發生的時間、方式和次數。七大主題是:
初始化和范圍定義,處理軟件工程項目啟動決策;
*軟件項目計劃,從管理角度出發,處理為準備成功的軟件工程項目而開展的活動;
*軟件項目開發,處理軟件工程項目實施期間經認可的軟件工程管理活動;
*評估與評估,確保技術、進度、成本和質量工程活動令人滿意;
*結束,指為了完成一項工程而完成的活動;
*軟件工程度量,它處理測量方案在軟件工程組織中的有效開發和執行;
*軟件工程管理工具,描述如何選擇和使用工具來管理軟件工程項目。