自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

?猜想生成式 AI 對軟件工程的影響

人工智能 開發(fā)
本文試圖從多個角度分析生成式AI對軟件工程可能帶來的影響,包括我們對軟件本身的理解、對軟件卓越的定義、重新定義軟件工程能力以及團隊組成和文化等方面。

作者 | 馮英睿

隨著AI技術(shù)的進步,尤其是OpenAI的GPT-4等大型語言模型的出現(xiàn),生成式AI正不斷改變我們對軟件工程的認識。本文試圖從多個角度分析生成式AI對軟件工程可能帶來的影響,包括我們對軟件本身的理解、對軟件卓越的定義、重新定義軟件工程能力以及團隊組成和文化等方面。

軟件由代碼和模型共同組成

Software = Codes + Models

我們發(fā)現(xiàn)大多數(shù)人在談到AI輔助研發(fā)軟件的時候,主要是指由代碼編譯的軟件,但軟件在今天早已不再僅由代碼編譯而成,而是由代碼與AI模型共同組成的。當我們談論研發(fā)提效的時候,也應該將AI工程提效加入進來一起考慮,而今天在基礎(chǔ)模型之上通過微調(diào)的方式讓開發(fā)AI模型的速度大幅提升。

同時由于AI涌現(xiàn)出來的能力,將在體驗創(chuàng)新和系統(tǒng)集成上帶來巨大的變化。從Microsoft365通過Copilot提升體驗,以及ChatGPT與Walframe的集成這兩個案例來看,隨著AI能力的進一步增強,未來將由AI把系統(tǒng)或平臺的各項能力進行整合,這也將進一步減少代碼在軟件中的比例。

所以在AI 2.0時代,我們需要更新對軟件的理解。AI模型在軟件中扮演越來越重要的角色,我們應該將軟件視為由代碼、數(shù)據(jù)和模型共同組成的系統(tǒng)。這意味著我們需要關(guān)注更大范圍的變化:

  • 軟件代碼開發(fā)效率提升
  • AI模型開發(fā)效率提升
  • 代碼在整個軟件中的占比會下降

軟件代碼的可讀性要求降低?

Codes = Human Codes + Generated Codes

在毫無疑問AI可以為軟件生成正確代碼的今天,很多人都在問:對卓越代碼的要求,是否適用于所有的代碼呢?我們對于軟件卓越的認識也需要發(fā)生改變,如果軟件卓越的追求是旨在降低成本、范圍、時間并提高軟件的價值和質(zhì)量,那么有兩個很有趣的觀點:

  • 在滿足質(zhì)量和功能要求的前提下,是否由更多AI生成代碼構(gòu)建的軟件因成本更低所以更卓越
  • 對于AI生成代碼的質(zhì)量要求明顯和人類編寫的代碼不同

首先從成本角度來看,更多代碼由AI生成不僅僅意味著研發(fā)成本的下降。同時也意味著問題的定義和分解都更加清晰,架構(gòu)和設計更加簡潔,否則AI很難自動生成可工作的代碼。

而如果某些功能和組件的代碼可以由AI重新生成,那么由AI生成代碼的可讀性也許不再值得特別關(guān)注。針對這一部分的代碼,用于生成代碼的注釋和測試才是更重要的。而生成的代碼可以在當模型升級時,通過生成的更好的代碼來替代,讓軟件獲得某種自我進化的能力。對于人類編寫的代碼而言,代碼的可讀性仍然非常重要。

重新定義軟件工程能力

Generated Codes = Correct Codes + Wrong Codes

