Bỏ qua đến nội dung
Bài viết này đã được dịch từ tiếng Nhật bằng AI
Đọc bằng tiếng Nhật
Bài viết này thuộc Miền Công Cộng (CC0). Hãy thoải mái sử dụng nó một cách tự do. CC0 1.0 Universal

Kỹ sư đa năng trong kỷ nguyên Liquidware

Việc AI tạo sinh có thể tạo ra hình ảnh, sản xuất các bức ảnh chân thực, hình minh họa và tranh vẽ chỉ bằng cách làm theo hướng dẫn đã được biết đến rộng rãi.

Trong khi đó, trong thế giới kinh doanh, sự chú ý đang tập trung vào khả năng tạo chương trình của AI tạo sinh.

AI dựa trên trò chuyện được hiện thực hóa thông qua các mô hình ngôn ngữ lớn nền tảng, giúp nó cực kỳ thành thạo trong việc trò chuyện bằng nhiều ngôn ngữ khác nhau và dịch giữa chúng.

Ngôn ngữ lập trình, được sử dụng để tạo chương trình, cũng là một loại ngôn ngữ. Các lập trình viên con người, theo một nghĩa nào đó, dịch các yêu cầu phần mềm nhận được bằng lời nói sang ngôn ngữ lập trình.

Vì lý do này, AI tạo sinh đàm thoại sử dụng các mô hình ngôn ngữ lớn cũng rất giỏi lập trình.

Hơn nữa, lập trình là một loại công việc trí tuệ mà tính đúng đắn của đầu ra thường có thể được xác minh tự động và ngay lập tức. Điều này là do việc chạy chương trình đã tạo cho phép xác định tự động liệu các kết quả mong muốn có được tạo ra hay không.

Trên thực tế, các lập trình viên con người thường tạo các chương trình kiểm thử đồng thời với chương trình chính để xác minh rằng chương trình chính hoạt động như dự định, kiểm tra hành vi của nó khi quá trình phát triển diễn ra.

AI tạo sinh cũng có thể tiến hành lập trình trong khi kiểm thử, cho phép một cơ chế mà nếu con người cung cấp hướng dẫn chính xác, AI có thể tự động lặp lại và hoàn thành chương trình cho đến khi nó vượt qua các bài kiểm thử.

Tất nhiên, do những hạn chế về khả năng lập trình của AI tạo sinh và sự mơ hồ trong hướng dẫn của con người, có nhiều trường hợp kiểm thử không thể vượt qua ngay cả sau nhiều lần lặp lại. Ngoài ra, các bài kiểm thử có thể không đầy đủ hoặc không chính xác, thường dẫn đến lỗi hoặc vấn đề trong chương trình hoàn chỉnh.

Tuy nhiên, khi khả năng của AI tạo sinh được cải thiện, các kỹ sư con người tinh chỉnh phương pháp hướng dẫn của họ, và kiến thức lập trình của AI tạo sinh được nâng cao thông qua tìm kiếm trên internet, phạm vi tạo tự động các chương trình phù hợp đang ngày càng tăng lên.

Ngoài ra, với sự chú ý của thế giới kinh doanh, các công ty hàng đầu thực hiện nghiên cứu và phát triển AI tạo sinh cũng đang tập trung vào việc cải thiện khả năng lập trình của AI tạo sinh.

Trong hoàn cảnh như vậy, việc mở rộng các lĩnh vực và khối lượng mà lập trình tự động có thể được giao phó cho AI tạo sinh được dự đoán sẽ tăng tốc.

Có nhiều trường hợp những cá nhân chưa từng phát triển chương trình trước đây đã thiết lập một môi trường phát triển cơ bản dựa trên thông tin internet, sau đó để AI tạo sinh xử lý việc lập trình, hoàn thành các chương trình trong một nỗ lực hợp tác.

Bản thân tôi, với tư cách là một lập trình viên, cũng sử dụng AI tạo sinh để lập trình. Một khi tôi đã nắm bắt được cách sử dụng, tôi có thể hoàn thành phần mềm mà không cần chỉnh sửa chương trình chút nào, chỉ đơn giản bằng cách sao chép chương trình vào các tệp hoặc cắt và dán theo hướng dẫn của AI tạo sinh.

