BT

Sprints de Estabilização, um Mal Necessário ou um Puro Desperdício?

por Mark Levison , traduzido por Marcelo Andrade em 23 Dez 2009 |

Waste BasketDushy tem ouvido falar sobre Sprints de Estabilização e ficou pensando se elas eram a norma no mundo ágil. Sprints de Estabilização são uma porção de sprints adicionais ao final do ciclo normal de desenvolvimento e antes da entrega do produto. Como o nome sugere, elas costumam ser incluídas como uma última oportunidade de explorar o produto numa última busca por bugs.

Ilja Preuss diz que: "Uma sprint de estabilização é um sinal de que sua definição de pronto está incompleta ou não está sendo seguida."

Sarath Kummamuru destaca que vê alguns casos em que sprints de estabilização sejam apropriadas:

1. Para cuidar do débito técnico que tenha sido acumulado devido à pressa para completar um sprint! (basicamente refatorando a base de código existente ou melhorando a cobertura de testes unitários, etc).
2. Para cuidar do débito de garantia da qualidade (QA) que as equipes podem ter acumulado devido à falta de automatização e de regressões completas a cada sprint. Muito comum em empresas que trabalhem sobre bases de código legado e que não tenham muita automatização.
3. Para testes e certificação do produto que está sendo entregue em várias plataformas (digamos para certificá-lo em diversos servidores de aplicação, ou para diferentes plataformas de sistemas operacionais, etc).
4. Se houver algum empacotamento que precise ser feito (digamos, Cds para serem entregues, etc), isto pode ser tipicamente feito nestas sprints de estabilização/entrega.

Este autor percebeu que a aceitação de sprints de estabilização como necessárias é semelhante á dar as pessoas uma muleta e nunca mais ajudá-as a andar novamente. Pode levar alguns anos para automatizar os testes de todo o código existente, mas não há desculpa para viver com as coisas do mesmo jeito que estão. Além disso, qualquer código que não tenha testes de aceitação e de unidade automatizados é algo de qualidade duvidosa. Nós sabemos que se existirem bugs escondidos no código – isso é efetivamente um desperdício (do ponto de vista de Lean).

Edward Arunaj aponta: "Normalmente, se qualquer coisa está pendente, então estamos acumulando débito. Muitas vezes você pode precisar de mais do que uma sprint de estabilização e isso pode levar a incerteza quanto ao lançamento do release. (uma coisa que os stakeholders detestam mais do que atraso, é a incerteza)."

Mark Woyna nos dá um exemplo em que não é economicamente viável eliminar as sprints de estabilização. Um dado ambiente de teste com 800 servidores (avaliados em dezenas de milhões de dólares) deve executar cerca de 300.000 operações por segundo. Testes nestes servidores levam de 3 a 4 semanas para executar tal como a equipe precisa para simular o que acontece quando uma atualização seja lentamente propagada para todos os servidores. Entretanto, Mark enfatiza que este é um caso especial: "Eu concordo com você que este trabalho executado durante a sprint de estabilização nada mais é do que trabalho que não foi feito … Se o software é defeituoso, seria melhor você ter encontrado os problemas o quanto antes"
rather than later”

Finalmente, Steve Gordon diz:

Corrigir as causas principais deste trabalho defeituoso é o que melhora as coisas. Sim, nós também precisamos corrigir o problema imediato, mas se isso é tudo que você faz, os problemas vão retornar e você vai estar sempre convivendo com trabalho incompleto e com defeitos 'inesperados'.

Aceitar "sprints de estabilização" como algo corriqueiro, como uma prática normal, é meramente corrigir o problema imediato e aceitar que os mesmos tipos de problemas certamente irão acontecer novamente.

Anteriormente no InfoQ: "Pronto" é o mesmo que "entregável"?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

Faz parte by Rodrigo Branas

Acredito que seja um mal necessário que acaba sendo desperdício pois se o conceito de pronto estivesse sendo seguido e os testes estivessem funcionando não precisaria estar sendo revisado no final de releases ou mesmo no momento da entrega do projeto para o cliente. No entanto, no mundo real as coisas nem sempre funcionam tão bem como na teoria. Por melhor que sejam os processos, dependendo da fase do projeto débitos técnicos acabam sendo inseridos, consciente ou inconscientemente, e precisam ser reparados. Acredito que cedo ou tarde esse tipo de iteração apareça na maioria dos projetos, faz parte.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

1 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT