Este documento tem por finalidade definir os objetivos qualitativos que este projeto pretende alcançar em relação ao produto final gerado e a equipe. Para tal será utilizado como base o modelo GQM - Goals, Questions and Metrics.

Modelo

Objetivos Estratégicos


Objetivo 1: Boa usabilidade

Analisar com o propósito de com respeito a sob o ponto de vista no contexto
usabilidade do software melhorar facilidade de uso usuário final Produto IndicaAi
Foco da QualidadeFatores de Variação
  1. Número de Cliques pra executar uma funcionalidade
  2. Nível de satisfação do usuário
  3. Padronização para execução de tarefas
  1. O caminho que deve ser percorrido até chegar de fato na funcionalide pode afetar o usuário
  2. A satisfação do usuário pode melhorar a medida que ele aprende a usar o software
  3. O conhecimento do usuário de outras ferramentas
Hipóteses de BaselineVariações nas hipóteses
  1. 3 cliques
  2. 3 de satisfação
  3. Espera-se que funcionalidades semelhates tenham o fluxo parecido
  1. A complexidade da funcionalidade pode impactar que ela seja quebrada em várias etapas
  2. O interesse do usuário pela aplicação
  3. Nos outros módulos do App podem ser aplicados padrões distintos

Objetivo 2: Código Manutenível

Analisar com o propósito de com respeito a sob o ponto de vista no contexto
código da aplicação conhecer, entender e melhorar manutenção desenvolvedor Produto IndicaAi
Foco da QualidadeFatores de Variação
  1. Código reaproveitado
  2. Aplicação de padrões de escrita de código
  3. Complexidade de caminhos no código
  4. Quantidade do software que foi testada
  1. Experiência do desenvolvedor com as ferramentas
  2. Qualidade dos testes
Hipóteses de BaselineVariações nas hipóteses
  1. Máximo de código reaproveitado
  2. Padrão de escrita aplicado a todo o código
  3. Baixa complexidade no código
  4. Alta cobertura de testes
  1. Códigos muito semelhantes mas com propósitos diferentes podem ser considerados duplicados pelas ferramentas de análise.
  2. Podem ocorrer exceções quanto a folha de estilo de casos particulares em que o Scrum Master opte pela integridade do código ao invés da folha de estilo.

Objetivo 3: Capacitação da Equipe

Analisar com o propósito de com respeito a sob o ponto de vista no contexto
capacitação da equipe conhecer, entender e melhorar aquisição de conhecimento estudante disciplinas de EPS e MDS
Foco da QualidadeFatores de Variação
  1. Conhecimento da equipe
  2. Disseminação do conhecimento na equipe
  1. Desenvolvimento de habilidades por meio de projetos não relacionados com este
Hipóteses de BaselineVariações nas hipóteses
  1. Melhora de conhecimentos a cada sprint
  2. Rodízio constante nas duplas de pareamento
  1. Ao ter mais contato com determinada tecnologia, o estudante pode perceber que não a conhece tão bem e diminuir a classificação do seu conhecimento em relação a ela.
  2. Por questões de prazo de entregas uma dupla pode ser não rotacionada na sprint seguite por já estar familiarizada com código.
  3. Histórias pequenas podem ser entregues antes do previsto
  4. Histórias podem ser mal dimensionadas e levar mais tempo que o previsto

Objetivo 4: Produtividade da Equipe

Analisar com o propósito de com respeito a sob o ponto de vista no contexto
capacitação da equipe conhecer, entender e melhorar aquisição de conhecimento estudante disciplinas de EPS e MDS
Foco da QualidadeFatores de Variação
  1. Burndown
  2. Velocity
  3. Capacidade produtiva de cada desenvolvedor
  1. Sprints em que determinado desenvolvedor fique responsável por assumir um papel da metodologia, ele pode acabar produzindo menos linhas de códigos.
Hipóteses de BaselineVariações nas hipóteses
  1. A produtividade do desenvolvedor deve se manter constante ou aumenta a cada sprint.
  2. Espera-se que o velocity da equipe seja em torno de 20 a 30 pontos.
  1. Dificuldades por baixo conhecimento da tecnologia podem surgir nesse processo e influenciar na quantidade de linhas produzidas
  2. Histórias pequenas podem ser entregues antes do previsto
  3. Histórias podem ser mal dimensionadas e levar mais tempo que o previsto

