AI

Phần khó nhất của việc xây dựng phần mềm không phải là viết code mà là các yêu cầu

Phần khó nhất của việc xây dựng phần mềm không phải là viết mã mà là các yêu cầu

Tại sao thay thế lập trình viên bằng AI sẽ không dễ dàng

Với tất cả những phát triển đáng kinh ngạc trong AI, có một mối quan ngại ngày càng tăng rằng các lập trình viên phần mềm có thể sớm bị thay thế bởi trí tuệ nhân tạo. Kịch bản tưởng tượng là các giám đốc điều hành kinh doanh và các nhà nghiên cứu sản phẩm sẽ bỏ qua các lập trình viên của họ và trực tiếp yêu cầu AI xây dựng chính xác những gì họ muốn. Tuy nhiên, sau 15 năm biến các yêu cầu này thành hiện thực, tôi thấy khó mà lo lắng nghiêm túc về điều này.

Thách thức thực sự: định nghĩa yêu cầu

Viết code có thể là một thách thức, nhưng hiếm khi mất hơn vài tuần để khắc phục các vấn đề về mã. Một khi bạn hiểu cú pháp, logic và kỹ thuật, việc viết mã trở nên khá đơn giản hầu hết thời gian. Thách thức thực sự nằm ở việc định nghĩa phần mềm sẽ làm gì. Phần khó nhất khi tạo phần mềm không phải là viết mã—mà là tạo ra các yêu cầu, và những yêu cầu phần mềm này vẫn được xác định bởi con người.

Bài học về yêu cầu và sự giao tiếp sai lệch

Đầu sự nghiệp của tôi, tôi tham gia một dự án giữa chừng để giúp tăng tốc độ của nhóm. Dự án liên quan đến việc cấu hình các sản phẩm tùy chỉnh trên các trang thương mại điện tử và tạo ra các điều khoản và điều kiện động dựa trên loại sản phẩm và vị trí của khách hàng do các yêu cầu pháp lý.

Tôi phát hiện ra một lỗi tiềm năng: hệ thống cho phép người dùng thay đổi các điều khoản và điều kiện đúng ở một giai đoạn khác trong quy trình, vi phạm các yêu cầu kinh doanh. Khi tôi hỏi khách hàng nếu điều này cần được sửa, ông ấy tự tin trả lời: “Điều đó sẽ không bao giờ xảy ra.” Người điều hành này đã làm việc tại công ty nhiều năm và được chọn để giám sát dự án, vì vậy tôi đã bỏ qua.

Vài tháng sau, một người kiểm thử đã phát hiện ra lỗi—cùng một vấn đề tôi đã xác định. Việc sửa chữa rất đơn giản, nhưng trải nghiệm này nhấn mạnh một chủ đề lặp đi lặp lại: yêu cầu không rõ ràng, không nhất quán hoặc sai là vấn đề thực sự trong phát triển phần mềm.

Bài học về yêu cầu và sự giao tiếp sai lệch

AI: cờ vua vs xe tự lái

AI đã đạt được những thành công đáng kinh ngạc trong một số lĩnh vực cụ thể như cờ vua, nơi các tham số là hữu hạn. Cờ vua có các quy tắc được ghi chép đầy đủ và một mục tiêu rõ ràng, làm cho nó trở thành một lĩnh vực hoàn hảo cho AI. Ngược lại, xe tự lái hoạt động trong một môi trường với vô số biến số và tình huống không thể đoán trước, yêu cầu hàng ngàn phán đoán nhỏ khó có thể mã hóa thành quy tắc.

Trong công nghệ, việc đạt được tính khả dụng cao (ví dụ: 99.9999%) đòi hỏi nỗ lực và chi phí đáng kể. 99% đầu tiên tương đối dễ đạt được, nhưng mỗi 9 bổ sung yêu cầu tài nguyên tăng lên theo cấp số nhân. Tương tự, làm cho AI đáng tin cậy cho các nhiệm vụ như xe tự lái là một thách thức vì các biến số vô hạn liên quan.

AI có thể viết mã, nhưng không thể tạo ra phần mềm

Việc tạo và duy trì phần mềm giống như lái xe hơn là chơi cờ vua. Quá trình này liên quan đến nhiều biến số và các phán đoán. Phát triển phần mềm là một quá trình liên tục với các tính năng được thêm vào và các lỗi được sửa chữa, không giống như một trò chơi cờ vua kết thúc khi thắng hoặc thua.

Các đặc tả kỹ thuật có thể giúp thiết kế phần mềm gần hơn với một động cơ quy tắc được kiểm soát chặt chẽ, nhưng chúng thường không đầy đủ hoặc không rõ ràng. Các yêu cầu thường xuyên thay đổi hoặc bị hiểu lầm, dẫn đến các vấn đề sau này.

Chẳng hạn, tôi từng được yêu cầu giúp xây dựng một ứng dụng khảo sát cho một khu vực có Wi-Fi không đáng tin cậy, sử dụng SMS để thu thập dữ liệu. Ban đầu, nhóm có vẻ hào hứng, nhưng khi tôi nêu ra các vấn đề tiềm ẩn, rõ ràng dự án gặp nhiều vấn đề. Cuối cùng, chúng tôi quyết định không tiến hành, và đó là một kết quả thành công vì nó tránh lãng phí tài nguyên vào một dự án không rõ ràng.

Hạn chế của AI trong phát triển phần mềm

AI không thể hỏi các bên liên quan để làm rõ hoặc giải quyết các sai sót của con người. Để tạo ra phần mềm chức năng, yêu cầu rõ ràng và chính xác là cần thiết, điều mà ngay cả các lập trình viên con người cũng gặp khó khăn. Sự chuyển đổi từ phương pháp waterfall sang agile trong phát triển phần mềm nhấn mạnh nhu cầu về sự linh hoạt và điều chỉnh liên tục—điều mà AI chưa sẵn sàng xử lý.

Trong khi AI có thể xuất sắc trong việc viết lại phần mềm hiện có để sử dụng các công nghệ mới hơn, nó vẫn yêu cầu các mục tiêu được xác định rõ ràng. AI có thể thành công trong việc xây dựng phần mềm theo quy trình waterfall, nhưng con người luôn gặp khó khăn với phương pháp này do khó khăn trong việc xác định và ghi lại các yêu cầu một cách chính xác.

Kết luận

AI có thể làm những điều phi thường, nhưng nó không thể đọc được suy nghĩ hoặc xác định điều bạn nên muốn. Thay thế lập trình viên bằng AI không chỉ đơn giản là viết mã, nó liên quan đến việc hiểu và định nghĩa phần mềm sẽ làm gì—một nhiệm vụ vốn dĩ thuộc về con người mà AI chưa sẵn sàng thay thế.

Shares:

Related Posts

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *