Eu assumi a manutenção de um aplicativo Android e existem alguns problemas residuais que eu corrigi mais ou menos, mas ainda tenho problemas devido a diferentes versões do sistema operacional Android.
Por exemplo, o envio de uma solicitação da Web com a classe MediaPlayer possui cabeçalhos HTTP personalizados removidos pelo sistema operacional antes que a solicitação seja enviada, mas apenas no Android 4.X (eu testei exaustivamente) e isso faz com que esse recurso específico falhe porque depende nesses cabeçalhos.
Esse é um problema conhecido e estou tentando contorná-lo, mas seria uma boa ideia ter uma verificação condicional como
if (OS.VERSION == 4) {
knownIssueDialog(This feature will not work on your Android version... etc.");
}
Obviamente, teríamos isso observado em nosso canal de suporte, mas estou me perguntando se seria uma boa idéia (supondo que tudo seja monitorado) ter esses problemas conhecidos também incorporados no software e apresentá-los quando e onde necessário, como o que descrevi acima.
Continuamos recebendo várias críticas negativas e muitos e-mails de suporte com base nesses tipos de problemas; portanto, em minha mente, economizaria muito tempo e dor de cabeça ao bloquear um recurso em que se sabe que não funciona corretamente.
Eu vejo dois problemas em potencial:
- Os usuários provavelmente nunca viram algo como uma caixa de diálogo "problema conhecido" antes; muitos usuários simplesmente podem não entender o que isso significa.
- Há um pouco de sobrecarga de desenvolvimento - seria necessário manter o controle desses problemas em algum lugar do código. Felizmente, com anotações em Java, qualquer verificação condicional como essa pode ser precedida por
@KnownIssue
algo assim, tornando a localização / modificação muito simples.
Colocar prompts de 'problema conhecido' no software faria sentido?
Editar : vou acrescentar que esse é um problema que começou a ocorrer há cerca de uma semana. Eu corrigi o problema pela metade e é improvável que seja possível corrigi-lo para o 4.X porque é o sistema operacional que está causando o problema. Eu poderia lançar uma nova versão com a correção e deixar 50% da base de usuários satisfeitos novamente e avisar os outros 50% (usuários do 4.X) de que o problema persistirá no 4.X e sugerir uma atualização (ou algo assim) ) A questão é se deve ou não fazer isso no software (ou seja, mostrar uma caixa de diálogo para os usuários do 4.X) ou apenas permitir que eles enviem spam para suporte a e-mails dizendo "sua correção não funcionou !!!" e direcione-os para a página de suporte que discute o problema com mais detalhes.
fonte
Respostas:
Sim, isso é muito aceitável para alguns recursos mais obscuros, especialmente quando eles estão ocultos no menu de opções. Talvez seja melhor desativar os botões e adicionar um texto extra "esse recurso no XXX e abaixo" ou "esse recurso funciona ideal no XXX e acima" se funcionar apenas parcialmente.
Não, isso não é aceitável em uma função-chave que ocupa 75% da tela quando você inicia o aplicativo. Seus usos ficarão realmente irritados toda vez que virem o pop-up. É melhor você apenas ocultar o recurso, não há necessidade de cutucar seus usuários sobre algo que eles não podem consertar.
Seria diferente se seus usuários pudessem corrigi-lo facilmente, por exemplo, instalando um aplicativo adicional. Eu sempre vi mensagens como "Para usar esta opção, você precisa instalar o aplicativo de bússola (gratuito)" ou "Para usar esta opção, você precisa atualizar para o aplicativo profissional pago" etc.
O ponto principal é que você pode fazer isso, mas somente após uma análise cuidadosa e após a falha de outras soluções, não como um atalho rápido. Irritará seus usuários, mas isso pode ser uma troca aceitável que você faz.
(ps. Tenho a sensação de que esta pergunta deve ser enviada para o UX )
fonte
Várias críticas ruins + toneladas de e-mails de suporte == clientes insatisfeitos. Você vai fazê-los felizes por "falhar mais graciosamente" em determinadas condições? Talvez. No entanto, se eu fosse você, repensaria se lançava o software prematuramente e deveria ter corrigido alguns desses problemas antes que ele chegasse à frente do cliente.
Atualização: se este for um problema não corrigível devido ao ambiente, eu solicitaria a informação dos usuários (além de documentá-los e enviá-los por email). Isso funciona para um problema isolado como este, mas eu não o aconselharia como uma solução geral para qualquer "bug conhecido". Se houver muitos deles, você estará fazendo algo errado.
fonte
Se os recursos problemáticos estiverem disponíveis por meio de opções, botões ou algo semelhante, você poderá desativar ou ocultar esses elementos: Espero que isso seja menos frustrante para o usuário do que oferecer um recurso apenas para saber "não funciona". Se você sabe que não vai funcionar, não faça parecer que poderia.
fonte