Tương Lai của Phát Triển Phần Mềm: Liệu AI Có Thay Thế Lập Trình Viên Con Người?
Sự ra đời của trợ lý viết code AI đã mang đến một cảm giác lo sợ trong ngành công nghiệp công nghệ phát triển phần mềm. Nhà đầu tư Chris Sacca tuyên bố rằng AI sẽ loại bỏ sự cần thiết của các nhà phát triển, nói rằng "we're super fucked" và AI sẽ thay thế hầu hết các công việc viết code. Tuy nhiên, tôi không tin rằng AI sẽ thay thế được chuyên môn sâu sắc của một nhà phát triển web, người làm sản phẩm hoặc nhà xây dựng giỏi.
Những Hạn Chế của Code do AI Tạo Ra
Một trong những mối quan tâm chính với code do AI tạo ra là những hạn chế của nó. Mặc dù AI có thể tạo code, nhưng nó thiếu cách tiếp cận phát triển toàn diện, tích hợp, chu đáo mà một lập trình viên con người có thể cung cấp. Xây dựng một sản phẩm thực sự tốt đòi hỏi một dịch vụ gắn kết, đáng tin cậy và hiệu quả, rất khó đạt được với code do AI tạo ra. Như Tyler King chỉ ra, nỗi sợ hãi về các công ty và mọi người xây dựng các ứng dụng cá nhân của riêng họ bằng AI có cảm giác giống như rất nhiều nỗi sợ hãi mà chúng ta đã có trước đây với no-code và các trình xây dựng no-code như Bubble.
Đây là chú thích cho hình ảnh 1
Làn Sóng No-Code và Những Hạn Chế Của Nó
Làn sóng no-code được cho là sẽ cách mạng hóa việc phát triển phần mềm, giúp mọi người có thể xây dựng các ứng dụng web, ứng dụng di động và công cụ của riêng họ. Tuy nhiên, nó đã không diễn ra như vậy. Các trình xây dựng no-code như Bubble rất tốt cho một số trường hợp sử dụng nhất định, chẳng hạn như tạo cổng thông tin khách hàng để khách hàng đăng nhập, nhưng chúng không thay thế các ứng dụng web SaaS hoặc ứng dụng di động đòi hỏi sự tinh tế. Chúng cần phải hiệu quả, đáng tin cậy và có trải nghiệm người dùng mượt mà, điều này rất khó đạt được với các trình xây dựng no-code.
Mối Đe Dọa của AI và Những Tương Đồng Lịch Sử
Mối đe dọa của AI trong phát triển phần mềm khiến tôi nhớ đến làn sóng no-code và làn sóng open source. Đã có những bài báo nói rằng no-code sẽ là dấu chấm hết cho việc phát triển phần mềm và phát triển sản phẩm như chúng ta biết, nhưng nó đã không diễn ra như vậy. Tương tự, làn sóng open source được cho là sẽ thay thế phần mềm thương mại, nhưng nó đã không xảy ra. Các công ty như 37 đã phát hành once.com, cho phép người dùng mua phần mềm một lần và triển khai nó lên máy chủ của riêng họ, nhưng nó không gây ra sự thay đổi lớn trong ngành.
Đây là chú thích cho hình ảnh 2
Tầm Quan Trọng của Việc Ra Quyết Định Của Con Người trong Phát Triển Phần Mềm
Phần mềm tuyệt vời đòi hỏi việc ra quyết định của con người, suy nghĩ thông qua từng luồng người dùng, từng tương tác, hiểu công việc cần làm của khách hàng và tất cả những điều mà người dùng đang gặp rủi ro. AI có thể tạo code, nhưng nó không thể đưa ra những quyết định sáng tạo này, những quyết định rất khó đưa ra ngay cả đối với những người làm sản phẩm có nhiều năm kinh nghiệm.
Những Hạn Chế Của AI Trong Việc Tạo Ra Đầu Cuối Đến Cuối
Mặc dù AI có thể tạo code, nhưng nó không giỏi về tư duy cấp hệ thống và nó không giỏi trong việc tạo ra một tác phẩm hoàn chỉnh từ đầu đến cuối. Ngay sau khi bạn yêu cầu nó tạo ra một tác phẩm hoàn chỉnh, sẽ nhanh chóng thấy rõ rằng AI không ở đó và tôi không nghĩ nó sẽ bao giờ ở đó.
Đây là chú thích cho hình ảnh 3
Bảo Trì và Cập Nhật Code Do AI Tạo Ra
Phần mềm đòi hỏi rất nhiều bảo trì, rất nhiều cập nhật và AI cũng không làm công việc đó ngay bây giờ. Trên thực tế, nó dường như đang đưa vào nhiều lỗi hơn là sửa chữa. Các công ty có các chức năng do AI tạo ra hàng loạt thường không hiểu cách chúng hoạt động vì họ đã không viết chúng, gây khó khăn cho việc sửa chữa các vấn đề khi chúng phát sinh.
Đây là chú thích cho hình ảnh 4
Kết luận
Tóm lại, mặc dù AI có thể tạo code, nhưng nó không thể thay thế các lập trình viên con người. Phần mềm tuyệt vời đòi hỏi chuyên môn sâu sắc, việc ra quyết định của con người và một dịch vụ gắn kết, đáng tin cậy và hiệu quả, rất khó đạt được với code do AI tạo ra. Khi ngành công nghiệp tiếp tục phát triển, điều cần thiết là phải hiểu những hạn chế của AI và tầm quan trọng của sự tham gia của con người vào phát triển phần mềm.