Giải phóng năng suất của developer với Generative AI

2023/10/16 09:53

Các nhà lãnh đạo công nghệ đang nỗ lực đẩy nhanh quá trình phát triển phần mềm có thể dự đoán sẽ tiết kiệm thời gian đáng kể thông qua việc sử dụng Generative AI. Tuy nhiên, để tận dụng hết tiềm năng của công nghệ đột phá này, không chỉ đơn giản là có đủ các công cụ phù hợp.

Nghiên cứu mới nhất cho thấy rằng các công cụ Generative AI có thể cải thiện đáng kể về tốc độ trong nhiều tác vụ phổ biến. Với việc ghi lại chức năng mã nguồn để dễ bảo trì, nó có thể được hoàn thành trong một nửa thời gian so với thông thường. Viết mã nguồn mới có thể chỉ mất nửa thời gian và tối ưu hóa mã nguồn hiện có thông qua việc tái cấu trúc mã chỉ tốn khoảng 2/3 thời gian (Hình 1). Bằng cách kết hợp việc nâng cao kỹ năng phù hợp và hỗ trợ doanh nghiệp, những cải thiện về tốc độ này có thể được chuyển đổi thành tăng năng suất mà vượt qua những tiến bộ trước đó về hiệu quả kỹ thuật, được thúc đẩy bởi cả công cụ và quy trình mới.

vngcloud-blog-generative-ai-5-hinh-2.jpg
Hình 1: Thời gian hoàn thành tác vụ thông qua việc sử dụng Generative AI. (Nguồn: McKinsey & Company)

Tuy nhiên, mặc dù năng suất có thể tăng mạnh nhưng nghiên cứu cho thấy thời gian tiết kiệm có thể thay đổi đáng kể theo độ phức tạp của công việc và kinh nghiệm của developer. Mức tiết kiệm thời gian giảm xuống dưới 10% đối với các tác vụ có độ phức tạp cao, chẳng hạn công việc liên quan tới một khung lập trình mới ka5. Kết quả tương tự đối với các developer có ít hơn một năm kinh nghiệm; trong một số trường hợp, các developer tốn thêm từ 7 - 10% thời gian khi sử dụng các công cụ này so với khi không sử dụng chúng.

Sử dụng các công cụ này không làm giảm chất lượng để đổi lấy tốc độ khi developer và công cụ cộng tác. Chất lượng mã nguồn liên quan đến lỗi, khả năng bảo trì và khả năng đọc (điều quan trọng đối với khả năng tái sử dụng) có sự cải thiện trong mã nguồn được hỗ trợ bởi AI. Tuy nhiên, phản hồi của người tham gia cho thấy các developer đã tích cực tương tác với công cụ để đạt chất lượng, nó cho thấy rằng công nghệ này nên được sử dụng để hỗ trợ developer thay vì thay thế họ. Như vậy, để duy trì chất lượng mã nguồn, developer cần hiểu các thuộc tính tạo nên mã nguồn chất lượng và khởi tạo công cụ đưa ra kết quả phù hợp.

Tóm lại, những phát hiện này cho thấy việc tối đa hóa sự gia tăng năng suất và giảm thiểu rủi ro khi triển khai các công cụ dựa trên Generative AI sẽ đòi hỏi các nhà lãnh đạo phải tiếp cận một phương pháp có cấu trúc, bao gồm đào tạo và huấn luyện Generative AI, lựa chọn các trường hợp sử dụng, nâng cao năng lực cho nhân lực và kiểm soát rủi ro. Trong bài viết này, chúng tôi chia sẻ điểm nổi bật của AI qua nghiên cứu, các tác vụ đòi hỏi sự thành thạo của developer và những điều mà các nhà lãnh đạo CNTT có thể làm để đảm bảo sử dụng hiệu quả nhất của công nghệ đang phát triển này.

Generative AI thể hiện khả năng ở đâu?

Thông qua nghiên cứu, các công cụ dựa trên AI mang lại những cải tiến đáng kể về năng suất trong 4 lĩnh vực chính:

  • Tối ưu hóa công việc thủ công và lặp lại: Generative AI có thể xử lý các nhiệm vụ như tự động điền các chức năng mã nguồn tiêu chuẩn, tự động hoàn thành các câu lệnh mã nguồn trong lúc developer đang nhập, và tài liệu hóa chức năng của mã nguồn theo các định dạng cố định dựa trên hướng dẫn. Nhờ vậy, các công cụ này giúp các developer tập trung vào giải quyết các thách thức kinh doanh phức tạp hơn và đẩy nhanh quá trình phát triển các khả năng phần mềm mới.
  • Hỗ trợ bản phác thảo ban đầu của mã nguồn mới: Việc tích hợp các công cụ dựa trên Generative AI cho phép developer yêu cầu các đề xuất bằng cách nhập hướng dẫn vào một cửa sổ riêng biệt hoặc trong môi trường phát triển tích hợp (IDE). Các developer sử dụng phương pháp này cho rằng các công cụ Generative AI cung cấp các gợi ý mã nguồn hữu ích, giúp họ vượt qua trở ngại và bắt đầu công việc hiệu quả hơn. Như đã nói, những công cụ này giúp developer làm quen với công việc nhanh hơn.
  • Tăng tốc việc cập nhật mã nguồn hiện có: Với hướng dẫn hiệu quả, developer có thể cập nhật mã nguồn hiện có nhanh hơn khi sử dụng các công cụ này. Ví dụ, để tiết kiệm thời gian trong việc điều chỉnh mã nguồn từ một thư viện online hoặc cải thiện code sẵn có, các developer sẽ sao chép và dán code vào hướng dẫn và gửi các truy vấn lặp lại yêu cầu công cụ thực hiện điều chỉnh dựa trên tiêu chí họ chỉ định.
  • Nâng cao khả năng giải quyết thách thức của developer: Công nghệ này có thể hỗ trợ các developer nhanh chóng làm quen với các nguồn code, ngôn ngữ hoặc framework mới mà họ cần cho dự án. Ngoài ra, khi đối diện với các thách thức mới, developer có thể sử dụng các công cụ này để nhận sự hỗ trợ tương tự như những gì họ có thể tìm kiếm từ một đồng nghiệp giàu kinh nghiệm, bao gồm giải thích về các khái niệm mới, tổng hợp thông tin (ví dụ, so sánh và tương phản code từ các repository khác nhau) và cung cấp hướng dẫn từng bước về cách sử dụng một framework. Do đó, developer sử dụng các công cụ Generative AI cho các tác vụ phức tạp có thể tiết kiệm từ 25 - 30% thời gian để hoàn thành so với những người không dùng công cụ. (Hình 2).
vngcloud-blog-generative-ai-5-hinh-3.jpg
Hình 2: Thời gian hoàn thành theo độ phức tạp của các tác vụ (Nguồn: McKinsey & Company)

Nghiên cứu chứng minh rằng việc giúp developer tối đa hóa năng suất sẽ dẫn đến sự cải thiện đáng kể trong trải nghiệm tổng thể của họ, giúp các công ty giữ chân và tiếp thêm năng lượng cho những tài năng hàng đầu. Các developer sử dụng các công cụ Generative AI đã có khả năng tăng cường đáng kể sự hạnh phúc và cảm giác thỏa mãn (Hình 3). Họ cho rằng sự cải thiện này đến từ khả năng của các công cụ tự động hóa các tác vụ nhàm chán đã làm họ bị phân tâm khỏi những hoạt động quan trọng hơn, cũng như khả năng truy cập thông tin nhanh chóng mà không cần phải tìm kiếm giải pháp qua các nền tảng online khác nhau.

vngcloud-blog-generative-ai-5-hinh-4.jpg
Hình 3: Các công cụ Generative AI giúp nâng cao trải nghiệm cho lập trình viên (Nguồn: McKinsey & Company)

Xác định các công việc đòi hỏi chuyên môn của developer

Mặc dù công nghệ Generative AI có những khả năng đáng kể, nhưng nghiên cứu cũng nhấn mạnh vai trò quan trọng trong tối ưu hóa các công cụ này từ con người. Từ đó, 3 lĩnh vực then chốt mà sự giám sát và sự tham gia của con người là không thể thiếu:

  • Đảm bảo chất lượng code: Các công cụ Generative AI có thể cung cấp các gợi ý về code không chính xác và thậm chí gây lỗi. Trong một số trường hợp, developer đã phải nhập nhiều hướng dẫn để khắc phục các giả định sai lầm của công cụ trước khi có được câu trả lời chính xác. Trong một tình huống khác, một developer đã cho thấy sự cần thiết của việc hướng dẫn công cụ một cách cẩn thận qua quá trình gỡ lỗi, gần như nạp thông tin để đảm bảo tính chính xác.
  • Cung cấp bối cảnh tổ chức: Các công cụ AI sẵn có thiếu nhận thức về yêu cầu cụ thể của các dự án và tổ chức. Sự hiểu biết này rất quan trọng trong việc lập trình để đảm bảo rằng phần mềm cuối cùng tích hợp một cách mượt mà với các ứng dụng khác, đáp ứng các tiêu chuẩn hiệu suất và bảo mật của công ty cũng như giải quyết nhu cầu của người dùng. Như được nhấn mạnh trong nghiên cứu, trách nhiệm của software developer là cung cấp cho các công cụ này thông tin cần thiết thông qua các hướng dẫn. Nó bao gồm thông tin về cách sử dụng code, người dùng dự kiến, các giao diện và hệ thống phần mềm sẽ tương tác, dữ liệu liên quan, v.v.
  • Xử lý các thách thức lập trình phức tạp: Phản hồi từ người tham gia cho thấy rằng các công cụ Generative AI vượt trội trong việc giải quyết các hướng dẫn đơn giản (chẳng hạn như tối ưu hóa đoạn code), nhưng có thể gặp khó khăn với các nhiệm vụ phức tạp hơn (như kết hợp nhiều khung làm việc với logic mã nguồn khác nhau). Để có được giải pháp cho các yêu cầu phức tạp, các developer phải kết hợp các thành phần thủ công hoặc chia mã thành các phần nhỏ hơn. Như một người tham gia đã chia sẻ, Generative AI ít hữu ích hơn khi phải đối mặt với các vấn đề phức tạp đòi hỏi phải xem xét tổng thể.

Những khám phá này có tác động như thế nào đối với các nhà lãnh đạo CNTT?

Các nhà lãnh đạo CNTT có thể làm gì để biến các ưu điểm như tiết kiệm thời gian và cải thiện chất lượng thành những lợi ích về năng suất cụ thể trong quá trình triển khai Generative AI mà vẫn giảm thiểu các rủi ro tiềm ẩn liên quan trong phát triển phần mềm? Những kinh nghiệm của người tham gia nghiên cứu đã chỉ ra 4 yếu tố chính cần ưu tiên: cải thiện kỹ năng, khám phá các trường hợp sử dụng nâng cao, lập kế hoạch cho các chuyển đổi kỹ năng và triển khai các biện pháp quản lý rủi ro.

vngcloud-blog-generative-ai-5-hinh-5.jpg
Việc áp dụng và tích hợp các công cụ dựa trên Generative AI trong quy trình phát triển phần mềm sẽ tối đa hóa lợi ích đồng thời giảm thiểu rủi ro tiềm ẩn

Cung cấp cho các developer chương trình đào tạo và huấn luyện Generative AI

Để cho phép các developer sử dụng hiệu quả công nghệ này nhằm tối ưu hóa công việc hàng ngày, cần một sự kết hợp giữa đào tạo và hướng dẫn. Đào tạo ban đầu nên bao gồm việc chia sẻ các phương pháp tốt nhất tập trung vào việc tạo ra các yêu cầu bằng ngôn ngữ tự nhiên. Ngoài ra, các buổi hội thảo nên cung cấp cho developer hiểu biết về các rủi ro liên quan đến AI, bao gồm các vấn đề về quyền riêng tư dữ liệu hoặc quyền sở hữu trí tuệ trong với lĩnh vực của họ. Các developer nên được đào tạo cách kiểm tra code được tạo bởi AI, bao gồm thiết kế, tính năng, độ phức tạp, tuân thủ các tiêu chuẩn lập trình và chất lượng code tổng thể. Việc đào tạo này cũng nên bao gồm khả năng phân biệt giữa các gợi ý có giá trị và các gợi ý không tối ưu được cung cấp bởi các công cụ AI.

