敏捷軟體開發的軟體四條原則,以親身經歷解讀敏捷軟體開發一什麼是敏捷軟體開發

2021-03-03 21:44:18 字數 4299 閱讀 3916

1樓:擱淺丶菉

遞增,而不是連續的:如果開發實踐是真正的敏捷精神,那麼交付的工作軟體是一小部分一部分遞增的。不必等到一個階段完全完成後才開始另一個,工作也不是向大的釋出日期而努力。

完成的工作,但並不是業務最終期限,驅動著敏捷交付。但敏捷精神也承認業務操縱著最後截止日期。 避免不必要的開銷:

如果實踐仍然是真正的敏捷精神,那麼團隊就致力於儘可能多地減的專案計劃和文件。與其討論要做什麼,然後再寫下來,不如趕緊動手雲做。否則,就是在浪費時間在工作的工作上。

在工作對工作中,敏捷精神有利於於實際的工——作交付工作軟體。而且它也值面對面的交流通過郵件和其他書面檔案。 協作:

根據需求,團隊成員一直與其它人進行互動,以及一些外部利益相關者。在敏捷教練世界中,整個團隊的負責人lisa crispin能夠解決所有問題,在問題出現之前 。真正的敏捷精神團隊是自助的。

他們分配需要做的工作。雖然每個成員承擔的任務都在他們的專業技能範圍內,他們還是需要與團隊協作的。沒有人的工作孤立的,也沒有團隊本身是獨立工作的。

沒有業務利益相關者,以及諸如使用者體驗方面的外部專家的重大投入,團隊就不可能使專案向前發展, 說真話:為是保證真正的敏捷,團隊**的與專案相關的一切都要是真實的。在一些至關重要的專業領域,如衝刺測試的編碼技能,他們承認存在差距。

關於實際生產力,他們的要講事實;這也就是說,在y時間內,團隊是否有能力做x。他們承認錯誤。說真話是一項挑戰,因為我們害怕承認缺點會讓我們顯得很弱。

但敏捷精神知道說出事實需要勇氣。承認問題需要信心,然後快速地去解決問題。

以親身經歷解讀敏捷軟體開發(一)什麼是敏捷軟體開發

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頁的工作總覽就夠了?你不清楚?

去和他們談談,找出你想要的。

◆多種模型

開發軟體需要使用多種模型,因為每種模型只能描述軟體的單個方面,「要開發現今的商業應

敏捷開發

成功

隨機應變

要達到敏捷的成功—交付支撐業務的最佳軟體—軟體專家也可以引用這些規則。

自主權

專注於工作,交付正確的軟體,而不是被他人的憤怒情緒所影響。

分享經驗

構建完美軟體開發流程,並沒有統一的模式。但是在這個領域,敏捷技術,加上持續的應用和改進,都能夠達到敏捷的成功。

軟體開發以後的就業?軟體開發的就業方向怎麼樣?

學習軟體開發,以後可以從事網際網路行業,例如軟體的開發應用升級 遊戲的開發工程師等等,也可以在從事其它非網際網路的行 業,例如 的 策劃 等。軟體開發的就業方向怎麼樣?第一 優勢。軟體開發行業是一個能多方面使用的行業,它與其它各行各業的結合非常多,例如普通的手機應用程式的設計 超市收銀系統的設計,此...

軟體開發培訓的內容有哪些,軟體開發培訓 課程內容大概有什麼

軟體的總體結構設計和模組設計 程式設計和除錯 程式聯調和測試以及編寫 提交程式。軟體開發是根據使用者要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉 需求分析 設計 實現和測試的系統工程。軟體一般是用某種程式設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體...

如何定義軟體開發的質量管理流程,軟體開發的專案質量管理計劃怎麼寫。

軟體開發的質量很難制定具體的 數量化的產品質量標準,所以沒有相應的國際標推 國家標準或行業標淮。對軟體產品而言,無法制定諸如 合格率 一次 通過率 ppm 壽命 之類的質量目標。所以,企業只能從以下幾點去管理 1 軟體質量管理應該貫穿軟體開發的全過程,而不僅僅是軟體本身,應該首先考慮完成該軟體生產的...