什麼是敏捷開發

2021-06-16 09:36:47 字數 1881 閱讀 9808

本博在很多地方,都有人提出自己的開發方式就是敏捷開發。但本博實際上看到的情況更多的是,以敏捷開發為藉口來避免寫各種各樣的文件,幾乎是什麼事情不想做,就用敏捷開發擋一擋。

比如,需求分析沒有做好,就進入編碼階段,說辭是:我們要敏捷開發,快速響應需求的變化,既然能夠快速響應需求的變化,那麼需求做沒做好就不重要了,重要的是敏捷開發能夠快速響應需求的變化。又如,在開發的過程中,不進行良好的模組劃分,不寫測試用例,也說是敏捷開發,說**可以重構,寫測試用例浪費時間等。

本博在這裡將討論敏捷開發到底長啥樣,期望通過這裡的討論讓大家能夠真正從敏捷開發中獲利。

好的敏捷開發與瀑布開發都有同樣的特徵:專案是可控的。敏捷與瀑布兩種開發模式只是適用的場合不同,並不是敏捷開發就優於瀑布開發。所以,如果真有人拿敏捷開發來否定瀑布開發,基本上可以肯定地說,這個人還沒有懂敏捷開發。

專案為什麼可控?首先,專案到達什麼狀態是可知的,沒有可知,哪來可控。所以,乙個專案會在時間先後上分出不同的階段。每個階段到了沒有到是可知的。好的瀑布開發模式,每個階段都產生一定的產出(如文件,**),並由專家對產出進行評審(測試),評審通過之後就意味這個階段做完了,通過每一次評審,專案參與人員就知道專案的狀態是什麼。這就是可知。

敏捷開發同樣需要知道狀態,敏捷的方式就是,將階段劃分更加細粒度,使得非專家都可以得到專案的狀態。從這裡可以看到敏捷開發與瀑布開發的區別:劃分出的專案階段的粒度不同。

在了解專案的狀態之後,可以根據下乙個階段需要達到的目標分配人力或者物力。這樣可以控制專案的狀態變遷。很顯然,瀑布開發模式需要經驗豐富的人去做這樣的事情。而敏捷開發由於階段很小,對資源分配者的要求就大大降低了。

瀑布開發由於有具備經驗的人主導,從而可以在專案的最開始到結束都使得開發處於控制之內。敏捷開發由於階段更細,從而可以快速地實現部分功能並快速地響應變化的需求。

敏捷之所以快,是因為敏捷開發劃分的目標小,容易實現,並且可以將已經開發出來的部分很快地移交給客戶去體驗,然後根據反饋進行增量改善,從而讓人看起來很快。

敏捷開發的流程:

將專案目標分解為使用者可以測試的任務

根據功能的優先順序將任務放入到各個版本中

依次實現各個版本

在分解任務的時候,主要原則是,任務可以為使用者所理解。從而使用者能夠知道一旦該任務完成意味著什麼。

本博曾有文章說,專案管理就是消除不確定性,如果所有的任務都被分解完,並且所有的任務都可以被使用者理解。那麼目標完成與否就是很確定的事情。也就是說,乙個專案完成與否的測試標準已經有了。

將任務分解完成之後,根據優先順序將各個任務放在不同的版本中,放入版本的原則是:確保每個版本可以快速完成。快速完成指,最長不超過五天的時間。如果超過五天沒有完成,就要重新審視是否每個版本的任務太多了。之所以不能超過太長的時間,是因為時間太長才知道沒有完成的話,風險就會很大。時間很短就知道沒有完成,就可以盡快採取相應的措施(如,增加人手,減少每個版本的任務量等)。

專案管理就是消除不確定性中提到的橫向劃分,就是指每個版本可以由多人開發人員並行開發,從而解決速度問題。

專案完成的整體標準有了,並行劃分也有了,接下來就是按照各個版本去實現了。每個版本做完,都需要測試人員進行測試,並將問題寫在任務列表中,再將問題劃分到後續版本中去。當所有的版本都完成的時候(包括測試出來的問題形成的版本),專案就完成了。

通過這裡所介紹的敏捷開發流程,已經將專案管理就是消除不確定性的進行具體化。這只是消除不確定性的一種方法,針對不同的專案,還需要進行不同的考慮。雖然這只是消除不確定的一種方法,但足以應付很多場合了。

對於大型專案,或者涉及到重大安全的專案,可能要在開發前期進行反覆論證,這使得專案不得不走瀑布開發模式,這時個,消除不確定性的方法就有所區別了。

本博遇到的大多數專案管理人員的是時間點,本博要強調的是,完成的測試標準確定下來,時間點才有意義。沒有完成的測試標準,時間點就是給自己心理安慰一下而已。

什麼是敏捷開發?

敏捷開發的4句宣言 個體與互動 勝過 過程與工具 可以工作的軟體 勝過 面面俱到的文擋 客戶協作 勝過 合同談判 響應變化 勝過 遵循計畫 什麼是敏捷開發?敏捷開發 agile development 是一種以人為核心 迭代 循序漸進的開發方法。怎麼理解呢?首先,我們要理解它不是一門技術,它是一種開...

敏捷開發 什麼是敏捷開發?敏捷開發掃盲(詳解)

敏捷開發 scrum 是一種軟體開發的流程,強調快速反應 快速迭代 價值驅動。scrum的英文意思是橄欖球運動的乙個專業術語,表示 爭球 的動作 運用該流程,你就能看到你團隊高效的工作。敏捷開發的特點就是下面4句話 個體與互動 勝過 過程與工具 可以工作的軟體 勝過 面面俱到的文擋 客戶協作 勝過 ...

什麼是敏捷開發?它有什麼特點

隨著軟體開發技術的不斷發展,現在出現了很多種不同的開發模式,其實敏捷開發已經成為現在很多企業開發應用程式都想要選擇的開發方案。那麼什麼是敏捷開發呢?下面一起來了解一下相關的知識吧!常用的 4 種開發模式 1.瀑布式開發 瀑布式開發是由 ww.royce 在 1970 年提出的軟體開發模型,是一種比較...