Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Technical Knowledge cho PM

Kiến Thức Cơ Bản Product Management Bài 8/60

Mở đầu — vì sao bài này quan trọng

Có một nỗi sợ rất phổ biến ở những người mới làm Product Manager (PM), đặc biệt là các bạn xuất thân từ marketing, kinh doanh hay thiết kế: "Mình không biết code thì làm sao quản lý được sản phẩm công nghệ?". Nỗi sợ này khiến nhiều bạn hoặc né tránh các cuộc họp kỹ thuật, gật đầu cho qua khi engineer giải thích, hoặc ngược lại — cố tỏ ra "rành tech" rồi đưa ra những yêu cầu phi thực tế.

Tin tốt là: PM không cần biết code để viết được phần mềm. Nhưng PM bắt buộc phải có đủ kiến thức kỹ thuật để làm ba việc cốt lõi — đúng như ý định gốc của bài này: giao tiếp hiệu quả với engineer (communicate effectively), đánh giá được tính khả thi của giải pháp (evaluate feasibility), và đưa ra quyết định đánh đổi có cơ sở (make informed trade-offs).

Hãy hình dung thế này: một PM giỏi không phải là người xây nhà, mà là người hiểu đủ về kết cấu, vật liệu và quy trình xây dựng để làm việc với kiến trúc sư và đội thợ. Bạn không cần trộn xi măng, nhưng nếu bạn không phân biệt nổi tường chịu lực với tường ngăn, bạn sẽ yêu cầu đập một bức tường mà cả ngôi nhà phụ thuộc vào nó. Trong sản phẩm số, "đập nhầm tường chịu lực" xảy ra mỗi ngày khi PM thiếu kiến thức kỹ thuật.

Bài này sẽ trang bị cho bạn một bản đồ kiến thức tech "vừa đủ" — không biến bạn thành lập trình viên, mà giúp bạn trở thành một đối tác đáng tin cậy của đội kỹ thuật.

Khái niệm cốt lõi

PM cần biết tech đến mức nào?

Câu trả lời ngắn gọn: đủ để đặt câu hỏi đúnghiểu câu trả lời. Bạn không cần viết được dòng code nào, nhưng bạn cần hiểu cái giá phải trả của từng quyết định. Ranh giới hợp lý là:

  • Cần hiểu sâu: kiến trúc tổng thể hệ thống, dữ liệu chảy đi đâu, đâu là phần "đắt" về công sức.
  • Cần hiểu khái niệm: API, database, frontend/backend, cloud, latency là gì và ảnh hưởng tới trải nghiệm người dùng ra sao.
  • Không cần biết: cú pháp cụ thể của ngôn ngữ, cách tối ưu từng dòng code, chi tiết triển khai bên trong.

Frontend, Backend và Database

Đây là ba lớp cơ bản của hầu hết ứng dụng:

  • Frontend (client): phần người dùng nhìn thấy và tương tác — giao diện app, website. Viết bằng những công nghệ như React, Flutter, Swift, Kotlin.
  • Backend (server): "bộ não" xử lý logic phía sau — tính toán, xác thực đăng nhập, áp dụng quy tắc nghiệp vụ. Người dùng không thấy trực tiếp.
  • Database: nơi lưu trữ dữ liệu — thông tin tài khoản, đơn hàng, lịch sử giao dịch.
Vì sao PM cần phân biệt? Vì khi bạn yêu cầu "đổi nút này từ xanh sang đỏ", đó thường là việc frontend nhanh gọn. Nhưng khi bạn yêu cầu "cho phép người dùng hoàn tiền một phần", đó là thay đổi backend chạm tới logic thanh toán và database — phức tạp gấp nhiều lần. Cùng một câu nói của bạn, chi phí kỹ thuật có thể chênh nhau hàng chục lần.

API — ngôn ngữ để các hệ thống nói chuyện

API (Application Programming Interface) là "hợp đồng" cho phép hai hệ thống trao đổi dữ liệu. Khi app Grab gọi tới Google Maps để lấy bản đồ, hay khi app của bạn gọi tới cổng thanh toán VNPay/MoMo, đều thông qua API.

PM cần hiểu API vì rất nhiều tính năng phụ thuộc vào bên thứ ba. Nếu bạn muốn tích hợp thanh toán MoMo, tốc độ và sự ổn định của tính năng đó phụ thuộc một phần vào API của MoMo — thứ nằm ngoài tầm kiểm soát của đội bạn. Hiểu điều này giúp bạn lên kế hoạch dự phòng và truyền đạt rủi ro cho sếp.

