Alguém da minha empresa propôs recentemente mudanças em nosso produto principal que nossos gerentes acham que devem acionar o que eu acho que minha empresa considera um ciclo completo de controle de qualidade (por exemplo, testar todo o conjunto de produtos desde o início). Aparentemente, nosso controle de qualidade leva 12 semanas para fazer um ciclo completo de controle de qualidade de nosso produto. Meu problema com isso é que estamos tentando fazer o desenvolvimento Agile (embora na maioria das vezes seja meio idiota). Faremos todo um conjunto de sprints e, em seguida, faremos um lançamento, que o controle de qualidade levará uma eternidade para concluir, eu acho. A questão é realmente: se nosso controle de qualidade demorar 12 semanas para fazer o trabalho deles, não deveríamos desistir de tentar fazer o Agile? Qual é o sentido de tentar fazer o Agile em uma situação como essa?
24
Respostas:
Bem, a resposta direta à sua pergunta seria Mu receio - não há detalhes suficientes para fazer um palpite informado se você deve ou não parar de tentar.
A única coisa de que estou bastante positivo é que o nível de agilidade deve ser impulsionado pelas necessidades do cliente / mercado (sobre as quais você não deu informações).
Por outro lado, posso facilmente imaginar, digamos, que uma empresa de trading financeiro vá à falência se levar mais de um mês para que seu software se adapte às mudanças do mercado - o ciclo de teste de 12 semanas nesse caso seria um caminho para o inferno. Agora - quais são as necessidades do seu produto nesse sentido?
Outra coisa a considerar é que nível de qualidade é necessário para atender às necessidades de seus clientes / mercado?
E sim, eles pareciam ser ágeis e lançaram essa atualização em um mês (se o ciclo de controle de qualidade for de 12 semanas, é provável que eles tenham pulado). E nosso recurso funcionou perfeitamente bem - acho que deveríamos ter sido perfeitamente felizes? não! descobrimos um bug de regressão de impedimento em algumas funcionalidades que funcionavam muito bem antes - então tivemos que ficar com a versão mais antiga.
Outro mês se passou - eles lançaram outra nova versão: nosso recursoestava lá, mas o mesmo erro de regressão também estava lá: novamente, não atualizamos. E mais um mês e outro.
No final, conseguimos atualizar apenas meio ano depois tanto pela agilidade deles.
Agora, vamos olhar um pouco mais de perto nessas 12 semanas que você mencionou.
Que opções você considerou para reduzir o ciclo do controle de qualidade? como você pode ver no exemplo acima, simplesmente ignorá-lo pode não dar o que você espera, então é melhor você ser bem ágil e considerar maneiras diferentes de resolvê-lo.
Por exemplo, você considerou maneiras de melhorar a testabilidade do seu produto?
Ou você considerou a solução de força bruta apenas contratar mais controle de qualidade? Por mais simples que pareça, em alguns casos, esse é realmente o caminho a percorrer. Vi o gerenciamento inexperiente tentando corrigir problemas de qualidade do produto contratando cegamente mais e mais desenvolvedores seniores, onde apenas um par de testadores profissionais médios seria suficiente. Muito patético.
O último, mas não o menos importante - acho que devemos ser ágeis quanto à aplicação de princípios ágeis. Quero dizer, se os requisitos do projeto não são ágeis (estáveis ou mudam lentamente), por que se preocupar? Certa vez, observei a alta gerência forçando o Scrum em projetos que estavam indo perfeitamente bem sem. Que desperdício foi. Não apenas não houve melhorias na entrega, mas, pior ainda, desenvolvedores e testadores ficaram infelizes.
atualização com base nos esclarecimentos fornecidos nos comentários
Liberação Shippable eu vejo. Hum. Hummm. Considere adicionar uma ou duas doses de Lean em seu cocktail Agile. Quero dizer, se essa não é uma necessidade do cliente / mercado, isso significaria apenas um desperdício de recursos (de teste).
Eu, por um lado, não vejo nada de criminoso ao tratar a liberação final da Sprint como apenas um ponto de verificação que satisfaz a equipe.
Você acertou exatamente. Também pelo que você descreve, parece que você chegou ao estado (maturidade da equipe / gerenciamento e relacionamento com o cliente), permitindo o uso regular de desenvolvimento de modelo iterativo em vez do Scrum. Nesse caso, talvez você também esteja interessado em saber que, de acordo com minha experiência em casos como esse iterativo regular, pareceu mais produtivo que o Scrum. Muito mais produtivo - não era simplesmente tão muito menos sobrecarga, era simplesmente muito mais fácil de se concentrar no desenvolvimento (para QA, respectivamente, se concentrar em testes).
Ao dirigir em uma rodovia (e seu projeto parece ter atingido essa rodovia ), a Ferrari vence a Landrover.
É o off-road onde você precisa de jipe e não de carro esportivo - quero dizer, se seus requisitos são irregulares e / ou se o trabalho em equipe e a experiência de gerenciamento não são tão bons, você terá que escolher o Scrum - simplesmente porque tentar ir com regularidade preso - como a Ferrari vai ficar fora de estrada.
Acima parece um bom plano. Eu trabalhei nesse projeto uma vez. Enviamos lançamentos mensais com atualizações localizadas em pequenos componentes de baixo risco e a aprovação do controle de qualidade era a mais fácil possível.
É uma dor de cabeça do testador garantir que mudanças inesperadas não passem - porque, francamente, como desenvolvedor, tenho outras coisas suficientes para me preocupar, o que é mais importante para mim. E por isso eles (testadores) realmente precisam de provas sólidas de que as coisas estão sob controle com a liberação que testam para enviar.
fonte
Oh, sinto sua dor. Há algumas mudanças sérias que você precisa fazer na equipe de controle de qualidade para que isso funcione.
Meu conselho é dividir a equipe em três equipes:
Teste de recursos - Rápida recuperação dos novos desenvolvimentos.
Teste de regressão - Teste totalmente o produto antes de sair pela porta. Isso não deve levar três meses, mesmo depois de reduzir o tamanho da equipe, porque a maioria dos erros será encontrada pela primeira equipe.
Teste automatizado - Escrevendo um conjunto completo de testes de regressão para acelerar o trabalho da equipe de testes de regressão.
A terceira equipe é um bônus, mas se você não pode ter as duas primeiras equipes, também pode ser uma cachoeira.
fonte
A título ilustrativo:
Observe que sua equipe de controle de qualidade provavelmente está trabalhando fora do círculo (ATDD) e você está trabalhando dentro.
Eu acho que é bom trabalhar dessa maneira; se você puder provar em seus testes automatizados que está cumprindo os requisitos do cliente em cada sprint, poderá permitir que o controle de qualidade realize seus testes à vontade e encontrar defeitos, que poderão ser trabalhados no próximo sprint.
fonte
Parece que você tem um problema de "Definição de Concluído".
Como o seu grupo de controle de qualidade é externo e está envolvido apenas em lançamentos de clientes, você não pode confiar neles para obter feedback oportuno sobre os problemas. Isso significa que, se você quiser um feedback rápido, precisará trazer algum grau de teste "internamente" para a equipe.
Trate o grupo de controle de qualidade como se eles não existissem. A ação é se sua liberação no final do sprint será implantada no seu ambiente mais crítico no dia seguinte. O software não é feito até que esteja pronto para ir para os clientes.
O controle de qualidade não deve encontrar nada.
Isso será mais difícil de alcançar. Você provavelmente terá algumas coisas que esgueiram-se pelas primeiras vezes. Testes de aceitação automatizados e testes de "regressão" são seus melhores amigos aqui. O TDD ajudará você a construir grandes partes de tais suítes. Você deve saber - rapidamente - se quebrou alguma coisa.
fonte
Você tem um representante do cliente / proprietário do produto que pode ver um determinado release antes do controle de qualidade e fornecer um retorno autorizado sobre ele? Nesse caso, você pode fazer e ter a maior parte dos benefícios de métodos ágeis enquanto trata o controle de qualidade como uma fonte secundária e lenta de feedback. Uma versão estaria apenas "oficialmente pronta" após o controle de qualidade, mas você não precisaria esperar por ela antes de iniciar a próxima.
Mas se as regras da empresa disserem que o cliente não deve ver um release antes que o controle de qualidade seja concluído, você pode praticamente esquecer de ser ágil, até conseguir alterar essas regras.
fonte
O processo que você descreveu não é um processo ágil. As equipes que têm um alto grau de agilidade são capazes de fornecer versões confiáveis e potencialmente liberáveis a cada sprint. Na maioria das implementações ágeis, a função QA é criada dentro da equipe ágil, ajudando a alcançar esse objetivo.
Se você, seu líder de projeto, seu proprietário do produto e os desenvolvedores não estiverem trabalhando juntos e você não tiver um plano de melhoria (retrospectivas), nomeie seu processo de outra forma e siga em frente. Não parece que os problemas de sua equipe sejam culpa dos gerentes ou do controle de qualidade. Eles parecem estar reagindo a algum problema sistêmico que sai da organização de desenvolvimento. Nem tudo está perdido se a equipe estiver disposta a assumir responsabilidades e começar a trabalhar com as partes interessadas.
Você pode tentar três coisas. Primeiro, certifique-se de que cada parte interessada tenha funções definidas de forma concisa e que cada pessoa entenda sua responsabilidade. Segundo, estabilize a compilação e obtenha aprovação do controle de qualidade sem introduzir mais alterações. Três, instituir a automação de testes. A equipe de controle de qualidade amará você por isso.
fonte
É uma pena que o feedback demore tanto, mas acho que não vale a pena parar com o Agile. No final de um sprint (ou dois), você libera um produto que tem certeza de que ele poderá ser colocado no mercado. Para sua equipe, o agile oferece a capacidade de focar no trabalho a ser realizado e manter o produto liberável. Quando o controle de qualidade encontra problemas, sugiro criar relatórios de erros para esses problemas e resolvê-los no próximo sprint (se eles tiverem prioridade alta o suficiente).
Nossos testes de campo de produto levam 8 semanas completas, além de dependermos de produtores externos. Ainda com agilidade, somos capazes de manter o foco no trabalho em questão e produzir uma nova versão muito rápida quando necessário.
O problema está (em seus olhos) no departamento de controle de qualidade. O problema pode ser resolvido lá? Você já discutiu isso?
fonte
O prazo de 12 semanas é longo, mas esperamos que o controle de qualidade possa fornecer feedback e relatórios de erros durante esse período (e não após os três meses).
Depois, você ainda pode responder às questões mais importantes de maneira ágil e pode corrigir muitas, senão todas, antes mesmo de terminarem!
fonte
O que as pessoas do controle de qualidade estão fazendo enquanto você executa vários sprints? Parece que eles sentem a necessidade de testar tudo após cada alteração (e é por isso que eles esperam por várias alterações).
A equipe de desenvolvimento é ágil, mas o resto da empresa não é.
Quem está encarregado do controle de qualidade ou não sabe o que está fazendo ou executou um truque mental Jedi na gerência superior e pode dedicar seu tempo agradável. Como o controle de qualidade pode demorar mais que o desenvolvimento?
fonte