之前,小編在《從瀑布式到 DevOps,開發流程經歷了什么?》一文中,梳理了軟件開發流程的大致演變過程。
其實,在早期軟件開發還是“小作坊”作業的時候,沒有形成所謂的開發流程方法論,開發特別倚重個人能力,大多都雜亂無章,所以效率也不高。
20 世紀 70 年代,從瀑布式開發開始,開發流程有了一套自己的方法論。一路發展演進,先后涌現了敏捷和 DevOps 等新興理念??梢钥闯龅氖?軟件開發規模越來越大,要求的速度卻越來越快。
01 開發流程正在“提效”路上一去不回頭
上世紀50年代,一種項目管理三角(也稱的三重約束、鐵三角或項目三角)的模型開始被人們廣泛使用。

三角模型被用來約束項目的發展過程,它認為:
質量工作是由該項目的預算、時間和功能來限制;
項目經理可以約束之間的平衡;
一個約束的變化需要其他約束的變化來補償,否則質量將受到影響。
例如,可以通過增加預算或縮小范圍來更快地完成項目。同樣,增加范圍可能需要相應增加預算和進度。削減預算而不調整時間表或范圍會導致質量下降。也就是說,好、快、便宜(范圍、時間和成本),只能選擇兩個。
在早期,瀑布式開發與三角模型相關聯,由此表明:軟件開發可以由應用程序創建或構建所花費的時間長度來定義。
然而,在當時,創建、測試和部署軟件通常需要很長時間,因為在開發過程中沒有制衡。結果是軟件質量不佳,存在缺陷和錯誤以及未滿足的時間表。因此,瀑布式開發的重點是軟件項目的長期計劃。
這種思維方式來自制造和工程,其中線性過程是有意義的——你先建墻,再建屋頂。同樣,軟件開發問題被視為可以通過計劃解決的問題。從開始到結束,開發過程都由路線圖明確定義,路線圖將導致產品的最終交付。
但是,瀑布式被認為是對軟件開發有害的,因為通常直到項目周期的最后階段才能確定其價值,并且在許多情況下項目都失敗了。此外,客戶直到項目結束才能看到可運行的軟件。
事情在敏捷時代發生了改變。
敏捷采取了一種不同的方法,不再規劃整個項目,承諾預計日期,并對計劃負責。而是假設并擁抱不確定性,改變被認為是滿足客戶需求的一種方式。
它定義了以下12條原則:
(引用)
1.我們的首要任務是通過早期和持續交付有價值的軟件來滿足客戶。
2. 歡迎不斷變化的需求,即使是在開發后期。
3. 敏捷流程利用變化來獲得客戶的競爭優勢。
4. 頻繁地交付可工作的軟件,從幾周到幾個月不等,優先考慮較短的時間范圍。
5.業務人員和開發人員必須在整個項目中每天一起工作。
6.圍繞積極的個人建立項目。
7. 為他們提供所需的環境和支持,并相信他們會完成工作。
8. 向開發團隊和在開發團隊內部傳達信息最有效的方法是面對面交談。
9. 工作軟件是進度的主要衡量標準。
10. 敏捷流程促進可持續發展。贊助商、開發者和用戶應該能夠無限期地保持恒定的步伐。
11、對卓越技術和良好設計的持續關注可提高敏捷性。
12、團隊定期反思如何提高效率,然后相應地調整和調整其行為。
詳情可查看敏捷宣言網頁:https://agilemanifesto.org/principles.html
從敏捷開始,短時間和高效率成為開發理念中的一個重點。而 DevOps 則更進一步。
某種程度上,DevOps 是一種文化、一種心態、一種軟件開發或基礎架構的方式,以及一種構建和部署軟件和應用程序的方式。其中的精髓是:開發和運維之間沒有墻;它們同時工作,沒有孤島。
DevOps 正是基于精益和敏捷兩個實踐領域。雖然敏捷和 DevOps 有很多不同之處,但它們都尋求解決復雜問題、提高質量并圍繞軟件設計進行創新。
與此同時,DevOps 加快了開發和運維人員之間的工作,還減少了Dev 和 Ops 之間的分工。這是因為DevOps 要求持續部署、交付和集成。團隊合作是一體的;問題和故障由開發、運維和其他實體共同擁有,例如質量保證(QA)、測試、自動化等。

敏捷與 DevOps 的區別
總的來說,無論是敏捷還是DevOps,都旨在幫助團隊更快、更高效地工作,更快地交付高質量產品和提高客戶滿意度。
02 天下武功唯快不破!
在敏捷時代,一批輕量的軟件工程方法和框架相繼誕生,它們共同的特點是,相對傳統軟件工程,都遵循演進和迭代的模型,過程更加輕量靈活,以 Scrum 和極限編程 (ExtremeProgramming) 為代表。
早期的敏捷專注的是研發交付階段,站在業務的角度,它的目標是幫助產品和研發團隊提升敏捷響應能力。但在 DevOps 時代,IT 不僅要保證產品的開發和交付,系統部署和運行同樣重要 。在敏捷開發的理念之上,又補上了運維的部分。
目前,DevOps 仍處于高速發展階段。南京大學軟件研發效能實驗室發布的DevOps ·云原生2021年度中國調查報告》顯示,2021年國內企業的 DevOps 工具的普及程度較2019年有明顯上升趨勢。
因此,為了達到更快更好的開發目標,不斷有新式的開發工具涌現出來。
一方面,不同工具在各領域全面開花,一起助推 DevOps 的落地。比如JIRA、Trello等敏捷開發工具,Maven、NPM、Gradle等持續交付工具,Zabbix、Elastic、Grafana、Kafka、Ansible、Logstash、Prometheus等自動運維工具等等。
另一方面,一些集大成的工具也同時應用自動化、AI等技術,以更好地實現功能。其中,飛算SoFlu 全自動軟件工程平臺便是其中的一個代表。
飛算SoFlu是近年發布的新一代 JAVA 開發工具,截至目前已在包括醫療、金融、制造、零售等在內的多個行業使用。
全自動平臺可以通過降低準入門檻、人力成本和溝通成本,來極大提升企業的開發效率。以工具為核心,制訂好管理流程,利用科學的管理方法,讓程序員在操作工具時有規可循,從而降低管理風險和溝通風險。
以某大型國有企業開發的“百萬人使用級別的電商平臺”項目為例。此前,該企業組建數十人團隊完成開發,上線后卻在功能性、穩定性、安全性等方面問題不斷,且無法在短期內修復。在使用飛算 SoFlu 全自動軟件工程平臺后,該企業僅投入 6 位研發人員 45 天就高效完成開發、測試、聯調、上線全流程任務。
具體來說,單就Excel表格文件解析這個高頻開發功能,這在之前,即使是一個經驗豐富的程序員,也至少需要花費半天時間。但是飛算能夠將時間壓縮到以分鐘計算:
1. 編程邏輯流程化,十分鐘完成開發,完全不用敲代碼,拖拉拽即可完成后端開發。
2. 豐富的組件支持,涵蓋數據庫、redis、api、mongoDB、子流程組件等,支持循環、條件判斷、函數調用,通過拖拉拽的方式以及參數配置實現等同編寫復雜代碼的業務邏輯。
3.函數齊全,各種API函數應有盡有,快速解決業務及功能上的各種需求。

特別提醒:本網信息來自于互聯網,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。