Se você ler o blog de Seth Godins ( http://sethgodin.typepad.com/ ), verá a mesma mensagem passando repetidamente:
- Envie algo (e ouça o feedback)
- Não tente agradar a todas as pessoas o tempo todo.
Eu tive um problema semelhante a você com um produto que eu vendo. Eu tive todos os tipos de solicitações para todos os tipos de recursos. O aplicativo tornou-se mais complexo do que eu realmente queria. Cada opção adiciona complexidade, algo que eu queria evitar. E agora tenho mais complexidade do que gostaria.
Fazer isso agrada mais usuários. E afasta os usuários que acham muito difícil de configurar.
Ter uma configuração simples / avançada é uma saída. Até certo ponto. No entanto, torna seu desenvolvimento mais complexo.
Em todos os casos em que recebo uma solicitação, sempre respondo educadamente. Às vezes vou recusar completamente, embora isso seja raro. E onde faço isso, explico por que, geralmente, seria em resposta a uma solicitação que exigiria que toda a interface do usuário fosse renovada, uma tarefa tão maciça que simplesmente não irei lá. Nesse caso, explico minhas razões, mas agradeço ao usuário pela solicitação.
Em TODOS os casos, incluindo aqueles que rejeito imediatamente, eu os registro no banco de dados de recursos e defeitos para consideração na próxima versão. Isso permite um pouco mais de tempo para pensar em tudo, e talvez venha mais tarde com uma alternativa que não é exatamente o que foi solicitado, mas pode agregar algum valor.
Se uma solicitação de recurso tiver sido considerada, anotada e uma decisão finalmente (no momento do desenvolvimento) for tomada para matá-la, eu a encerro. Caso contrário, eles ficam abertos para reconsideração mais tarde.
Essa não é uma abordagem perfeita, mas no final, como autor do software, você tem certos princípios de design que você precisa seguir ou abandonar. A escolha de cada abordagem deve ser cuidadosamente considerada.