Latency, Performance và Scalability

  • Latency (độ trễ): thời gian từ lúc người dùng bấm tới lúc nhận được kết quả. Một giây chậm trễ ở màn hình thanh toán có thể khiến tỷ lệ bỏ giỏ hàng tăng vọt.
  • Scalability (khả năng mở rộng): hệ thống có chịu nổi khi lượng người dùng tăng đột biến không. Một hệ thống chạy mượt với 1.000 người có thể sập với 1 triệu người trong ngày sale.
PM phải hiểu rằng "chạy được trên máy của dev" và "chạy mượt cho 1 triệu người dùng" là hai bài toán hoàn toàn khác nhau về độ khó.

Technical Debt — nợ kỹ thuật

Đây là khái niệm quan trọng bậc nhất. Technical debt (nợ kỹ thuật) là cái giá phải trả về sau khi đội kỹ thuật chọn giải pháp nhanh, tạm bợ thay vì giải pháp đúng đắn để kịp deadline. Giống như vay nợ: bạn được lợi trước mắt (ra mắt nhanh), nhưng phải trả "lãi" sau này dưới dạng code khó sửa, bug nhiều, tính năng mới ngày càng chậm.

PM giỏi không xem nợ kỹ thuật là "việc của dev". Bạn cần biết khi nào nên vay (để bắt cơ hội thị trường) và khi nào phải trả nợ (dành sprint để dọn dẹp), vì nó ảnh hưởng trực tiếp tới tốc độ ra tính năng trong tương lai.

Tình huống thực tế

Tình huống 1: PM Tiki và cái nút "lọc sản phẩm" tưởng đơn giản

Một PM tại sàn thương mại điện tử (giả định dựa trên bối cảnh Tiki) nhận yêu cầu từ kinh doanh: "Thêm bộ lọc cho phép khách lọc sản phẩm theo 'còn hàng tại kho gần nhất'". Nghe có vẻ chỉ là thêm một checkbox ở frontend.

Khi PM ngồi xuống với tech lead, cô mới vỡ lẽ: hệ thống tồn kho được quản lý theo từng kho riêng lẻ, không có dữ liệu thời gian thực về "kho gần nhất tính theo vị trí khách". Để làm tính năng này, đội phải xây một dịch vụ tính khoảng cách địa lý, đồng bộ tồn kho real-time qua nhiều kho, và xử lý latency để không làm chậm trang danh sách vốn đã rất nặng.

Ước tính ban đầu của kinh doanh là "2 ngày". Thực tế là 6 tuần.

Bài học: Vì PM này có đủ kiến thức kỹ thuật để hỏi "dữ liệu tồn kho lấy từ đâu, cập nhật bao lâu một lần?", cô phát hiện vấn đề trước khi cam kết deadline với cấp trên. Cô đề xuất phương án giai đoạn 1 đơn giản hơn (chỉ lọc theo tỉnh/thành), giao trong 1 tuần, rồi mới làm bản đầy đủ. Đây chính là "evaluate feasibility" và "make informed trade-offs" trong thực tế.

Tình huống 2: Đội super app gọi xe và sự cố ngày khuyến mãi

Một PM tại nền tảng gọi xe Đông Nam Á (giả định kiểu Grab/Gojek) đẩy một chương trình flash sale: giảm 50% cho 100.000 chuyến đầu tiên lúc 12h trưa. Marketing tự tin bung ngân sách quảng cáo lớn.

Đúng 12h, lượng request tăng gấp 40 lần bình thường trong vòng vài phút. Hệ thống tính giá khuyến mãi gọi tới một dịch vụ backend chưa được thiết kế để chịu tải đột biến (chưa scalable). Kết quả: nhiều người dùng thấy báo lỗi, một số bị trừ tiền nhưng không đặt được xe, và mạng xã hội tràn ngập phàn nàn.

Điều tra ra mới thấy: trong cuộc họp lập kế hoạch, engineer nhắc tới rủi ro tải cao, nhưng dùng thuật ngữ kỹ thuật, và PM khi đó gật đầu cho qua vì không thực sự hiểu mức độ nghiêm trọng.

