Công cụ lập trình AI hiện đã trở thành một phần đã được khẳng định trong phát triển phần mềm, nhưng AI tạo ra cũng đang lan rộng sang các phần khác của quy trình làm việc của lập trình viên. Userdoc là một startup đã tạo ra dịch vụ hỗ trợ AI để tạo các yêu cầu phần mềm. Tại Hội nghị AI Engineer Summit tại San Francisco tuần trước, tôi đã ngồi xuống trò chuyện với cùng với Chris Rickard, người sáng lập và nhà phát triển chính của Userdoc, để thảo luận về lý do ông tạo ra Userdoc và cách nó sẽ giúp đỡ các nhà phát triển.

Yêu cầu - xác định điều gì một phần mềm sẽ thực hiện cho một hoặc nhiều “tác nhân người dùng” - thường là điều đầu tiên được thực hiện trong một dự án mới.

“Một phần rất lớn của việc xây dựng phần mềm tốt là có yêu cầu tốt và đảm bảo rằng bạn đang xây dựng đúng điều đó,” Rickard nói với tôi. “Tôi thực sự quan tâm đến việc AI có thể giúp việc này và ngăn ngừa các vấn đề có thể cuối cùng trở thành lỗi; hoặc, điều tệ hơn nữa, các tính năng khổng lồ của các hệ thống không giải quyết vấn đề gốc rễ và còn không cần thiết.”

Một trong những lợi ích của việc sử dụng AI để tạo yêu cầu là bạn có thể “đào tạo” nó với thông tin về công ty của bạn, để AI có thể sử dụng nó như ngữ cảnh cho yêu cầu. Rickard đã cho tôi xem một ví dụ về dịch vụ giao hàng siêu thị sử dụng Userdoc để xây dựng yêu cầu cho người giao hàng. Ông nói rằng trong trường hợp như vậy, AI cung cấp một loại "quản trị" cho các nhà phát triển trong quá trình xây dựng hệ thống.

Userdoc

“Trong ví dụ này, trí tuệ nhân tạo đang hoạt động như một Business Analyst,” Rickard nói, “và nó hiểu về những hệ quả khác của việc thực hiện điều này.”

Tại sao không chỉ sử dụng ChatGPT?

Điều này nghe có vẻ tốt và tốt, nhưng việc sử dụng AI của Userdoc để tạo yêu cầu phần mềm có khác biệt so với việc sử dụng ChatGPT để làm điều tương tự như thế nào?

Rickard nói rằng có nguy cơ ChatGPT sẽ “nghĩ ra điều gì đó”. Ông cũng nói Userdoc sử dụng GPT-4 dưới mái nhà, nhưng ngữ cảnh kinh doanh là chìa khóa.

“Vì vậy khi chúng tôi nói chuyện với GPT-4,” ông nói, “chúng tôi đang gửi thông tin về [các thông tin liên quan] cho hệ thống.”

Ông thừa nhận rằng ChatGPT có thể đạt được điều tương tự, nhưng bạn sẽ cần xây dựng “một đoạn văn lớn” để nhận được một câu trả lời tương tự từ Userdoc.

Đối với mỗi dự án Userdoc, có một loạt "câu chuyện người dùng" thường tương đương với số lượng tính năng trong một phần mềm. Vì vậy, có thể có hàng trăm tính năng và đó là nơi nó trở nên phức tạp, theo Rickard cho biết.

"Một trong những điểm đau đớn lớn mà chúng tôi đang cố gắng giải quyết ở đây, là nếu một hệ thống có hàng trăm tính năng [...] có rất nhiều điều mà bạn cần suy nghĩ và nhớ; và một nguyên nhân lớn của việc vượt quá và chi phí phần mềm chính là những thứ nhỏ nhặt này mà mọi người không tìm hiểu từ đầu."

Cách Userdoc Hoạt Động

Việc thiết lập một dự án Userdoc mới được thực hiện thông qua một trình hướng dẫn, giúp bạn liệt kê các người dùng và mục tiêu khác nhau của họ. Thường việc thiết lập này được thực hiện bởi chủ sở hữu sản phẩm, quản lý sản phẩm và các nhà phân tích kinh doanh - sau đó, dự án được chuyển đến các nhà phát triển. Nhưng Rickard cho biết Userdoc cũng giúp trực tiếp cho các nhà phát triển.

