軟件工程-敏捷開發概述
發表時間:2020-10-26
發布人:葵宇科技
浏覽次數:31
敏捷開發的效果【形象的圖展示】
敏捷更符合軟件開發規律
軟件更像一個(gè)活着的植物,軟件開發是自 底向上逐步有序的生長過程 ,類似于植物自然生長 敏捷開發 遵循軟件客觀規律 ,不斷的 進行疊代增量開發 ,最終交付符合客戶價值的産品 什麼是敏捷軟件開發 ? 敏捷開發是一個(gè) 概念框架 ,這個(gè)概念框架是由滿足 敏捷宣言的價值和(hé)原則的一系列方法和(hé)實踐組成 , 敏捷開發 不是固定的【沒有固定的步驟,比如(rú)你(nǐ)自己的房(fáng)子(zǐ)你(nǐ)随意的裝修,看你(nǐ)的心情】,它是由自我管理、不同功能的團隊一起合作,在滿足團隊自身環境的一系列實踐和(hé)方法之上,逐步演化而來。1.敏捷開發浪潮
看看到底又那些公司在使用敏捷開發
敏捷開發流程:就是讓我們盡量能完美的完成用戶需求的一種開發模式【快速實現用戶想要的軟件】 ,無論是 上百人的大型團隊,還是小到 幾個(gè)人或者兩個(gè)人的小型團隊
- ISO 9000(09版)标準将在原來八大原則的基礎上新增敏捷原則
- 2000年美國軍方軟件開發标準(DOD 5000.2)推薦疊代為軟件開發優選模式
- 世界影響最大的美國波多裡奇國家質量獎将敏捷作為核心的十一大原則之一
2.敏捷開發曆史:【軟件開發順應時代變化,從重型過程轉向輕量型敏捷】
20世紀60年代 軟件作坊軟件規模小,已作坊式開發為主【比如(rú)說兩個(gè)人開發一個(gè)項目,隻要緊密的溝通(tōng)就可(kě)以這個(gè) 項目比較好的完成,即使出了很大的更動(dòng),由于軟件比較小,大不了重新寫一遍都是可(kě)以的 】70年代 軟件危機硬件飛速發展,軟件規模和(hé)複雜度激增,引發軟件危機【作坊式開發更不上時代了,軟件越來越龐大,需求越來越多,沒有很好的過程管理,和(hé)科學的開發流程就會很亂。比如(rú)打仗,部隊零零散散,說不定打起仗來都跑路(lù)了,這裡也是相似的 程序員相互推卸責任,說不定到後面,寫出來的産品都不是用戶想要的】80年代 軟件過程控制引入制造業(yè)的成熟的生産制造管理方法,以“過程為中(zhōng)心”分階段來控制軟件開發(瀑布模型【大緻流程:需求分析->設計->編碼->測試->産品】),一定程度緩解了軟件危機【把軟件劃分成多個(gè)階段,每個(gè)階段的工作都不一樣,但瀑布模型流程比較複雜,成本相應的比較高(因為可(kě)能每個(gè)過程都可(kě)能增加很多約束和(hé)限制,很難控制)】90年代 重型過程軟件失敗的經驗促使過程被不斷增加約束和(hé)限制,軟件開發過程日益“重型化”,開發效率降低,響應速度變慢;【用戶要改點需求就變得很困-難,說不定等開發出來,軟件已經過時了,所以這種方式不是很靈活】2001-今天 敏捷正在流行随着 信息化時代的到來,需求可(kě)能變更的很快,交付周期【軟件做的越快越好】成為企業(yè)核心競争力,輕量級的,更能夠适應變化的敏捷開發方法被普遍認同并 變得 迅速的流行。
3.敏捷宣言揭示更好的軟件開發方法
我們正在通(tōng)過親身實踐以及幫助他人實踐,揭示更好地軟件開發 方法。通(tōng)過這項工作,我們認為:
【敏捷宣言-價值觀】
1.個(gè)體交互【客戶與開發者&&開發者團隊内部的溝通(tōng)】
勝過過程和(hé)工具【敏捷也有過程和(hé)工具,隻是說交互更重要】2.可(kě)以工作的軟件【文(wén)檔寫的在全,但是我們的目的還是在于做出軟件,給用戶提供一個(gè)可(kě)以用的軟件,用戶說:這個(gè)不是我想要的,這個(gè)不是我想要的,我們在把軟件進行疊代,最終的軟件比較符合用戶的需求】勝過面面俱到的文(wén)檔3.客戶合作【萬一 文(wén)檔 和(hé) 客戶的要求 理解有差異,防止軟件出來,互相撕逼,互相甩鍋,跟客戶之間有分歧的 時候,抱着合作的心态交流】勝過合同談判4.響應變化【在最短(duǎn)的時間内,響應用戶需求的變化,免得按計劃走跟不上變化,用戶覺得花(huā)了一堆錢 得到一個(gè) 垃圾】勝過遵循計劃 雖然右項具有價值 但我們認為左項更具有價值敏捷宣言( 2001年)是 敏捷起源的基礎 ,由上述4個(gè)簡單的價值觀組成,敏捷宣言的簽署推動(dòng)了敏捷運動(dòng) 敏捷宣言本質是揭示一種更好的軟件開發方式,啟迪人們重新思考軟件開發中(zhōng)的價值和(hé)如(rú)何更好的工作
4.敏捷開發十二項原則【指導原則,但不是一塵不變的】
- 1. 我們的最高目标是,通(tōng)過盡早和(hé)持續地交付有價值的軟件來滿足客戶。【前期我們做版本把最核心的功能實現了,就給用戶使用看看用戶的建議或者意見】
- 2.歡迎對需求提出變更——即使是在項目開發後期。要善于利用需求變更,幫助客戶獲得競争優勢。【因為市場這個(gè)東西變化很快,說不等已經有别的客戶有了這個(gè)相似的軟件,客戶在用這個(gè)軟件市場就沒那麼大了,所以要歡迎用戶提出變更】
- 3.要不斷交付可(kě)用的軟件,周期從幾周到幾個(gè)月(yuè)不等,且越短(duǎn)越好。【目的:根據用戶的建議和(hé)意見修改軟件,盡可(kě)能的滿足用戶】
- 4.項目過程中(zhōng),業(yè)務人員【了解需求的】與開發人員必須在一起工作。【有問(wèn)題及時發現,及時修改】
- 5.要善于激勵項目人員,給他們以所需要的環境和(hé)支持,并相信他們能夠完成任務。【奶他們就行】
- 6.無論是團隊内還是團隊間,最有效的溝通(tōng)方法是面對面的交談。【文(wén)檔交流,大家都知道中(zhōng)華文(wén)化博大精深,同樣的漢字可(kě)能有誤解】
- 7.可(kě)用的軟件是衡量進度的主要指标。【不要用 軟件文(wén)檔什麼模塊來衡量軟件的進度,而是可(kě)用的軟件】
- 8.敏捷過程提倡可(kě)持續的開發。項目方、開發人員和(hé)用戶應該能夠保持恒久穩定的進展 速度。【和(hé)用戶商(shāng)談,有問(wèn)題馬上進行确認,馬上修改】
- 9.對技術(shù)的精益求精以及對設計的不斷完善将提升敏捷性【功能越來越多,涉及到的技術(shù)也越來越多,設計完善可(kě)以提高效率】
- 10.要做到簡潔,即盡最大可(kě)能減少(shǎo)不必要的工作。這是一門藝術(shù)。【每個(gè)模塊用簡單的方法實現】
- 11.最佳的架構、需求和(hé)設計出自于自組織的團隊。【大家自發的,做事情比較自覺,而不是被命令式的團隊,心裡素質不好:直接删庫跑路(lù)之類的】
- 12.團隊要定期反省如(rú)何能夠做到更有效,并相應地調整團隊的行為。【沒有最好,隻有更好 比如(rú):我們這種方式可(kě)以,但有什麼地方有不足和(hé)提高呢(ne)】
5.敏捷對生産率、質量、滿意度、成本有明顯改進