個人理解的敏捷開發:
乙個開發團隊在開發的過程中需要應付不停變更的需求,而敏捷開發的宗旨就是迎合這些變更,敏捷開發就是為了快速變更而產生的一種開發理念。
在團隊中開發,測試,產品,設計。都處於高效溝通的狀態,及時的反饋資訊,做到及時的變更,快速的迭代。
敏捷開發不同於傳統的開發模式,不需要考慮沒有發生的場景,不需要太多的預判。設計好當前的需求,開發,測試,上線。
當下個需求提出時,可能與當前的設計相違背,那麼就需要豐富的經驗去修改當前的設計,所以敏捷開發也需要大量的實戰經驗去實現。
敏捷開發就是不停的滿足變更的需求,迎合需求去不停的修改設計,修改**,開發出滿足新需求的功能來。
區別於傳統開發:
需求呈現的週期非常短,由於敏捷開發不需要預估大量的設計,單純的為了需求做呈現,可以在極快速的週期內呈現出大致的需求效果。
敏捷開發的難點:
在專案的不停迭代的期間,會不停的去修改設計,去修改**。這個時候如果沒有乙個良好的開發習慣,那麼**的茁壯性就會慢慢的在不停迭代的過程中變差。
敏捷開發不僅僅要應付新的需求,還要修改老的設計,當老的設計不滿足或者不符合當前新的需求的時候,那麼新需求開發和老**優化這2個問題需要同時進行。
不然日積月累下**中冗餘的問題會慢慢積累,到最後**的迭代將變得寸步難行!!!
發現**中的腐臭味:
僵化**:是指難以對軟體進行改動,即便是簡單的改動。如果單一的改動會導致有依賴的模組的連鎖改動,那麼這樣的設計就是僵化的。如果牽連的模組越多,那麼這樣的設計越是僵化。
脆弱**:是指在進行乙個改動時,程式的許多地方就會出現問題,出現問題的地方和改動的地方並沒有概念上的 關聯,如果要修復這些問題那麼又會引發新的問題的產生,這樣會使得開發人員光是修復問題就會浪費大量的時間。所以在不停迭代需求的同事不停的優化老**,不停的變更設計是敏捷開發的乙個核心理念。
牢固**:是指設計中對其他系統有用的**,但是如果要將這些有用的部分分離出來,需要花費巨大的精力,可能還要伴隨很大的風險。
不必要的複雜**:即**中不需要過分預估需求,導致一些設計過於的複雜。這些設計可能出發點是好的,但是結果可能恰恰相反,設計會因此變得複雜,混亂,難以開發。
不必要的重複**:即指有些**塊只有稍許的不同,但是卻被大量的複製貼上,這樣的重複**會導致系統的維護變得十分困難,可能一處錯誤就需要全域性的去修改所有類似的地方。黨面臨過這種情況是優先去考慮能否使用繼承,封裝去解決這種重複的**。
如果在開發中發現以上的問題,那麼需要及時的想辦法去溝通解決。不然問題日積月累會導致專案以後寸步難行!!!
敏捷開發原則
原則一 我們最先要做的是通過盡早的持續的交付,有價值的軟體來時客戶滿意,初期交付的系統中所包含的功能越少,最終交付的系統的質量就越高,交付的越頻繁,最終產品的質量就越高。原則二即使到了開發的後期也歡迎改變需求敏捷過程,利用變化來為客戶創造競爭優勢。原則三經常性的交付,可以工作的軟體交付的間隔可以從幾...
敏捷開發的原則
一 單一職責原則 the single responsibility principal srp 就是說盡量的單一化類的功能,不要使類具有多個功能。如果類具有多個功能時,任意乙個功能的修改都需要改寫這個類,也就會影響其他的類,而這些類根本沒有使用修改的這個功能。如果單一化功能,這種情況就可以避免。例...
理解敏捷12原則
在上篇文章中,我們重新理解了敏捷宣言,其中包括往往被人們忽視的前兩句話。那麼接下來這篇文章我們會看一下敏捷宣言的12原則。理解一下這12原則對敏捷開發在實踐中的指導意義。12原則作為敏捷開發對於軟體開發流程的指導性綱領,其實是對敏捷宣言進行了具有實際操作意義的解釋。下面是敏捷宣言12原則 我們遵循以...