- Theo nghĩa truyền thống, kỹ thuật phần mềm đang đi đến hồi kết, và một mô hình kỹ thuật sản phẩm dựa trên AI đang xuất hiện
- Kỹ sư sản phẩm là vai trò lai giữa quản lý sản phẩm và lập trình viên full-stack, một builder tự chủ, định hướng kết quả chịu trách nhiệm cho toàn bộ vòng đời từ lập kế hoạch đến triển khai
- Họ được tổ chức theo đơn vị tính năng thay vì theo nhóm, dựa trên AI-native, năng lực hình chữ T và tư duy xoay quanh KPI, và chịu trách nhiệm end-to-end cho onboarding, thanh toán, thông báo, v.v.
- Ở giai đoạn sản phẩm, họ thực hiện ideation, phân tích thị trường, nghiên cứu người dùng và thiết kế sản phẩm; ở giai đoạn kỹ thuật, họ phụ trách kiến trúc, thiết kế hệ thống, phát triển frontend và backend
- AI đặc biệt là công cụ mạnh trong các lĩnh vực có thể định nghĩa và mang tính quyết định (D&D), và trong tương lai tổ chức có khả năng tiến hóa từ tam giác PM–designer–engineer truyền thống sang mô hình cộng tác giữa kỹ sư sản phẩm và AI
Background
- Kỹ thuật phần mềm theo cách hiểu truyền thống không còn phù hợp nữa
- Việc Dennis Ritchie công bố ngôn ngữ C vào năm 1972 là lần chuyển đổi mô hình căn bản cuối cùng
- Những tiến bộ sau đó về cơ bản chỉ là tối ưu hóa và trừu tượng hóa để giúp việc viết và chuyển đổi mã máy trở nên dễ dàng hơn
- Trong thời gian dài, năng suất được đánh giá dựa trên hiệu quả thời gian/không gian của mã, độ dài và khả năng diễn giải của mã
- Hiện tại chúng ta đã bước vào một mô hình hoàn toàn mới, và khả năng quay trở lại thời kỳ “raw coding” của quá khứ là rất thấp
- Gần đây, John Carmack đã nhắc đến việc trong tương lai, công cụ xây dựng tốt nhất sẽ chuyển từ viết tay sang được AI dẫn dắt
- Vì vậy, điều quan trọng với kỹ sư là phát triển “product skills” và tận dụng những công cụ tối ưu nhất
- Kỹ thuật phần mềm sẽ dần tiến hóa thành Product Engineering
Kỹ sư sản phẩm (Product Engineer, PE) là gì?
- Vai trò kết hợp giữa Product Manager và kỹ sư phần mềm full-stack
- Chịu trách nhiệm cho toàn bộ vòng đời sản phẩm, là nhân sự gắn trực tiếp với thành bại của sản phẩm
- Các đặc điểm chính của kỹ sư sản phẩm:
- AI-native: dùng LLM như công cụ cốt lõi chứ không phải tính năng bổ sung
- Năng lực hình chữ T: có kỹ năng kỹ thuật sâu, đồng thời hiểu biết rộng về sản phẩm, dữ liệu và thiết kế
- Định hướng hiệu quả: chịu trách nhiệm cho các KPI như retention, conversion rate, activation rate
- Khả năng tự chủ trong thực thi: có thể thực hiện từ ý tưởng → tài liệu kế hoạch → thiết kế → triển khai với mức giám sát tối thiểu
- Thay đổi trong cấu trúc đội ngũ
- Các kỹ sư sản phẩm tạo thành những lean team nhỏ nhưng có trình độ rất cao
- Thay vì tách frontend/backend/infrastructure như trước, tổ chức xoay quanh feature squad theo sản phẩm hoặc tính năng
- Không còn chia theo stack mà căn chỉnh theo outcome
- Ví dụ: một người phụ trách onboarding, người khác phụ trách thanh toán, người khác nữa phụ trách tính năng thông báo
- Mỗi người chịu trách nhiệm end-to-end cho toàn bộ tính năng từ UX đến lớp dữ liệu
- Tức là cấu trúc chuyển từ “đội frontend/backend/infrastructure” sang “squad độc lập theo từng tính năng”
- Kỹ sư sản phẩm có hai khía cạnh:
- Khía cạnh sản phẩm (pre-development)
- Khía cạnh kỹ sư (in/post-development)
The Product
- Khía cạnh sản phẩm trong vai trò của kỹ sư sản phẩm chồng lấn với công việc của Product Manager truyền thống, tức phần chịu trách nhiệm về lập kế hoạch và định hướng sản phẩm
- Product Ideation
- Quá trình xác định và cụ thể hóa các tính năng cốt lõi, value proposition và nhóm người dùng mục tiêu của sản phẩm
- Làm rõ lý do tồn tại của sản phẩm và khách hàng mục tiêu để đặt nền tảng cho định hướng phát triển về sau
- Mind-mapping
- Sơ đồ hóa và trực quan hóa các ý tưởng hoặc đầu việc phát sinh từ một khái niệm trung tâm để nắm được bức tranh lớn
- Được dùng như công cụ giúp chia sẻ và phát triển ý tưởng trong đội ngũ
- Brainstorming
- Quá trình ghi lại ý tưởng cá nhân rồi chia sẻ với người khác để cải thiện, bổ sung và kiểm chứng
- Thông qua cộng tác, sự đa dạng và sáng tạo của ý tưởng được khuếch đại
- Discovery
- Quá trình khám phá nhu cầu khách hàng và nghiên cứu cơ hội thị trường để tìm ra một sản phẩm nơi mục tiêu kinh doanh và giá trị cho người dùng trùng khớp
- Bao gồm phỏng vấn người dùng, phân tích đối thủ và nghiên cứu thị trường
- Selection
- Quyết định nên ưu tiên tính năng hay dự án nào trước dựa trên định hướng chiến lược, mục tiêu kinh doanh, nhu cầu khách hàng và xu hướng thị trường
- Đưa ra phương án thực thi hiệu quả nhất trong giới hạn nguồn lực
- Market Analysis
- Phân tích môi trường thị trường mà sản phẩm sẽ tham gia, xác định cục diện cạnh tranh, quy mô thị trường, cơ hội và rủi ro
- Được dùng để xây dựng định vị sản phẩm và chiến lược tăng trưởng
- User Research
- Quá trình hiểu sâu hành vi, nhu cầu và khó khăn của người dùng
- Cung cấp cơ sở dữ liệu để cải thiện trải nghiệm người dùng
- Product Design
- Bao gồm thiết kế UI/UX, service design, interaction design và user testing
- Bảo đảm trải nghiệm thân thiện với người dùng thông qua tạo prototype và thử nghiệm lặp lại
- Đây vốn là những vai trò do Product Manager truyền thống đảm nhiệm, nhưng kỹ sư sản phẩm có thể thực hiện nhanh nhẹn hơn nhờ dùng công cụ AI
- AI có giới hạn trong việc tạo ra ý tưởng hoàn toàn mới, nhưng rất mạnh ở việc rà soát những pattern đã tồn tại hoặc bổ sung cho các quá trình tư duy lặp lại
- Điều quan trọng là tầm nhìn sản phẩm phải do con người dẫn dắt, còn AI nên được dùng như một soundboard để tinh chỉnh và hiệu chỉnh ý tưởng
The Engineer
- Khía cạnh kỹ sư trong vai trò của kỹ sư sản phẩm là giai đoạn biến đặc tả đã hoạch định thành hiện thực và triển khai cụ thể
- Bao gồm bốn lĩnh vực chính:
- Kiến trúc phần mềm: các quyết định mang tính cấu trúc
- Thiết kế hệ thống: định nghĩa và cụ thể hóa hệ thống
- Phát triển frontend: triển khai thiết kế trực quan và giao diện người dùng
- Phát triển backend: tối ưu business logic và thiết kế cơ sở dữ liệu
- Tất nhiên các chủ đề kỹ thuật khác như kiểm thử, giám sát hay tích hợp AI cũng quan trọng, nhưng trong đa số dự án, ưu tiên vẫn là xây dựng và triển khai nhanh một sản phẩm SLC (Simple, Lovable, Complete)
- Vì coding LLM đặc biệt mạnh trong môi trường có thể định nghĩa và mang tính quyết định (D&D), đóng góp của AI ở khía cạnh kỹ thuật là lớn hơn
-
Planning
- Lập kế hoạch là bước cốt lõi để sử dụng AI hiệu quả
- Khi cung cấp cho AI các yêu cầu được cấu trúc tốt về ý định của dự án, chất lượng mã về dài hạn sẽ được cải thiện đáng kể
- Nếu định nghĩa Rules thì AI coder có thể liên tục tham chiếu các chỉ dẫn ở cấp hệ thống
- Ví dụ: quy tắc cập nhật tài liệu, ghi lại thay đổi kiến trúc, code style, tiêu chuẩn kiểm thử
- Cấu trúc Rules ví dụ:
- Đồng bộ tài liệu trong
/docs cùng README và CHANGELOG
- Khi có thay đổi lớn về dependency hoặc kiến trúc thì viết ADR (Architecture Decision Record)
- Tạo API client bằng OpenAPI Generator, dùng template TypeScript axios
- Truy cập dữ liệu theo repository pattern, chuẩn hóa xử lý lỗi
- Định nghĩa rõ tiêu chuẩn kiểm thử unit, integration và E2E
- Trong hầu hết IDE, có thể tự động tạo bằng
/Generate Cursor Rules
-
Software Architecture
- Kiến trúc là tập hợp các quyết định tạo thành bộ khung của codebase, nên chi phí thay đổi rất cao và cần thận trọng ngay từ giai đoạn đầu
- Các yếu tố cần cân nhắc:
- Monolithic vs microservices, serverless vs containerized
- Quản lý dependency, định nghĩa ranh giới tích hợp
- Tính mô-đun và tách biệt mối quan tâm
- Các giao thức giao tiếp như REST, GraphQL, gRPC, event bus
- Chiến lược mở rộng quy mô như horizontal scaling
- Vai trò của AI:
- So sánh ưu và nhược điểm giữa các pattern kiến trúc thay thế
- Tạo sơ đồ bằng Mermaid.js
- Viết bản nháp ADR
- Tuy nhiên, quyết định cuối cùng vẫn cần phán đoán của con người và chuyên môn miền lĩnh vực
-
System Design
- Thiết kế hệ thống là quá trình cụ thể hóa kiến trúc để định nghĩa thành dịch vụ thực tế, luồng dữ liệu, state machine và interface
- Các công việc chính:
- Định nghĩa API và ranh giới dịch vụ
- Mô hình hóa dữ liệu và thiết kế luồng dữ liệu giữa các lớp
- Chiến lược xử lý lỗi và khôi phục sau sự cố
- Mô hình hóa chuyển trạng thái và quy trình bất đồng bộ
- Viết tài liệu thiết kế và rà soát edge case
- Khả năng ứng dụng AI:
- Tạo bản nháp thiết kế ban đầu
- Mô phỏng vấn đề đồng thời và edge case
- Viết API interface, schema và state machine
- So sánh pattern thiết kế và đưa ra phản hồi
- Hỗ trợ xác minh thiết kế như một “kỹ sư junior”
-
Frontend Engineering
- Frontend phụ trách triển khai thiết kế trực quan và chức năng phía client
- AI hoạt động rất tốt trong hệ sinh thái JS, đặc biệt với các framework phổ biến như React
- Mẹo cải thiện hiệu suất AI:
- Cung cấp cho AI brand guideline (font, màu sắc, khoảng cách, quy tắc responsive) dưới dạng screenshot hoặc tài liệu
- Dùng Tailwind config, CSS variables, v.v. để tạo mã UI nhất quán
- Cũng có thể thử chuyển đổi mã thông qua các công cụ Figma-to-code như Tempo
- Khi đưa cho AI định nghĩa component lặp lại và các quy tắc responsive, việc viết UI giữ được tính nhất quán của thương hiệu sẽ dễ hơn
-
Backend Engineering
- Backend phụ trách triển khai business logic, thiết kế cơ sở dữ liệu, xây dựng và tối ưu API
- AI đặc biệt hiệu quả trong các tác vụ có thể định nghĩa và mang tính quyết định (D&D)
- Các kỹ thuật hiệu quả:
- Import tài liệu: đưa trực tiếp API spec và tài liệu kỹ thuật vào IDE để AI tham chiếu, từ đó giảm hallucination
- Dùng workspace: với dự án tách frontend và backend, gộp các thư mục để cung cấp ngữ cảnh, giúp AI hiểu tốt hơn cấu trúc toàn bộ dự án
General Tips for the Product Engineer
-
Always work at the frontier
- Điều quan trọng là luôn sử dụng các model mới nhất
- Các model mới có thể hiểu những dự án lớn hơn nhờ cửa sổ ngữ cảnh lớn hơn
- Chúng cũng được cải thiện về khả năng suy luận, giảm hallucination và độ ổn định cao hơn
-
Use thinking mode
- Bật Thinking mode sẽ cải thiện đáng kể chất lượng câu trả lời của model
- Nếu có tùy chọn, nên luôn kích hoạt
- Nếu không được hỗ trợ, có thể đạt hiệu ứng tương tự bằng cách thêm từ “ultrathink” vào prompt
-
Be hyper-specific
- Khi yêu cầu AI, cần viết cụ thể và rõ ràng
- Bắt buộc phải bao gồm mục tiêu, ràng buộc, quyết định thiết kế, đoạn code liên quan, đường dẫn file và tên component
- Ví dụ về prompt tốt:
- Thêm tính năng theo dõi phân tích vào form trong
/src/pages/SignUp.tsx
- Khi người dùng nhấp ‘Submit’, gửi sự kiện
sign_up_started thông qua hàm trackEvent()
- Sự kiện cần được debounce
- Bao gồm domain email của người dùng (ví dụ:
gmail.com) như một thuộc tính
-
Provide visual context
- Trong công việc frontend, việc cung cấp ngữ cảnh trực quan đặc biệt quan trọng
- Coding LLM có thể hiểu hình ảnh, nên nếu đính kèm ảnh chụp thiết kế hoặc ảnh chụp thông báo lỗi do bug, AI có thể giải quyết vấn đề nhanh hơn
-
Work in small iterations
- Thay vì giao cho AI một tác vụ lớn trong một lần, nên chia nhỏ và lặp lại theo từng bước
- Cách làm hiệu quả là triển khai tính năng cơ bản trước rồi cải thiện dần
- Prompt nên được chia thành nhiều chỉ dẫn được định nghĩa rõ ràng
-
Stay curious
- Trên internet có vô số mẹo và ví dụ về prompt engineering
- Nếu tham gia cộng đồng hoặc các mạng lưới liên quan, bạn có thể tiếp cận các kỹ thuật mới nhất và nhanh chóng học được các cách tận dụng hiệu quả
Closing thoughts
- Bất chấp cuộc cách mạng AI, vẫn có những năng lực trong tương lai gần sẽ không bị thay thế, thậm chí còn trở nên giá trị hơn
- Thành thạo công cụ CLI (ví dụ: git)
- Git là công cụ hiệu quả nhất để quản lý phiên bản mã và theo dõi lịch sử thay đổi
- Vì độ tin cậy của mã do AI tạo ra còn thấp, khả năng quay lại trạng thái trước đó hoặc bắt đầu lại là điều thiết yếu
- Vì vậy, năng lực sử dụng các công cụ CLI như Git sẽ ngày càng quan trọng hơn
- Năng lực nền tảng về kỹ thuật
- Khả năng quản lý technical debt, duy trì tính mô-đun và đóng gói mã
- AI có thể không đảm bảo được tính nhất quán trong code style như quy tắc đặt tên, nguyên tắc DRY hay tính mô-đun
- Vì thế, khả năng tự mình giữ vững các nguyên tắc nền tảng của kỹ sư sẽ có giá trị cao hơn
- Dù vậy, về dài hạn vẫn có thể có thay đổi khi AI viết ngày càng nhiều mã hơn
- Khả năng giao tiếp mạnh mẽ
- Năng lực viết tài liệu, prompt và đặc tả một cách rõ ràng, có cấu trúc mang lại hiệu ứng đòn bẩy lớn
- AI không suy luận ý định như con người mà chỉ thực hiện đúng theo chỉ dẫn, nên tính rõ ràng là điều bắt buộc
- Đặc tả tốt, prompt được định nghĩa tốt và tài liệu hóa có hệ thống sẽ giúp nâng cao năng suất và chất lượng đầu ra
- Sự dịch chuyển quyền lực trong tổ chức
- Công việc mang tính kỹ thuật sẽ dần được AI đảm nhiệm, phù hợp với bản chất D&D (Definable & Deterministic)
- Khi năng lực thực thi trở nên chi phí thấp và phổ cập, khả năng quản trị AI và đóng gói kết quả để truyền đạt cho ban điều hành/cổ đông sẽ tạo ra giá trị lớn hơn
- Trong các tập đoàn lớn, quá trình thực thi thực tế thường không lộ diện mà chỉ có kết quả được chuyển lên, nên khả năng truyền đạt chiến lược và đóng gói thành quả sẽ quyết định mức ảnh hưởng
- Người quản lý việc căn chỉnh và truyền đạt có thể sẽ có nhiều quyền lực hơn người trực tiếp triển khai công nghệ
- Triển vọng thay đổi cấu trúc tổ chức
- Các công ty mới hơn, đặc biệt là startup, sẽ phản ánh vai trò của kỹ sư sản phẩm nhanh hơn
- Khi AI ngày càng có nhiều quyền tự chủ trong quá trình tăng trưởng, cấu trúc tam giác PM–designer–engineer truyền thống có thể suy yếu
- Thay vào đó, có thể xuất hiện một topo đội ngũ mới nơi những pod nhỏ do kỹ sư sản phẩm có cảm quan về sản phẩm dẫn dắt cộng tác cùng AI copilot hỗ trợ toàn bộ stack
References
Chưa có bình luận nào.