Os patches são um mau sinal para o cliente? [fechadas]

14

No escritório, acabamos de sair de um longo período em que lançamos patches com muita frequência. Perto do final desse período, estávamos fazendo quase três patches por semana, em média.

Além disso, isso foi muito desmotivador para os desenvolvedores, e fiquei pensando o que o cliente pensaria sobre isso. Eu mesmo fiz a pergunta e concluí que nunca conhecia softwares atualizados com tanta frequência. No entanto, para o caso mais próximo, não me importo, pois os patches são rapidamente aplicados.

Os clientes que receberam esses patches diferem muito um do outro. Alguns estavam realmente esperando pelo patch, onde outros realmente não se importavam, mas todos receberam os mesmos patches. O tempo para atualizar o software dos clientes é inferior a 30 segundos; portanto, não espero problemas com o tempo. Eles precisam estar desconectados.

Portanto, minha pergunta com mais detalhes: as atualizações são frequentes, dando uma mensagem 'negativa' ao destinatário?

Claro, eu poderia perguntar aos clientes, mas não estou nessa posição nem quero 'Despertar os cães adormecidos'.

PS: Se houver algo que eu possa fazer para melhorar minha pergunta, deixe um comentário.

Mixxifóide
fonte
@ downvoter, gostaria de explicar?
Mixxiphoid
6
Se você está preocupado com a percepção do cliente, talvez os descreva como "atualizações" em vez de "patches"? :)
Chris Taylor
Embora essa não seja uma resposta direta, se você puder manter a implantação de patches o mais intrusiva e automática possível (por exemplo, baixar atualizações em segundo plano, ter um serviço de atualização em execução para ser aplicado enquanto ocioso), poderá reduzir a ansiedade do usuário final, não tornando as atualizações óbvias. Por exemplo: quantas atualizações do Google Chrome você recebeu no mês passado ou mais? (Resposta: lotes ) Eles poderiam liberar 5 patches para o Chrome por dia e ninguém levantaria uma sobrancelha. As atualizações automáticas do Windows (quando ativadas) são outro exemplo.
Jason C #
"O tempo para atualizar o software dos clientes é inferior a 30 segundos, por isso não espero problemas com o tempo. Eles precisam ser desconectados." E o cliente que está testando o patch? Não sei com que tipo de software você está trabalhando, mas se for algo de missão crítica para alguém, eles desejam testar uma atualização antes de colocá-la em prática em um ambiente de produção. Embora a instalação do patch possa ser rápida e fácil, esse teste levará muito tempo e esforço por parte do cliente.
a CVn
@ MichaelKjörling O problema é que, nesse período, os recursos críticos da missão falharam, por isso realmente não importava se o ambiente de produção ou o ambiente de teste era atualizado primeiro. Só precisava trabalhar o mais rápido possível.
Mixxiphoid

Respostas:

24

Como muitas coisas na computação, isso depende. Se os patches forem uma resposta às solicitações dos clientes por novos recursos ou melhorias, sua empresa será vista como responsiva. Se, por outro lado, seus patches forem uma resposta a relatórios de erros, sua empresa será vista como incompetente.

insira a descrição da imagem aqui

Testar software em seus clientes é de longe a maneira mais cara possível de detectar bugs, independentemente do que alguém diga. É uma economia falsa; o trabalho livre que você acha que está recebendo é mais do que compensado pelo esforço de atendimento ao cliente, interrompendo o ciclo de vida de desenvolvimento de software e perdendo a confiança do cliente.

Robert Harvey
fonte
3
Talvez essa deva ser uma pergunta diferente, mas de qualquer maneira: sabíamos que estávamos testando por meio de nossos clientes, mas não conseguimos impedir isso naquele momento, ficamos presos em um ciclo. O que poderíamos fazer para sair?
Mixxiphoid
3
Robert, eu já vi esse diagrama muitas vezes antes. Provavelmente estava correto quando o desenvolvimento de software seguiu um modelo puro de cascata, mas como o software pode ser desenvolvido e implantado em pequenos ciclos, ele se torna cada vez mais errado. Para ser preciso - para uma pequena quantidade de bugs e software, a tendência ainda é verdadeira, pois muitos bugs estão definitivamente errados.
Doc Brown
2
@ DocBrown: O gráfico ainda está correto. Ciclos de desenvolvimento mais curtos significam menos custo por ciclo, o que é consistente com o gráfico. Mas isso ainda não significa que você deve testar seu software com alfa, a menos que exista um entendimento e um acordo claros de que isso faz parte do processo.
Robert Harvey
Bem, o custo dos defeitos diminui quanto mais cedo o bug é encontrado e corrigido. E a chance de encontrar um erro aumenta drasticamente quanto mais cedo você sai do seu software. Isso não significa que se deva empurrar software não testado para a produção, é claro. Eu recomendo, por exemplo, este artigo agileelements.wordpress.com/2008/04/22/cost-of-software-defects
Doc Brown
1
Só é preciso um pouco de auto-reflexão para ver que o princípio em si é sólido, mesmo que os números ou a forma da curva sejam apenas palpites. Nós até temos um nome para ele na linguagem de programação: Fail Fast.
Robert Harvey
10

