Minh họa cho Hiệu ứng Hệ thống thứ hai
Law #11 Kiến trúc

Hiệu ứng Hệ thống thứ hai

Second-System Effect

Phiên bản tiếp theo của một sản phẩm thành công rất dễ bị nhồi quá nhiều ý tưởng và trở nên cồng kềnh.

Nguồn tham khảo: Laws of Software Engineering

Tổng quan

Hiệu ứng hệ thống thứ hai xảy ra khi phiên bản kế tiếp của một hệ thống thành công bị nhồi quá nhiều tham vọng. Sau khi bản đầu chạy được nhờ ràng buộc, team dễ tự tin quá mức và đưa mọi thứ từng bị bỏ lại vào bản mới.

Ý chính

  • Bản đầu thường gọn vì thiếu thời gian, thiếu nguồn lực hoặc chưa biết đủ để phức tạp hóa.
  • Bản thứ hai dễ thành rewrite lớn, nhiều feature, nhiều cấu hình và nhiều abstraction.
  • Thành công ban đầu không đảm bảo team đã hiểu đủ để thiết kế hệ thống thay thế phức tạp hơn.

Ví dụ từ nguồn

Một startup có web service tối giản chạy tốt, rồi lên kế hoạch rewrite v2 bằng microservices, plugin system và config khổng lồ trước khi có nhu cầu thật.

Một công cụ nội bộ hữu ích có thể bị biến thành nền tảng tổng quát quá sớm và chậm hơn bản cũ ở các workflow cốt lõi.

Nguồn gốc

Fred Brooks đặt tên hiệu ứng này trong The Mythical Man-Month năm 1975, dựa trên quan sát các hệ thống IBM sau bản đầu thành công.

Lưu ý khi áp dụng

Khi làm v2, hãy giữ danh sách "không làm" rõ như danh sách feature; rewrite nên giải quyết pain point thật, không phải hiện thực mọi ước mơ cũ.

← Quay lại danh sách 56 luật