1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 敏捷提升軟件研發管理的論文

        時間:2024-08-05 22:37:50 管理畢業論文 我要投稿
        • 相關推薦

        敏捷提升軟件研發管理的論文

          敏捷開發模式開辟了軟件開發方法的新空間,這給中國軟件企業帶來了新開發模式機遇的同時,也同樣帶來了前所未有的挑戰。

        敏捷提升軟件研發管理的論文

          世界五大軟件開發教父之一的Matin Fowler認為,當前只有敏捷的軟件開發模式才能夠使IT跟上業務變化的腳步,只有敏捷的開發模式才能使軟件實現快速交付的同時又能成為一個高質量、低成本的軟件。

          敏捷開發作為一個新的軟件開發模式的新名詞,其中蘊涵著無限的商機,同時,也是對中國軟件企業的一次嚴峻的考驗。對于起步遠遠滯后于西方的中國軟件業而言,各種提高軟件開發速度及降低軟件開發成本的方式和措施都是值得探討與借鑒的。筆者認為敏捷開發模式對于中國的軟件企業正是一個行之有效的開發方式。

          問題纏繞軟件開發

          軟件開發過程中問題多多,這不是新發現。早在上世紀60年代,北約(NATO)就提出了軟件危機這一概念。在《人月神話》一書中,軟件開發則被喻為讓眾多史前巨獸痛苦掙扎,卻無力擺脫的焦油坑。隨著需求和應用的日趨深入與復雜化,軟件開發的難度和遇到的問題以幾何級數形式增長,焦油坑也由此變得更深、更大。

          復雜程度高、開發周期長、結果無保證,這是軟件開發的通病。針對這些問題,人們創造了N種方法,并由此產生了軟件工程學。而在實際工作過程中,軟件開發的多變性和不可控制性,仍可輕易摧垮項目開始時項目組苦心經營的開發體系和方法,無論是業界公認的需求、變更、人員流動,還是各種看起來并不起眼的小事件。

          以人為本的敏捷開發

          敏捷開發(Agile Software Development)是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,就如同項目管理中將工作任務及工作目標層層分解一樣,把軟件項目的構建切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。

          通過上面的定義可以看出,敏捷開發其實借鑒了大量軟件工程中的方法。是傳統軟件開發意義上的改善,而非創新。例如在傳統的軟件開發中,把設計和構建這兩個過程分開進行,設計完成之后,再按照設計構建。

          實際上,由于需求在不斷變化,因此在軟件開發的過程中,很難把設計和編程完全區分開來。而在敏捷開發中,先搭建一個比較粗的主構建框架,只對用戶目前感興趣的部分詳細開發,并很快交付使用,在使用過程中,按用戶的需求進行疊蓋修正,周而復始,循序漸進的開發軟件產品直到完成。

          正如ThoughtWorks的首席科學家Matin Flower所說:“在敏捷軟件開發的過程中,我們每兩周都會得到一個可以工作的軟件,這種非常短的循環,使終端客戶可以及時、快速地看到花錢構建的軟件是一個什么樣的結果!币虼嗣艚蓍_發也可理解為在原有軟件開發方法基礎上的整合——取其精華,去其糟粕。

          敏捷開發的特點

          敏捷方法主要有兩個特點,這也是其區別于其他方法,尤其是重型方法的最主要特征:

          敏捷開發方法是“適應性”(Adaptive)而非“預設性” (Predictive)。

          這里說的預設性,可以通過一般性工程項目的做法理解,比如土木工程,在這類工程實踐中,有比較穩定的需求,同時建設項目的要求也相對固定,所以此類項目通常非常強調施工前的設計規劃。只要圖紙設計得合理并考慮充分,施工隊伍可以完全遵照圖紙順利建造,并且可以很方便地把圖紙劃分為許多更小的部分交給不同的施工人員分別完成。

          然而,在軟件開發的項目中,這些穩定的因素卻很難尋求。軟件的設計難處在于軟件需求的不穩定,從而導致軟件過程的不可預測。但是傳統的控制項目模式都是試圖對一個軟件開發項目在很長的時間跨度內做出詳細的計劃,然后依計劃進行開發。所以,這類方法在不可預測的環境下,很難適應變化,甚至是拒絕變化。

          與之相反的敏捷方法則是歡迎變化,目的就是成為適應變化的過程,甚至能允許改變自身來適應變化。所以稱之為適應性方法。

          敏捷開發方法是“面向人” (people oriented)而非“面向過程”(process oriented)。

          Matin Flower認為:“在敏捷開發過程中,人是第一位的,過程是第二位的。所以就個人來說,應該可以從各種不同的過程中找到真正適合自己的過程!边@與軟件工程理論提倡的先過程后人正好相反。

          在傳統的軟件開發工作中,項目團隊分配工作的重點是明確角色的定義,以個人的能力去適應角色,而角色的定義就是為了保證過程的實施,即個人以資源的方式被分配給角色,同時,資源是可以替代的,而角色不可以替代。

          然而,傳統軟件開發的這些方法在敏捷開發方式中被完全顛覆。敏捷開發試圖使軟件開發工作能夠利用人的特點,充分發揮人的創造能力。

          敏捷開發的目的是建立起一個項目團隊全員參與到軟件開發中,包括設定軟件開發流程的管理人員,只有這樣軟件開發流程才有可接受性。同時敏捷開發要求研發人員獨立自主在技術上進行決策,因為他們是最了解什么技術是需要和不需要的。再者,敏捷開發特別重視項目團隊中的信息交流,有調查顯示:“項目失敗的原因最終都可追溯到信息沒有及時準確地傳遞到應該接受它的人。”

          敏捷開發的問題和思考

          雖然敏捷開發是個行之有效的軟件開發模式,但是任何模式和方法的建立都是基于理論的基礎,往往和現實的情況存在差異,這樣就會對軟件企業操作及執行帶來很大的困難,甚至是誤導。所以,僅僅提出敏捷開發的模式是不夠的,對敏捷開發的議題的討論并沒有終結。下面僅就筆者理解基礎上提出一些問題的參考。

          項目內部協調的困難加大

          敏捷開發要求將大項目分解成為很多小項目,這樣雖然易于考察、易于管理和易于控制,但是這樣也帶來了項目內部各個小項目協調問題。對于各個小項目的執行,人員分配及其他資源分配的沖突及進度的沖突是最主要的沖突,而且這些沖突如果解決不徹底,將會對整個大項目帶來難以預測的負面結果。

          對管理水平的要求提高

          敏捷開發的問題最后就是管理的問題。這和很多軟件企業重技術輕管理的做法是截然相反的,企業的這種心智模式一方面是源自管理人才的缺乏和項目組成員對管理制度的排斥;另一方面則是因為現行規范和管理制度與實際工作中的不合拍。從這一層面而言,敏捷開發對管理水平要求提高對軟件企業領導者的觀念是一種挑戰。

          對執行力的要求

          任何理論只有落到實處,才能為企業為社會創造財富。這是永恒不變的道理。敏捷開發模式需要經驗豐富、配合良好而又異常穩定的項目組、積極而富有成效的溝通、良好的管理手段和流程、有效的工具與平臺,只有滿足這些條件我們才能實現敏捷開發模式帶給我們的益處。

          敏捷開發的出現,同樣讓以人為本還是以過程為本的爭論上升到了理論層面。在敏捷開發過程中,人是第一位的,過程是第二位的,所以就個人而言,應該可以從各種不同的過程中找到真正適合自己的過程。這與軟件工程理論提倡的先過程后人正好相反,因而被不少人戲稱為對工程學原理的叛逆。

          敏捷方法對需求不確定或常常變更的情形是有效的。但是,沒有哪一種開發方法是適用于所有項目開發的,正如上文所說,敏捷方法給傳統軟件開發帶來了一種新的思路和開發模式,但也給企業帶來了軟件研發項目管理開發過程的整合困難。

          所以,在實際開發過程中,需要根據實際項目的需要選擇合適的開發方法,并盡最大可能發揮人的創造性和潛能,利用不同人的不同特點,充分溝通,這才是在敏捷方法中真正需要學習的。

        【敏捷提升軟件研發管理的論文】相關文章:

        軟件采購高校管理的論文04-24

        軟件過程管理論文07-04

        高校行政管理效能提升論文07-22

        提升科技管理效率的方式論文09-18

        軟件工程管理論文09-09

        軟件項目組合管理戰略論文07-09

        合作研發提升我國醫藥企業的研發實力06-28

        通訊行業研發項目的管理論文06-25

        水利渠道維護管理的現狀與提升措施論文10-05

        提升電子信息工程管理的途徑論文10-16

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>