Product Management
Đăng nhập
ESC

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

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

Nợ kỹ thuật như một khoản vay — lãi suất, kỳ hạn và khi nào nên vay

Đã đọc 0/9 mục · còn khoảng 5 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Gọi đúng tên trước khi bàn chuyện trả

"Nợ kỹ thuật" bị dùng cho đủ thứ: code cũ, code xấu, thư viện lỗi thời, thứ kỹ sư không thích. Khi một từ chỉ mọi thứ, nó không giúp quyết định gì cả. Người làm sản phẩm nghe "nợ kỹ thuật" và hiểu là "kỹ sư muốn làm lại cho đẹp" — rồi xếp nó xuống cuối danh sách.

Định nghĩa hữu ích hơn: nợ kỹ thuật là một lối tắt hôm nay khiến những thay đổi sau này tốn hơn. Nó giống hệt một khoản vay. Bạn nhận được tốc độ ngay, và trả bằng công sức thêm về sau. Nhìn theo cách này, nợ không xấu cũng không tốt — nó là công cụ tài chính, và câu hỏi là vay có đáng không, lãi bao nhiêu, khi nào đến hạn.

Ba khái niệm mượn từ tài chính

Khái niệmTrong phần mềmĐo bằng gì
GốcCông sức để làm lại phần đó cho đúngTuần-kỹ sư một lần
LãiCông sức thêm mỗi lần phải chạm vào phần đó, cộng chi phí sự cố nó gây raTuần-kỹ sư mỗi quý
Kỳ hạnThời điểm buộc phải trả, dù muốn hay khôngNgày cụ thể hoặc ngưỡng tải
Ba con số này đủ để đặt một khoản nợ cạnh một tính năng và so sánh. Không có chúng, cuộc nói chuyện chỉ còn là cảm giác.

Không phải cái gì cũ cũng là nợ cần trả

Điểm hay bị bỏ qua nhất: lãi chỉ phát sinh khi bạn chạm vào. Một module viết xấu từ năm 2019 nhưng hai năm nay không ai sửa, không gây sự cố, có lãi gần bằng không. Trả gốc cho nó là bỏ tiền ra mua sự gọn gàng, không mua tốc độ.

Ngược lại, một phần code trông không quá tệ nhưng đội nào cũng phải sửa mỗi tháng có thể đang ngốn lãi rất lớn. Vì vậy câu hỏi đầu tiên không phải "code này xấu cỡ nào" mà là "bao lâu chúng ta phải chạm vào nó một lần, và mỗi lần tốn thêm bao nhiêu".

Tính lãi bằng số — phí giao hàng ở ChởNhanh

Ở ChởNhanh (giả định), công thức tính phí giao hàng đang nằm ở ba nơi: app đặt đơn của shop hiển thị phí, hệ thống tính phí xuất hoá đơn, và hệ thống đối soát COD trừ phí khỏi tiền thu hộ. Ba nơi do ba đội viết vào ba thời điểm.

Mỗi lần kinh doanh đổi bảng giá — thêm vùng, thêm phụ phí cao điểm, khuyến mãi cho shop lớn — phải sửa cả ba nơi và kiểm thử để ba con số khớp nhau. Hưng, Engineering Manager đội Điều phối, đo lại hai quý gần nhất:

Hạng mụcCon số
Số lần đổi giá mỗi quý8
Công sức mỗi lần nếu chỉ có một nơi tính phí1 tuần-kỹ sư
Công sức thực tế mỗi lần3 tuần-kỹ sư
Lãi mỗi lần2 tuần-kỹ sư
Lãi mỗi quý8 × 2 = 16 tuần-kỹ sư
Gốc: gom về một dịch vụ tính phí dùng chung10 tuần-kỹ sư
Mỗi quý ChởNhanh trả 16 tuần-kỹ sư, tức khoảng 192 triệu đồng, chỉ để giữ ba con số khớp nhau. Trả gốc 10 tuần-kỹ sư thì hoàn vốn trong chưa tới một quý. Chưa kể lãi ẩn: mỗi lần ba nơi lệch nhau, shop thấy một phí trên app và bị trừ một phí khác khi đối soát — đó là ticket chăm sóc khách hàng và niềm tin bị bào mòn.

Khi Mai mang bảng này vào cuộc họp ưu tiên, không ai còn hỏi "có đáng không".

Bốn kiểu khoản vay

Không phải khoản nợ nào cũng sinh ra giống nhau. Phân loại giúp bạn biết nên phản ứng thế nào:

