toplogo
登入

開發者日記:生成式 AI 編碼工具在職場上的隨機對照試驗


核心概念
雖然生成式 AI 編碼工具可以提高生產力並帶來愉快的使用體驗,但開發者需要意識到其限制,並採用更注重驗證的新工作方式,以充分發揮這些工具的潛力。
摘要

研究論文摘要

文獻資訊: Butler, J., Suh, J., Haniyur, S., & Hadley, C. (2024). Dear Diary: A randomized controlled trial of Generative AI coding tools in the workplace. In Proceedings of ACM Conference (Conference’17). ACM, New York, NY, USA, 11 pages. https://doi.org/10.1145/nnnnnnn.nnnnnnn

研究目標: 本研究旨在探討開發者對生成式 AI 編碼工具的既有觀念,以及在實際工作中使用這些工具如何改變他們對工具或自身作為工程師的看法。

研究方法: 本研究採用隨機對照試驗,將開發者分為三組:持續使用組、控制組和治療組。研究人員收集了參與者在研究前後六週的遙測數據,並要求他們每天填寫日記,記錄他們的工作內容、使用 AI 的方式以及對 AI 的評價。

主要發現:

  • 使用生成式 AI 編碼工具顯著提高了開發者對這些工具的效用和喜愛程度。
  • 開發者將生成式 AI 工具用於各種用途,包括編寫樣板代碼、生成文件、作為網絡搜索的替代工具以及產生創意想法。
  • 開發者在使用生成式 AI 工具時面臨著一些挑戰,例如生成的代碼看似正確但實際上存在錯誤、需要驗證代碼以確保正確性,以及工具在某些程式語言和程式碼庫中無法正常運作。

主要結論:

  • 生成式 AI 編碼工具可以提高生產力並帶來愉快的使用體驗。
  • 開發者需要意識到生成式 AI 工具的局限性,並採用更注重驗證的新工作方式,以充分發揮這些工具的潛力。

研究意義: 本研究是首批在真實工作環境中對 GitHub Copilot 進行隨機對照試驗的研究之一,它不僅檢驗了生成式 AI 編碼工具對量化編碼數據的影響,還探討了這些工具對開發者觀念和價值觀的影響。

研究限制和未來研究方向:

  • 本研究的樣本量相對較小,未來的研究可以考慮使用更大的樣本量來驗證研究結果。
  • 本研究的時間跨度相對較短,未來的研究可以考慮進行更長期的研究,以探討生成式 AI 編碼工具對開發者的長期影響。
edit_icon

客製化摘要

edit_icon

使用 AI 重寫

edit_icon

產生引用格式

translate_icon

翻譯原文

visual_icon

產生心智圖

visit_icon

前往原文

統計資料
45% 的開發者聽說過 GitHub Copilot,但尚未嘗試過。 86% 的有經驗使用者認為 AI 編碼工具在工作中很有用,而沒有經驗的使用者中只有 44% 這麼認為。 72% 的有經驗使用者表示他們喜歡使用 AI 編碼工具,而沒有經驗的使用者中只有 43% 這麼認為。 開發者在使用生成式 AI 工具後,對這些工具的喜愛程度從 2.72 分上升到 3.61 分(滿分 5 分)。 開發者在使用生成式 AI 工具後,對這些工具的效用評分從 2.93 分上升到 3.51 分(滿分 5 分)。
引述
"AI 工具確實給了我很多建議,有些建議把我引向了錯誤的方向,但無論如何,它都能很好地激發我以不同的方式思考。" (P65) "我認為這是編碼的未來。不使用 AI 編碼的工程師將會錯失良機。" (P66) "今天我發現 AI 工具很有用,但真的需要以迭代的方式使用它:解決一個具體的小問題,或者先找到一個初始解決方案,然後再改進它。它還經常需要被強制告知要做什麼。" (P27)

深入探究

生成式 AI 編碼工具的普及將如何影響軟體開發行業的未來?

