《管見》畢偉:現代軟件工程與“人月神話”
- 時間:2023-12-29
- 來源:遠光軟件
一、軟件工程領域的“人月神話”
在軟件工程領域有一個著名的觀點——“人月神話”,它是作者弗雷德里克·布魯克斯在1975年首次出版的同名書籍《人月神話》中提出的,“人月神話”即原文中的“ The Mythical Man-Month”,“人”指工程師,“月”即時間。作者認為,軟件開發不同于傳統行業,其過程的復雜性決定了完成工作的人數和時間不能進行簡單的互換,即 “10個人預計10個月完成”的工作量不能被簡單的評估為 “100個人可以在1個月內完成”,簡單用“人月”作為衡量一項工作的規模將是一個危險和帶有欺騙性的神話。
現在,軟件工程經過了四十多年的發展,工程理論不斷創新,軟件技術持續迭代,AI發展日新月異,整體呈現出多元化、智能化、敏捷化的趨勢。那么,在現代的軟件工程中,“人月神話”是否可以變成現實了呢?
二、現代軟件工程的變化
近年來,隨著技術的不斷進步,軟件工程領域涌現出很多新的工具、方法和框架,使得軟件開發更加高效、可靠和靈活。同時,云計算、大數據、人工智能等技術的融合應用,也為現代軟件工程帶來了更多創新和發展空間:
敏捷開發理論的產生,打破了傳統開發的僵化模式,以客戶需求為核心,通過短周期快速迭代,子項目成果持續集成交付,降低了項目整體失敗的風險,并確保了系統一直處于可用狀態。
DevOps的出現,改變了傳統軟件開發和運維的模式,將開發與運維緊密結合,通過自動化工具簡化了開發、測試、部署等過程,降低了人為錯誤的風險,使得構建、測試、發布軟件能夠更加地快捷、頻繁和可靠,提高了軟件交付的速度和質量。
云計算的興起,極大地改變了軟件工程實踐方式,它為開發團隊提供了彈性擴展、高可用性的基礎設施,支持更快地部署和迭代產品。
容器技術的發展,為軟件工程帶來了巨大的變革,通過提供輕量級、可移植的運行環境,使得應用程序能夠快速、可靠地部署和運行。同時,容器技術通過隔離性保證和微服務架構支撐,也推動了軟件系統的可擴展性和靈活性,進一步優化了DevOps流程和云計算資源管理。
人工智能的誕生,更為軟件工程帶來了革命性的變化,將軟件開發向著智能化、自動化的方向推進。尤其是2022年底大模型的橫空出世,為我們迎來了一個全新的AI開發時代——大模型通過其強大的自然語言處理、學習和推理能力,為軟件工程的各個環節帶來了巨大的便利,無論是需求分析、代碼生成、低代碼開發,還是研發管理、自動化測試、智能運維,大模型都展現出了其高效和智能的一面,這使得軟件研發的整個工作過程變得更加流暢和高效,極大地提高了開發效率和質量。
這些技術成果和創新理論的出現,從不同方面提高了軟件開發的效率和軟件交付的質量,為軟件工程帶來前所未有的進步和變革。但仔細分析,布魯克斯在《人月神話》中提出的問題依舊存在,盡管在軟件工程中技術和管理都很重要,但人的因素始終是最關鍵的,人的技能、經驗、溝通、協作等都對項目的成敗產生重大影響。譬如,敏捷開發是以人為核心的,需要高度的自我組織和責任感;DevOps對團隊技能要求高,且需要改變組織傳統工作方式和思維模式,挑戰跨部門協作;云計算需要研發團隊不斷學習新技術,設計合理的架構和資源管理機制,以降低成本并確保應用程序的穩定性和安全性;容器管理的復雜性,需要專業的容器編排工具和團隊進行管理和維護;而呼聲最高的大模型,盡管在根據訓練數據自動生成代碼方面已經有了巨大的突破,但它無法像人一樣從零開始進行創造性的設計和實現,面對復雜的軟件需求和系統架構,大模型也無法像人一樣通過抽象思維和邏輯推理去整體構建。
三、遠光軟件的探索與成果
綜上分析,即使在現代科技背景下,軟件技術和理論都有了顯著的進步和變革,但“人月”依然不是一個可以直接互換的資源,“人月神話”仍舊是無法實現的。人依然是軟件工程最核心的存在,先進的理論/技術依然是圍繞“人”進行的,單純加人并不能線性縮短軟件交付周期,反而可能會因為人數增加而帶來額外的技能培訓、團隊溝通、組織協調等管理成本,導致反向效應。
然而,軟件產業從業人員依然在追尋最大化地利用現代軟件工程的發展成果,寄望于在前沿技術的加持下,充分發揮人在軟件創造性、抽象思維、邏輯推理和團隊協作等方面不可替代的作用,通過人、技術、工具、過程的有效結合來減少“人月”投入,提高研發效率,縮短交付周期。
遠光軟件自成立以來,一直堅持自主研究,服務大型央國企信息化、數字化建設,30余年來,不斷探索、創新提升研發效率的模式、方法和工具。從研發管理模式上,公司以敏捷開發理論為基礎,通過構建跨地域、多元化研發組織體系,推行項目集管理模式,注重快速響應市場變化和客戶需求,通過跨部門協作、持續集成和持續改進,實現高效、高質量的軟件交付。在創新技術應用上,公司以提高開發效率為目標,推行“以使用AI輔助編程為常態、未使用為例外”策略,在各個產品研發部門全面推行AIGC輔助編程,通過AI工具來輔助研發人員提高軟件開發的效率和質量,提升對客戶的響應能力和速度。在工具層面,公司打造出以AI為核心驅動、融合先進軟件工程理論的遠光九天智能一體化云平臺,作為全棧研發工具,遠光九天平臺通過融合大模型技術,可為內外部用戶提供覆蓋軟件研發全生命周期的AIGC研發能力,幫助研發人員從大量重復、瑣碎、機械的基礎工作中解放出來,轉而去做更具創造性、更有價值的工作。
盡管“人月神話”目前還無法突破,但圍繞“人、技術、工具、過程”進行有效結合的各種理論探索,仍舊是所有軟件產業從業者始終在努力的方向,只有通過不斷學習更新的技術,探索更好的管理辦法,來提升研發效率,縮短交付周期,不斷的迭代創新,來無限接近這一神話。