Dùng AI để "di chuyển núi": Di chuyển mã Legacy trong vài tuần thay vì vài năm
David Stein từ ServiceTitan chia sẻ cách tiếp cận đột phá sử dụng AI để tái cấu trúc quy mô lớn. Bằng cách áp dụng mô hình "dây chuyền lắp ráp" và các vòng lặp xác thực nghiêm ngặt, họ có thể chuyển đổi hàng trăm nghìn dòng mã cũ chỉ trong vài tuần thay vì hàng năm trời.

Dùng AI để "di chuyển núi": Di chuyển mã Legacy trong vài tuần thay vì vài năm
Mô hình minh họa quy trình tái cấu trúc AI
David Stein, Kỹ sư AI chính tại ServiceTitan, đã chia sẻ một cách tiếp cận mang tính cách mạng về việc sử dụng trí tuệ nhân tạo để giải quyết một trong những cơn ác mộng lớn nhất của kỹ sư phần mềm: di chuyển và tái cấu trúc mã code cũ (legacy code). Thay vì dành hàng tháng trời hay nhiều năm để chuyển đổi một hệ thống quy mô lớn, ServiceTitan đã chứng minh rằng bằng cách áp dụng mô hình "dây chuyền lắp ráp" (assembly line) kết hợp với các vòng lặp xác thực chặt chẽ, nhiệm vụ này có thể được hoàn thành chỉ trong vài tuần.
Bài viết này sẽ đi sâu vào chiến lược giúp loại bỏ các ảo tưởng của LLM và tăng tốc độ linh hoạt trong kỹ thuật.
Thách thức của các "ngọn núi" mã code
Bất kỳ kỹ sư nào làm việc tại các công ty tồn tại hơn vài năm đều hiểu rõ gánh nặng của mã thừa kế (legacy code). Những dự án di chuyển (migration) thường được lên kế hoạch kéo dài theo quý, thậm chí là nhiều năm, và đi kèm với rủi ro rất cao. David Stein lấy ví dụ về trường hợp tái cấu trúc hệ thống báo cáo (reporting metrics) tại ServiceTitan.
Hình ảnh minh họa David Stein
Hệ thống cũ có hàng trăm chỉ số phức tạp, mỗi chỉ số dựa trên những đoạn mã code cũ kỹ, phụ thuộc lẫn nhau và thiếu tài liệu. Việc cố gắng di chuyển chúng sang một kiến trúc mới (như dbt MetricFlow và Semantic Layer) theo cách truyền thống thường dẫn đến tình trạng "leo lên đỉnh núi giả". Đội ngũ có thể dành nhiều tháng lao vào dự án rồi mới nhận ra kế hoạch không khả thi, dẫn đến thất bại và lãng phí nguồn lực.
Tại sao cách tiếp cận AI thông thường thất bại?
Nhiều người có thể nghĩ rằng giải pháp đơn giản là yêu cầu các công cụ AI mã hóa hiện nay như Cursor hay Claude Code "hãy di chuyển toàn bộ codebase của tôi sang kiến trúc mới". Tuy nhiên, Stein chỉ ra rằng cách tiếp cận này không hiệu quả.
Nhiệm vụ quá lớn khiến AI bị ngợp, thiếu ngữ cảnh cần thiết về các đoạn mã sâu trong hệ thống, và dễ gặp phải tình trạng ảo tưởng (hallucinations) — khi AI tạo ra các chỉ số mới thay vì di chuyển cái cũ, hoặc viết code sai nhưng tự tin rằng mình đã đúng.
Nguyên tắc tăng tốc: Phân rã, Chuẩn hóa, Tự động hóa
Chìa khóa thành công của ServiceTitan nằm ở việc đảo ngược trục thời gian và thay đổi tư duy xử lý. Thay vì làm tuần tự, họ thực hiện song song hóa tối đa bằng quy trình gồm ba bước:
- Phân rã (Decompose): Đừng cố di chuyển cả "ngọn núi". Hãy chia nhỏ nhiệm vụ thành từng "viên sỏ" (pebble). Mỗi nhiệm vụ phải đủ nhỏ để một AI agent có thể hoàn thành độc lập.
- Chuẩn hóa (Standardize): Đảm bảo mọi tác vụ con đều có cấu trúc tương tự nhau về mặt ngữ cảnh đầu vào và yêu cầu đầu ra.
- Tự động hóa (Automate): Gán các tác vụ chuẩn hóa này cho các AI agent để xử lý hàng loạt.
Vai trò sống còn của vòng lặp xác thực (Validation Loops)
Điểm quan trọng nhất trong chiến lược này — và cũng là yếu tố giúp ngăn chặn ảo tưởng của LLM — chính là bước xác thực (validation).
Stein so sánh việc này với việc xây dựng một "động cơ vật lý" (physics engine) hoặc một bộ giả lập. Đối với mỗi chỉ số cần di chuyển, họ xây dựng một môi trường kiểm thử where kết quả của hệ thống mới được so sánh trực tiếp với kết quả của hệ thống cũ trên cùng một tập dữ liệu.
Quy trình hoạt động như một vòng lặp tự phục hồi (self-healing loop):
- Agent tiếp nhận ngữ cảnh và công cụ cần thiết.
- Agent viết code để di chuyển chỉ số.
- Agent chạy công cụ xác thực để so sánh kết quả.
- Nếu sai (fail), Agent phân tích lỗi và viết lại code.
- Quá trình lặp lại cho đến khi khớp hoàn toàn (pass).
Nếu không có sự xác thực nghiêm ngặt theo chương trình này, việc chạy hàng trăm tác vụ tự động sẽ tạo ra một đống code rác (slop) trông có vẻ hợp lý nhưng hoàn toàn sai lệch.
Kết quả và sự thay đổi mô hình
Bằng cách trang bị cho AI agent các công cụ dòng lệnh (CLI) để truy cập dữ liệu staging, cung cấp các tệp mục tiêu rõ ràng (như migration_goals.txt và migration_tasks.txt), và thiết lập bộ xác thực chặt chẽ, ServiceTitan đã đạt được kết quả ấn tượng.
Họ đã di chuyển thành công hàng trăm chỉ số phức tạp, trong đó khoảng 85% được hoàn toàn tự động hóa bởi AI. Thời gian thực hiện thu gọn từ mức dự kiến là nhiều quý (hoặc nhiều năm) xuống chỉ còn vài tuần.
Stein kết luận rằng đây không chỉ là việc làm nhanh các tác vụ nhỏ lẻ, mà là một sự thay đổi mô hình (paradigm shift). Nó cho phép các kỹ sư dám thực hiện những dự án kiến trúc khổng lồ mà trước đây bị hoãn vô thời hạn vì quá tốn kém và rủi ro. Với các "Minion" AI được điều khiển đúng cách, những ngọn núi mã code cũ không còn là trở ngại bất khả thi.