Bài học: Thiếu kiến thức về scalability và latency khiến PM bỏ lỡ một cảnh báo sống còn. Nếu PM hiểu khái niệm "tải đột biến" (traffic spike) và biết hỏi "với chiến dịch này, hệ thống chịu được bao nhiêu request/giây, và nếu vượt thì sao?", cả đội đã có thể chuẩn bị cơ chế xếp hàng (queue) hoặc giới hạn tốc độ. Giao tiếp kỹ thuật hiệu quả không phải để khoe chữ, mà để không bỏ sót rủi ro.

Tình huống 3: Startup fintech Việt và quyết định "nợ" có chủ đích

Một startup ví điện tử non trẻ cần ra mắt tính năng "chia hóa đơn" để kịp mùa lễ. Engineer trình bày hai phương án: làm "đúng bài" mất 8 tuần, hoặc làm bản tạm chỉ hỗ trợ chia đều (không chia theo số tiền tùy chỉnh) trong 2 tuần, đổi lại sẽ phát sinh nợ kỹ thuật phải dọn sau.

PM ở đây không né tránh khái niệm nợ kỹ thuật. Anh hỏi rõ: "Nếu ta chọn bản tạm, việc nâng cấp sau này có phải đập đi làm lại không, hay xây thêm được?". Engineer xác nhận có thể mở rộng dần. Vậy là PM quyết định chọn bản 2 tuần, ghi rõ khoản nợ này vào backlog, và cam kết dành một sprint trong quý sau để trả.

Tính năng kịp ra mắt mùa lễ, thu hút người dùng mới, và ba tháng sau đội trả nợ đúng hẹn.

Bài học: Hiểu nợ kỹ thuật giúp PM biến nó từ "kẻ thù mơ hồ" thành một công cụ chiến lược có kiểm soát. Vay nợ đúng lúc, ghi nhận minh bạch, và trả đúng hẹn — đó là dấu hiệu của một PM trưởng thành về tư duy kỹ thuật.

Hướng dẫn từng bước

Làm sao để nâng kiến thức kỹ thuật một cách có hệ thống? Đây là lộ trình thực tế:

Bước 1 — Vẽ được sơ đồ hệ thống sản phẩm của bạn. Hãy nhờ một engineer dành 30 phút vẽ cho bạn bức tranh tổng thể: frontend gì, backend gì, database nào, gọi những API bên thứ ba nào. Bạn không cần hiểu chi tiết, chỉ cần nắm "dữ liệu chảy từ đâu tới đâu". Đây là nền tảng để đánh giá mọi yêu cầu sau này.

Bước 2 — Học cách đặt câu hỏi kỹ thuật đúng. Thay vì hỏi "việc này khó không?", hãy hỏi những câu cụ thể: "Tính năng này chạm tới những phần nào của hệ thống?", "Phần nào tốn công nhất?", "Có phụ thuộc vào hệ thống/bên thứ ba nào không?", "Nếu lượng người dùng tăng 10 lần thì sao?".

Bước 3 — Luôn hỏi về đánh đổi (trade-off), không chỉ hỏi thời gian. Với mỗi yêu cầu, hãy chủ động hỏi: "Có cách làm nhanh hơn nhưng đơn giản hơn không, và ta mất gì khi chọn nó?". Câu hỏi này mở ra các phương án giai đoạn (phased approach) thay vì tư duy được-ăn-cả-ngã-về-không.

Bước 4 — Học bằng cách tham gia, không chỉ đọc sách. Ngồi dự các buổi technical design review (dù chưa hiểu hết), đọc các tài liệu thiết kế kỹ thuật của tính năng bạn phụ trách, ghi lại thuật ngữ lạ rồi hỏi lại sau buổi họp. Một engineer thân thiện là "gia sư" tốt nhất.

Bước 5 — Tự tay chạm vào công cụ. Thử tự gọi một API công khai bằng công cụ như Postman, xem cấu trúc dữ liệu trả về. Thử đọc một bảng dữ liệu đơn giản. Trải nghiệm trực tiếp giúp các khái niệm trừu tượng trở nên cụ thể hơn nhiều so với chỉ đọc lý thuyết.

Lỗi thường gặp & mẹo

Lỗi 1 — Giả vờ hiểu để giữ thể diện. Khi engineer dùng thuật ngữ lạ, nhiều PM gật đầu cho qua. Đây là sai lầm nguy hiểm nhất, vì nó che giấu rủi ro (như Tình huống 2). Mẹo: Hãy mạnh dạn nói "Mình chưa rõ chỗ này, bạn giải thích đơn giản giúp mình được không?". Engineer giỏi luôn tôn trọng PM dám hỏi hơn PM giả vờ biết.

Lỗi 2 — Tự ra quyết định kỹ thuật thay engineer. Có kiến thức tech một chút khiến vài PM lấn sân, áp đặt giải pháp ("dùng công nghệ X đi"). Vai trò của bạn là làm rõ vấn đề và mục tiêu, còn cách giải thuộc về kỹ thuật. Mẹo: Mang đến bài toán và ràng buộc, để engineer đề xuất giải pháp.

Lỗi 3 — Bỏ qua nợ kỹ thuật cho tới khi quá muộn. PM chỉ chăm chăm đẩy tính năng mới, không bao giờ cho phép dành thời gian dọn nợ. Hậu quả: vài quý sau, tốc độ ra tính năng chậm dần tới mức tê liệt. Mẹo: Coi việc trả nợ kỹ thuật là một phần của roadmap, dành một tỷ lệ ổn định (ví dụ 15–20% công suất mỗi sprint) cho việc này.

Lỗi 4 — Đánh đồng "frontend đổi nhanh" với "mọi thứ đều nhanh". Vì những thay đổi giao diện thường nhanh, PM dễ tưởng mọi yêu cầu đều rẻ. Mẹo: Luôn hỏi "việc này chạm tới backend hay database không?" trước khi cam kết deadline.

Mẹo vàng: Hãy xây dựng quan hệ thật tốt với một hoặc hai engineer mà bạn tin tưởng. Sự tin cậy hai chiều khiến họ sẵn sàng cảnh báo bạn sớm về rủi ro thay vì chỉ im lặng làm theo yêu cầu.

Bài tập thực hành

  • Vẽ sơ đồ hệ thống. Chọn một sản phẩm bạn dùng hàng ngày (ví dụ MoMo, Shopee). Vẽ tay sơ đồ đơn giản: đâu là frontend, backend, database, và đoán nó gọi những API bên thứ ba nào (bản đồ, thanh toán, SMS...). Sau đó, nếu có thể, nhờ một engineer góp ý xem bạn đoán đúng tới đâu.
  • Phân loại độ phức tạp. Với mỗi yêu cầu sau, hãy đoán nó chủ yếu chạm vào frontend, backend, hay database, và xếp loại "nhẹ / trung bình / nặng": (a) đổi màu nút "Mua ngay"; (b) thêm tính năng "đăng nhập bằng vân tay"; (c) cho phép người dùng xem lại lịch sử đơn hàng 2 năm trước. Giải thích lý do.
  • Luyện đặt câu hỏi. Viết ra 5 câu hỏi kỹ thuật bạn sẽ hỏi khi nhận yêu cầu "thêm tính năng gợi ý sản phẩm cá nhân hóa cho từng người dùng". Đối chiếu với các câu hỏi mẫu ở phần Hướng dẫn từng bước.
  • Tình huống nợ kỹ thuật. Giả sử bạn cần ra mắt tính năng kịp Tết, engineer đề xuất bản tạm có nợ kỹ thuật. Hãy viết một đoạn ngắn (3–4 câu) trình bày với sếp về quyết định của bạn: vay nợ hay không, vì sao, và kế hoạch trả nợ ra sao.

Tóm tắt

PM không cần biết code, nhưng cần kiến thức kỹ thuật "vừa đủ" để làm ba việc: giao tiếp hiệu quả với engineer, đánh giá tính khả thi của giải pháp, và ra quyết định đánh đổi có cơ sở. Hãy nắm vững các khái niệm nền tảng — frontend/backend/database, API, latency, scalability, và đặc biệt là technical debt (nợ kỹ thuật).

Sức mạnh thật sự của kiến thức kỹ thuật ở một PM không nằm ở việc tự giải bài toán kỹ thuật, mà ở việc đặt đúng câu hỏi, hiểu đúng câu trả lời, và nhìn ra rủi ro trước khi nó xảy ra. Như ba tình huống đã cho thấy: hiểu hệ thống giúp bạn không cam kết deadline phi thực tế, hiểu scalability giúp bạn không bỏ lỡ cảnh báo sống còn, và hiểu nợ kỹ thuật giúp bạn biến đánh đổi thành công cụ chiến lược.

Đừng sợ tech. Hãy tò mò về nó. Mỗi câu hỏi bạn dám đặt ra hôm nay là một bức tường chịu lực bạn tránh được việc đập nhầm vào ngày mai.