生成式 AI 編碼工具的普及必將為軟體開發行業帶來深遠的影響,重塑其未來格局。 生產力提升與角色轉變: 生成式 AI 編碼工具將大幅提升軟體開發的效率,讓開發者從繁瑣的重複性工作中解放出來,轉而專注於更具創造性和挑戰性的任務,例如系統設計、演算法優化和使用者體驗提升。開發者的角色將從「程式碼撰寫者」轉變為「程式碼設計師」和「問題解決者」。 軟體開發門檻降低: 生成式 AI 編碼工具將降低軟體開發的門檻,讓更多人,即使沒有深厚程式設計背景的人,也能參與到軟體開發中來。這將促進軟體開發的平民化,湧現出更多 citizen developer,為行業注入新的活力。 軟體品質和安全性提升: 生成式 AI 編碼工具可以自動生成高質量的程式碼,並檢測和修復潛在的錯誤和安全漏洞,從而提高軟體的整體品質和安全性。 個性化軟體開發: 生成式 AI 編碼工具可以根據使用者的特定需求和偏好,自動生成定制化的軟體,滿足日益增長的個性化需求。 持續學習和技能提升: 開發者需要不斷學習新的技術和工具,以適應生成式 AI 編碼工具帶來的變化。他們需要更深入地理解 AI 的工作原理,以及如何有效地利用這些工具來提升自身的開發能力。 總而言之,生成式 AI 編碼工具的普及將推動軟體開發行業向更高效、更智慧、更個性化的方向發展,同時也要求開發者不斷提升自身技能,以適應新的技術變革。

生成式 AI 編碼工具是否會降低軟體開發的門檻,從而導致更多人湧入這個行業?

是的,生成式 AI 編碼工具的出現的確會降低軟體開發的門檻,吸引更多人進入這個行業。 簡化程式碼編寫: 生成式 AI 編碼工具可以根據開發者的指令或自然語言描述,自動生成相應的程式碼,無需開發者手動編寫每一行程式碼,大大降低了程式設計的難度。 減少學習成本: 生成式 AI 編碼工具可以提供即時的程式碼建議和錯誤提示,幫助初學者更快地掌握程式設計技能,縮短學習曲線。 降低入門門檻: 生成式 AI 編碼工具讓沒有深厚程式設計背景的人也能參與到軟體開發中來,例如產品經理、設計師等,可以利用這些工具快速構建原型,驗證想法。 然而,值得注意的是,雖然生成式 AI 編碼工具降低了軟體開發的門檻,但並不意味著軟體開發變得不再需要專業技能。 軟體工程思維: 開發者仍然需要具備良好的軟體工程思維,例如需求分析、系統設計、測試和維護等,才能開發出高質量的軟體。 問題解決能力: 生成式 AI 編碼工具並非萬能,當遇到複雜問題時,開發者仍然需要運用自身的知識和經驗,分析問題、尋找解決方案。 持續學習能力: 軟體開發領域技術更新迭代速度快,開發者需要具備持續學習的能力,才能跟上技術發展的步伐。 因此,生成式 AI 編碼工具的普及將會吸引更多人進入軟體開發行業,但要成為一名合格的軟體開發者,仍然需要不斷學習和提升自身的專業技能。

如果生成式 AI 編碼工具能夠完全取代人類開發者,那麼人類在軟體開發過程中將扮演什麼樣的角色?

即使生成式 AI 編碼工具發展到可以完全取代人類開發者,人類在軟體開發過程中仍然扮演著不可或缺的角色。 定義問題和需求: AI 擅長解決已知問題,但人類更善於發現和定義問題。軟體開發的起點是理解使用者的需求,而這需要人類的同理心、洞察力和創造力。 設計和構思解決方案: 生成式 AI 可以根據指令生成程式碼,但無法替代人類進行系統性的設計和構思。人類需要制定軟體架構、設計演算法、規劃開發流程,這些都需要高層次的思維和決策能力。 引導和監督 AI: 生成式 AI 編碼工具需要人類的引導和監督,以確保其生成的程式碼符合預期,並且不會產生負面影響。人類需要設定目標、制定規則、評估結果,並在必要時進行干預和調整。 關注倫理和社會影響: 軟體開發不僅僅是技術問題,還涉及到倫理和社會影響。人類需要思考軟體的價值觀、潛在風險以及對社會的影響,並做出負責任的決策。 持續創新和探索: 軟體開發是一個不斷創新和探索的過程。人類需要不斷提出新的想法,探索新的技術,挑戰現有的邊界,而這些是 AI 難以替代的。 總而言之,即使在生成式 AI 驅動的軟體開發時代,人類仍然扮演著至關重要的角色。人類將更多地扮演「指揮家」和「監護人」的角色,引導和監督 AI,同時專注於更具創造性和挑戰性的任務,推動軟體開發不斷向前發展。
0
star