Trí tuệ nhân tạo (AI) - cơn sốt nhất thời hay cuộc cách mạng thực sự của ngành phát triển sản phẩm phầm mềm?
Liệu Trí tuệ nhân tạo (AI) có tạo ra tác động thực sự đến cách các nhà phát triển làm việc hay chỉ là sự cường điệu?
Khảo sát của Stack Overflow năm 2024 về AI thực sự đã thu hút sự chú ý của cộng đồng công nghệ. Đây có thể coi là một bức tranh toàn cảnh về cách AI đang định hình lại ngành công nghiệp phần mềm.
Trong bài viết này, chúng ta sẽ hiểu sâu hơn về những cảm xúc thực sự đằng sau sự gia tăng phổ biến của AI. Liệu nó có tạo ra tác động thực sự đến cách các nhà phát triển làm việc hay chỉ là sự cường điệu?
*Bài viết dựa trên kết quả của khảo sát của Stack Overflow kết hợp với góc nhìn cá nhân của tác giả
Tổng quan về Khảo sát
Là một người yêu thích công nghệ, mình đã chứng kiến nhiều công nghệ mới nổi lên rồi nhanh chóng vụt tắt ngúm. Tuy nhiên, AI dường như là một câu chuyện khác. Những con số từ báo cáo của Stack Overflow cho thấy rõ ràng AI đang tạo ra một sự thay đổi lớn trong cách chúng ta làm việc. Dưới đây là 7 insights tiêu buổi được rút ra từ khảo sát này.
1 - Tỷ lệ sử dụng AI trong công việc
Với câu hỏi: “Hiện tại bạn có sử dụng công cụ AI trong quá trình phát triển của mình không?”
Có kế hoạch sử dụng: 76% số người được hỏi đang sử dụng hoặc đang có kế hoạch sử dụng các công cụ AI trong quy trình phát triển của họ trong năm nay, tăng 6% so với năm ngoái (70%).
Đang sử dụng: Bên cạnh đó, số nhà phát triển hiện đang sử dụng các công cụ AI là 62% so với 44% của năm ngoái.
Điều này không gây ngạc nhiên cho nhiều người. Trong nhiều nhóm làm việc, gần như tất cả mọi người đều đã thử nghiệm với các công cụ AI như ChatGPT hay Github Copilot.
Có một thời gian, các lập trình viên chia sẻ sự thích thú, kinh ngạc với Github Copilot trước khả năng gợi ý và hoàn thành code của nó. Tuy nhiên, nhiều người cũng nhận ra rằng nó không phải là một giải pháp hoàn hảo. Đôi khi, nó tạo ra những đoạn code không tối ưu hoặc thậm chí có lỗi.
2 - Cảm nhận về công cụ AI:
Với câu hỏi: “Bạn có thái độ tích cực như thế nào khi sử dụng các công cụ AI trong quy trình phát triển của mình?”
72% số người trả lời đều ủng hộ hoặc rất ủng hộ các công cụ AI để phát triển.
Con số này thấp hơn mức ủng hộ năm ngoái là 77%; mức độ ủng hộ giảm có thể là do kết quả sử dụng không như mong đợi.
Ban đầu, có một sự phấn khích lớn về tiềm năng của AI. Nhiều người đã nghĩ rằng AI sẽ giải quyết mọi vấn đề. Tuy nhiên, qua thời gian, người dùng bắt đầu nhận ra những hạn chế của nó. Ví dụ, trong nhiều dự án, lập trình viên đã sử dụng AI để giúp tối ưu hóa các thuật toán phức tạp. Mặc dù AI đưa ra một số gợi ý hữu ích, nhưng giải pháp cuối cùng vẫn đòi hỏi sự can thiệp và điều chỉnh đáng kể từ phía con người.
3 - Lợi ích của Công cụ AI
Với câu hỏi: “Đối với các công cụ AI mà bạn sử dụng như một phần của quy trình phát triển, lợi ích quan trọng NHẤT mà bạn hy vọng đạt được là gì?”
Tăng năng suất: 81% đồng ý rằng tăng năng suất là lợi ích lớn nhất mà các nhà phát triển xác định cho các công cụ AI.
Tốc độ học tập: Việc tăng tốc độ học được coi là lợi ích lớn hơn đối với các nhà phát triển đang học cách viết mã (71%) so với các nhà phát triển chuyên nghiệp (61%).
81% đồng ý rằng tăng năng suất là lợi ích lớn nhất của các công cụ AI.
Điều này hoàn toàn phù hợp với trải nghiệm của nhiều lập trình viên. Nhiều người nhận thấy rằng AI có thể giúp tiết kiệm thời gian đáng kể trong các tác vụ lặp đi lặp lại hoặc khi cần tìm kiếm thông tin nhanh chóng.
Ví dụ, khi cần viết một hàm xử lý chuỗi đơn giản, thay vì phải tìm kiếm qua Stack Overflow hoặc documentation, lập trình viên có thể nhanh chóng yêu cầu AI tạo ra một đoạn code mẫu. Điều này giúp họ tập trung vào các phần phức tạp hơn của dự án.
Tuy nhiên, cũng có nhận định rằng việc phụ thuộc quá nhiều vào AI có thể làm giảm khả năng suy nghĩ độc lập và giải quyết vấn đề của lập trình viên.
Đó là lý do tại sao nhiều người cố gắng sử dụng AI như một công cụ hỗ trợ, chứ không phải là một cái “nạng” theo đúng nghĩa đen (đi đâu cũng phải mang theo và phụ thuộc vào nó)
4 - Độ tin cậy và Khả năng xử lý nhiệm vụ phức tạp của AI
Với câu hỏi: “Bạn tin tưởng vào độ chính xác của kết quả đầu ra từ các công cụ AI như thế nào trong quy trình lập trình và phát triển sản phẩm của mình?” và “Các công cụ AI mà bạn sử dụng trong quy trình phát triển của mình xử lý các tác vụ phức tạp tốt như thế nào?”
Chỉ 43% lập trình viên cảm thấy tin tưởng vào độ chính xác của kết quả từ công cụ AI, trong khi 45% cho rằng chúng không hiệu quả trong việc xử lý các nhiệm vụ phức tạp.
Các lập trình viên chuyên nghiệp có xu hướng đánh giá thấp khả năng của AI hơn so với những người mới bắt đầu.
Ví dụ trong một số dự án, lập trình viên đã thử nghiệm sử dụng AI để giúp thiết kế các kiến trúc phức tạp như microservices.
Mặc dù AI đưa ra một số ý tưởng thú vị, nhưng nó không thể nắm bắt được tất cả các yếu tố như hiệu suất, khả năng mở rộng và bảo mật mà một kiến trúc sư phần mềm có kinh nghiệm có thể cân nhắc.
5. Tích hợp AI trong Quy trình Làm việc
Với câu hỏi “Bạn hiện đang sử dụng công cụ AI cho những phần nào trong quy trình phát triển của mình và bạn quan tâm đến việc sử dụng công cụ AI cho những phần nào trong năm tới? Vui lòng chọn tất cả các mục phù hợp.”
Khảo sát cho thấy một xu hướng rõ ràng trong việc sử dụng AI trong quy trình phát triển phần mềm.
82% lập trình viên sử dụng AI để viết mã và 67.5% sử dụng nó để tìm kiếm câu trả lời thông qua trò chuyện.
Điều này phản ánh chính xác những gì đang diễn ra trong nhiều công ty phần mềm.
Trong nhiều dự án, lập trình viên đã bắt đầu sử dụng AI như một người đồng nghiệp ảo. Thay vì tìm kiếm Stack Overflow cho mỗi vấn đề nhỏ, họ thường xuyên hỏi AI về các vấn đề lập trình cụ thể. Điều này không chỉ tiết kiệm thời gian mà còn giúp duy trì sự tập trung vào công việc.
Tuy nhiên, cũng có những lo ngại về việc phụ thuộc quá nhiều vào AI. Một số lập trình viên senior đã chia sẻ rằng họ nhận thấy các đồng nghiệp junior đôi khi quá phụ thuộc vào AI, dẫn đến việc thiếu hiểu biết sâu sắc về cách hoạt động của code.
Xu hướng tương lai cho thấy các lập trình viên mong muốn tích hợp AI vào các bước như kiểm thử mã và tài liệu hóa mã. Điều này có thể mang lại lợi ích đáng kể, đặc biệt là trong việc tạo ra các bộ test case toàn diện và viết tài liệu chi tiết - những công việc thường bị bỏ qua do thiếu thời gian.
6. Quan điểm về tác động của AI đến công việc & đạo đức sản phẩm.
Với câu hỏi: “Bạn có tin rằng AI là mối đe dọa đối với công việc hiện tại của bạn không?” Và “Trách nhiệm đạo đức nào của AI là quan trọng nhất đối với bạn? Hãy chọn tất cả các câu trả lời phù hợp.”
Khoảng 70% lập trình viên chuyên nghiệp không coi AI là mối đe dọa đối với công việc của họ.
Những vấn đề đạo đức liên quan đến AI được nêu ra bao gồm thông tin sai lệch (79%) và thiếu sót trong việc trích dẫn nguồn (65%).
Trong nhiều cuộc thảo luận, lập trình viên thường nhấn mạnh rằng AI là một công cụ, không phải là một giải pháp thay thế.
Họ lập luận rằng việc sử dụng AI hiệu quả đòi hỏi sự hiểu biết sâu sắc về lập trình và khả năng đánh giá chất lượng của đầu ra AI - những kỹ năng mà chỉ có lập trình viên con người mới có.
Tuy nhiên, vấn đề đạo đức liên quan đến AI đã trở thành một chủ đề nóng trong cộng đồng. 79% lo ngại về thông tin sai lệch và 65% quan tâm đến việc thiếu sót trong trích dẫn nguồn. Điều này phản ánh một nhận thức ngày càng tăng về trách nhiệm của lập trình viên trong việc sử dụng AI một cách có đạo đức.
Trong nhiều dự án, các nhóm phát triển đã bắt đầu thiết lập các hướng dẫn và quy trình để đảm bảo việc sử dụng AI tuân thủ các tiêu chuẩn đạo đức.
Ví dụ, một số công ty đã áp dụng chính sách yêu cầu rà soát kỹ lưỡng mọi đầu ra của AI trước khi đưa vào sản phẩm cuối cùng.
7. Các thách thức khi sử dụng AI
Với câu hỏi: “Những thách thức đối với công ty/toàn bộ nhóm của bạn khi sử dụng trợ lý mã AI hoặc công cụ GenAI là gì?”
Mặc dù AI mang lại nhiều lợi ích, nhưng nó cũng đặt ra những thách thức đáng kể:
66% lập trình viên cho biết họ thiếu niềm tin vào đầu ra của AI, trong khi 63% lo ngại về việc AI thiếu hiểu biết về ngữ cảnh mã nguồn.
Những lo ngại này không phải là không có cơ sở. Trong nhiều dự án, lập trình viên đã gặp phải những tình huống mà AI đưa ra những đề xuất không phù hợp hoặc thậm chí gây hại cho hệ thống hiện có.
Ví dụ, trong một dự án cải tiến hệ thống legacy, AI đã đề xuất những thay đổi mà nếu được thực hiện, có thể gây ra sự cố nghiêm trọng do không hiểu đầy đủ về các phụ thuộc phức tạp trong hệ thống.
Để giải quyết những thách thức này, nhiều nhóm phát triển đã áp dụng cách tiếp cận "AI-assisted, human-driven".
Họ sử dụng AI như một công cụ gợi ý và hỗ trợ, nhưng luôn đảm bảo rằng quyết định cuối cùng và việc triển khai được thực hiện bởi con người.
Điều này không chỉ giúp tận dụng sức mạnh của AI mà còn duy trì được sự kiểm soát và đảm bảo chất lượng cần thiết trong quá trình phát triển phần mềm.
Tạm kết.
Cuộc khảo sát này đã vẽ nên một bức tranh toàn cảnh về hiện trạng và tương lai của ngành phát triển phần mềm trong kỷ nguyên AI. Từ xu hướng công nghệ đến thói quen làm việc, từ những thách thức kỹ thuật đến những lo ngại về đạo đức, chúng ta thấy một ngành công nghiệp đang trong quá trình chuyển đổi sâu sắc.
AI không chỉ đơn thuần là một công cụ mới; nó đang định hình lại cách chúng ta tiếp cận việc lập trình, giải quyết vấn đề và xây dựng sản phẩm. Tuy nhiên, điều quan trọng cần nhấn mạnh là AI không thay thế được vai trò của con người trong quá trình sáng tạo và phát triển phần mềm. Thay vào đó, nó đang mở ra những cơ hội mới để tăng cường khả năng và hiệu suất của lập trình viên.
Những thách thức đặt ra, từ việc đảm bảo chất lượng code đến việc giải quyết các vấn đề đạo đức, không phải là rào cản mà là cơ hội để ngành công nghiệp phát triển theo hướng có trách nhiệm và bền vững hơn. Điều này đòi hỏi sự hợp tác chặt chẽ giữa các lập trình viên, nhà quản lý dự án, chuyên gia đạo đức và các bên liên quan khác.
Khi chúng ta tiến về phía trước, điều quan trọng là phải duy trì một thái độ cân bằng: đón nhận những cơ hội mà AI mang lại, đồng thời luôn cảnh giác với những rủi ro tiềm ẩn.
Bằng cách này, chúng ta có thể xây dựng một tương lai nơi con người và AI cùng nhau tạo ra những giá trị to lớn, đồng thời vẫn giữ vững những nguyên tắc cốt lõi của nghề phát triển phần mềm.