Đối với các developer có kinh nghiệm dưới một năm, nghiên cứu cho thấy cần phải có thêm các khóa học bổ sung về nguyên tắc lập trình cơ bản. Điều này bao gồm các chủ đề như cú pháp lập trình, cấu trúc dữ liệu, thuật toán, mẫu thiết kế và kỹ năng gỡ lỗi. Việc đào tạo bổ sung như vậy là quan trọng để đạt được mức tiết kiệm thời gian tương đương với các developer có nhiều kinh nghiệm.

Khi các developer bắt đầu tích hợp những công cụ này vào các hoạt động hàng ngày, quá trình phát triển kỹ năng của họ nên là một quá trình liên tục, được hỗ trợ thông qua việc hướng dẫn từ các developer có nhiều kinh nghiệm. Ngoài ra, việc xây dựng một cộng đồng hỗ trợ, chẳng hạn như các kênh trực tuyến riêng và cuộc họp nhóm để chia sẻ kinh nghiệm, rất quan trọng. Những nỗ lực này thúc đẩy việc học tập liên tục, cho phép chia sẻ các phương pháp hay và hỗ trợ xác định vấn đề tiềm ẩn. Người tham gia nghiên cứu cũng nhấn mạnh rằng, khi họ tạo ra nhiều yêu cầu hơn và chia sẻ kiến thức cùng nhau, chất lượng công việc của họ cũng được cải thiện theo thời gian.

Khám phá các ứng dụng nâng cao ngoài viết code

vngcloud-blog-generative-ai-5-hinh-6.jpg
Các nhà lãnh đạo CNTT nên đánh giá cẩn thận những công cụ có tác động đáng kể và triển khai chúng một cách phù hợp để đạt được mục tiêu phát triển của doanh nghiệp

Mặc dù có rất nhiều sự quan tâm dành cho khả năng tạo code mới của Generative AI, nghiên cứu đã chứng minh rằng công nghệ này có thể ảnh hưởng đến nhiều công việc phổ biến của developer, bao gồm những việc quan trọng như tái cấu trúc code hiện có. Khả năng này mở ra cơ hội cho các nhà lãnh đạo giải quyết công việc sử dụng nhiều tài nguyên nhưng thường bị hạn chế về thời gian. Ví dụ, nếu các công cụ dựa trên Generative AI có thể nhanh chóng tái cấu trúc một ứng dụng trước đó, thì developer có thể dành thời gian để giải quyết các công việc tồn đọng của công ty hoặc cải thiện hiệu suất kiến trúc của toàn bộ nền tảng phần mềm.

Việc ra mắt các ứng dụng mới đòi hỏi một sự đánh giá cẩn thận về các công cụ có sẵn, bởi làn sóng Generative AI đang gia nhập thị trường, mỗi công cụ đều có điểm nổi bật trong từng lĩnh vực cụ thể. Việc sử dụng nhiều công cụ có thể mang lại nhiều lợi ích hơn so với việc chỉ dựa vào một công cụ duy nhất. Trong suốt quá trình nghiên cứu, người tham gia có truy cập đến hai công cụ: một công cụ sử dụng mô hình cơ sở được đào tạo để phản hồi các yêu cầu của người dung, và một công cụ khác sử dụng mô hình cơ sở được điều chỉnh để thực hiện các tác vụ liên quan đến code. Họ cho biết công cụ đầu tiên với khả năng thành thạo trong việc trả lời các câu hỏi của quá trình tái cấu trúc code. Mặt khác, công cụ thứ hai lại rất xuất sắc trong việc tạo code mới, nhờ vào khả năng tích hợp mượt mà với môi trường lập trình và cung cấp đề xuất theo mô tả trong tài liệu. Đáng chú ý, khi các developer sử dụng cả hai công cụ AI cho một công việc cụ thể, họ đã tiết kiệm được thời gian từ 1,5 - 2,5 lần.

Lập kế hoạch phát triển kỹ năng

Khi developer có năng suất cao hơn, các nhà lãnh đạo cần sẵn sàng chuyển đổi nguồn nhân lực vào các công việc có giá trị cao hơn. Việc xác định một thước đo năng suất cơ bản và liên tục theo dõi tiến độ có thể xác định sự gia tăng năng lực trong tổ chức. Các nhà lãnh đạo nên xem xét cách tận dụng năng lực bổ sung này và đánh giá thiếu sót kỹ năng có thể phát sinh, đòi hỏi những phương pháp phát triển phù hợp. Ví dụ, họ có thể hướng nguồn nhân lực vào việc hỗ trợ mở rộng kinh doanh mới hoặc cập nhật sản phẩm thường xuyên. Những việc này sẽ đòi hỏi developer phải thành thạo các kiến thức mới về thiết kế phần mềm và kiến trúc.

Triển khai quy trình quản lý rủi ro

Sự áp dụng các công cụ Generative AI sẽ gây ra các rủi ro mới về dữ liệu, quyền sở hữu trí tuệ và rủi ro pháp lý. Nếu xét đến tốc độ nhanh chóng mà các developer có thể tạo ra hoặc sửa đổi code bằng các công cụ này, thì doanh nghiệp phải lường trước được các vấn đề tiềm ẩn, chẳng hạn như:

  • Quyền riêng tư dữ liệu và bảo mật của bên thứ ba: Các nhà lãnh đạo nên cảnh giác về rủi ro developer vô tình tiết lộ thông tin bí mật khi tương tác với các công cụ AI.
  • Sự thay đổi về pháp lý và quy định: Những thay đổi về pháp lý và quy định vẫn đang diễn ra, cùng với đó là các hạn chế khác về việc sử dụng công nghệ. Từ đó, các nhà lãnh đạo nên xem xét cẩn thận vì chúng có tác động đến việc áp dụng công nghệ.
  • Lỗ hổng của AI: Các mối lo ngại tiềm ẩn có thể nảy sinh nếu các thực thể độc hại cố gắng đưa mã độc vào phạm vi công cộng, ảnh hưởng đến việc đào tạo các mô hình ngôn ngữ lớn hoặc xâm nhập vào các tổ chức.
  • Mối lo ngại về đạo đức và uy tín: Có khả năng xuất hiện các vấn đề về đạo đức và uy tín phát sinh từ việc sử dụng các đoạn code bản quyền của các tổ chức khác hoặc giữa các cuộc tranh luận về quyền sở hữu mã do các công cụ này tạo ra.
  • Lỗ hổng bảo mật: Sự cảnh giác để giải quyết các lỗ hổng bảo mật có thể xuất hiện trong code do AI tạo ra, gây nguy hiểm cho hệ thống và toàn bộ tổ chức.

Bằng cách chủ động giải quyết những rủi ro và triển khai các chiến lược quản lý rủi ro mạnh mẽ, các nhà lãnh đạo CNTT có thể đảm bảo tích hợp an toàn các công cụ AI vào quy trình phát triển phần mềm.

Kết luận

Generative AI được thiết lập để cách mạng hóa việc phát triển phần mềm, tăng tốc độ hoàn thành công việc lên đến hai lần. Tuy nhiên, chỉ với công cụ là chưa đủ để phát huy hết tiềm năng của nó. Để khai thác công nghệ này, các tổ chức phải tuân theo một cách tiếp cận có cấu trúc, bao gồm đào tạo Generative AI, lựa chọn trường hợp ứng dụng thông minh, nâng cao kỹ năng của người dùng và quản lý rủi ro mạnh mẽ. Điều này sẽ mở ra cơ hội cho năng suất vượt trội và sự đổi mới của lập trình phần mềm.

Tại VNG Cloud, chúng tôi dự kiến sẽ ra mắt GPU Cloud vào năm 2024 - một nền tảng mạnh mẽ và hiện đại, tập trung vào việc mang lại hiệu suất GPU vượt trội. Giải pháp đám mây này được thiết kế riêng cho nhiều ứng dụng cao cấp, từ AI, Machine Learning, Deep Learning, mô hình Large Language (LLM) đến các tác vụ yêu cầu tài nguyên điện toán cao. Các server GPU chuyên dụng của chúng tôi luôn sẵn sàng để đáp ứng nhu cầu xử lý khối lượng dữ liệu phức tạp cao như hiện nay.

article.read_more