Métricas de Medição

Número de Cliques
Objetivo da Medição Obter o número mínimo de cliques necessários para executar uma funcionalidade no sistema.
Fórmula Apartir da página na qual obtem-se acesso a funcionalidade contar todos os cliques necessários para executar a funcionalidade por completo.
Escala de Medição Racional
Coleta
  • Responsável: Product Owner
  • Periodicidade: a cada Pull Request associado a interface da aplicação.
  • Procedimento: Acessar a página onde se tem acesso a funcionalidade e então executar a funcionalidade contando o número de cliques necessários para concluí-la. Caso hajam vários caminhos que a funcionalidade pode seguir, deve-se testar cada um desses caminhos e realizar uma média aritimética simples para obter o valor final.
Análise
  • 1 a 2 cliques: Nível aceitável, mas verificar se não faltam informações/passos pertinentes ao usuário.
  • 3 a 4 cliques: Nível aceitável
  • 5 a 7 cliques: Nível preocupante
  • 8 ou mais cliques: Nível alarmante. Reavaliar a lógica de intereção.
Nível de Satisfação do Usuário
Objetivo da Medição Identificar o quão fácil ou confortável o usuário se sente para mecher no sistema.
Fórmula Em uma escla de 0 a 10 o usuário deve relatar o quão avontade ele se sente ao mecher no sistema.
Escala de Medição Intervalar
Coleta
  • Responsável: Product Owner
  • Periodicidade: Ao final de cada sprint, na entrega de funcionalidades associadas a interface da aplicação.
  • Procedimento: Selecionar dois prováveis usuários do sistema, pedir que usem o aplicativo, testando as novas funcionalidades implementadas e por fim, pedir para eles avaliarem em uma escala de 0 a 10 o quão intuitivo e prático foi mecher na aplicação.
Análise
  • 0 a 2: Ruim. Deve-se repensar toda a lógica de interação.
  • 3 a 5: Razoável. Deve-se promover melhoras na lógica de interação.
  • 6 a 8: Satisfatório
  • 8 a 10: Excelente
Duplicidade de Código
Objetivo da Medição Verificar se existe código duplicado que poderia ser reaproveitado dentro da aplicação.
Fórmula Quantidade de sintaxes idênticas ou semelhantes presentes no código.
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: a cada fechamento de Sprint
  • Ferramenta: Rubocop
  • Procedimento: Após o último Pull Request aprovado da Sprint, rodar a ferramenta sobre a branch devel e pegar o resultado da métrica.
Análise
  • Índicie de Duplicação > 25: Preocupante. Medidas devem ser tomadas para reaproveitar melhor o código da aplicação.
  • Índicie de Duplicação <= 25: Satisfatório
Folha de Estilo
Objetivo da Medição Verificar se o código está sendo escrito de acordo com os padrões adotados.
Fórmula Não se aplica.
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Ferramenta: Rubocop
  • Procedimento: Após o último Pull Request aprovado da Sprint, rodar a ferramenta sobre a branch devel e pegar o resultado da métrica.
Análise Caso a ferramenta acuse trechos de código em inconformidade com os padrões, deve-se abrir uma história técnica para consertar o trecho acusado.
Manutenibilidade
Objetivo da Medição Monitorar e melhorar a manutenibilidade do código que está sendo gerado.
Fórmula Não se aplica.
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Ferramenta: CodeClimate
  • Procedimento: Após o último Pull Request aprovado da Sprint, rodar a ferramenta sobre a branch devel e pegar o resultado da métrica.
Análise Caso a manutenibilidade esteja abaixo de B, o código deverá ser considerado como prioridade para ser refatorado.
Complexidade Ciclomática
Objetivo da Medição Verificar a quantidade de caminhos de execução independentes.
Fórmula V(G) = e - n + p
Onde V(G) é a complexidade ciclomática, n = vértice, e = aresta, p = componentes conectados
A média é feita, M(V(G)), dando a complexidade ciclomática média.
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada Sprint
  • Ferramenta: Rubocop
  • Procedimento: Após o último Pull Request aprovado da Sprint, rodar a ferramenta sobre a branch devel e pegar o resultado da métrica.
