7.1 軟體出了什麼錯
在軟體開發過程中,我們經常發現**越來越難以維護。需求變化時,很難去修改**,修改後很容易引起意想不到的bug。在開發初期,程式設計師尚能清楚地掌握**,能輕鬆的進行維護。隨著專案地進行,設計越來越複雜,**越來越混亂,程式設計師自己也不清楚修改某處**,是否會引起別的問題。
7.2 設計的臭味——腐化軟體的氣味
出現下面任何一種現象,都說明軟體正在腐化。
在ood中,經常會提到「高內聚、低耦合」。僵化性、脆弱性、牢固性的出現,說明系統違背了「高內聚、低耦合」的設計原則。
7.2.1 什麼激發了軟體的腐化
專案之處,設計能夠很好的滿足需求。隨著專案的進行,需求不斷變更,而且變更方向偏離了設計,設計已經不能滿足需求。程式設計師不得不進行破壞原來設計的修改。雖然修改後的系統能正常工作,但已經違反了原來的設計,為軟體腐化埋下了種子。
7.2.2 敏捷團隊不允許軟體腐化
不要抱怨需求的變更破壞了你的設計。記住:使用者永遠是對的,需求一定會變化,而且變化方向是難以**的。
敏捷團隊幾乎不**需求的變更方向,不為**的變更進行超前的設計。在需求變更成為現實時,才去修改設計。這是乙個迭代的過程,每個迭代中,程式設計師根據最新的需求修改設計,在每次迭代結束後,當前的設計都是貼切地符合當前需求的。敏捷程式設計師不會幻想在專案之初進行設計,然後一直保持這個設計到專案結束。it's impossible!
7.3.2 怎樣做乙個敏捷開發人員
7.4 保持盡可能好的設計
敏捷開發人員致力於保持設計恰當、乾淨。換言之,保持設計貼切地符合需求。需求變更出現後,如果當前的設計不能滿足(這個變更是第一顆子彈),立即修改設計,使設計滿足當前需求,且滿足類似的需求變更。敏捷開發人員絕對不允許腐化出現。
7.5 結論
敏捷設計是乙個過程,不是乙個事件。它是乙個持續的應用原則、模式及實踐來改進軟體結構和可讀性的過程。它致力於保持系統設計在任何時候都能貼切地滿足當前需求。
什麼是敏捷設計
僵化性是指難以對軟體進行改動,即使是簡單的改動。如果單一的改動會導致有依賴關係的模組中的連鎖改動,那麼設計就是僵化的。改動時,必須要改動的模組越多,設計就越僵化。脆弱性是指,在進行乙個改動時,可能會導致程式的許多地方出現問題。常常是,出現新問題的地方與改動的地方沒有概念上的關聯。頑固性是指,設計中包...
第7章 敏捷 專案管理
7.1 匯入敏捷專案管理的步驟 1.匯入敏捷的步驟 1 培訓 2 教練與引導 3 內化 2.敏捷混合型模式 7.2 專案啟動與敏捷合同 1.敏捷專案啟動 2.敏捷簽約模式 在傳統專案管理框架下的委外專案要採用敏捷,必須要將專案進行方式和所要採用的敏捷過程與實踐,列入合同與建議邀請書中。原則如下 1 ...
什麼是敏捷?
scrum中文網 什麼是敏捷?敏捷是一種通過創造變化和響應變化在不確定和混亂的環境中取得成功的能力。什麼敏捷軟體開發?敏捷軟體開發是基於敏捷宣言定義的價值觀和原則的一系列方法和實踐的總稱。自組織 跨職能團隊運用適合他們自身環境的實踐進行演進得出解決方案。敏捷開發簡史?這些方 強調了開發團隊和業務干係...