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"?
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte
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:
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:
fonte
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.
fonte
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.
fonte
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.
fonte