Trong trường hợp cụ thể này, đó là một lỗi trong API của thư viện được sử dụng nội bộ mà các nhà phát triển khác sử dụng.
Nếu những nhà phát triển khác nghĩ rằng hành vi đó là một tính năng, có khả năng họ đã sử dụng nó và đã xây dựng phần mềm hoạt động dựa trên nó. Sửa lỗi có thể sẽ phá vỡ mã hiện tại của họ và họ sẽ đổ lỗi cho bạn vì điều này. Điều này làm cho việc sửa lỗi trở thành một sự đánh đổi và bạn phải xem xét
ví dụ, việc sửa lỗi có thực sự quan trọng không, vì có nguy cơ cao cho phép người dùng API của bạn gặp sự cố với ứng dụng của họ trong trường hợp lỗi không được sửa? Hay đây chỉ là về tính nhất quán của API?
hoặc điều quan trọng hơn là giữ cho phần mềm hiện có ổn định và thư viện của bạn tương thích ngược?
Câu trả lời cho câu hỏi không phải lúc nào cũng đơn giản, bạn phải tính đến số lượng người dùng API có thể có của bạn, số lượng công việc tiềm năng họ sẽ phải thay đổi phần mềm của họ, số lượng phần mềm sẽ bị hỏng nếu bạn thay đổi API , nhưng cũng có những rủi ro về những gì có thể xảy ra nếu bạn không sửa API.
Chỉ vì bạn ghi lại sự thay đổi lỗi trong "danh sách các thay đổi vi phạm trong bản phát hành chính tiếp theo" không làm cho khách hàng của bạn hài lòng - nếu bạn làm điều này, nên có ít nhất một số bằng chứng lý do tại sao bạn không thể để API như nó là trước đây. Thường thì việc giữ khả năng tương thích ngược là quan trọng hơn sửa lỗi. Vì vậy, hãy khắc phục chỉ khi bạn có thể ước tính tác động đến cơ sở người dùng và phần mềm của họ và bạn chắc chắn rằng bạn sẽ không tạo ra những nỗ lực vô lý cho họ khi họ cố gắng cập nhật lên bản phát hành thư viện mới nhất của bạn. Và nếu bạn không có đủ thông tin để ước tính tốt về điều này, có lẽ tốt hơn là không thay đổi hành vi.
(Và vâng, nếu bạn định thực hiện thay đổi API không tương thích ngược, số phiên bản của bạn phải thể hiện rõ điều này, không quan trọng bạn có đặt tên đó là "lỗi" hay không).