隨著軟體開發方法的不斷演進,混合的開發方法在各軟體企業和團隊中應用越來越廣泛。每一種開發方法都有其優點,如傳統的瀑布式方要求有詳細的專案計畫和文件,部署、qa測試和交付過程嚴謹。而敏捷方法的優點則體現在能夠快速迭代,更多的強調人員在整個開發過程中所發揮的作用。
•瀑布模型
-固定的、沒有彈性的。
-很困難去達到互動。
-假如說需求沒有完全的被了解,或是可能需要完全地改變專案的需求,瀑布式的model是比較不適合的。
•敏捷方法
-完整地開發,每少數幾周或是少數幾個月裡可以測試功能。
-強調在獲得最簡短的可執行功能的部分,能夠及早給予企業價值。
-在整個專案的生命週期裡,可以持續的改善、增加未來的功能。
①個人和互動重於方法和工具(individuals and interactions over processes and tools);
-人是軟體專案獲得成功最為重要的因素
-合作、溝通能力以及互動能力比單純的軟體程式設計能力和工具更為重要
-方法和工具是死的,人是活的,人要是太「面」或者協作不好,再強大的方法和工具都是白扯;
②可工作的軟體重於完備的文件(working software over comprehensive documentation);
-過多的面面俱到的文件往往比過少的文件更糟
-軟體開發的主要和中心活動是建立可以工作的軟體
-直到迫切需要並且意義重大時,才進行文件編制
-編制的內部文件應盡量短小並且主題突出
③與客戶的協作重於合同談判(customer collaboration over contract negotiation);
-客戶不可能做到一次性地將他們的需求完整清晰地表述在合同中
-為開發團隊和客戶的協同工作方式提供指導的合同才是最好的合同
④響應變化重於嚴格遵照計畫(responding to change over following a plan);
-變化是軟體開發中存在的現實
-計畫必須有足夠的靈活性與可塑性
-短期的迭代的計畫比中長期計畫更有效
1、product owner 負責確定乙個product backlog(有順序的產品列表);
2、scrum team根據product backlog列表,做工作量的預估和安排;
3、通過 sprint planning meeting 中挑選出乙個story作為本次迭代完成的目標;
4、sprint backlog是由scrum team去完成的,每個成員根據sprint backlog再細化成更小的任務;
5、 daily scrum meeting(每日站立會議),每次會議控制在15分鐘左右,團隊成員輪流發言:昨日今日所做之事以及遇到的問題
6、當一次sprint完成,產品負責人和客戶參加srpint review meeting,每乙個scrum team的成員都要向他們演示自己完成的軟體產品
8、最後就是 sprint retrospective meeting,以輪流發言方式進行,總結並討論改進的地方,放入下一輪sprint的產品需求中;
更加透明; 隨時跟蹤專案的狀態和進展情況,及早發現問題和風險 .
快速交付, 每次迭代都能交付可執行的軟體.
最高風險和最高優先順序的需求,最優先進行開發.
改善應對變更能力, 減少大量的重計畫.
改善專案溝通.更好的客戶參與, 避免錯誤的假設.
誤解:敏捷是拯救仸何專案的銀彈.
敏捷方法只有運用得當才有效果.
誤解:敏捷意味著 ad-hoc hacking ,丌需要仸何文件.
敏捷是有嚴格要求的,也是面向質量的
根據溝通的需要產生相應的文件.
誤解:敏捷只是開發者的問題
基本的開發方法不傳統相比有顯著丌同, 影響專案的各個方面: 合同, 角色, 定價模型, 專案管理等.
誤解:採用敏捷方法的開發組/專案丌需要制定計畫
敏捷專案需要經常制定計畫,但是丌需要試圖超前制定專案計畫,通常這也是丌可能的.
誤解:敏捷專案的範圍可以隨時改變.
變更可以等到下一次迭代開始,當前正在迚行中的迭代丌能變更
敏捷開發雖然地位如日中天,但不要盲目追隨,根據專案選擇適合的開發方法才會事半功倍。敏捷開發不是銀彈,需要不斷的實踐才會更好的發展。
Redis 新手入門篇
redis hash 是乙個string型別的field和value的對映表,hash特別適合用於儲存物件。redis 中每個 hash 可以儲存 232 1 鍵值對 40多億 redis 的 set 是 string 型別的無序集合。集合成員是唯一的,這就意味著集合中不能出現重複的資料。redis...
AngularJs之新手小白入門篇
首先,angularjs是乙個基於mvc處理模式,實現了mvvm資料雙向繫結 的用於開發動態web專案的框架。這是乙個簡單angularjs的應用 scope.nihao 你好 1.要應用angularjs框架,首先我們需要做的是引入angularjs的js檔案 4.最後一步,也是必不可少的一步,在...
ubuntu新手入門
ubuntu使用設定之介面篇 ubuntu系統裝好了,不過怎麼看上則呢麼醜醜的?好像mr徐的介面和我的不一樣呢,怎麼設定的呢?首先,讓我們來設定工具條。ubuntu預設2條工具條,讓我們來把他設定成和windows下一樣的吧。先讓我們在上面的工具條的空白的地方,選擇刪除面板。然後,讓我們在底下的面板...