Tất nhiên, có nhiều trường hợp tôi gặp khó khăn. Những trường hợp này chủ yếu là do máy tính hoặc các công cụ phát triển lập trình của tôi có cài đặt hơi khác so với cấu hình thông thường, hoặc các thành phần phần mềm miễn phí mới hơn so với những gì AI tạo sinh đã học, dẫn đến khoảng cách kiến thức, hoặc đôi khi nội dung yêu cầu của tôi hơi bất thường.

Trong hầu hết các trường hợp, nếu không có những khác biệt nhỏ hoặc hoàn cảnh đặc biệt như vậy, và tôi hướng dẫn nó tạo một tính năng phần mềm rất phổ biến, các chương trình phù hợp sẽ được tạo ra.

Hướng tới kỷ nguyên Liquidware

Với tư cách là nhà phát triển phần mềm, tôi có thể phát hành phần mềm mà tôi phát triển. Và phần mềm mà chúng tôi, các kỹ sư, phát hành được sử dụng bởi nhiều người dùng khác nhau.

Tương lai nơi bất kỳ ai cũng có thể thực hiện việc phát triển phần mềm này với AI tạo sinh là sự mở rộng của cuộc thảo luận cho đến nay.

Tuy nhiên, đây không chỉ là một thay đổi ở phía phát triển phần mềm. Một thay đổi đáng kể cũng sẽ xảy ra ở phía người dùng.

Việc hướng dẫn AI tạo sinh bằng lời nói để tự động thêm hoặc thay đổi tính năng cho phần mềm không chỉ có thể được thực hiện trong giai đoạn phát triển trước khi phát hành phần mềm mà còn trong khi nó đang được sử dụng. Hơn nữa, nó có thể được thực hiện bởi chính người dùng phần mềm.

Các nhà phát triển phần mềm chỉ cần xác định các phạm vi được phép và không thể thay đổi, sau đó phát hành phần mềm với tính năng tùy chỉnh do AI tạo sinh hỗ trợ.

Điều này sẽ cho phép người dùng yêu cầu AI tạo sinh thay đổi các vấn đề nhỏ về khả năng sử dụng hoặc tùy chọn thiết kế màn hình.

Hơn nữa, việc thêm các tính năng tiện lợi có trong các ứng dụng khác, thực hiện kết hợp nhiều thao tác chỉ với một cú nhấp chuột, hoặc xem các màn hình thường truy cập trên một hiển thị duy nhất cũng sẽ trở nên khả thi.

Từ góc độ của nhà phát triển phần mềm, việc cho phép tùy chỉnh của người dùng như vậy mang lại những lợi thế đáng kể. Nó loại bỏ nhu cầu họ phải thêm các tính năng dựa trên yêu cầu của người dùng, và xét rằng nó có thể tăng mức độ phổ biến của phần mềm bằng cách tránh các phản hồi tiêu cực và sự không hài lòng về khả năng sử dụng, đó là một lợi ích lớn.

Khi người dùng có thể tự do thay đổi màn hình và chức năng theo cách này, khái niệm này sẽ khác biệt đáng kể so với những gì chúng ta vẫn thường gọi là "phần mềm".

Việc gọi nó là "liquidware" sẽ phù hợp để biểu thị rằng nó còn linh hoạt và dễ thích nghi hơn cả phần mềm (vốn đã linh hoạt so với phần cứng), và rằng nó hoàn toàn phù hợp với người dùng.

Trong quá khứ, các chức năng chỉ được hiện thực hóa bởi phần cứng, nhưng sau đó phần mềm có thể thay thế xuất hiện, cho phép các chức năng được hiện thực hóa bằng sự kết hợp giữa phần cứng + phần mềm.

Từ đó, chúng ta có thể hình dung sự xuất hiện của liquidware, đề cập đến các phần có thể được sửa đổi bởi AI tạo sinh. Do đó, các chức năng tổng thể sẽ được hiện thực hóa bằng phần cứng + phần mềm (do nhà phát triển cung cấp) + liquidware (các sửa đổi của người dùng).

