0

Kỹ Thuật "Brainstorming Ngược": Dùng AI Làm Người Phỏng Vấn Để Chốt Spec Và System Design Trước Khi Code

Việc nhảy vào gõ code ngay khi vừa nảy ra ý tưởng (hoặc nhận được một yêu cầu mơ hồ) là con đường ngắn nhất dẫn đến refactor toàn bộ dự án. Trong luồng phát triển phần mềm hiện đại, AI không chỉ làm tốt vai trò "người viết code" (coder), mà còn có thể đóng vai trò xuất sắc như một Business Analyst (BA) và Senior System Architect.

Bằng kỹ thuật Brainstorming Ngược (Reverse Prompting), chúng ta buộc AI phải đặt câu hỏi, phỏng vấn lại chính mình để đào sâu logic, xử lý edge case và chốt chặt Technical Spec trước khi bất kỳ dòng code nào được viết ra. Đặc biệt khi kết hợp spec này với các công cụ như Cursor Pro hay Claude Code, chất lượng code đầu ra sẽ chính xác và đồng nhất hơn rất nhiều.

Dưới đây là quy trình chi tiết 4 bước để thiết lập luồng phỏng vấn này.


Giai đoạn 1: Khởi tạo vai trò (The Setup Prompt)

Thay vì ra lệnh "Hãy viết cho tôi hệ thống e-commerce", bạn cần đảo ngược vị thế. Hãy thiết lập một Master Prompt để ép AI vào kỷ luật: Tuyệt đối không viết code, chỉ được hỏi.

Mẫu Prompt Khởi Tạo:

"Từ bây giờ, hãy đóng vai trò là một Senior Business Analyst và System Architect. Tôi có một ý tưởng về dự án [Tên/Mô tả ngắn gọn dự án]. Nhiệm vụ của bạn KHÔNG PHẢI là viết code. Nhiệm vụ của bạn là phỏng vấn tôi để thu thập đầy đủ yêu cầu nghiệp vụ (Business Requirements), các trường hợp ngoại lệ (Edge Cases), và sau đó cùng tôi thiết kế kiến trúc hệ thống (System Design).

Quy tắc:

  1. Đặt câu hỏi theo từng nhóm chủ đề, không hỏi quá 3 câu cùng lúc để tôi dễ trả lời.
  2. Đợi tôi trả lời xong mới hỏi tiếp.
  3. Nếu thấy câu trả lời của tôi có lỗ hổng logic hoặc rủi ro về performance, hãy chỉ ra ngay lập tức và đề xuất giải pháp.
  4. Bắt đầu bằng việc hỏi về tổng quan nghiệp vụ."

Giai đoạn 2: Khai thác Yêu cầu Nghiệp vụ (Requirement Gathering)

Khi AI bắt đầu đặt câu hỏi, cuộc phỏng vấn sẽ thường đi qua các "trạm" kiểm tra logic cốt lõi:

  • Định nghĩa User Roles & Permissions: Hệ thống có những ai tham gia? (User thường, Admin, Merchant, System). Phân quyền dựa trên RBAC (Role-Based Access Control) hay ABAC?
  • Happy Paths vs. Edge Cases:
    • Ví dụ AI có thể hỏi: "Nếu người dùng thanh toán thành công nhưng webhook từ cổng thanh toán bị delay 5 phút thì hệ thống hiển thị gì cho họ?"
    • Ví dụ khác: "Trong hệ thống logistics, nếu tài xế ấn 'Đã giao hàng' nhưng GPS báo họ đang cách vị trí khách 10km thì hệ thống có chặn lại không?"
  • Concurrency & Race Conditions: AI sẽ hỏi bạn về các kịch bản thao tác đồng thời. Ví dụ: 2 người cùng bấm mua sản phẩm cuối cùng trong kho.

💡 Mẹo trả lời: Bạn không cần gõ câu trả lời quá hoàn hảo. Hãy gõ những gạch đầu dòng ngắn gọn, hoặc thậm chí dùng voice-to-text. AI sẽ tự động gom nhặt và chuẩn hóa lại.


Giai đoạn 3: Thảo luận Thiết kế Hệ thống (System Design)

Sau khi business logic đã rõ ràng, bạn ra lệnh cho AI chuyển sang phase System Design. Lúc này, cuộc hội thoại giống như một buổi whiteboard giữa hai kỹ sư.