Análise Caso a ferramenta acuse algum problema de complexidade, o código deverá ser corrigido.
Cobertura de Testes
Objetivo da Medição Verificar a porcentagem do código que está sendo testado, afim de garantir a manutenabilidade.
Fórmula Cobertura = Linhas testadas / Linhas totais
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Ferramenta: Converalls
  • Procedimento: Após o último Pull Request aprovado da Sprint, rodar a ferramenta sobre a branch devel e pegar o resultado da métrica.
Análise
  • 0 a 89%: Preocupante. Deve-se abrir histórias técnicas para a testar a aplicação
  • 90% ou mais: Satisfatório
Quadro de Conhecimentos
Objetivo da Medição Acompanhar a evolução da equipe quanto as tecnologias e habilidades trabalhadas.
Fórmula Não se aplica.
Escala de Medição Intervalar
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Procedimento: Antes de começar a sprint review, todos os membros devem atualizar o quadro de conhecimentos com os conhecimentos adquiridos durante aquela sprint.
Análise
  • 0 a 2: Baixíssimo ou nenhum conhecimento
  • 3 a 5: Um pouco de conhecimento
  • 6 a 7: Conhecimento razoável
  • 8 a 10: Conhecimento satisfatório
Número de Pareamentos
Objetivo da Medição Verificar se diferentes membros estão interagindo com o intuido de difundir diferentes conhecimentos.
Fórmula Não se aplica
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada Sprint
  • Procedimento: Antes de começar a sprint review, um membro de cada par deve atualizar o quadro de número de pareamentos indicando com quais pessoas ele pareou durante a sprint.
Análise Quanto mais homogêneo estiver o quadro de número de pareamentos, entende-se que o conhecimento está sendo difundido entre toda a equipe. Caso, algum valor seja muito discrepante em relação aos outros deve-se averiguar o motivo e tomar providências para que tais pessoas pareem com outras, afim de disseminar as habilidades desenvolvidas.
Burndown
Objetivo da Medição Acompanhar a entrega contínua de atividades dentro da sprint
Fórmula Não se aplica
Escala de Medição Não se aplica
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Ferramenta: ZenHub
  • Procedimento: Após o fechamento da sprint, coletar a imagem do gráfico gerado por meio da ferramenta utilizada.
Análise Se histórias são entregues constantemente durante a sprint entende-se que há constância na produtividade da equipe. Se as histórias são entregues somente no final, ou não são entregues, a forma de planejar a sprint deve ser repensada e as histórias analisadas, talvez, seja melhor para a equipe transformar a história em um épico e quebrá-la em histórias menores.
Velocity
Objetivo da Medição Acompanhar a capacidade de produção da equipe para auxiliar no planejamento das próximas sprints
Fórmula Média de pontos entregues por sprints
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Ferramenta: ZenHub
  • Procedimento: Após o fechamento da sprint, coletar a imagem do gráfico gerado por meio da ferramenta utilizada.
Análise Com base nos resultado do velocity deve-se estimar a próxima sprint em torno da mesma quantidade de pontos. Caso perceba-se que dado o velocity da equipe e a quantidade de pontos totais do projeto, a equipe não seja capaz de entregar todas as funcionalidades em tempo hábil, deve-se fazer um reavaliação do escopo.
Número de Commits por dia
Objetivo da Medição Acompanhar a produtividade diária das sprints, afim de averiguar se está havendo integra contínua
Fórmula Não se Aplica
Escala de Medição Racional
Coleta
  • Responsável: Scrum Master
  • Periodicidade: ao final de cada sprint
  • Procedimento: Após o fechamento da sprint, coletar no Insights do GitHub a relação de commits por dia durante a sprint
Análise Caso os commits ocorram apenas no sexto ou sétimo dia da sprint, deve ser avaliado o motivo das entregas emcima da hora (sobrecarga dos desenvolvedores, issues muito grandes ou descaso). Cabendo ao Scrum Master tomar alguma medida corretiva sobre o problema.