Câu trả lời:
Theo kinh nghiệm của tôi, đó là vì tính năng phình to là nguyên nhân gốc rễ của các vấn đề chứ không phải là vấn đề trực tiếp mà nó hữu ích khi nghĩ về nó một cách riêng biệt.
Ngoài các vấn đề tiềm ẩn cho người dùng cuối được liệt kê trong câu hỏi ban đầu, tính năng phình to có thể có chi phí bảo trì đáng kể. Khi thêm một tính năng mới, điều quan trọng không chỉ là xem xét chi phí phát triển tính năng đó mà còn duy trì tính năng đó trong suốt vòng đời của sản phẩm. Nguyên tắc cơ bản được trích dẫn là thời gian dành cho một tính năng là 20% phát triển và 80% bảo trì, nhưng trong thế giới thực, nó thay đổi rất nhiều tùy thuộc vào độ phức tạp của tính năng và mức độ tương tác với các tính năng khác.
Có hai ý nghĩa của việc này:
Đầu tiên không phải là về những thiếu sót kỹ thuật, đó là về trải nghiệm người dùng. Các tính năng không cần thiết khiến người dùng khó tìm ra ứng dụng hơn. Người dùng sẽ nhận thấy ứng dụng quá phức tạp và sẽ không biết cách thực hiện các công cụ cơ bản.
Thứ hai là việc có quá nhiều tính năng hiếm khi được sử dụng làm cho phần mềm trở nên cồng kềnh về bộ nhớ và dung lượng đĩa. Đó là lý do tại sao trong rất nhiều ứng dụng bạn có plugin thay thế, chỉ có thể được cài đặt khi bạn thực sự có ý định sử dụng chúng.
Một thuật ngữ rất giống là "tính năng creep". Câu trả lời của vartec là một lời giải thích tốt hơn về "tính năng phình to" nhưng bạn cũng nên biết "tính năng creep" nghĩa là gì.
Về cơ bản, khi một dự án phát triển, thường có xu hướng thêm nhiều tính năng được thêm vào dự án. Điều này trở thành một vấn đề lập kế hoạch nghiêm trọng, vì không thể hoàn thành một dự án luôn thay đổi và gia tăng phạm vi.
Trong đó "tính năng phình to" liên quan đến vấn đề trải nghiệm người dùng nhiều hơn, "tính năng leo" là vấn đề lập lịch nhiều hơn.
Tôi nghĩ phần mềm phình to và tính năng phình to là hai thứ khác nhau.
Một tính năng cụ thể có thể được triển khai với ít mã hơn, vì vậy đó không phải là tính năng mà là phần mềm là nguyên nhân gốc rễ. Các nhà phát triển cần được nhắc nhở liên tục để không thêm các tính năng không được yêu cầu.
Thật hấp dẫn khi nhảy qua tất cả số lượng yêu cầu của người dùng. Chắc chắn họ có thể yêu cầu quá nhiều so với các tài nguyên phát triển có sẵn, nhưng các lập trình viên thường thêm các tính năng của riêng họ. Các nhà phát triển có xu hướng mang bazooka đến săn muỗi.