現如今,軟體的生存週期已經很短了,一些好的想法必須馬上實現,否則就有可能被別人先開發出來從而失掉了商機;所以開發乙個專案必須就是要快,以最短的時間開發出乙個能夠滿足客戶進本需求的軟體;有此敏捷開發就應運而生;
敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備整合和可執行的特徵。換言之,就是把乙個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
敏捷開發是在人們探索中由以前的開發方法中探索和總結出來的,雖然不完美,但是正在逐步適應。
敏捷開發是針對傳統的瀑布開發模式的弊端而產生的一種新的開發模式,目標是提高開發效率和響應能力。除了原則和實踐,模式也是很重要的,多研究模式及其應用可以使你更深層次的理解敏捷開發。
敏捷建模(am)定義了一系列的核心原則和輔助原則,它們為軟體開發專案中的建模實踐奠定了基石。其中一些原則是從xp中借鑑而來,在extreme programming explained中有它們的詳細描述。而xp中的一些原則又是源於眾所周知的軟體工程學。復用的思想隨處可見!基本上,本文中對這些原則的闡述主要側重於它們是如何影響著建模工作;這樣,對於這些借鑑於xp的原則,我們可以從另乙個角度來看待。
簡單,變化,持續性,迭代,成本。。。這是敏捷開發中常見的幾個詞。
簡單:當從事開發工作時,你應當主張最簡單的解決方案就是最好的解決方案。不要過分構建(overbuild)你的軟體。用am的說法就是,如果你現在並不需要這項額外功能,那就不要在模型中增加它。要有這樣的勇氣:你現在不必要對這個系統進行過分的建模(over-model),只要基於現有的需求進行建模,日後需求有變更時,再來重構這個系統。盡可能的保持模型的簡單。
變化:需求時刻在變,人們對於需求的理解也時刻在變。專案進行中,project stakeholder可能變化,會有新人加入,也會有舊人離開。project stakeholder的觀點也可能變化,你努力的目標和成功標準也有可能發生變化。這就意味著隨著專案的進行,專案環境也在不停的變化,因此你的開發方法必須要能夠反映這種現實。
持續:即便你的團隊已經把乙個能夠運轉的系統交付給使用者,你的專案也還可能是失敗的--實現project stakeholder的需求,其中就包括你的系統應該要有足夠的魯棒性(robust ),能夠適應日後的擴充套件。就像alistair cockburn常說的,當你在進行軟體開發的競賽時,你的第二個目標就是準備下一場比賽。可持續性可能指的是系統的下乙個主要發布版,或是你正在構建的系統的運轉和支援。要做到這一點,你不僅僅要構建高質量的軟體,還要建立足夠的文件和支援材料,保證下一場比賽能有效的進行。你要考慮很多的因素,包括你現有的團隊是不是還能夠參加下一場的比賽,下一場比賽的環境,下一場比賽對你的組織的重要程度。簡單的說,你在開發的時候,你要能想象到未來。
迭代:和建模相關的乙個重要概念是你不用在一開始就準備好一切。實際上,你就算想這麼做也不太可能。而且,你不用在模型中包容所有的細節,你只要足夠的細節就夠了。沒有必要試圖在一開始就建立乙個囊括一切的模型,你只要開發乙個小的模型,或是概要模型,打下乙個基礎,然後慢慢的改進模型,或是在不在需要的時候丟棄這個模型。這就是遞增的思想。
成本:你的project stakeholder為了開發出滿足自己需要的軟體,需要投入時間、金錢、裝置等各種資源。stakeholder應該可以選取最好的方式投資,也可以要求你的團隊不浪費資源。並且,他們還有最後的發言權,決定要投入多少的資源。如果是這些資源是你自己的,你希望你的資源被誤用嗎。
除此之外,還有乙個重要的詞是團隊,什麼是團隊,這也是敏捷開發必須需要考慮的,團隊不是一群人做乙個人的事。
團隊中必須有人是領導者,有人是執行者。好比僚機和戰鬥機的關係。團隊的每日站立會議也很重要,團隊要變成自己領導自己,從消極的聽從指揮變成自己主動,是團隊的主導不是個人的主導,向團隊利益最大化的方向發展。
而如何較好的實現敏捷開發的團隊:
結合敏捷軟體開發具體的實施情況,可以總結為以下幾點:
(1) 團隊成員需要全心投入,積極參入相關的過程。
(2) 時間預留,為迭代過程中突發事件和估算時間不準確的任務預期完成時間。
(3) 工作時間估算精確,避免占用過多的預留時間和在團隊協作方面帶來延遲。
(4) 團隊成員間的相互協作和信任,
(5) 即時、有效的溝通,
(6) 問題即時暴露和即時解決,不要積壓問題
(7) 任務跟蹤,
(8) 軟體開發人員需要對任務負責,對任務完成的目標嚴格要求。
(9) 團隊需要良好的領導力和凝聚力
敏捷開發綜述
本週課堂上 第一次接觸到了敏捷開發的概念 所以課後就查詢了關於敏捷開發的一些資料和案例 希望能更好地理解它 一 什麼叫敏捷開發方法 敏捷開發是一種以人為核心 迭代 循序漸進的開發方法。在敏捷開發中,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備繼承和可執行的特徵。換言之,就是把乙...
敏捷開發方法綜述
敏捷開發的出現是由於在2000年左右,許多團隊採用龐大,重型的過程方法的趨勢在逐漸增長,一批自稱敏捷聯盟的業界專家概括出了可以讓軟體團隊具有快速工作,響應變化能力的價值觀和原則。影響至今的就是他們的敏捷聯盟宣言 個體和互動勝過過程和工具 可以工作的軟體勝過面面俱到的文件 客戶合作勝過合同談判 響應變...
Xamarin開發綜述
二 後續更新預覽 1 xamarin.forms環境搭建 2 啟動頁 含載入 3 頁面跳轉 4 grid布局 5 圓狀頭像 三 xamarin介紹 如果您對介紹不感興趣,可以跳過此段。本人總結的內容絕非照抄。1 xamarin可跨android ios windows 手機 三端。2 xamarin...