自動駕駛和軟件(SW)開發(fā)之間有何共同點?乍一看,并沒有什么共同點。但仔細(xì)觀察一下,就能發(fā)現(xiàn)兩者之間存在一些相似之處,尤其是在實現(xiàn)基本目標(biāo)的演進(jìn)路徑上。開發(fā)團(tuán)隊本身不會成為 “乘客”,但設(shè)計、創(chuàng)建、保護(hù)、分發(fā)和維護(hù)等方面相關(guān)人員的傳統(tǒng)角色和職責(zé)會發(fā)生轉(zhuǎn)變。為了更好地理解這一點,可以先深入了解一下自動駕駛的概念,然后再將其與軟件開發(fā)聯(lián)系起來。
自動駕駛的概念出現(xiàn)已有多年,曾經(jīng)看似未來派的概念如今已成為現(xiàn)實。從本質(zhì)上來說,自動駕駛汽車(AV)旨在最大限度地減少交通出行中的人為失誤(目前約 90% 的交通事故都是由人為失誤造成的)。自動駕駛汽車的基本前提是其性能應(yīng)優(yōu)于普通人類駕駛員。自動駕駛技術(shù)可以節(jié)約時間,這至關(guān)重要。這樣,人們就可以把精力投入到更令人愉悅的娛樂活動中,而不是耗費(fèi)在交通路途中。
邊緣計算和 AI 是實現(xiàn)自動駕駛的兩大關(guān)鍵要素:它們使車輛能夠在車內(nèi)處理物聯(lián)網(wǎng)傳感器的數(shù)據(jù),從而實現(xiàn)實時操作。這種能力對于任何任務(wù)關(guān)鍵型應(yīng)用都至關(guān)重要。試圖對機(jī)器進(jìn)行手動編程,以處理各種可能的駕駛場景的做法已不切實際。相反,車輛必須從環(huán)境中動態(tài)學(xué)習(xí)。自動駕駛汽車的智能程度取決于各種物聯(lián)網(wǎng)傳感器數(shù)據(jù)的可用性,基于數(shù)據(jù)就能創(chuàng)建物理世界的數(shù)字孿生表示。數(shù)據(jù)越多樣化,就能部署越復(fù)雜的 AI 系統(tǒng)。
觀察自動駕駛的發(fā)展路徑,我們可以發(fā)現(xiàn),在每個階段,人類的參與都在逐漸減少。自動駕駛汽車框架包括 6 個自動化級別,從 0(完全手動)到 5(完全自主)不等。
無自動化:駕駛員完全控制所有駕駛?cè)蝿?wù)。
駕駛員輔助:車輛采用單一自動化系統(tǒng),允許駕駛員將腳從踏板上移開。
部分自動化:車輛具備轉(zhuǎn)向和加速能力,駕駛員可以將手從方向盤上移開。
有條件的自動化:車輛能夠控制大部分駕駛?cè)蝿?wù),使駕駛員能夠?qū)⒁暰€從道路上移開,同時仍能保持監(jiān)控。
高度自動化:車輛在特定條件下能夠執(zhí)行所有駕駛?cè)蝿?wù),讓駕駛員有機(jī)會在保持警惕的同時,將注意力從路面上移開。
完全自動化:車輛可在任何條件下獨(dú)立完成所有駕駛?cè)蝿?wù)。這樣,駕駛員就變成了乘客,完全不用擔(dān)心任何駕駛責(zé)任。
AI 在軟件開發(fā)中的優(yōu)勢與其在自動駕駛領(lǐng)域中的優(yōu)勢如出一轍,即最大限度地減少人為失誤,使人能夠騰出時間,從事創(chuàng)造性更強(qiáng)的工作。由于人力資源往往是軟件開發(fā)中成本最高的環(huán)節(jié),因此企業(yè)就有動力去采用 AI 系統(tǒng),事半功倍。
仔細(xì)研究軟件開發(fā)的演進(jìn)路徑,會發(fā)現(xiàn)其與自動駕駛技術(shù)的進(jìn)步有著驚人的相似之處:在每個演進(jìn)階段,人類的參與都在逐漸減少:
本世紀(jì)初,軟件開發(fā)幾乎不涉及自動化。在軟件開發(fā)生命周期(SDLC)的每個階段都需要人工控制,因此整個過程基本上都需要手動操作。問題往往是由客戶而非內(nèi)部團(tuán)隊發(fā)現(xiàn)的。
2010 年代中期,容器化、云計算和 DevOps 的興起提高了軟件開發(fā)生命周期的整體自動化程度和效率。在測試、代碼審查和 CI / CD 等領(lǐng)域,基于預(yù)定義(硬編碼)策略和“if-then”規(guī)則的常規(guī)任務(wù)和程序性決策實現(xiàn)了自動化。這樣,研發(fā)團(tuán)隊就能專注于創(chuàng)造性工作,提高生產(chǎn)力,進(jìn)而實現(xiàn)“引導(dǎo)和加速”。根據(jù)敏捷原則縮短開發(fā)周期,在開發(fā)和運(yùn)維之間架起橋梁。問題的管理和解決開始從被動反應(yīng)轉(zhuǎn)變?yōu)樽赃m應(yīng),各團(tuán)隊之間的協(xié)調(diào)更加順暢。大多數(shù)問題甚至可以在客戶意識到之前就被發(fā)現(xiàn)并解決。
如今,生成式 AI 正在推動軟件開發(fā)的效率和創(chuàng)新水平至新高?;谏墒?AI 的解決方案可通過無縫的人機(jī)對話來創(chuàng)建新內(nèi)容,自動化的應(yīng)用遠(yuǎn)不止常規(guī)任務(wù)。AI 在整個軟件開發(fā)生命周期過程中,是不折不扣的助手(智能副駕),它能夠提供建議、解釋問題、生成代碼、監(jiān)控流程、掃描資源庫、提供預(yù)測并輔助快速決策,效率也開始得以提升。這將進(jìn)一步加快和提高整體代碼生成速度,意味著能夠?qū)崿F(xiàn)更多的軟件構(gòu)建、更多需要保護(hù)的軟件以及更頻繁的運(yùn)行時更新。當(dāng)我們將嵌入式 AI 模型(MLOps)添加到現(xiàn)代軟件開發(fā)的等式中時,上述領(lǐng)域?qū)⑦M(jìn)一步擴(kuò)大?!傲魇杰浖钡母拍钫饾u成為現(xiàn)實,小規(guī)模的增量改進(jìn)(基于二進(jìn)制文件的更新)會自動從開發(fā)階段流向運(yùn)行階段,而服務(wù)停機(jī)時間則會降至最低。
在應(yīng)用安全方面,AI 能夠通過預(yù)測,大幅縮短發(fā)現(xiàn)和修復(fù)問題的時間,從源頭防止惡意軟件包進(jìn)入企業(yè)。首先是利用基于 AI 的嚴(yán)重性和上下文分析來進(jìn)行自動化漏洞掃描和檢測,然后是自動修復(fù)。盡管取得了上述進(jìn)步,但在基于 AI 的解決方案展現(xiàn)出更高的可信度和可靠性之前,人工干預(yù)和審批仍然是必要的。
近年來,我們開始向全自動范式過渡,即從“智能副駕”(AI 助手)轉(zhuǎn)變?yōu)椤白詣玉{駛”(人工智能決策者)。機(jī)器可以通過自然語言用戶界面(如英語)來解決高度復(fù)雜的問題,而這需要程序員掌握新型技能,引導(dǎo)對話達(dá)到預(yù)期狀態(tài)。從根本上說,AI 系統(tǒng)的性能應(yīng)優(yōu)于普通人類開發(fā)者或參與上述流程的其他人員。AI 將進(jìn)一步增強(qiáng)決策流程并使之自動化,使企業(yè)能夠選擇最佳的(數(shù)據(jù)驅(qū)動型)方法和工具來解決任何問題。對 AI 系統(tǒng)的信任將是最重要的,而這就要求做到對廣范圍語境的理解和合乎道德的決策制定,類似于當(dāng)今自動駕駛所面臨的挑戰(zhàn)。自學(xué)習(xí)和自修復(fù)能力將成為檢測、分析、隔離和修補(bǔ)問題并保持服務(wù)正常運(yùn)行的關(guān)鍵。這意味著:軟件將能夠自我重寫和更新,并增加新的功能以處理新的輸入。同樣,對于自動駕駛汽車,AI 系統(tǒng)也必須從自身運(yùn)行環(huán)境中學(xué)習(xí)并做出相應(yīng)調(diào)整。
總之,雖然自動駕駛與軟件開發(fā)之間的相似之處可能不會立即顯現(xiàn)出來,但這兩個領(lǐng)域都有一個共同的目標(biāo),即利用 AI 來強(qiáng)化自身的運(yùn)作,并讓個體能夠騰出時間來專注于更想追求的目標(biāo)。在軟件開發(fā)方面,AI 將持續(xù)加速并改進(jìn)新功能和數(shù)據(jù)的創(chuàng)建,提升各研發(fā)職能的用戶體驗,逐步從可信賴的顧問發(fā)展到更高的決策自主權(quán)。從智能編碼和安全,到覆蓋整體 DevOps 堆棧,基于 AI 的“智能副駕”將慢慢成為整個軟件開發(fā)生命周期的主流。企業(yè)對于 AI 必須堅持負(fù)責(zé)任且安全的原則和實踐,以確保業(yè)務(wù)成果的可持續(xù)性。這涵蓋 AI 生成軟件的多方面,包括保護(hù)知識產(chǎn)權(quán),避免潛在的安全和許可證合規(guī)問題等。AI 系統(tǒng)的逐步自主化將允許并確保與現(xiàn)有基礎(chǔ)設(shè)施和監(jiān)管環(huán)境的兼容性。
隨著 AI 技術(shù)的不斷進(jìn)步,我們可以預(yù)見軟件開發(fā)將迎來更深入的整合和創(chuàng)新。隨著 AI 不斷改變各行各業(yè),我們也步入了一個激動人心的時代。軟件開發(fā)的未來大有可為,想象力有多大,我們對機(jī)器能夠賦予的開發(fā)責(zé)任就可以有多大。