看看男人日女人,亚洲欧美日韩日本国产三,国产精品欧美日韩区二区,妓女影库妓女网在线视频

一文讀懂軟件開發(fā)流程的演變過程(軟件開發(fā)經(jīng)歷的三個演變過程)

自20世紀70年代開始,隨著信息技術的迅速發(fā)展,以及人們對于軟件的需求變大,軟件生產(chǎn)走向規(guī)?;肮こ袒彼季S開始進入軟件開發(fā)流程。相繼出現(xiàn)Waterfall(瀑布式)、Agile(敏捷)以及DevOps開發(fā)流程模式。

Waterfall(瀑布式)開發(fā)的優(yōu)勢是什么?為什么很多傳統(tǒng)企業(yè)還在選擇Waterfall(瀑布式)開發(fā)?而互聯(lián)網(wǎng)公司為什么會采用敏捷(Agile)的開發(fā)模式?DevOps開發(fā)的理念又是怎樣的?本文將為各位讀者梳理關于軟件開發(fā)流程的“前世今生”。

一、Waterfall開發(fā)模式

Waterfall開發(fā)模式,在國內(nèi)一般稱為瀑布式開發(fā)模式,是一種屬于預測型生命周期的傳統(tǒng)開發(fā)方法。它開始流行于20世紀70年代,是由軟件開發(fā)大師W.Royce最初提出的軟件開發(fā)模型。該開發(fā)方法屬于研發(fā)項目管理的預測型生命周期的情況,是最典型的預見性的開發(fā)方法,嚴格遵循從需求分析、架構設計、編碼、測試和維護等可預見性的步驟按順序進行。

(一)瀑布式開發(fā)的基本準則

(1)通常采用分階段的開發(fā)實踐,即軟件開發(fā)過程中分為固定的幾個階段,具體的階段名稱可以參考上圖所示的內(nèi)容;

(2)采用階段式評審方式,即每個階段結束時由上到下進行相應地評審,評審通過后方可進入下一階段。典型的評審有需求評審和架構設計評審等。

(二)瀑布式開發(fā)的優(yōu)勢

(1)在理論上只要在產(chǎn)品評審階段前將所有產(chǎn)品細節(jié)確認并完善,且后期很少或不再更改需求,更加方便研發(fā)團隊為超大型及復雜項目制定相應地開發(fā)計劃;

(2)在理論上瀑布式開發(fā)的每個階段都會由對應的負責人員提供相對完善翔實的文檔及其它書面材料,這會讓項目在開發(fā)過程中保持很強的安全感,項目的每個階段都經(jīng)過了所有人的深思熟慮才會進行相應的推進。

(三)瀑布式開發(fā)的劣勢

(1)產(chǎn)品驗證滯后 。是瀑布式開發(fā)過程中最讓使用軟件的需求部門頭疼的部分,需求部門的人員必須等到項目進入收尾階段的時候才可以對軟件產(chǎn)品的功能性需求與非功能性需求進行驗證。驗證滯后導致在整個開發(fā)生命周期積壓了大量的風險和不確定性,這就意味著在研發(fā)生命周期中所有階段都不能出現(xiàn)任何紕漏,否則將導致整體項目變得不可控。

(2)需求變更困難。在瀑布式開發(fā)過程中,任何對之前階段的重大決策的修改與調(diào)整都將打亂原本的開發(fā)流程,大量已完成的工作需要重新評估,此間過程的推進將嚴重耗費整個團隊的精力。

(3)難以適應變化的市場。瀑布式開發(fā)過程中的所有工作都嚴重依賴于階段的交付物和文檔,比如架構設計階段就嚴重依賴需求分析階段針對需求的評審結果。每個階段的任何一點改動都會牽一發(fā)而動全身,這大大降低了產(chǎn)品能夠快速適應市場變化的適應力。

終上所述,采用瀑布式開發(fā)是有前提條件的,那就是瀑布式開發(fā)適合在軟件開發(fā)項目中需求比較確定并且技術解決方向比較確定的情況,瀑布式開發(fā)過于理想化,需要產(chǎn)品研發(fā)團隊在開始的時候就預見到所有的問題,全面地把握需求,這往往是不可能實現(xiàn)的。所以Agile開發(fā)模式就應運而生。

二、Agile(敏捷)開發(fā)模式

從21世紀初, Agile(敏捷)開發(fā)方法逐步走到了歷史舞臺的中央。尤其是在2001年很多不同流派的創(chuàng)始人或業(yè)界大咖共同組建敏捷聯(lián)盟后,敏捷聯(lián)盟所一致推崇的敏捷宣言、敏捷原則和敏捷價值觀更加深入人心,大有成為業(yè)界目前主流開發(fā)理論和方法實踐之勢。目前Agile(敏捷)開發(fā)的門派很多,但是他們都共同遵循敏捷宣言、敏捷原則和敏捷價值觀。

敏捷遵循的原則共十二條及關鍵要點如下:

1、我們最重要的目標,是通過持續(xù)不斷地及早交付有價值的軟件使客戶滿意。

關鍵要點:交付價值

2、欣然面對需求變化,即使在開發(fā)后期也一樣。善于掌控變化,幫助客戶獲得競爭優(yōu)勢。

關鍵要點:擁抱變化

3、經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個月,傾向于采取較短的周期。

關鍵要點:持續(xù)交付

4、業(yè)務人員和開發(fā)人員必須相互合作,項目中的每一天都不例外。

關鍵要點:合作

5、激發(fā)個體的斗志,以他們?yōu)楹诵拇罱椖?。提供他們所需的環(huán)境和支持,相信他們能夠達成目標。

關鍵要點:人本思想

6、不論團隊內(nèi)外,傳遞信息效果最好效率也最高的方式是面對面的交談。

關鍵要點:面對面溝通

7、可工作的軟件是進度的首要度量標準。

關鍵要點:可工作軟件

8、敏捷過程倡導可持續(xù)開發(fā)。責任人、開發(fā)人員和用戶要能夠共同維持其步調(diào)穩(wěn)定延續(xù)。

關鍵要點:節(jié)奏

9、對技術精益求精,對設計不斷完善,將提高敏捷能力。

關鍵要點:精益

10、以簡潔為本,極力減少不必要工作量。

關鍵要點:簡潔

11、最好的架構、需求和設計出自于自組織的團隊。

關鍵要點:自組織

12、團隊定期地反思如何能提高成效,并依此調(diào)整團隊的行為。

關鍵要點:自省

總之,敏捷開發(fā)方法是傳統(tǒng)瀑布式開發(fā)方法的合理補充,是應對未來市場或需求多變場景的良好實踐。敏捷開發(fā)方法仍然可以借鑒瀑布式開發(fā)關于需求管理和架構設計的一些實踐,比如界面原型的設計與評審,針對關鍵的問題的架構決策等內(nèi)容。

三、DevOps開發(fā)模式

當下開發(fā)運維一體化的實踐DevOps進一步繼承Agile開發(fā)模式的良好實踐,確保每次迭代的可工作軟件能夠快速而成功的發(fā)布到生產(chǎn)環(huán)境,進而快速獲得客戶關于軟件新特性的價值反饋。

《阿里巴巴 DevOps 實踐》認為,從價值的角度,開發(fā)加運維才構成相對完整的 IT 價值鏈。而 DevOps 的誕生,正是為了解決 IT 價值鏈的最突出問題 —— 開發(fā)和運維之間的問題。根據(jù)微軟云計算 Azure,DevOps 的獨特之處在于開發(fā)、IT 運營、質(zhì)量工程和安全團隊協(xié)同工作,在發(fā)布新產(chǎn)品、版本或更新所涉及的所有任務中創(chuàng)造效率。其中,DevOps 的主要表現(xiàn)形式包括持續(xù)集成、持續(xù)交付和連續(xù)部署。

在現(xiàn)實操作中,DevOps 也不乏實現(xiàn)工具。比如中國原創(chuàng)的SoFlu 軟件機器人,其出發(fā)點是想讓 DevOps 真正的落地,而實現(xiàn) “落地”,首先重點要解決的就是開發(fā)的問題, 包括開發(fā)的品質(zhì)、安全和效率等,再逐步解決測試和運維問題。SoFlu 軟件機器人通過可視化拖拽方式以及參數(shù)配置實現(xiàn)等同于編寫復雜代碼的業(yè)務邏輯,在設計業(yè)務邏輯時就完成了微服務應用開發(fā),做到“業(yè)務即圖,圖即代碼”,極大降低軟件開發(fā)門檻,實現(xiàn)軟件開發(fā),十倍效能的提升,從而全面提升企業(yè)科技生產(chǎn)力。除了SoFlu 軟件機器人,幫助 DevOps 實現(xiàn)組織落地的工具不在少數(shù),其中還包括開源的 CI/CD 服務器 Jenkins、容器平臺 Docker 等等。

相關新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部
毕节市| 北票市| 宁津县| 梧州市| 鄂托克前旗| 徐州市| 武鸣县| 石河子市| 潜山县| 泰兴市| 上饶县| 芒康县| 磐石市| 泰安市| 恩施市| 龙海市| 卢湾区| 阿尔山市| 旅游| 玛曲县| 太康县| 桦川县| 易门县| 遵义市| 舒兰市| 凭祥市| 图们市| 个旧市| 突泉县| 新泰市| 天峨县| 且末县| 兴城市| 古田县| 修武县| 中江县| 甘泉县| 永登县| 千阳县| 陕西省| 盈江县|