生成式AI也要求我們重新思考如何評估軟件工程的能力。如果更卓越的軟件需要更多生成的代碼,那么是否可以認為:能夠生成更多正確代碼的人或團隊比別人更有能力?因為生成的代碼必然包括正確的代碼和錯誤的代碼。優(yōu)秀的軟件架構(gòu)師能夠找到更多生成正確代碼的方法。而為了更多的生成正確的代碼,通過降低AI學習的復雜性能有效提升生成內(nèi)容的質(zhì)量。這是因為:

  • 需要AI直接生成的代碼越多越容易出錯。這是因為需要生成越多的內(nèi)容,就意味著中間關(guān)鍵節(jié)點沒有打開,導致過程中有更高的概率使得AI不按照預期生成正確的結(jié)果
  • 需要AI學習更多知識和了解更多上下文就越容易出錯。以自然語言數(shù)據(jù)分析為例,AI生成SQL和AI生成Pandas DataFrame操作代碼的難度是完全不同的,因為Pandas操作數(shù)據(jù)集的時候,不需要了解數(shù)據(jù)庫中如何去join數(shù)據(jù),也不需要學會不同類型數(shù)據(jù)庫的特有語法和指令

所以優(yōu)秀架構(gòu)師和團隊在標準化設計、領(lǐng)域特定語言(DSL)設計和微服務拆分等工作將變得越來越重要,因為這些工作能顯著降低AI學習的復雜性。

另外值得關(guān)注的是,因為生成式AI模型還可以通過知識庫、模型微調(diào)等手段來提升能力,這使得知識工程或數(shù)據(jù)工程將成為軟件工程的一部分,這也將是未來軟件工程領(lǐng)域內(nèi)一個非常有意思的領(lǐng)域。

非開發(fā)者也可以生產(chǎn)代碼

Correct Codes can be generated by BA + QA or Dev

隨著AI的代碼生成能力不斷提升的同時,如果團隊的工程師開發(fā)出了優(yōu)秀的架構(gòu)和框架,使業(yè)務分析師(BA)和質(zhì)量保證工程師(QA)能夠直接交付許多功能,那團隊的人員組成比例必然會發(fā)生變化。這也將會帶來很多問題:

  • 這是否意味著BA和QA的比例將會增加?以軟件工程師為主體的團隊結(jié)構(gòu)的變化是否會導致工程師文化的稀釋?
  • 優(yōu)秀軟件工程師的成長路徑是怎么樣的?如果基本的工作都可以由其他角色完成,那初級開發(fā)人員的入門挑戰(zhàn)是否會提升難度?
  • 因為QA和開發(fā)人員(Dev)之間工作內(nèi)容的重疊,其差異將越來越模糊,QA與開發(fā)人員之間的區(qū)別又是什么?

很多問題都沒有確定的答案,但值得大家關(guān)注。總之,生成式AI對軟件工程產(chǎn)生了深遠的影響。我們需要更新對軟件本身的理解、重新定義軟件卓越的范圍、重新思考如何評估軟件工程能力,并關(guān)注團隊文化的影響。在這個過程中,軟件架構(gòu)和設計能力以及數(shù)據(jù)工程能力變得更為重要。我們應該積極應對這些變化,以更好地適應AI 2.0時代的軟件工程發(fā)展。

責任編輯:趙寧寧 來源: Thoughtworks洞見
相關(guān)推薦

2024-01-23 10:35:09

ChatGPT人工智能

2024-11-18 12:29:17

2024-10-08 10:24:34

2024-09-20 11:30:14

2011-09-07 08:59:23

2023-09-12 22:46:16

AI開發(fā)

2009-12-03 12:29:54

嵌入式軟件工程師

2011-05-10 09:22:28

軟件工程

2024-02-26 11:10:03

生成式人工智能生成式AI軟件開發(fā)

2020-06-05 12:01:11

軟件工程C++Python

2011-09-08 10:26:49

2023-12-18 09:00:00

人工智能MLOps軟件工程師

2011-12-20 09:02:24

云計算

2023-06-27 13:39:58

AI運維企業(yè)

2012-01-09 09:09:15

2022-10-19 15:34:11

架構(gòu)軟件安全

2017-03-20 11:40:28

Google軟件工程經(jīng)驗

2023-05-29 11:09:59

紅帽OpenAI

2023-08-02 19:48:31

2023-08-03 11:06:54

點贊
收藏

51CTO技術(shù)棧公眾號