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