'Vì vậy, sau khi các tính năng và các thành phần đã được tạo ra, [...] bạn có thể đồng bộ hóa điều này với các công cụ quản lý dự án. Vì vậy, nó kết nối với Jira, hoặc Azure DevOps, hay bất cứ đâu tạo ra một mục công việc đi từ 'cần làm', 'đang tiến hành' và 'hoàn thành'; và việc này đồng bộ tất cả thông tin về tính năng là gì."

Userdoc trình hướng dẫn

Rickard nhấn mạnh rằng trong một số tình huống, các nhà phát triển phần mềm cũng giúp xây dựng yêu cầu. Vì vậy, điều này phụ thuộc vào nhu cầu kinh doanh để xác định thời điểm và cách thức mà các nhà phát triển sẽ sử dụng Userdoc. Thường Userdoc là một tài liệu tham khảo tốt khi quay trở lại một dự án.

Userdoc wizard

"Chúng tôi làm việc với rất nhiều công ty quảng cáo có nhiều dự án đồng thời," ông nói, "và nhà phát triển phần mềm - và thậm chí cả nhà thiết kế - dùng Userdoc này như điểm nhảy lại trên một dự án sau hai tháng. Bạn có mô tả tuyệt vời về những gì cần phải làm."

Rickard bổ sung rằng thông tin trong Userdoc cũng có thể được sử dụng là "tài liệu sống dài hạn cho hệ thống."

"Vì vậy, nếu bạn bắt đầu theo cách này, có yêu cầu khá chi tiết mà bạn sau đó cập nhật, và đó là nơi mà doanh nghiệp tham khảo sau đó, thì điều này trở thành một nguồn thông tin chính thống [về một hệ thống phần mềm]."

Suy Nghĩ Về LangChain

Vì chúng tôi đã trò chuyện cùng nhau tại Hội Nghị Kỹ Sư Trí Tuệ Nhân Tạo, tôi muốn đánh giá xem Rickard có đang sử dụng các công cụ "nóng" hiện tại của lĩnh vực kỹ sư trí tuệ nhân tạo không. Vì ông đang sử dụng GPT-4, tôi hỏi ông có sử dụng LangChain như một lớp giao tiếp cho LLM của OpenAI không?

"Tôi đã dành khoảng một hai tuần với phiên bản nguyên mẫu đầu tiên [của Userdoc] bằng việc sử dụng LangChain," ông trả lời. "Nhưng tôi nhận ra rằng tôi muốn hiểu những gì đang xảy ra phía sau; và LangChain rất mạnh mẽ, nhưng những gì nó đem lại [...] là các phương pháp đã được kiểm chứng và hữu ích để thực hiện một số nhiệm vụ cụ thể - chẳng hạn như đọc một tài liệu, chia nhỏ nó thành các phần nhỏ, gửi nó đến một LLM, và đặt các câu hỏi".

Nhưng […] khi đang học LLMs, tôi cũng đang học LangChain và khó để hiểu được phần nào bắt đầu và phần nào kết thúc. Vì vậy, tôi đã tự viết lớp giao tiếp riêng cho việc nói chuyện với GPT-4, và điều đó giúp đỡ đáng kể."

Cách Userdoc Có Thể Mở Rộng

Vì vậy nếu theo thời gian, Userdoc có thể trở thành nguồn tài liệu cho một phần mềm, liệu nó có thể được sử dụng để cung cấp sức mạnh cho một trợ lý chatbot trên phía khách hàng (ví dụ như dịch vụ giao hàng tại siêu thị chẳng hạn)?

"Câu trả lời là có, chắc chắn," Rickard trả lời. "Mối quan tâm chính thực sự là sự khác biệt giữa kiến thức nội bộ và ngoại vi, và những gì mọi người muốn hiển thị."

Anh đã chỉ ra rằng Userdoc đang khởi động tự do tại thời điểm hiện tại, nhưng nếu anh mở rộng đội ngũ, ước mơ của anh sẽ là "hiểu sâu hơn về phần nhàm chán, nhưng cực kỳ quan trọng về sự tuân thủ." Vì vậy, anh muốn đi theo hướng đó hơn là làm điều mà tất cả mọi người khác đang làm - tạo ra một trợ lý chatbot cho một trang web hoặc ứng dụng mà nhìn thấy người tiêu dùng.

"Tôi thực sự thích ý tưởng đảm bảo rằng những điều được thỏa thuận bởi doanh nghiệp thực sự là những gì đã được thực hiện," anh giải thích. Anh cũng bổ sung rằng hiện nay có các bài kiểm tra tự động mà nhà phát triển có thể sử dụng, nhưng anh muốn sử dụng trí tuệ nhân tạo để mở rộng quy trình đó.