KiểuĐặc điểmVí dụNên làm gì
Vay có chủ đíchBiết là lối tắt, chọn nó vì lý do rõ, có kế hoạch trảGắn cứng chương trình đồng giá dịp Tết để kịp ra mắtGhi vào sổ nợ, đặt hạn trả
Vay liềuBiết là lối tắt nhưng không tính lãi, không định trả"Cứ làm tạm, sau tính" mà không ai ghi lạiChặn từ quy trình, buộc ghi sổ
Nợ phát hiện sauThiết kế hợp lý lúc đó, nay nhu cầu đổiLõi cũ thiết kế cho 5.000 đơn/ngàyĐánh giá lãi, lên kế hoạch thay
Nợ do thiếu hiểu biếtĐội không biết có cách tốt hơnTự viết cơ chế xếp hàng thay vì dùng giải pháp có sẵnĐầu tư đào tạo, review thiết kế
Hai kiểu đầu là chuyện quyết định, hai kiểu sau là chuyện học. Người làm sản phẩm có ảnh hưởng lớn nhất ở kiểu thứ hai: phần lớn "vay liều" sinh ra vì áp lực hạn chót mà không ai hỏi giá.

Khi nào nên vay

Vay có chủ đích là hợp lý khi có đủ ba điều kiện:

  • Thời điểm có giá trị thật. Ra mắt trước dịp Tết, trước đối thủ, trước hạn hợp đồng với khách lớn. Không phải "sếp muốn sớm".
  • Lãi thấp hoặc ngắn hạn. Phần code đó ít bị chạm lại, hoặc sẽ bị thay trong vài tháng.
  • Có người, có ngày trả. Khoản vay được ghi vào sổ, có chủ sở hữu và có hạn.
Ví dụ ở ChởNhanh: chương trình "đồng giá dịp Tết" cho shop nhỏ. Làm đúng cách — đưa vào dịch vụ tính phí — mất 7 tuần-kỹ sư và trễ dịp Tết. Gắn cứng vào ba nơi mất 4 tuần-kỹ sư và kịp. Đội chọn vay: tiết kiệm 3 tuần-kỹ sư, ghi gốc phải trả là gỡ phần gắn cứng sau Tết (3 tuần-kỹ sư), hạn trả 31/3. Khoản vay này hợp lý vì dịp Tết là thời điểm có giá trị thật, và chương trình chỉ chạy hai tháng.

Sổ nợ — ghi như kế toán ghi

Khoản vay không được ghi thì sẽ không được trả. Một sổ nợ tối thiểu chỉ cần các cột sau:

CộtÝ nghĩa
Khoản nợMô tả một câu, nằm ở hệ thống nào
GốcTuần-kỹ sư để trả dứt
Lãi mỗi quýTuần-kỹ sư thêm và sự cố gây ra
Kỳ hạnNgày hoặc ngưỡng buộc phải trả, ghi "không có" nếu chưa có
Chủ sở hữuMột đội, không phải "mọi người"
Lần cập nhậtNgày đo lại lãi gần nhất
Sổ nợ không cần chính xác đến từng ngày. Cần đủ đúng để so sánh các khoản với nhau, và với tính năng.

Câu hỏi nên hỏi khi kỹ sư nói "cần trả nợ"

  • Mỗi quý chúng ta chạm vào phần này bao nhiêu lần?
  • Mỗi lần tốn thêm bao nhiêu so với nếu nó được làm đúng?
  • Nó gây ra bao nhiêu sự cố, mỗi sự cố tốn bao nhiêu?
  • Có ngày nào chúng ta buộc phải trả không — thư viện hết hỗ trợ, tải vượt ngưỡng, quy định mới?
  • Nếu không trả trong một năm, điều gì xảy ra?
Những câu này không phải để làm khó kỹ sư. Chúng giúp kỹ sư biến một nỗi lo thành một đề xuất có số, và đề xuất có số thắng trong phòng họp.

Làm ngay

Lấy câu trả lời bạn ghi ở bài 1 ("nếu chỉ được sửa một thứ"). Ngồi với người đã trả lời, điền cho khoản nợ đó đủ năm cột: gốc, lãi mỗi quý, kỳ hạn, chủ sở hữu, kiểu vay. Nếu không ước được lãi, đếm số lần đội phải chạm vào phần đó trong hai quý qua — đó là điểm bắt đầu. Rồi tìm thêm hai khoản nợ nữa để có một sổ nợ ba dòng.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi