Como você responde a: "Desde a atualização ..." perguntas dos clientes? [fechadas]

19

Desde a atualização, as pessoas continuam ligando e dizendo "Desde a atualização X, Y e Z são lentas, ruins e com falhas"

Isso acontece desde o início das atualizações.

O que as pessoas esperam? A gama vem depois da versão beta, e os testes gama sempre transformam nossos usuários em The Incredible Hulks ...

Talvez você nunca tenha ouvido isso de um cliente, talvez esteja na faculdade ou em um desenvolvedor de software livre que possa espalhar a culpa por mais de 5 ou 6 homens, talvez você teste seu código, talvez não esteja nessa situação interessante onde os clientes ligam para você solicitando a hora exata do dia, você estará lançando o patch de hoje (eu adoraria fazer isso com a Microsoft) ou talvez você seja um filho da puta como eu, que acabei de enviar um novo atualizar e foi para casa e está com medo de voltar ao trabalho amanhã.

Enfim, vocês são mais espertos do que eu. Como você critica o campo em "Você deve ser um programador ruim porque está piorando o seu software"?

Peter Turner
fonte
1
Isso sempre acontece para mim sempre que rolar um sprint para PROD
Gopi
1
Ter alguns perfis leves sempre ativos pode ajudar (como parte de uma estratégia maior). "Isso é engraçado; os dados mostram que a página está sendo gerada 5% mais rápido agora. Qual parte parece exatamente lenta? Talvez possamos fazer algo sobre isso ..."
1
A questão é realmente se X, Y e Z são realmente pior do que antes, ou se há algum outro fator fora do seu controle no trabalho.
Gerry
"Você deve ser um programador ruim porque está piorando o seu software"? ... po9ssibly ... em algumas áreas ... por engano .. no curso de torná-lo muito melhor nas seguintes áreas ...
Mawg diz que restabelece Monica 28/04

Respostas:

16

Se isso acontecer com você toda vez que você implantar, poderá haver uma falha grave no seu processo de desenvolvimento. Eu suspeitaria de algumas coisas que estão causando os problemas.

  1. Você desenvolve em um banco de dados do mesmo tamanho (aproximadamente) que a produção? Caso contrário, você sempre terá esses problemas, porque as consultas adequadas a conjuntos de dados pequenos geralmente são cães com grupos grandes.
  2. Você carrega teste no controle de qualidade? O que funciona bem com o teste de um usuário é muito diferente de como as coisas responderão com 1.000 usuários tentando fazer as coisas ao mesmo tempo.
  3. Você supõe que a percepção do usuário está errada e os trata como se fossem estúpidos por reclamar? Nesse caso, sua atitude está causando mais reclamações e não diminuindo-as.
  4. Você está fazendo um bom trabalho de teste? Os recursos de teste de regressão não foram alterados para ver se eles são afetados pela alteração? Você se importa com quanto tempo as coisas demoram até atingirem prod?
  5. Você presta atenção em quando é um bom momento para os usuários ao implantar ou implementa uma alteração alegre no sistema de contabilidade no dia em que a folha de pagamento é executada e se pergunta por que os usuários estão bravos com a desaceleração?
  6. Você tem diferenças ambientais entre dev e prod. Às vezes, essas diferenças traquinas nos sistemas operacionais ou nas versões do banco de dados causam problemas como esse também. Muitas vezes, é uma boa idéia ter um ambiente de teste que seja exatamente como prod, algum equipamento com o mesmo sistema operacional, o mesmo banco de dados com o mais próximo possível dos dados do prod. Isso é usado para testar sua implantação. Execute-o primeiro neste servidor e, em seguida, faça com que alguns usuários ou testadores acessem e executem alguns testes.
  7. Quão bom é o seu processo de implantação, você costuma perder etapas? Ele pode ser executado por alguém que não seja o desenvolvedor, porque está claro qual código entra na ramificação que você está implantando? Ficamos muito melhores na implantação de código quando conseguimos uma equipe de gerenciamento de configuração e ninguém tinha o direito de se sentar com o prod e cuidar dele, fazendo alterações "oopsie". Automatizar sua compilação pode ajudar tremendamente. Ninguém deve estar adivinhando o que precisa ser produzido, pois deveria ter sido o controle de qualidade e a preparação inicial e todos os problemas de esgotamento resolvidos. Mudanças no script do banco de dados também são fundamentais. Eles devem estar em scripts e no controle de código-fonte, para que o processo de criação possa buscá-los sem que alguém precise se lembrar, sim, precisamos alterar o comprimento na coluna B para 241 de 50 para 241.