Trong kỷ nguyên liquidware này, các ý tưởng sửa đổi từ phía người dùng sẽ bùng nổ.

Một ý tưởng sửa đổi đột phá do một người dùng phát minh có thể trở thành chủ đề nóng trên mạng xã hội, dẫn đến việc những người khác bắt chước và sửa đổi nhiều loại liquidware khác nhau.

Ngoài ra, liquidware có khả năng tích hợp và xử lý nhiều loại phần mềm khác nhau chắc chắn sẽ xuất hiện. Điều này sẽ cho phép người dùng xem dòng thời gian từ nhiều nền tảng SNS khác nhau trong một ứng dụng duy nhất, hoặc tích hợp kết quả tìm kiếm từ nhiều nền tảng.

Bằng cách này, trong một thế giới mà liquidware phổ biến, nhiều thiết bị khác nhau, bao gồm PC và điện thoại thông minh, sẽ cung cấp các chức năng hoàn toàn phù hợp với cuộc sống và hoạt động của từng cá nhân.

Một Hiện Tượng Đang Diễn Ra

Điều quan trọng đối với những kỹ sư phần mềm như tôi là liquidware không phải là một khái niệm viễn tưởng hay điều gì đó sẽ xảy ra trong vài năm tới.

Lý do là vì liquidware rất đơn giản đã có thể thực hiện được.

Ví dụ, giả sử tôi là một kỹ sư đang phát triển một ứng dụng web cho trang thương mại điện tử của công ty mình.

Các ứng dụng web như vậy thường có cơ sở dữ liệu, hệ thống quản lý bán hàng và hệ thống vận chuyển sản phẩm trên các máy chủ do công ty quản lý hoặc các dịch vụ đám mây hợp đồng. Khi người dùng thực hiện một giao dịch mua hàng, các hệ thống này sẽ liên kết với nhau để thu tiền thanh toán và vận chuyển sản phẩm.

Các hệ thống cốt lõi và cơ sở dữ liệu cho các hoạt động này không thể bị thay đổi tùy tiện.

Tuy nhiên, nếu thiết kế của trang web thương mại điện tử mà người dùng thấy được sửa đổi để tiện lợi cho từng người dùng, thì thường ít gây ra vấn đề. Tất nhiên, nếu các thay đổi của một người dùng ảnh hưởng đến màn hình của người dùng khác, đó là một vấn đề, nhưng các tùy chỉnh riêng biệt cho từng người dùng thì không sao.

Nhiều sửa đổi khác nhau có thể được hình dung: làm cho văn bản lớn hơn, thay đổi nền sang tông màu tối, di chuyển các nút thường xuyên nhấn đến vị trí dễ tiếp cận bằng tay trái, sắp xếp các mặt hàng theo giá trên màn hình danh sách, hoặc hiển thị chi tiết của hai sản phẩm cạnh nhau.

Về mặt kỹ thuật, những sửa đổi này có thể đạt được bằng cách thay đổi các tệp cấu hình và các chương trình như HTML, CSS và JavaScript hiển thị màn hình trên trình duyệt.

Về mặt bảo mật, các tệp này ban đầu chạy trên trình duyệt web, vì vậy chúng có thể được sửa đổi bởi các kỹ sư quen thuộc với ứng dụng web. Do đó, chúng chỉ xử lý các chức năng và dữ liệu an toàn để sửa đổi.

Vì vậy, ở phía máy chủ của ứng dụng web thương mại điện tử, người ta có thể lưu trữ riêng các tệp này cho từng người dùng đã đăng nhập, thêm một màn hình để trò chuyện với AI trò chuyện, và tạo một cơ chế để sửa đổi các tệp HTML, CSS và JavaScript của người dùng đó trên máy chủ theo yêu cầu của họ.

Nếu bạn cung cấp văn bản này, cùng với thông tin cấu hình và mã nguồn của một ứng dụng web thương mại điện tử hiện có, cho AI tạo sinh, nó có thể sẽ cung cấp các bước và chương trình cần thiết để thêm chức năng như vậy.

Theo cách này, liquidware đã là một chủ đề hiện tại; sẽ không có gì đáng ngạc nhiên khi nó là một hiện tượng đang diễn ra.

Kỹ sư đa năng

Ngay cả khi phạm vi lập trình tự động dựa trên AI mở rộng và kỷ nguyên liquidware đã bắt đầu, việc phát triển phần mềm vẫn chưa thể được thực hiện hoàn toàn bởi AI tạo sinh.

Tuy nhiên, chắc chắn rằng tầm quan trọng của lập trình trong phát triển phần mềm sẽ giảm đáng kể.

Ngoài ra, để phát triển phần mềm một cách suôn sẻ, cần có kiến thức và kỹ năng kỹ thuật đa dạng, không chỉ lập trình nói chung mà còn cả cơ sở hạ tầng đám mây, mạng, bảo mật, nền tảng, khung phát triển và cơ sở dữ liệu—bao quát toàn bộ hệ thống từ trên xuống dưới.

Những người có kiến thức và kỹ năng như vậy được gọi là kỹ sư full-stack.

Trước đây, một vài kỹ sư full-stack xử lý thiết kế tổng thể, trong khi các kỹ sư còn lại hoặc chỉ tập trung vào lập trình hoặc chuyên sâu vào các lĩnh vực phi lập trình cụ thể trong hệ thống, chia sẻ vai trò theo cách này.

Tuy nhiên, khi AI tạo sinh đảm nhận phần lập trình, chi phí phát triển phần mềm sẽ giảm đáng kể, dẫn đến việc lập kế hoạch cho nhiều dự án phát triển phần mềm mới khác nhau.

Do đó, mỗi dự án phát triển sẽ yêu cầu rất ít kỹ sư chỉ có thể viết mã; thay vào đó, một số lượng lớn kỹ sư full-stack sẽ cần thiết.

Hơn nữa, trong tình huống này, chỉ có kiến thức và kỹ năng full-stack sẽ không đủ. Điều này là do các dự án phát triển phần mềm khác nhau sẽ đòi hỏi các loại phần mềm đa dạng, nghĩa là việc phát triển sẽ không phải lúc nào cũng được yêu cầu trong cùng một hệ thống. Ngoài ra, nhu cầu về các hệ thống phức hợp yêu cầu nhiều hệ thống khác nhau chắc chắn sẽ tăng lên.

Ví dụ, hệ thống cho một ứng dụng web khác với hệ thống cho các ứng dụng kinh doanh hoặc hệ thống lõi. Do đó, một kỹ sư full-stack ứng dụng web không thể được giao phó một dự án phát triển hệ thống lõi.

Hơn nữa, các ứng dụng web, ứng dụng điện thoại thông minh và ứng dụng PC có các hệ thống khác nhau. Trong thế giới phần mềm nhúng, như IoT, hệ thống hoàn toàn thay đổi tùy thuộc vào thiết bị mà nó được nhúng vào.

Tuy nhiên, nếu sự nhấn mạnh vào lập trình giảm đi và tổng chi phí phát triển phần mềm giảm xuống, việc phát triển các hệ thống phức hợp kết hợp phần mềm với các hệ thống khác nhau sẽ tăng lên.

Mặc dù điều này sẽ yêu cầu tập hợp nhiều kỹ sư full-stack riêng biệt để phát triển, nhưng các kỹ sư có thể bao quát toàn bộ bức tranh và thực hiện thiết kế cơ bản sẽ giữ một vị trí then chốt.

Điều này có nghĩa là các kỹ sư có kiến thức và kỹ năng đa chiều trên nhiều hệ thống, vượt qua ranh giới của các hệ thống cá nhân, sẽ được yêu cầu.

Những kỹ sư như vậy có khả năng sẽ được gọi là kỹ sư đa năng (omnidirectional engineers).

Và giống như nhu cầu về kỹ sư chỉ có thể lập trình sẽ giảm do AI tạo sinh, một kỷ nguyên cuối cùng sẽ đến khi nhu cầu về kỹ sư full-stack giới hạn trong một hệ thống duy nhất cũng giảm đi.

Nếu bạn muốn duy trì hoạt động như một kỹ sư IT trong kỷ nguyên đó, bạn phải bắt đầu cố gắng trở thành một kỹ sư đa năng ngay lập tức.