Sinto que o lançamento de vários patches nas proximidades reflete mal a empresa. Sempre me faz sentir que eles não testaram com bastante antecedência, que os desenvolvedores são incompetentes ou que a gerência não tem ideia do que está fazendo.

Dito isso, o outro lado do token é que a liberação de vários patches próximos um do outro mostra que a empresa está adotando uma abordagem proativa do produto e continua aprimorando o produto para o consumidor.

Estou mais inclinado a achar que o primeiro é o modo como a maioria encarará do ponto de vista do consumidor, mas falar diretamente com ele será (obviamente) a melhor escolha, mas também levantará a questão na base de clientes que eles podem não tinha conhecimento inicialmente.

Jack
fonte
Portanto, devemos tentar corrigir apenas os clientes que realmente precisam e os outros em um momento posterior em "massa" para melhorar nossa imagem?
Mixxiphoid # 03:
5
A aplicação de patches para clientes individuais parece um problema, principalmente se houver uma grande base de clientes. A implantação de patches em um cronograma regular (mensal, bimensal etc.) e a promoção dos patches para os clientes pode ser uma boa maneira de despertar interesse no "futuro próximo" do seu produto, bem como resolver os problemas que estão sendo resolvidos. Obviamente, documentação e notificação adequadas são cruciais para se comunicar com o usuário final com as notas de correção.
Jack
Isso realmente esclarece muito para mim. Parece que deveríamos nos esforçar ao usar nossos patches para melhorar nossa imagem. Até agora eu estava convencido de que isso não era possível. Sempre vi as manchas como um mal necessário.
Mixxifhoid
depende de quando no ciclo de lançamento também. Se os patches estiverem próximos nos primeiros dias após o lançamento, isso dá uma impressão diferente de quando eles ainda estão juntos vários meses depois.
21134 jjenting
7

Mais e mais empresas seguem os passos do Chrome e têm lançamentos de clientes cada vez mais frequentes.

O pré-requisito para implementar ciclos de liberação curtos é uma atualização simples - no Chrome, por exemplo, a atualização é feita sem a intervenção do usuário na inicialização do aplicativo e, se o usuário mantiver seu aplicativo sempre ativo, ele receberá um sinalizador menor aconselhando-o a reiniciar o aplicativo no momento oportuno, e o aplicativo se esforça para devolvê-lo ao estado anterior após o reinício.

Esse método deixa o cliente satisfeito, pois ele não precisa estar ciente de todas as atualizações e, como os lançamentos de recursos ocorrem com frequência, os lançamentos de correções de bugs serão igualmente bem-vindos.

Se, por outro lado, os patches vierem após bugs gritantes, e eles vêm em grupos, já que os anteriores não conseguiram corrigir o erro ou criaram um bug maior - tenha certeza de que seus clientes sentirão o cheiro. Definitivamente, isso refletirá mal na reputação profissional do fornecedor e diminuirá os padrões de software percebidos pelo fornecedor. A entrega contínua depende muito de testes de unidade eficazes e testes de integração para garantir seu sucesso.

Sobre o assunto de não conversar com seus clientes para 'deixar os cachorros dormirem', acredito que essa é uma estratégia errada - os clientes não são cegos e não são tolos. Acredito que uma boa comunicação com seus clientes possa apenas garantir que eles são sua prioridade e que você é receptivo às críticas deles. Se você fez lançamentos ruins algumas vezes e não os ouviu reclamar - você definitivamente deveria estar preocupado - não é que eles não tenham notado, é mais provável que estejam ocupados em encontrar um substituto para você ...

Uri Agassi
fonte
2
+1, como cliente frequente de software, quero os caras com atualizações frequentes e boas maneiras de implantá-los. Os produtos que estagnam são a verdadeira bandeira vermelha aqui - no mínimo, significa que o fornecedor não está investindo no produto. Ou investindo no vNEXT pelo qual eles desejam que você pague novamente.
Wyatt Barnett
O que entendi no seu último parágrafo é que devemos sempre ser honestos e transparentes em nossa comunicação com o cliente. Existem situações em que ainda não devemos informar o cliente sobre certas coisas?
Mixxiphoid
1
Obviamente, ser honesto com o cliente não significa deixar a linha aberta enquanto você convoca uma reunião de pânico para mitigar um desastre recém-descoberto. Você deve comunicar as informações após avaliar a situação, ter uma estratégia para corrigi-las e dizer honestamente que tudo está sob controle. Você pode encontrar-se embelezando a verdade, mas por pura mentira tem uma maneira de te assombrando mais tarde ...
Uri Agassi
2

Patches especificamente para clientes que detectaram um problema obviamente precisarão ser lançados o mais rápido possível.

Eu já vi softwares de grandes empresas adotando a abordagem de que outros clientes receberão esses patches como service pack em intervalos regulares programados. Normalmente, porque os patches exigem algum esforço para instalar e testar no ambiente do cliente, mas, no seu caso, ele pode ser usado apenas para diminuir o possível impacto do efeito com o qual você está preocupado.

Também vi pessoas advogando a colocação de patches em repositórios ou em sites em que os clientes podem baixar e instalar os que desejam. Isso pode criar problemas para saber quais patches os clientes têm; portanto, quando eles ligam com um problema, é necessário determinar exatamente qual código eles estão executando, mas com cuidado que pode ser rastreado. Em seguida, você pode forçar as pessoas a atualizar para um dos 'pacotes' maiores quando for lançado um pacote que inclua muitos patches.

A exceção são os patches de segurança. Sabe-se que uma grande empresa de software com sede em Washington entra em água quente aguardando a terceira quinta-feira do mês antes de liberar correções críticas de segurança e informações sobre o hack vazaram e forçaram suas mãos cedo a um constrangimento ainda maior.

O Google chrome soluciona o problema atualizando automaticamente com muita frequência; eles também exigem que você alterne o programa (reinicie o chrome ou saia do seu caso). Eles agora adotaram essa prática normal para navegadores e as pessoas nem sequer pensam nisso. Mas nem todo mundo pode ser o Google.

Os aplicativos SaaS resolvem o problema fazendo as atualizações em segundo plano.

No entanto, acima de tudo, a menos que você esteja fazendo integração ou atualização contínua com novos recursos solicitados pelo usuário com muita frequência, acho que ainda estamos em um momento em que as pessoas esperam que você tenha feito uma quantidade razoável de testes antes do lançamento. Se você ficaria envergonhado de conhecer seus clientes e falar sobre a frequência das correções de bugs, provavelmente você não está fazendo testes suficientes. Você liberou o risco que estava correndo antes de liberar o código. Há um argumento para liberar códigos de bugs muito cedo, desde que você saiba o que é, mas acho que você precisa entender bem sua qualidade conhecida, o que significa entender e manter sob controle seu tempo para conhecer a qualidade.

Encaitar
fonte
+1, esse é o ponto principal - quanto mais rápido você corrigir um bug (e implantar), melhor - desde que o usuário / cliente não tenha nenhum esforço adicional com a implantação. Quando o cliente precisar implantar manualmente, ou as atualizações interromperem seu fluxo de trabalho, é importante encontrar a frequência certa para implantações. Sites como o Facebook implantam várias correções por dia e a maioria das pessoas nem percebe.
Doc Brown
então acho que temos sorte nessa parte. Nossas atualizações nos custam (além do estresse e da codificação e tudo) apenas 1 ou 2 horas. Custa ao cliente 1 minuto para voltar ao trabalho. Examinarei a abordagem do 'service pack'; isso pode ser útil para aqueles que não precisam do patch diretamente.
Mixxiphoid
Encontrei esta referência para o Facebook: blogs.wsj.com/cio/2013/04/17/… , então parece haver dois lançamentos, não vários, por dia. Ainda impressionante, eu acho.
Doc Brown
Eu 'ouvi' esse código push da Amazon a cada 17 segundos. Mas estou colocando isso em um comentário, porque não consigo me lembrar de quem me disse e o google não mostra. :-)
Encaitar
@ Encaitar: Certo, a arquitetura da Amazon possui centenas de serviços em interação. Portanto, não fico surpreso se eles enviam algo com muita frequência, mas duvido muito que cada envio afete diretamente mais de um componente. O que você vê como um único site não tem necessariamente uma versão geral. É mais como dizer que a rede rodoviária da cidade é atualizada a cada 17 segundos porque suas tripulações pintar um total de 5 mil novas linhas por dia :-)
Steve Jessop