敏捷軟件開發(fā)(敏捷軟件開發(fā)原則模式與實(shí)踐pdf)
本篇文章給大家談?wù)劽艚蒈浖_發(fā),以及敏捷軟件開發(fā)原則模式與實(shí)踐pdf對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
瀑布開發(fā)、敏捷開發(fā)的優(yōu)缺點(diǎn)是什么?
瀑布模型式就是是最典型的預(yù)見性的方法,嚴(yán)格遵循預(yù)先計(jì)劃的需求、分析、設(shè)計(jì)、編碼、測(cè)試的步驟順序進(jìn)行。敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。
一、瀑布開發(fā)
瀑布模型式是最典型的預(yù)見性的方法,嚴(yán)格遵循預(yù)先計(jì)劃的需求、分析、設(shè)計(jì)、編碼、測(cè)試的步驟順序進(jìn)行。步驟成果作為衡量進(jìn)度的方法,例如需求規(guī)格,設(shè)計(jì)文檔,測(cè)試計(jì)劃和代碼審閱等等。
瀑布式的主要的問(wèn)題是它的嚴(yán)格分級(jí)導(dǎo)致的自由度降低,項(xiàng)目早期即作出承諾導(dǎo)致對(duì)后期需求的變化難以調(diào)整,代價(jià)高昂。瀑布式方法在需求不明并且在項(xiàng)目進(jìn)行過(guò)程中可能變化的情況下基本是不可行的。
需求隔離:由于各階段的人員只能接觸到自己工作范圍內(nèi)的東西,所以對(duì)客戶需求的理解程度高低不等,開發(fā)人員更像是定義為流水線上的工人。
變更代價(jià)大:既然叫作瀑布,就意味著不應(yīng)該走回頭路。否則如果出現(xiàn)返工,付出的代價(jià)會(huì)很大。需求變更,編碼人員會(huì)很強(qiáng)的抵觸情緒。
束縛創(chuàng)造性:由于強(qiáng)調(diào)文檔管理,所以管理人員會(huì)比較喜歡,但是他束縛了開發(fā)人員的創(chuàng)造性。
周期漫長(zhǎng):整個(gè)開發(fā)持續(xù)的生命周期很長(zhǎng),需求和設(shè)計(jì)的時(shí)間會(huì)耗費(fèi)特別多,有時(shí)候會(huì)占用三分之一甚至更多時(shí)間,這樣整個(gè)周期就會(huì)變長(zhǎng),大都在半年到一年左右的時(shí)間,所以更適合需求相對(duì)穩(wěn)定的大項(xiàng)目。
二、敏捷軟件開發(fā)
敏捷軟件開發(fā)是基于敏捷宣言定義的價(jià)值觀和原則的一系列方法和實(shí)踐的總稱。自組織、跨職能團(tuán)隊(duì)運(yùn)用適合他們自身環(huán)境的實(shí)踐進(jìn)行演進(jìn)得出解決方案。
敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。
缺點(diǎn):
很難進(jìn)行準(zhǔn)確的資源規(guī)劃
很難準(zhǔn)確的定義“輕量的“或必要的文檔
很難把握整體產(chǎn)品的一致性
很難預(yù)測(cè)有限的終點(diǎn)
很難有效地進(jìn)行度量
希望能幫到你,謝謝!
什么是敏捷軟件開發(fā)?
敏捷開發(fā)是軟件開發(fā)行業(yè)的熱門詞匯之一,它是管理軟件開發(fā)項(xiàng)目的另一種方式。它不是一種特定的軟件開發(fā)方法,而是一組基于敏捷方法中所表達(dá)的價(jià)值觀和原則的方法和實(shí)踐的統(tǒng)稱,解決方案是通過(guò)自組織,跨職能的團(tuán)隊(duì)之間的協(xié)作來(lái)發(fā)展的。
敏捷是一個(gè)用來(lái)描述強(qiáng)調(diào)增量交付、團(tuán)隊(duì)協(xié)作、持續(xù)規(guī)劃和持續(xù)學(xué)習(xí)的軟件開發(fā)方法的術(shù)語(yǔ),而不是試圖在項(xiàng)目接近尾聲時(shí)一次性交付所有內(nèi)容。
敏捷側(cè)重于保持過(guò)程精益,并創(chuàng)建在最終實(shí)現(xiàn)之前經(jīng)過(guò)多次迭代的最小可行產(chǎn)品(MVPs)。反饋被不斷地收集和執(zhí)行,總的來(lái)說(shuō),這是一個(gè)更加動(dòng)態(tài)的過(guò)程,每個(gè)人都朝著一個(gè)目標(biāo)共同努力。
Scrum和其他領(lǐng)先的敏捷方法
敏捷是一種思維方式,是一套價(jià)值觀和原則。
敏捷是一種思考和行動(dòng)的方式。
敏捷是涉及短周期、迭代和增量交付、快速失敗獲得反饋、盡早向客戶交付業(yè)務(wù)價(jià)值以及有關(guān)人員協(xié)作、交互的一種開發(fā)方式。
敏捷是一種關(guān)于透明度、檢查和適應(yīng)的思維方式。
然而,敏捷并不包含任何角色、事件或工件。例如,Scrum是敏捷保護(hù)傘下被廣泛使用的框架之一,它可以幫助你變得更加敏捷,然而在敏捷運(yùn)動(dòng)中還有更多的框架,如看板、XP、Crystal等
Scrum敏捷傘
Scrum
Scrum是一個(gè)框架,在這個(gè)框架中,人們可以解決復(fù)雜的適應(yīng)性問(wèn)題,同時(shí)高效、創(chuàng)造性地交付最高價(jià)值的產(chǎn)品。它用于管理軟件項(xiàng)目、產(chǎn)品或應(yīng)用程序開發(fā)。它的重點(diǎn)是自適應(yīng)產(chǎn)品開發(fā)策略,其中跨職能團(tuán)隊(duì)作為一個(gè)單位,在2-4周內(nèi)(Sprint)達(dá)到一個(gè)共同的目標(biāo)。它由價(jià)值、工件、角色、儀式、規(guī)則和最佳實(shí)踐組成。
Lean
精益源自豐田生產(chǎn)系統(tǒng)(TPS),該系統(tǒng)在20世紀(jì)50年代、60年代及以后掀起了制造行業(yè)的革命。精益技術(shù)在制造業(yè)中占有一席之地,幫助各行各業(yè)消除浪費(fèi)、改進(jìn)流程并促進(jìn)了創(chuàng)新。軟件開發(fā)是精益方法的自然應(yīng)用,因?yàn)樗c制造非常相似,通常遵循一個(gè)已定義的過(guò)程,有一些已定義的驗(yàn)收條件,并導(dǎo)致有形價(jià)值的交付。指導(dǎo)精益方法的所有實(shí)踐的關(guān)鍵概念,我們稱為精益支柱。他們是:
持續(xù)改進(jìn)
尊重員工
輕量級(jí)的領(lǐng)導(dǎo)
看板
看板是一種高度可視化的工作流管理方法,在精益團(tuán)隊(duì)中很流行。實(shí)際上,83%的實(shí)踐精益的團(tuán)隊(duì)使用看板來(lái)可視化和積極地管理產(chǎn)品的創(chuàng)建,強(qiáng)調(diào)持續(xù)的交付,而不是給開發(fā)團(tuán)隊(duì)增加過(guò)多的負(fù)擔(dān)。與Scrum一樣,看板是一個(gè)旨在幫助團(tuán)隊(duì)更有效地協(xié)作的過(guò)程。
看板基于以下三個(gè)基本原則:
可視化你今天要做什么(工作流程):在彼此的上下文中查看所有項(xiàng)目是非常有用的
限制進(jìn)行中的工作量(WIP):這有助于平衡基于流程的方法,這樣團(tuán)隊(duì)就不會(huì)一次開始和提交過(guò)多的工作
增強(qiáng)流程:當(dāng)某件事完成時(shí),待辦事項(xiàng)列表中優(yōu)先級(jí)第二高的項(xiàng)就會(huì)被拉進(jìn)來(lái)發(fā)揮作用
看板通過(guò)定義最好的團(tuán)隊(duì)工作流程,促進(jìn)持續(xù)的協(xié)作,鼓勵(lì)積極的、持續(xù)的學(xué)習(xí)和改進(jìn)。
最受歡迎的軟件開發(fā)模式
軟件開發(fā)中使用的一個(gè)過(guò)程或一組方法稱為軟件開發(fā)方法。每種方法都有自己的一套優(yōu)點(diǎn)和缺點(diǎn),并且每種方法在不同的場(chǎng)景中執(zhí)行不同的操作。軟件開發(fā)方法是用于構(gòu)建、規(guī)劃和控制信息系統(tǒng)開發(fā)過(guò)程的框架。因此,讓我們來(lái)看看當(dāng)今世界最廣泛使用的一些方法。
1. 敏捷開發(fā)模式
最好的軟件開發(fā)方法之一是敏捷軟件開發(fā)方法,它用于創(chuàng)建嚴(yán)格的軟件管理流程,同時(shí)仍然允許開發(fā)項(xiàng)目中的快速變化。敏捷軟件開發(fā),或簡(jiǎn)稱敏捷,是一種開發(fā)技術(shù),它預(yù)測(cè)對(duì)靈活性的需求,并將實(shí)用主義應(yīng)用于完成產(chǎn)品的交付。Scrum、Crystal、極限編程(XP)和功能驅(qū)動(dòng)開發(fā)(FDD)只是敏捷開發(fā)方法的幾個(gè)例子。
敏捷開發(fā)模式要求開發(fā)人員從最小的項(xiàng)目設(shè)計(jì)開始。小模塊首先由開發(fā)人員開發(fā)。每個(gè)模塊都有每周或每月的完成截止日期??蛻舳嗽诿總€(gè)模塊完成時(shí)分析工作。為開發(fā)人員提供了關(guān)鍵輸入。此外,還調(diào)查并修復(fù)了代碼中的問(wèn)題。
敏捷開發(fā)模式的優(yōu)勢(shì)
客戶感到滿意,因?yàn)樵撥浖诿看蜸print功能功能之后都會(huì)交付給他們。
客戶、開發(fā)人員和產(chǎn)品負(fù)責(zé)人經(jīng)常會(huì)面,以關(guān)注客戶的需求,而不是程序和工具。
使用面對(duì)面的對(duì)話作為溝通。
在每個(gè)步驟之后,團(tuán)隊(duì)都會(huì)評(píng)估預(yù)算,以便做出未來(lái)的決策并控制成本。
提供高質(zhì)量的結(jié)果。
即使是最后一刻的調(diào)整也是受歡迎的。
敏捷開發(fā)模式的缺點(diǎn)
在項(xiàng)目開始時(shí),可能很難預(yù)測(cè)成本、時(shí)間表和資源。
它不適合小規(guī)模的發(fā)展計(jì)劃。
文檔被轉(zhuǎn)移,使新成員難以跟上進(jìn)度。
由于敏捷開發(fā)模式以塊的形式提供,因此可能很難跟蹤進(jìn)度。
如果團(tuán)隊(duì)沒(méi)有取得任何進(jìn)展,他們可能會(huì)被邊緣化。
2、 DevOps 開發(fā)模式
DevOps是一種眾所周知的開發(fā)模式,由于它為消費(fèi)者提供了許多好處,因此在所有軟件開發(fā)方法中都獲得了很大的吸引力。DevOps 是支持企業(yè)文化和開發(fā)方法的活動(dòng)的集合。
DevOps 專注于組織轉(zhuǎn)型,以改善負(fù)責(zé)開發(fā)生命周期各個(gè)方面(如開發(fā)、質(zhì)量保證和運(yùn)營(yíng))的部門之間的協(xié)作。
DevOps 開發(fā)模式的優(yōu)勢(shì)
DevOps 可改善團(tuán)隊(duì)合作并加快周轉(zhuǎn)時(shí)間。
產(chǎn)品發(fā)布和上市時(shí)間都在加快。
更好的運(yùn)營(yíng)協(xié)助。
定期發(fā)布代碼。
更高效的流程 多個(gè)流程同時(shí)運(yùn)行,使流程更快,更容易讓公司按時(shí)完成。
在團(tuán)隊(duì)內(nèi)部,有一個(gè)明確的產(chǎn)品愿景。
縮短了生產(chǎn)周期。
提高產(chǎn)品質(zhì)量。
提高適應(yīng)性和支持性。
DevOps 開發(fā)模式的缺點(diǎn)
DevOps 呼吁文化變革
需要進(jìn)行廣泛的測(cè)試
需要大量的人際關(guān)系。
需要非常有才華的開發(fā)人員
3、 瀑布開發(fā)模式
瀑布開發(fā)模式通常被認(rèn)為是最傳統(tǒng)的軟件開發(fā)方法。在線性順序流中,此模型簡(jiǎn)化了軟件開發(fā)過(guò)程。
在轉(zhuǎn)到下一步之前,應(yīng)始終仔細(xì)檢查開發(fā)周期的上一步是否已完成。通常沒(méi)有返回以更改項(xiàng)目或方向的過(guò)程。如果范圍定義良好,瀑布開發(fā)模式在軟件開發(fā)中很有用。此外,項(xiàng)目保持不變。因此,在開發(fā)人員完成項(xiàng)目的最早階段之后再回去是昂貴的。
瀑布開發(fā)模式的優(yōu)勢(shì)
瀑布模型是一種相對(duì)簡(jiǎn)單且易于掌握的方法。
瀑布技術(shù)適用于具有明確目標(biāo)和可預(yù)測(cè)需求的項(xiàng)目。
瀑布開發(fā)模式通過(guò)同時(shí)處理和完成所有階段來(lái)節(jié)省大量時(shí)間。
由于模型的剛性,項(xiàng)目管理很簡(jiǎn)單。
瀑布開發(fā)模式的缺點(diǎn)
如果有必要進(jìn)行調(diào)整,這個(gè)過(guò)程在很大程度上是非動(dòng)態(tài)的,既要花費(fèi)金錢,又要花費(fèi)精力。
瀑布開發(fā)模式不適用于需要持續(xù)維護(hù)的項(xiàng)目。
瀑布開發(fā)模式無(wú)法處理大風(fēng)險(xiǎn)。
在交付之前很難預(yù)測(cè)結(jié)果。
4、 Scrum開發(fā)模式
Scrum是一種流行的靈活的項(xiàng)目管理方法,它將工作劃分為相等的沖刺,這可能持續(xù)一周到一個(gè)月的任何地方,具體取決于項(xiàng)目和團(tuán)隊(duì)組成。Scrum開發(fā)方法可用于廣泛的項(xiàng)目。這樣的開發(fā)過(guò)程可用于需求快速發(fā)展且易于適應(yīng)的公司。
在這些沖刺之后,團(tuán)隊(duì)和關(guān)鍵利益相關(guān)者會(huì)評(píng)估他們的進(jìn)度,注意任何必要的變化和重大收獲。然后,Scrum團(tuán)隊(duì)進(jìn)入下一個(gè)沖刺(sprint),這可能與前一個(gè)沖刺有關(guān),也可能無(wú)關(guān)。團(tuán)隊(duì)合作、開放性和頻繁的進(jìn)度報(bào)告可以加快項(xiàng)目的成功。
Scrum 開發(fā)模式的優(yōu)勢(shì)
Scrum 開發(fā)是快節(jié)奏、尖端開發(fā)、快速代碼和可快速糾正測(cè)試錯(cuò)誤的理想選擇。
決策完全掌握在團(tuán)隊(duì)手中。
Scrum確保明智地花費(fèi)時(shí)間和金錢。
項(xiàng)目被拆分為更小、更易于管理的沖刺 (sprint)。
在沖刺 (sprint) 評(píng)審期間,將對(duì)新功能進(jìn)行編碼和測(cè)試。
Scrum勤奮工作,并收到客戶和利益相關(guān)者的反饋
它通常會(huì)產(chǎn)生更滿意的員工。
它提高了客戶滿意度。
它通常會(huì)導(dǎo)致更好的工作質(zhì)量。
Scrum開發(fā)模式的缺點(diǎn)
Scrum開發(fā)模式需要大量的培訓(xùn)。
不適合初級(jí)或中級(jí)開發(fā)人員。
需要在這個(gè)開發(fā)模式中不斷溝通。
當(dāng)團(tuán)隊(duì)組成經(jīng)常變化時(shí),很難預(yù)測(cè)生產(chǎn)力。
它非常適合小的快節(jié)奏任務(wù),但不適用于大型,復(fù)雜的任務(wù)。
如果測(cè)試團(tuán)隊(duì)在每次沖刺 (sprint) 之后都無(wú)法進(jìn)行回歸測(cè)試,則項(xiàng)目質(zhì)量經(jīng)理將難以應(yīng)用和評(píng)估。
什么是敏捷軟件開發(fā)
敏捷軟件開發(fā)是一個(gè)概念意義上的框架,用來(lái)取代軟件工程項(xiàng)目的概念;它強(qiáng)調(diào)在項(xiàng)目的整個(gè)生命周期中,擁抱并促進(jìn)由于軟件進(jìn)化式的發(fā)展所帶來(lái)的變化。
Agile software development is a conceptual framework for
undertaking software engineering projects that embraces and
promotes
evolutionary change throughout the entire life-cycle of the
project.
這段定義來(lái)自wikipedia,我認(rèn)為是我接觸ASD以來(lái),對(duì)ASD最精辟的論述。
請(qǐng)注意其中的三個(gè)關(guān)鍵詞:
在項(xiàng)目的整個(gè)生命周期中:這就涉及到了【敏捷項(xiàng)目管理】、【敏捷需求獲取】、狹義的【敏捷軟件開發(fā)】三個(gè)主要的領(lǐng)域和過(guò)程。要注意的是,上述三個(gè)過(guò)程并不是互相分開的,而是你中有我,我中有你。
擁抱并促進(jìn)變化:世界上唯一不變的是變化。不論在任何領(lǐng)域,漠視、甚至否認(rèn)、抗拒變化,都不是一個(gè)理性,嚴(yán)肅的人所應(yīng)有的態(tài)度。學(xué)會(huì)如何識(shí)別變化的大勢(shì),并在可能的時(shí)候,促使變化向好的方向發(fā)展。這才是面對(duì)變化的正確應(yīng)對(duì)之法。
軟件進(jìn)化式的發(fā)展:雖然上面提到促進(jìn)變化的發(fā)展,但是軟件的演化過(guò)程,我相信是有其自身內(nèi)在邏輯的,存在一些根本規(guī)律和指導(dǎo)方針;并不是完全以人的主觀意識(shí)為主導(dǎo)。
老子講“順勢(shì)而為,無(wú)為無(wú)不為”,我認(rèn)為是對(duì)上述后兩點(diǎn)的精確概括與指導(dǎo)。
了解了這三個(gè)方面,下面就要引入大名鼎鼎、如雷貫耳、耳朵都要磨出糨子來(lái)的敏捷宣言(Manifesto for Agile Software
Development)了,讓我們看看2001年提出的第一版的敏捷軟件開發(fā)宣言怎么說(shuō):
We are uncovering better ways of developing software by doing it
and helping others do it.
Through this work we have come to value:
☆ Individuals and interactions
over processes and tools
☆ Working software over comprehensive documentation
☆ Customer collaboration over contract negotiation
☆ Responding to change over following a
plan
That is, while there is value in the items on the right, we value
the items on the left more.
我們正在通過(guò)實(shí)踐和幫助其他人實(shí)踐,揭示更好的開發(fā)軟件的方法。我們從實(shí)踐中得出的價(jià)值觀是:
☆ 人和交互重于過(guò)程和工具。
☆ 可以工作的軟件重于求全責(zé)備的文檔。
☆ 客戶合作重于合同談判。
☆ 隨時(shí)應(yīng)對(duì)變化重于循規(guī)蹈矩。
雖然右項(xiàng)也具有價(jià)值,但我們認(rèn)為左項(xiàng)具有更大的價(jià)值。
經(jīng)過(guò)六年的演變,敏捷大師們又提出了敏捷宣言的重構(gòu)版本,由于尚未形成共識(shí),暫不在此提出。
關(guān)于敏捷軟件開發(fā)和敏捷軟件開發(fā)原則模式與實(shí)踐pdf的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由河南新鄉(xiāng)捷東實(shí)業(yè)有限公司發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。