Prompt chuyển giai đoạn:

"Nghiệp vụ đã khá rõ ràng. Bây giờ hãy chuyển sang System Design. Dựa trên yêu cầu trên, hãy đề xuất kiến trúc Database, chiến lược Caching, và các thành phần kỹ thuật cần thiết. Công nghệ dự kiến tôi sử dụng là [Laravel / Golang / Node.js], cơ sở dữ liệu [PostgreSQL], và [Redis] cho caching."

Trong giai đoạn này, AI sẽ giúp bạn mổ xẻ các vấn đề sâu hơn:

  • Database Schema Design: Thiết kế các bảng, quan hệ (1-N, N-N), và quan trọng nhất là đánh Index. AI có thể cảnh báo nếu thiết kế của bạn dễ gây ra N+1 query hoặc khóa (deadlock) khi scale.
  • Lựa chọn Data Store phù hợp:
    • Dữ liệu quan hệ chặt chẽ: PostgreSQL / MySQL.
    • Dữ liệu time-series (như log thiết bị IoT, log trạng thái AFC): TimescaleDB.
    • Dữ liệu tần suất ghi cực lớn: Cassandra.
  • Xử lý Bất đồng bộ (Asynchronous Processing): AI sẽ gợi ý bóc tách các tác vụ nặng (như gửi email, push notification, export report) ra khỏi HTTP request chính, đẩy vào Message Queue (RabbitMQ) và dùng Worker (chạy qua Supervisor hoặc PM2) để xử lý ngầm.
  • API Contract: Xác định chuẩn giao tiếp (RESTful, gRPC, hay WebSockets) và cấu trúc JSON response.

Giai đoạn 4: Chốt Technical Spec (Finalizing PRD)

Đây là bước thu hoạch. Khi cả hai đã thống nhất về nghiệp vụ và kiến trúc, bạn yêu cầu AI tổng hợp mọi thứ thành một bản tài liệu chuẩn mực. Đây sẽ là "kim chỉ nam" bất biến trước khi code.

Prompt chốt Spec:

"Chúng ta đã thống nhất các yêu cầu. Bây giờ, hãy đóng vai trò là Technical Product Manager. Hãy tổng hợp toàn bộ cuộc thảo luận nãy giờ thành một tài liệu Markdown chi tiết (Technical Specification Document).

Bao gồm các phần:

  1. Tổng quan dự án & Luồng nghiệp vụ chính (Business Flows).
  2. Các quy tắc nghiệp vụ & Edge cases đã chốt.
  3. Database Schema (sử dụng format DBML hoặc bảng Markdown).
  4. Danh sách các API Endpoints (Method, Path, Body, Response).
  5. Stack công nghệ và các thành phần hệ thống (Cronjobs, Queues, Caching, Nginx config proxy nếu có).

Tuyệt đối không viết code implement, chỉ viết tài liệu thiết kế."


📊 So Sánh Lợi Ích Của Luồng Làm Việc

Phương pháp Truyền thống Sử dụng AI Brainstorming Ngược
Tự nghĩ tự code, gặp lỗi mới sửa logic. Logic được stress-test bởi AI trước khi có dòng code đầu tiên.
Mất nhiều ngày để vẽ ERD, viết tài liệu. Tạo ra bản Technical Spec hoàn chỉnh chỉ trong 30-45 phút hội thoại.
Dễ bỏ sót các Edge Case (Race conditions, timeout). AI chủ động rà soát và gợi ý các kịch bản ngoại lệ dựa trên best practices.
Truyền prompt mơ hồ cho Cursor/Claude dẫn đến code rác. Dùng bản Spec hoàn chỉnh làm Input cho AI Coding Tools, tỷ lệ code chạy đúng ngay lần đầu tăng lên 90%.

💡 Lời Kết

Bằng cách chuyển AI từ "thợ gõ code" thành "chuyên gia phỏng vấn và phản biện", bạn sẽ tiết kiệm hàng chục giờ debug và refactor, đảm bảo kiến trúc hệ thống (dù là một API Backend, một hệ thống Microservices hay firmware cho thiết bị phần cứng) luôn được xây dựng trên một nền móng vững chắc. Tới lúc này, việc implement code chỉ còn là thao tác chuyển đổi tài liệu thành các khối mã lệnh.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí