人工智能正在改變軟件開發模式
軟件開發人員正在使用人工智能來幫助編寫和審查代碼、檢測錯誤、測試軟件和優化開發項目。這種幫助正在幫助公司更有效地部署新軟件,并使新一代開發人員能夠更輕松地學習編碼。
這些是德勤最近發布的軟件開發中人工智能報告的結論,并在福布斯最近的一篇文章中進行了總結。作者DavidSchatsky和SourabhBumb描述了一系列公司如何在過去18個月中推出了數十種人工智能驅動的軟件開發工具。在截至2019年9月的一年中,初創公司籌集了7.04億美元,市場正在增長。
新工具可用于幫助減少擊鍵次數,在編寫軟件時檢測錯誤,并自動執行確認軟件質量所需的許多測試。這在越來越依賴開源代碼的時代很重要,開源代碼可能會帶來錯誤。
雖然有些人擔心自動化可能會奪走程序員的工作,但德勤的作者認為這不太可能。
“在大多數情況下,這些人工智能工具正在幫助和增強人類,而不是取代他們,”沙茨基說。“這些工具正在幫助實現編碼和軟件開發的民主化,允許沒有經過編碼培訓的個人填補人才缺口并學習新技能。還有人工智能驅動的代碼審查,在您運行代碼之前提供質量保證。”
Forrester在2018年的一項研究發現,37%的軟件開發公司正在使用由人工智能驅動的編碼工具。現在這個百分比可能會更高,因為Tara、DeepCode、Kite、Functionize和DeepTabNine等公司以及許多其他公司都提供自動化編碼服務。
成功似乎正在加速這一趨勢。Schatsky表示:“除了降低成本和時間之外,許多實施這些人工智能工具的公司還看到了最終產品質量的提高。”
德勤的研究表明,人工智能可以幫助緩解有才華的開發人員長期短缺的問題。去年,糟糕的軟件質量使美國組織損失了大約3190億美元。人工智能的應用有可能緩解這些挑戰。
德勤認為人工智能在軟件開發的許多階段都有幫助,包括:項目需求、編碼審查、錯誤檢測和解決,更多的是通過測試、部署和項目管理。
IBM工程師從Watson項目中學習人工智能開發課程
位于北卡羅來納州羅利市的IBM杰出工程師BillHiggins在該公司從事軟件開發工作20年,最近在Medium發表了一篇關于人工智能對軟件開發影響的報告。
組織需要“忘記”他們過去如何開發軟件的模式。“如果一個人很難適應,那么公司要適應就難上百萬倍,”作者說。
Higgins是IBM在Watson小組內的人工智能forDevelopers任務的負責人。“事實證明,我對人工智能缺乏個人經驗是一種資產,”他說。他必須經歷自己的學習之旅,從而對需要適應的開發人員獲得更深入的理解和同情。
為了了解軟件開發中的人工智能,希金斯說他研究了其他人如何應用它(問題空間)以及使用人工智能優于替代方案的案例(解決方案空間)。這對于理解什么是可能的和避免“神奇的思維”很重要。
作者說他的旅程是他在賓夕法尼亞州立大學獲得計算機科學學位后所做的最緊張和最困難的學習。“我很難重新思考從經驗中改進的軟件系統,而不是只做你告訴他們做的事情的軟件系統,”他說。
IBM開發了一個概念模型來幫助企業思考基于人工智能的轉型,稱為人工智能階梯。梯子有四個梯級:收集、組織、分析和注入。大多數企業擁有大量數據,通常在孤立的IT工作或收購中進行組織。一個給定的企業可能有20個數據庫和三個數據倉庫,其中包含有關客戶的冗余和不一致的信息。訂單、員工和產品信息等其他數據類型也是如此。“IBM推動人工智能階梯從概念上爬出這個泥潭,”希金斯說。
在注入階段,該公司致力于將經過訓練的機器學習模型集成到生產系統中,并設計反饋循環,以便模型可以繼續從經驗中改進。注入人工智能的一個例子是Netflix推薦系統,它由復雜的機器學習模型提供支持。
IBM已確定將API、預構建的機器學習模型和可選工具組合起來,以封裝、收集、組織和分析常見機器學習領域的人工智能階梯梯級,例如自然語言理解、與虛擬代理的對話、視覺識別、語音和企業搜索。
例如,沃森的自然語言理解變得豐富而復雜。機器學習現在擅長理解語言的許多方面,包括概念、概念之間的關系和情感內容。現在,NLU服務和基于機器學習的自然語言處理的研發可以通過優雅的API和支持的SDK提供給開發人員。
“因此,開發人員今天可以開始在他們的應用程序中利用某些類型的人工智能,即使他們缺乏數據科學或機器學習方面的任何正式培訓,”希金斯說。