HLGEM
fonte
Bons pontos: 1. Sim, 2. Às vezes, 3. Passe, 4. N / A, 5. Não, se pudermos ajudá-lo. Eu tenho uma pergunta para você, mas posso pensar e publicá-la mais tarde.
Peter Turner
6. Às vezes, mas esses são erros legítimos geralmente causados ​​por algo em uma atualização antiga não ter sido executado.
Peter Turner
7. Sim, isso é um grande problema - ninguém utiliza o makefile que escrevi, a menos que seja absolutamente necessário e essa seja a causa de 60% de nossos problemas. (PS Vou marcar este como certo, se você formatá-lo melhor)
Peter Turner
Esta é uma ótima resposta para "O que devo observar para impedir que uma liberação interrompa o UX?" mas não sei por que o @PeterTurner aceitou, pois isso não responde à pergunta real.
Lilienthal
13

Como você critica o campo em "Você deve ser um programador ruim porque está piorando o seu software"?

Mas essas críticas são justificadas principalmente. Um novo lançamento não deve ser pior que o anterior, mas, como sabemos, na realidade costuma ser, e é nossa culpa porque o fizemos.

Cometer erros é humano e não torna ninguém um "mau programador", por isso não leve as críticas pessoalmente (eu nunca levaria a sério nenhuma crítica profissional de um não colega). Agradeça ao cliente por relatar o problema e corrija-o o mais rápido possível. É seu trabalho como um bom programador.

Joonas Pulakka
fonte
9

Bem, no trabalho, não interagimos muito diretamente com os clientes, por isso terei de responder a este trabalho de projeto pessoal. Estou escrevendo um mecanismo de jogo que as pessoas podem usar para criar seus próprios jogos. Ainda está no pré-alfa, mas tenho alguns usuários interessados ​​e às vezes recebo bugs.

Quando recebo um relatório como este de um usuário, tento usar o toque pessoal. Não tive a intenção de introduzir bugs e quero que eles tenham uma boa experiência com meu mecanismo, então preciso fazê-los acreditar nisso. Primeiro, obtenha um identificador de mensagens instantâneas para que possamos conversar. Vou perguntar ao usuário sobre o projeto e tentar obter uma cópia dele. Isso facilita muito a reprodução. Pergunte a eles o que estavam fazendo quando ocorreu a falha. Enquanto isso, eu tenho o motor aberto no depurador e estou abordando o assunto enquanto estamos conversando.

Se é uma exceção, geralmente é bem simples. Reproduza o problema e o depurador o agarra e o leva diretamente ao local do erro com um rastreamento de pilha completo, e é óbvio o que está acontecendo. Se for um desempenho lento ou um comportamento incorreto, poderá demorar um pouco mais. Mas na maioria dos casos, posso ter uma correção pronta nos primeiros 20 minutos, no máximo. Eu fecho e envio a eles para testar. "OK, acho que entendi. Veja se isso funciona no seu fim?"

A resposta é quase universalmente uma mistura de espanto e gratidão, porque a maioria dos desenvolvedores (leia-se: empresas de software) simplesmente não corrige bugs e relança tão rápido. E então, se estiver realmente consertado, transformei um crítico em potencial em fã. É uma técnica muito boa; Eu só gostaria que mais desenvolvedores o adotassem.

Mason Wheeler
fonte
1
Sim, eles estão surpresos. Eu trabalho com muitas enfermeiras que acessam o fórum PHPBB e usam o emoticon 'Bang's head against the wall'; depois, acabo pensando que somos uma coisa boa depois que transferimos uma DLL ou executamos uma consulta SQL e seu sistema está funcionando novamente e eles nem precisaram sair do sistema.
Peter Turner
6

Pessoalmente, considero o problema positivamente. Eu interajo o tempo todo com muitos clientes e ainda codigo também.

Quando eles baixam um novo lançamento e me dizem algo assim, eu sempre digo algo assim:

Obrigado por me reportar esse bug. Talvez tenha sido introduzido em conjunto todos os novos recursos que adicionamos. Nós vamos consertar o mais rápido possível.

De fato, o cliente é seu verdadeiro chefe. Se a experiência com você é ruim, também é ruim para você.

Mesmo que ele não esteja certo, você como parte da empresa, deve aproveitar esta oportunidade para:

  • aprenda com ele, coletando possíveis melhorias que você pode fazer no produto.
  • converta um cliente insatisfeito em feliz, tão feliz que ele fala sobre você (incluindo seu chefe)
  • tenha orgulho do que você está fazendo

fonte
1
"converter do que um cliente insatisfeito em um cliente insatisfeito"? Eu não gostaria de fazer isso.
Lie Ryan
4

Detalhes, detalhes, detalhes. Pergunto o que eles estavam fazendo e quando, seja específico. Pode ser algo ou apenas o vídeo de Justin Beaber lançado no youtube. Os arquivos de log são seus amigos nos dois casos.

