1樓:雲南新華電腦學校
1)敏捷開發的過程有著更強的適應性而不是預設性,從敏捷宣言的第四條響應變化高於預設計劃便可以看出來。因為軟體開發過程的本身的不可預見性,很多使用者在專案開始時不可能對於這個專案有著一個完整而明確的預期。很多對軟體的預期都在後期的修改和完善過程中產生。
因此高適應性顯然更加符合軟體工程開發的實際。而敏捷開發實現其適應性的方式主要在於,第一,縮短把專案提交給使用者的週期;第二,增加使用者,業務人員,開發人員這三者之間的交流;第三,通過減少重構的成本以增加軟體的適應性。
(2)敏捷開發的過程中,更加的注重人的因素。在傳統軟體工程中,個人的因素很少的被考慮到分工中,每個個體都是隻是整個**開發機器的一個小小的螺絲釘,個人的意志和創造力很大程度上的被抹去為了更好的為集體服務。而在敏捷開發過程中,每個個人的潛力被充分的考慮,應用什麼技術很大程度上直接由在第一線開發的技術人員決定;每個人的特點和創造力都可以充分地發揮,這樣開發出來的軟體更加的具有生命力,因為他融入了開發者的心血和創意,開發者不再是進行機械的乏味的堆砌,而是創造屬於自己的藝術品,這樣的條件下產生的**必然在質量上更佔優勢。
(3)在敏捷開發的過程中,整個專案是測試驅動的而不是文件驅動的。不僅每個模組有著自己的相應的測試單元,開發人員在開發自己的模組的過程中必須保證自己所開發的模組可以通過這一單元的測試,並且整合測試貫穿了整個開發過程的始終。整合測試每天會進行十幾次甚至幾十次,而不是像傳統方法一樣只有當各個模組的編碼都結束了之後再進行聯合除錯。
這樣,在軟體開發的程序中每一點改動所引起的問題都容嘉容易暴露出來,使得更加容易在錯誤剛剛產生的時候發現問題從而解決問題。這樣就避免了在最後整個系統完成時錯誤隱藏的太深給除錯造成極大的困難。
以親身經歷解讀敏捷軟體開發(一)什麼是敏捷軟體開發
2樓:匿名使用者
敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體專案在構建初期被切分成多個子專案,各個子專案的成果都經過測試,具備可視、可整合和可執行使用的特徵。換言之,就是把一個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
價值觀
敏捷建模(agile modeling,am)的價值觀包括了xp(extreme programming:極限程式設計)的四個價值觀:溝通、簡單、反饋、勇氣,此外,還擴充套件了第五個價值觀:
謙遜。網際網路是個神奇的大網,軟體框架也是一種模式,如果你真的想做,可以來這裡,這個手技的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,我想說的是,除非你想做或者瞭解這方面的內容,如果只是湊熱鬧的話,就不要來了。
敏捷開發是針對傳統的瀑布開發模式的弊端而產生的一種新的開發模式,目標是提高開發效率和響應能力。除了原則和實踐,模式也是很重要的,多研究模式及其應用可以使你更深層次的理解敏捷開發。
溝通
建模不但能夠促進你團隊內部的開發人員之間溝通、還能夠促進你的團隊和你的project stakeholder之間的溝通。
簡單
畫一兩張圖表來代替幾十甚至幾百行的**,通過這種方法,建模成為簡化軟體和軟體(開發)過程的關鍵。這一點對開發人員而言非常重要-它簡單,容易發現出新的想法,隨著你(對軟體)的理解的加深,也能夠很容易的改進。
反饋
kent beck在extreme programming explained中有句話講得非常好:「過度自信是程式設計的職業病,反饋則是其處方。」通過圖表來交流你的想法,你可以快速獲得反饋,並能夠按照建議行事。
謙遜
最優秀的開發人員都擁有謙遜的美德,他們總能認識到自己並不是無所不知的。事實上,無論是開發人員還是客戶,甚至所有的 project stakeholder,都有他們自己的專業領域,都能夠為專案做出貢獻。一個有效的做法是假設參與專案的每一個人都有相同的價值,都應該被尊重。
原則
敏捷建模(am)定義了一系列的核心原則和輔助原則,它們為軟體開發專案中的建模實踐奠定了基石。其中一些原則是從xp中借鑑而來,在extreme programming explained中有它們的詳細描述。而xp中的一些原則又是源於眾所周知的軟體工程學。
複用的思想隨處可見!基本上,本文中對這些原則的闡述主要側重於它們是如何影響著建模工作;這樣,對於這些借鑑於xp的原則,我們可以從另一個角度來看待。
核心原則
◆主張簡單
當從事開發工作時,你應當主張最簡單的解決方案就是最好的解決方案。不要過分構建
敏捷開發
(overbuild)你的軟體。用am的說法就是,如果你現在並不需要這項額外功能,那就不要在模型中增加它。要有這樣的勇氣:
你現在不必要對這個系統進行過分的建模(over-model),只要基於現有的需求進行建模,日後需求有變更時,再來重構這個系統。儘可能的保持模型的簡單。
◆擁抱變化
需求時刻在變,人們對於需求的理解也時刻在變。專案進行中,project stakeholder可能變化,會有新人加入,也會有舊人離開。project stakeholder的觀點也可能變化,你努力的目標和成功標準也有可能發生變化。
這就意味著隨著專案的進行,專案環境也在不停的變化,因此你的開發方法必須要能夠反映這種現實。
◆你的第二個目標是可持續性
即便你的團隊已經把一個能夠運轉的系統交付給使用者,你的專案也還可能是失敗的--實現專案投資者的需求,其中就包括你的系統應該要有足夠的魯棒性(robust ),能夠適應日後的擴充套件。就像alistair cockburn常說的,當你在進行軟體開發的競賽時,你的第二個目標就是準備下一場比賽。可持續性可能指的是系統的下一個主要釋出版,或是你正在構建的系統的運轉和支援。
要做到這一點,你不僅僅要構建高質量的軟體,還要建立足夠的文件和支援材料,保證下一場比賽能有效的進行。你要考慮很多的因素,包括你現有的團隊是不是還能夠參加下一場的比賽,下一場比賽的環境,下一場比賽對你的組織的重要程度。簡單的說,你在開發的時候,你要能想象到未來。
◆遞增的變化
和建模相關的一個重要概念是你不用在一開始就準備好一切。實際上,你就算想這麼做也不太可能。而且,你不用在模型中包容所有的細節,你只要足夠的細節就夠了。
沒有必要試圖在一開始就建立一個囊括一切的模型,你只要開發一個小的模型,或是概要模型,打下一個基礎,然後慢慢的改進模型,或是在不在需要的時候丟棄這個模型。這就是遞增的思想。
◆令投資最大化
你的專案投資者為了開發出滿足自己需要的軟體,需要投入時間、金錢、裝置等各種資源。投資者應該可以選取最好的方式投資,也可以要求你的團隊不浪費資源。並且,他們還有最後的發言權,決定要投入多少的資源。
如果是這些資源是你自己的,你希望你的資源被誤用嗎。
◆有目的的建模
對於自己的產出,例如模型、源**、文件,很多開發人員不是擔心它們是否夠詳細,就是擔心它們是否太過詳細,或擔心它們是否足夠正確。你不應該毫無意義的建模,應該先問問,為什麼要建立這個產出,為誰建立它。和建模有關,也許你應該更多的瞭解軟體的某個方面,也許為了保證專案的順利進行,你需要和高階經理交流你的方法,也許你需要建立描述系統的文件,使其他人能夠操作、維護、改進系統。
如果你連為什麼建模,為誰建模都不清楚,你又何必繼續煩惱下去呢?首先,你要確定建模的目的以及模型的受眾,在此基礎上,再保證模型足夠正確和足夠詳細。一旦一個模型實現了目標,你就可以結束工作,把精力轉移到其它的工作上去,例如編寫**以檢驗模型的運作。
該項原則也可適用於改變現有模型:如果你要做一些改變,也許是一個熟知的模式,你應該有做出變化的正確理由(可能是為了支援一項新的需求,或是為了重構以保證簡潔)。關於該項原則的一個重要暗示是你應該要了解你的受眾,即便受眾是你自己也一樣。
例如,如果你是為維護人員建立模型,他們到底需要些什麼?是厚達500頁的詳細文件才夠呢,還是10頁的工作總覽就夠了?你不清楚?
去和他們談談,找出你想要的。
◆多種模型
開發軟體需要使用多種模型,因為每種模型只能描述軟體的單個方面,「要開發現今的商業應
敏捷開發
成功
隨機應變
要達到敏捷的成功—交付支撐業務的最佳軟體—軟體專家也可以引用這些規則。
自主權
專注於工作,交付正確的軟體,而不是被他人的憤怒情緒所影響。
分享經驗
構建完美軟體開發流程,並沒有統一的模式。但是在這個領域,敏捷技術,加上持續的應用和改進,都能夠達到敏捷的成功。
身為程式設計師怎麼能不懂什麼是敏捷開發
3樓:米粒
什麼是敏捷開發?s
敏捷開發(agiledevelopment)是一種以人為核心、迭代、循序漸進的開發方法。
怎麼理解呢?首先,我們要理解它不是一門技術,它是一種開發方法,也就是一種軟體開發的流程,它會指導我們用規定的環節去一步一步完成專案的開發;而這種開發方式的主要驅動核心是人;它採用的是迭代式開發;
為什麼說是以人為核心?
我們大部分人都學過瀑布開發模型,它是以文件為驅動的,為什麼呢?因為在瀑布的整個開發過程中,要寫大量的文件,把需求文件寫出來後,開發人員都是根據文件進行開發的,一切以文件為依據;而敏捷開發它只寫有必要的文件,或儘量少寫文件,敏捷開發注重的是人與人之間,面對面的交流,所以它強調以人為核心。
什麼是迭代?
迭代是指把一個複雜且開發週期很長的開發任務,分解為很多小週期可完成的任務,這樣的一個週期就是一次迭代的過程;同時每一次迭代都可以生產或開發出一個可以交付的軟體產品。
關於scrum和xp
前面說了敏捷它是一種指導思想或開發方式,但是它沒有明確告訴我們到底採用什麼樣的流程進行開發,而scrum和xp就是敏捷開發的具體方式了,你可以採用scrum方式也可以採用xp方式;scrum和xp的區別是,scrum偏重於過程,xp則偏重於實踐,但是實際中,兩者是結合一起應用的,這裡我主要講scrum。
什麼是scrum?
scrum的英文意思是橄欖球運動的一個專業術語,內推網****neitui.me,專注於做網際網路招聘行業內部推薦、打造最專業的網際網路招聘內部推薦直招平臺。
表示「爭球」的動作;把一個開發流程的名字取名為scrum,我想你一定能想象出你的開發團隊在開發一個專案時,大家像打橄欖球一樣迅速、富有戰鬥激情、人人你爭我搶地完成它,你一定會感到非常興奮的。
而scrum就是這樣的一個開發流程,運用該流程,你就能看到你團隊高效的工作。
【scrum開發流程中的三大角色】
產品負責人(productowner)
指定軟體的釋出日期和交付的內容,同時有權力接受或拒絕開發團隊的工作成果。
流程管理員(scrummaster)
主要負責整個scrum流程在專案中的順利實施和進行,以及清除擋在客戶和開發工作之間的溝通障礙,使得客戶可以直接驅動開發。
開發團隊(scrumteam)
主要負責軟體產品在scrum規定流程下進行開發工作,人數控制在5~10人左右,每個成員可能負責不同的技術方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以採用任何工作方式,只要能達到sprint的目標。
什麼是敏捷軟體開發
敏捷軟體開發是一個概念意義上的框架,用來取代軟體工程專案的概念 它強調在專案的整個生命週期中,擁抱並促進由於軟體進化式的發展所帶來的變化。什麼是敏捷軟體開發 主要說的就是軟體開發過程中,因為猶豫客服需求的持續更改,那程式設計師也要跟著更改!主旨依據客戶需求更改,更改或者更新程式功能!什麼是敏捷軟體開...
什麼是敏捷軟體開發,什麼是敏捷軟體?
首先什麼是敏捷開發呢?敏捷開發指的是一種面臨迅速變化的需求快速開發軟體的能力!什麼是敏捷設計 在按照我的理解方式審查了軟體開發的生命週期後,我得出一個結論 實際上滿足工程設計標準的唯一軟體文件,就是原 清單。jack reeves敏捷開發人員如何知道要做什麼簡而言之,敏捷開發人員知道要做什麼,是因為...
軟體開發是什麼,什麼是軟體開發?
軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉 需求分析 設計 實現和測試的系統工程。軟體一般是用某種程式設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括可以在計算機上執行的程式,與這些程式相關的檔案一般也被認...