Dando continuidade ao post anterior, vou falar mais detalhes sobre o SEMAT.
No modelo SEMAT, a ideia fundamental é a do kernel. Esse kernel deve possuir a descrição dos elementos que são essenciais a todos os projetos de engenharia de software. O kernel possui os seguintes tipos de elementos:
- Alfas (Alphas): Representações das coisas essenciais a serem usadas no trabalho. Os alfas fornecem descrições do tipo de coisas que uma equipe irá gerenciar, produzir e usar no processo de desenvolvimento, manutenção e suporte de um bom software. Eles também podem ser vistos como elementos essenciais do projeto de engenharia de software que são relevantes para a avaliação do progresso e saúde do projeto;
- Espaços de atividade (Activity Spaces): Representações das coisas essenciais a fazer. Os espaços de atividade fornecem descrições dos desafios que uma equipe enfrenta no desenvolvimento, manutenção e suporte de sistemas de software, e os tipos de coisas que a equipe vai fazer para superá-los e
- Competências (Competencies): As capacidades essenciais necessárias. Podem ser pensadas como recipientes genéricos para habilidades específicas. Habilidades específicas como, por exemplo, programação Java, não são parte do kernel, porque essa habilidade não é essencial em todos os projetos de engenharia de software. Caberá às equipes individuais identificar as habilidades específicas necessárias para seu projeto de software específico.
O kernel é organizado em três áreas de interesse, cada uma representando um aspecto específico da engenharia de software:
- Cliente: Contém tudo para entender a utilização real e a exploração do sistema de software a ser produzido;
- Solução: Contém tudo para fazer a especificação e o desenvolvimento do sistema de software e
- Esforço: Contém tudo para entender a equipe, e de qual maneira as pessoas executam seu trabalho.
Até agora, foram especificados os alfas e os espaços de atividades, sendo que foi lançado um livro que mostra como usar os alfas em um projeto de engenharia de software. O restante ainda permanece um grande mistério.
De forma sintética, o SEMAT possui sete alfas distribuídos nas áreas de interesse:
- Cliente: Oportunidade e Stakeholders;
- Solução: Requisitos e Sistema de Software, e
- Esforço: Trabalho, Equipe e Modo de Trabalho.
Cada um desses alfas possuem estados que representam a evolução do projeto naquela característica. Para cada estado de um alfa, existe uma checklist associada. É sugerido o uso de cartões para representar os estados dos alfas. Nesses cartões, são mostrados: o nome do alfa, o nome do estado, seu número dentro de todo o conjunto de estados e um pequeno resumo da checklist.
No próximo post falarei sobre para que servem os cartões e como usá-los, além de explicar melhor sobre as checklists.