Tôi đã tham gia một nhóm có cách tiếp cận khác với thiết kế từ tôi. Tôi tin vào cách tiếp cận của YAGNI để thiết kế. Ví dụ, nếu một phương thức (giao diện, lớp) không được sử dụng, nó phải được loại bỏ. Đó là nó.
Mọi người trong nhóm của tôi đang xây dựng một ứng dụng mô-đun và một trong các mô-đun được coi là "khung". Ứng dụng này là người dùng duy nhất của khung này và hiện tại không có kế hoạch nào để có nhiều khách hàng hơn. Tuy nhiên, các phần của mã trong khung này được viết và duy trì như thể nó có thể được sử dụng sau này và tính nhất quán và hoàn chỉnh sẽ chiến thắng YAGNI. Có những thứ trừu tượng ở những nơi có thể không bao giờ cần trừu tượng, v.v.
Tôi đã cố gắng tranh luận một vài điều, nhưng mỗi điểm cần rất nhiều thời gian để thuyết phục, nếu có, và tôi sợ rằng việc "đẩy" quá nhiều sẽ dẫn đến việc đội chia thành hai phe đối nghịch.
Tôi có thể "đi theo dòng chảy" và viết thêm mã mà không có bất kỳ vấn đề cá nhân nào. Bây giờ tôi sẽ mất nhiều thời gian hơn để viết mã, và rất có thể, nhiều thời gian hơn để duy trì, tuy nhiên , mỗi cuộc thảo luận để không làm gì thêm cũng làm mất thời gian và thêm áp lực.
Câu hỏi là, trong trường hợp có nhiều ý kiến khác nhau, điều gì sẽ làm một dịch vụ lớn hơn, mã không cần thiết nhưng "phù hợp", hoặc các đối số liên tục và động lực nhóm bị phá vỡ?