Module nóng, ấm, lạnh (Đầu tư spec theo nhiệt độ)

Đừng cố viết spec cho 100% codebase legacy. Chia code thành ba vùng theo tần suất thay đổi, rồi đầu tư spec/test theo mức độ.

VùngĐặc điểmĐầu tư
NóngĐổi mỗi sprintSpec đầy đủ + Characterization Test + AC test
ẤmVài tháng mới đổiSpec stub + test khi chuẩn bị đụng
LạnhLâu rồi không ai đụngĐể yên, trừ khi có lý do nghiệp vụ thật

Cách tìm module nóng

git log --since=6.months.ago --name-only | sort | uniq -c | sort -rn

File xuất hiện nhiều nhất trong 6 tháng gần đây là nơi nên bắt đầu.

Nguyên tắc “sống chung với phần chưa hoàn hảo”

Bạn không cần biến toàn bộ legacy thành kiến trúc đẹp. Chỉ cần mỗi lần đụng vào một module, để lại nó rõ hơn một chút so với lúc nhận. Ép Spec Coverage 100% cho toàn bộ legacy là “tốn sai chỗ”.

Khi nào dừng (brownfield)

Ba dấu hiệu “đủ”: (1) dev mới làm việc độc lập trong một module bất kỳ trong 1 tuần; (2) module nóng có spec coverage > 70%, mỗi UC quan trọng có AC test; (3) nghiệp vụ hỏi “có làm được không?” → Tech Lead trả lời trong 1 giờ thay vì 1 tuần.

Liên quan