Também peço datas quando eles notaram. Às vezes, especialmente nas lojas corporativas, os usuários não sabem quando um lançamento é lançado, eles apenas sabem que algo leva muito tempo para ser concluído e agora estão reclamando disso.

Sombra do trabalho. Não posso enfatizar isso o suficiente. Se você tiver sorte o suficiente para ter usuários por perto, observe-os trabalhar de tempos em tempos. Costumo constatar que eles ignoram problemas flagrantes e nunca os denunciam. Muitas vezes, eles apenas reclamam quando sabem que algo é novo ou quando percebem um problema inicialmente.

Bill Leeper
fonte
3

A etapa 1 é que você deve pensar que isso (a atualização quebra outras coisas) não é normal. Sua atualização não deve interromper ou atrasar outras partes do aplicativo. Não está tudo bem, não é de se esperar, e não é culpa do usuário quando ele reclama. Você deve fazer o máximo de testes possível para tentar evitá-lo. Quando isso acontece, você tem um problema e é urgente.

O passo 2 é que você deve saber o que fez. Seu sistema de controle de origem pode ajudá-lo, ou algum tipo de sistema de rastreamento de trabalho, mas você deve poder dizer o minuto em que receber uma dessas reclamações "ok, adicionei uma coluna a esta tabela, alterei esta grade para calcular os novos impostos, adicionou esses dois novos relatórios ... "e assim por diante.

A Etapa 3 é que você deve ter experiência em encontrar problemas de desempenho e travar rapidamente, para saber que tipos de coisas provavelmente os causarão e pode chegar ao problema imediatamente. Essa coisa foi lançada e você deve encontrar o problema rapidamente e obter um patch. Alterar um relatório não pode diminuir a velocidade de uma parte do aplicativo que não usa o relatório. Agora você está no modo de emergência e precisa descobrir onde está o erro e o que fazer a respeito - sem interromper outra parte do aplicativo no processo.

O passo 4 é para cada uma dessas misérias, você deve aprender uma lição que testará na próxima vez. Você se tornará "aquele cara" que se opõe a certas construções porque "isso será horrível quando houver 10.000 registros".

Um pouco mais na frente "isso é normal". Eu executo (entre todas as outras coisas que temos em andamento) um projeto ágil para um cliente externo. Fazemos lançamentos aproximadamente a cada 6 semanas há dois ou três anos. E sim, o lançamento está agendado para o minuto. Acabamos de fazer uma às 8 da manhã de ontem. E aproximadamente a cada 4 ou 5 lançamentos (uma ou duas vezes por ano, em outras palavras), algo é interrompido ao vivo, e entramos em ação e o fazemos o mais rápido possível. Mesmo que testemos e testemos antes do lançamento. Então dizemos o que aconteceu. "Houve um pequeno bug na implantação de junho que deixou esse campo em branco, mas nunca percebemos porque não estávamos usando o valor naquele momento. Então, nessa implantação, quando começamos a usar o campo, os que estavam em branco eram mensagem de erro que você viu. corrigimos o bug para que não pudessem ficar em branco, colocamos valores nos registros incorretos e confirmamos que ele não explode mais. Nossas desculpas. "Ou" A mudança de emergência que você implorou, apenas dois dias antes do lançamento, teve consequências que não pensamos e não testamos. Lembra por que resistimos a mudanças de emergência? ”Talvez eu não seja um programador ruim por piorar a atualização, mas certamente fiz algo ruim. E preciso fazer o que é certo. Posso não ser um programador ruim por piorar a atualização, mas certamente fiz algo ruim. E eu preciso fazer isso direito. Posso não ser um programador ruim por piorar a atualização, mas certamente fiz algo ruim. E eu preciso fazer isso direito.

Kate Gregory
fonte
0

Apenas para cobrir outro aspecto:

Mantemos uma lista de clientes que reivindicam isso quando não foi o que aconteceu. Embora o software esteja com erros, muitas vezes com problemas, muitos de nossos clientes alegam que "começaram com a atualização" para obter atenção imediata, sem perceber que isso acaba desperdiçando o tempo de todos, pois percorreremos os deltas do recurso indicado para procurar o problema. Se o cliente está dizendo a verdade, isso tende a ser encontrado rapidamente. Se o cliente estiver na lista falsa muitas vezes, não nos incomodamos, pois não gostamos de perder tempo.

Não consigo imaginar que tipo de mentalidade é necessária para pensar que contar uma mentira aceleraria o processo. Essas pessoas são ou trabalham com médicos e devem saber muito bem o que acontece quando as pessoas mentem para os médicos. O mesmo princípio se aplica.

Joshua
fonte
1
Verdadeiro aspecto, exceto que eu acho que eles não mentem. Eles só acontecerá a notá-lo após a atualização (por qualquer razão psicológica), e depois saltar para conclusões - os usuários são realmente mestres quando se trata deste :-)
Martin Ba