Nguồn: Laws of Software Engineering
Tóm tắt
“Laws of Software Engineering” là một bộ sưu tập các nguyên tắc và pattern định hình cách các hệ thống phần mềm, team, và các quyết định kỹ thuật vận hành, được biên soạn bởi Dr. Milan Milanović. Dự án này tổng hợp những “định luật” đã được kiểm chứng qua thực tiễn kỹ thuật phần mềm trong nhiều thập kỷ, từ các quy luật kinh điển đến những nguyên tắc hiện đại.
Các định luật được bao gồm có Conway’s Law (tổ chức hệ thống phản ánh cấu trúc giao tiếp của team tạo ra nó), Brooks’s Law (thêm người vào một dự án trễ hạn sẽ làm nó trễ hơn), YAGNI (You Aren’t Gonna Need It — không implement thứ chưa cần), và Hyrum’s Law (với số lượng user đủ lớn, mọi observable behavior của API đều sẽ bị phụ thuộc vào). Mỗi định luật kèm theo context, ví dụ thực tế và hàm ý thiết kế.
Đây là tài nguyên hữu ích cho kỹ sư muốn có vocabulary và framework để lý giải các quyết định thiết kế hệ thống. Nhiều trong số các “định luật” này bắt nguồn từ quan sát thực nghiệm hơn là lý thuyết, và thường xuyên được trích dẫn trong các cuộc thảo luận về software architecture, engineering management, và technical decision-making.