Vai trò của Kỹ sư Đa năng

Các ngôn ngữ lập trình, nền tảng và framework cần được phát triển rất đa dạng.

Tuy nhiên, điều này không có nghĩa là một người phải học tất cả chúng. Bởi vì kỹ sư đa năng cũng có thể nhận được sự hỗ trợ từ AI tạo sinh.

Nếu được giao phó cho AI tạo sinh, ngay cả các ngôn ngữ lập trình, nền tảng hoặc framework mà một người chưa từng sử dụng cá nhân cũng có thể được tạo ra chỉ bằng cách cung cấp hướng dẫn bằng lời nói.

Tất nhiên, có nguy cơ đưa vào các lỗi hoặc lỗ hổng bảo mật, hoặc tích lũy nợ kỹ thuật có thể làm cho việc sửa đổi sau này trở nên khó khăn.

Để xác định và giảm thiểu những rủi ro này, cần có kiến thức về ngôn ngữ hoặc thư viện cụ thể. Tuy nhiên, kiến thức đó cũng có thể được lấy từ AI tạo sinh. Kỹ sư đa năng chỉ cần có khả năng xây dựng kỹ lưỡng các quy trình và cơ chế để phát hiện và ngăn chặn những vấn đề này, hoặc để xử lý chúng sau khi xảy ra.

Các quy trình và cơ chế này không thay đổi đáng kể theo sự khác biệt trong chồng hệ thống (system stack). Nếu một người có thể chính thức hóa các quy trình và cơ chế để ngăn chặn việc đưa vào lỗi và lỗ hổng bảo mật, và để đảm bảo khả năng mở rộng trong tương lai trong quá trình phát triển, thì phần còn lại có thể được giao phó cho AI tạo sinh hoặc các kỹ sư có kỹ năng trong các lĩnh vực cụ thể đó.

Kỹ sư đa năng không cần phải sở hữu kiến thức chi tiết hoặc kinh nghiệm lâu năm với từng chồng hệ thống riêng lẻ.

Hơn nữa, một trong những vai trò chính của kỹ sư đa năng là thiết kế cách các chức năng được phân phối và cách chúng tương tác trong phần mềm phức tạp hoạt động cộng tác trên nhiều chồng hệ thống khác nhau.

Ngoài ra, việc xem xét cách toàn bộ phần mềm nên được phát triển và quản lý cũng trở thành một vai trò quan trọng đối với kỹ sư đa năng.

Phần mềm Đa hướng

Hãy cùng xem xét loại hình phát triển phần mềm nào đòi hỏi một kỹ sư đa hướng.

Trước đây, tôi đã đưa ra ví dụ về việc phát triển một ứng dụng web thương mại điện tử.

Dưới sự chỉ đạo của một giám đốc điều hành được ban lãnh đạo công ty yêu cầu đại tu ứng dụng web thương mại điện tử này, nhóm lập kế hoạch có thể đưa ra các yêu cầu sau:

Chuyển đổi sang Nền tảng Cộng đồng Người dùng. Điều này không chỉ có nghĩa là một ứng dụng hoặc trang web chuyên biệt cho thương mại điện tử, mà còn là việc cung cấp một nền tảng nơi người dùng sản phẩm có thể tương tác với nhau về chính sản phẩm và cách sử dụng chúng. Mục tiêu là giữ chân người dùng, hiệu ứng truyền miệng, làm phong phú nội dung thông qua đóng góp của người dùng, và tích hợp phản hồi phát triển sản phẩm (cả tích cực lẫn tiêu cực) với việc lập kế hoạch sản phẩm mới và tiếp thị.

Tương thích Đa thiết bị. Điều này cho phép truy cập vào cộng đồng người dùng và thông tin sản phẩm không chỉ từ các ứng dụng web mà còn từ ứng dụng điện thoại thông minh, trợ lý giọng nói, thiết bị đeo tay, thiết bị gia dụng thông minh và tất cả các thiết bị khác.

Tương thích Đa nền tảng. Điều này bao gồm không chỉ nền tảng cộng đồng người dùng của riêng công ty mà còn, ví dụ, danh sách sản phẩm và chia sẻ đánh giá trên các trang thương mại điện tử tổng hợp, tích hợp với mạng xã hội, và liên kết chức năng và thông tin với các công cụ AI khác nhau.

