Desenvolvimento usando SEMAT

Como prometi no post anterior, agora eu vou continuar falando sobre como usar os cartões do SEMAT e as checklists.

O SEMAT adota cartões de estado para entender o estado de desenvolvimento da aplicação e para definir o ciclo de vida do projeto. Todos os cartões possuem a mesma estrutura. No topo aparece o nome do alfa do kernel. Logo abaixo aparece o nome do estado do alfa e os critérios para atingir aquele estado. No fim do cartão aparece o número de estado dentro do conjunto total de estados. O número de estado ajuda os usuários a se lembrar da ordem dos estados.

O desenvolvimento de software usando o kernel do SEMAT é feito em iterações, sendo que uma iteração é um espaço de tempo destinado a produzir um incremento estável de um sistema de software. A duração de uma iteração é tipicamente de 2 a 4 semanas e pode envolver todos os tipos de atividades, desde a elicitação de requisitos até a implantação do sistema de software resultante.

Além de produzir o próximo incremento estável de software, devem ser definidos objetivos adicionais para a iteração. Esses objetivos também se relacionam com o progresso do estado de um ou mais alfas do kernel. Quando a equipe concorda no que deve ser feito em uma iteração, os objetivos são adicionados no backlog da iteração. O backlog pode ser refinado adicionando as tarefas necessárias para atingir aos objetivos.

Quando está sendo planejada uma iteração os alfas podem ajudar a descobrir onde se está e para onde ir em seguida. Há duas formas de determinar em que ponto está o desenvolvimento do esforço de engenharia de software com o uso dos cartões de estado do alfa:

  • Walkthrough: Uma abordagem simples usando um conjunto de cartões.
    • Devem-se colocar os cartões de cada alfa em linha sobre uma mesa com o primeiro estado a esquerda e o último estado à direita;
    • Seguir passo a passo cada estado e perguntar para a equipe se foi atingido aquele estado;
    • Se o estado foi atingido, deve-se mover aquele cartão de estado para a esquerda. Deve-se continuar com o próximo cartão de estado até que chegue a um estado que a equipe não tenha atingido e
    • Deve-se mover esse cartão de estado e o restante dos cartões de estado pendentes para a direita.
  • Poker: Outra abordagem que às vezes funciona melhor é o poker.
    • Para cada membro da equipe é dado um conjunto de cartões de estado;
    • Para cada alfa, cada membro seleciona o cartão  de estado que ele acha que melhor representa o estado atual do esforço de desenvolvimento de software;
    • Todos os membros colocam o cartão de estado selecionado com a face virada para baixo na mesa;
    • Quando todos colocaram os cartões na mesa, deve-se virar o  cartão com a face para cima;
    • Se todos os membros selecionaram o mesmo cartão de estado, então há consenso e
    • Se os cartões de estado selecionados são diferentes há interpretações diferentes dos  checklists dos estados. A equipe deve discutir os checklists para o estado para entrar em um acordo.
Uma vez que a equipe determinou quais os estados atuais dos alfas, é fácil selecionar quais serão os estados a serem atingidos na próxima iteração. Há critérios bem definidos para a conclusão dos estados alvos através de suas checklists. Selecionar os estados alvos pode ser facilmente feito como uma extensão das técnicas de walkthrough e poker.
Tendo identificado um conjunto candidato de objetivos para a iteração, a equipe deve decidir como irá alcançá-los e se conseguirão atingi-los durante a iteração. Tipicamente isso é feito identificando uma ou mais tarefas a ser completada para atingir o objetivo. Os estados do alfa ajudam a equipe com uma checklist para cada estado, fornecendo dicas de quais tarefas devem ser feitas para atingir o objetivo.
Em um próximo post, irei fazer uma análise do uso do SEMAT, seus pontos positivos e negativos e as principais dificuldades encontradas.

Leave a Reply

Your email address will not be published. Required fields are marked *