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 exemplo, como usuário do IDE, estou perfeitamente feliz em atualizar para a nova versão uma ou talvez duas vezes por ano e nunca tenho pressa em fazer isso. Ou seja, se o ciclo de lançamento for de 3 meses ( 12 semanas ), estou perfeitamente feliz com isso.
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?
- Caso em questão - em uma empresa em que trabalhei, descobrimos que precisamos de algum novo recurso em um produto licenciado por algum fornecedor de software. Sem esse recurso, sofremos bastante, então sim, realmente queríamos que eles fossem ágeis e entregassem atualizações dentro de um mês.
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
Para mim, uma das partes mais importantes do Agile é ter um lançamento que pode ser entregue no final de cada sprint. Isso implica várias coisas. Primeiro, um nível de teste deve ser feito para garantir que nenhum erro seja exibido se você acha que pode liberar a compilação para um cliente ...
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.
- dev: sim, parece bom o suficiente para passar aos testadores; QA: Sim, parece bom o suficiente para o caso, se forem necessários mais testes entregáveis - coisas assim. A equipe (dev + QA) está satisfeita, é isso.
... O ponto mais importante que você fez foi no final de sua resposta em termos de não aplicar o ágil se os requisitos não forem ágeis. Eu acho que isso está certo. Quando começamos a agir com agilidade, tínhamos discado e as circunstâncias faziam sentido. Mas desde então, as coisas mudaram dramaticamente, e estamos nos apegando ao processo em que pode não fazer mais sentido.
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).
- Eu costumo pensar nisso em termos de Ferrari (como iterativo regular) vs Landrover (como Scrum).
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.
Nosso produto completo é realmente composto de muitas peças menores que podem ser atualizadas independentemente. Acho que nossos clientes estão muito dispostos a atualizar esses componentes menores com muito mais frequência. Parece-me que talvez devêssemos focar na liberação e controle de qualidade desses componentes menores no final dos sprints ...
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 coisa a ter em mente para essa estratégia é ter uma verificação testável de que as alterações estão localizadas onde esperado. Mesmo que isso chegue à comparação de arquivos bit a bit de componentes que não foram alterados, escolha ou não os enviará. O problema é que o controle de qualidade é responsável pela qualidade do lançamento, não os desenvolvedores.
É 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.