Làm mới Hệ thống Kinh doanh. Trong khi tạm thời liên kết với các hệ thống quản lý bán hàng và giao hàng sản phẩm hiện có, các hệ thống này cũng sẽ được làm mới. Sau khi làm mới, việc tổng hợp dữ liệu bán hàng theo thời gian thực, dự báo nhu cầu và tích hợp với các hệ thống quản lý hàng tồn kho được hình dung. Hơn nữa, khi quá trình tích hợp dần dần với các hệ thống tồn kho phân tán khu vực và dịch vụ vận chuyển sản phẩm do các công ty giao hàng cung cấp tiến triển, các hệ thống thông tin cũng phải tích hợp dần dần tương ứng.

Tương thích Liquidware. Tất nhiên, tất cả các giao diện người dùng sẽ tương thích với liquidware. Ngoài ra, tất cả các giao diện người dùng nội bộ, chẳng hạn như giao diện để tổng hợp thông tin và phản hồi cho phát triển và lập kế hoạch sản phẩm, các bộ phận vận hành hệ thống và báo cáo quản lý, cũng sẽ được chuyển đổi sang liquidware.

Nếu một kế hoạch phát triển phần mềm phức tạp như vậy được trình bày, một nhóm phát triển phần mềm truyền thống có thể sẽ không chấp nhận ngay lập tức. Hoặc, trong quá trình tinh chỉnh các đặc tả hệ thống, họ sẽ chứng minh một cách hợp lý nhu cầu về chi phí và thời gian phát triển khổng lồ, và thúc đẩy việc giảm đáng kể các đặc tả.

Tuy nhiên, điều gì sẽ xảy ra nếu AI tạo sinh có thể tự động hóa hầu hết việc lập trình, và hơn một nửa số chồng hệ thống được trình bày đã quen thuộc với một thành viên nào đó trong nhóm, và nhóm đã có kinh nghiệm thành công trong việc giới thiệu các chồng hệ thống, nền tảng và framework mới từ đầu với sự hỗ trợ của AI tạo sinh? Và điều gì sẽ xảy ra nếu bạn, với tư cách là một kỹ sư đa hướng, đã bắt đầu con đường này và đang có ý định tiếp tục nó?

Từ góc độ đó, đây phải là một dự án rất hấp dẫn. Bạn sẽ được làm việc với một nhóm lập kế hoạch đưa ra các đề xuất đầy tham vọng dưới sự chỉ đạo của lãnh đạo kế hoạch, và một nhóm phát triển có tiềm năng phát triển thành một nhóm phát triển phần mềm đa hướng.

Cũng có sự đảm bảo về các hệ thống hiện có. Đây cũng là một dự án cho phép các quy trình phát triển linh hoạt, nơi các tính năng có tác động cao có thể được xây dựng nhanh chóng, và hệ thống có thể phát triển tăng dần với phản hồi từ những người dùng sớm chấp nhận.

Xem xét điều này, việc phát triển phần mềm đa hướng này nên được coi là một dự án hấp dẫn.

Kết luận

Nhờ lập trình tự động bằng AI tạo sinh, liquidware và phát triển phần mềm đa hướng đã và đang trở thành những thực tế hiện tại.

Trong tình huống như vậy, các kỹ sư IT ngày càng cần vượt ra ngoài phạm vi full-stack và hướng tới mục tiêu trở thành kỹ sư đa hướng.

Hơn nữa, ngoài ra, phạm vi của họ sẽ mở rộng sang kỹ thuật kinh doanh đa hướng, bao gồm kỹ thuật toàn diện các hoạt động tổ chức bằng cách kết nối khách hàng, nhân viên nội bộ và AI vượt ra ngoài phạm vi của hệ thống IT, và kỹ thuật cộng đồng đa hướng.

Và xa hơn nữa, tôi tin rằng một lĩnh vực gọi là kỹ thuật xã hội đa hướng sẽ xuất hiện, nhằm mục đích cải thiện xã hội một cách toàn diện.