First Things First
Introdução
A técnica First Things First 1 (FTF) enfatiza a necessidade de avaliar cuidadosamente os custos e benefícios de cada requisito de um software, bem como as implicações que cada um terá na sua arquitetura. É importante também garantir que os requisitos estejam alinhados com as regras de negócios e que o risco técnico associado a cada requisito seja considerado. Em resumo, a técnica destaca a importância de priorizar os requisitos de forma criteriosa e estratégica, a fim de maximizar os benefícios e minimizar os riscos e custos envolvidos no desenvolvimento do software.
Metodologia
As pessoas que participaram da elaboração dessa técnica estão descritas abaixo e listadas na tabela 1:
- Mediador: Responsável por apresentar os requisitos listados
- Cliente: Responsável por classificar benefícios e penalidades na implementação de cada requisito.
- Desenvolvedor: Responsável por identificar custos e riscos na implementação de cada requisito.
Tabela 1 - Participantes.
Nome | Função |
---|---|
Rafael Ferreira | Mediador |
Felipe Costa | Usuário |
Matheus Henrique | Desenvolvedor |
Sidney Fernando | Mediador |
Fonte: Elaborada por Sidney Fernando.
Duas reuniões foram realizadas na plataforma Microsoft Teams:
- Entre o desenvolvedor e o mediador, na data de 29/04/2023 às 20h. Vídeo da entrevista com o desenvolvedor
- Entre o cliente e o mediador, na data de 29/04/2023 às 20:30. Vídeo da entrevista com o cliente
A técnica foi elaborada da seguinte forma:
- Listar todos os requisitos elicitados e retirar aqueles que são logicamente ligados (se X depende de Y, então apenas é X é listado).
- Para cada requisito, o cliente deve estimar de 1 a 9 o benefício agregado, sendo que 1 indica pouco benefício e 9 é o maior benefício possível, e a penalidade da não implementação, sendo que 1 significa que não há penalidade e 9 indica uma penalidade muito séria. O valor total é calculado da seguinte forma:
valor total = (benefício * peso) + (penalidade * peso)
- Para cada requisito, o desenvolvedor deve estimar de 1 a 9 o custo de implementação de cada requisito, sendo 1 o custo mais baixo e 9 é o mais alto, levando em consideração a complexidade, a interface necessária, a capacidade de reutilização do código e os testes.
- Os desenvolvedores também estimam o grau relativo de riscos associados com o recurso em uma escala de 1 a 9, sendo que 1 significa grande facilidade na implementação e 9 indica preocupações sérias sobre viabilidade, disponibilidade de equipe ou mesmo falta de experiência com novas ferramentas ou tecnologias.
- Então é feito o cálculo de prioridade para cada requisito da seguinte forma:
prioridade = valor(%)/(custo(%) * peso do custo + risco(%) * peso do risco)
- A tabela deve ser ordenada de acordo com a ordem decrescente de prioridade, sendo os requisitos do topo da lista os mais equilibrados em termos de valor, custo e risco. Tendo isso em mente, tais requisitos devem ser priorizados.
Resultado de Priorização
Na Tabela 2 é possível ver os resultados ordenada de acordo com a ordem decrescente de prioridade, sendo os requisitos do topo da lista os mais equilibrados em termos de valor, custo e risco. Nas Tabelas 3 e 4 estão os ID's dos requisitos presentes na tabela de resultados e sua respectiva descrição.
Peso relativo:
- Benefício: 2
- Penalidade: 1
- Custo: 1
- Risco: 0,5
Tabela 2 - Tabela de resultado da priorização de requisitos.
Funcionalidade | Benefício Relativo |
Penalidade Relativa |
Valor total |
Valor (%) |
Custo Relativo |
Custo % |
Risco Relativo |
Risco % |
Prioridade |
---|---|---|---|---|---|---|---|---|---|
BS24 | 9 | 9 | 27 | 4,53 | 1 | 1,35 | 1 | 1,16 | 2,344 |
IS16 | 9 | 9 | 27 | 4,53 | 1 | 1,35 | 1 | 1,16 | 2,344 |
IS11 | 8 | 8 | 24 | 4,03 | 1 | 1,35 | 1 | 1,16 | 2,083 |
Q14 | 7 | 7 | 21 | 3,52 | 1 | 1,35 | 1 | 1,16 | 1,823 |
BS13 | 9 | 9 | 27 | 4,53 | 1 | 1,35 | 3 | 3,49 | 1,463 |
BS19 | 5 | 5 | 15 | 2,52 | 1 | 1,35 | 1 | 1,16 | 1,302 |
IS08 | 9 | 9 | 27 | 4,53 | 2 | 2,70 | 2 | 2,33 | 1,172 |
IS13 | 9 | 9 | 27 | 4,53 | 2 | 2,70 | 2 | 2,33 | 1,172 |
IS15 | 9 | 9 | 27 | 4,53 | 2 | 2,70 | 2 | 2,33 | 1,172 |
Q13 | 8 | 8 | 24 | 4,03 | 2 | 2,70 | 2 | 2,33 | 1,042 |
IS06 | 9 | 7 | 25 | 4,19 | 2 | 2,70 | 4 | 4,65 | 0,834 |
IS05 | 9 | 9 | 27 | 4,53 | 2 | 2,70 | 6 | 6,98 | 0,732 |
Q15 | 8 | 8 | 24 | 4,03 | 3 | 4,05 | 3 | 3,49 | 0,694 |
Q07 | 5 | 5 | 15 | 2,52 | 2 | 2,70 | 2 | 2,33 | 0,651 |
Q11 | 7 | 7 | 21 | 3,52 | 3 | 4,05 | 3 | 3,49 | 0,608 |
IS09 | 9 | 9 | 27 | 4,53 | 4 | 5,41 | 4 | 4,65 | 0,586 |
IS10 | 9 | 9 | 27 | 4,53 | 4 | 5,41 | 4 | 4,65 | 0,586 |
IS12 | 9 | 9 | 27 | 4,53 | 4 | 5,41 | 4 | 4,65 | 0,586 |
BS05 | 6 | 5 | 17 | 2,85 | 3 | 4,05 | 3 | 3,49 | 0,492 |
IS04 | 9 | 9 | 27 | 4,53 | 5 | 6,76 | 5 | 5,81 | 0,469 |
Q12 | 9 | 9 | 27 | 4,53 | 5 | 6,76 | 5 | 5,81 | 0,469 |
IS14 | 7 | 8 | 22 | 3,69 | 5 | 6,76 | 6 | 6,98 | 0,360 |
Q05 | 7 | 5 | 19 | 3,19 | 5 | 6,76 | 6 | 6,98 | 0,311 |
Q10 | 9 | 9 | 27 | 4,53 | 7 | 9,46 | 9 | 10,47 | 0,308 |
BS23 | 6 | 6 | 18 | 3,02 | 6 | 8,11 | 6 | 6,98 | 0,260 |
TOTAL | 596 | 74 | 100 | 86 | 100 |
Fonte - Autores.
Descrição dos requisitos funcionais
Tabela 3 - ID dos Requisitos funcionais e sua respectiva descrição.
ID | Descrição |
---|---|
IS04 | O aplicativo permite realizar a compra do ingresso. |
IS05 | O aplicativo permite o cadastro e o login do usuário. |
IS06 | O aplicativo permite excluir cadastro. |
IS08 | O aplicativo permite cancelar compras. |
IS09 | O aplicativo possui um mecanismo de busca. |
Q05 | O aplicativo da sugestões de eventos com base no histórico de buscas do usuário. |
Q07 | O aplicativo notifica usuário sobre eventos, quando permitido. |
BS05 | O usuário é capaz de filtrar eventos |
BS13 | O usuário é capaz de acessar as informações do evento |
BS19 | O usuário é capaz de mudar o idioma do app |
BS23 | O usuário é capaz de acessar a assistente virtual |
BS24 | O usuário é capaz de compartilhar o evento |
Fonte: Autores.
Descrição dos requisitos não funcionais
Tabela 4 - ID dos Requisitos não-funcionais e sua respectiva descrição.
ID | Descrição |
---|---|
IS10 | Deve possuir apresentar eventos de forma personalizada, de acordo com a atividade do usuário. |
IS11 | O usuário deve ser capaz de acessar as seguintes informações do evento durante a busca em, no máximo, 2 cliques: a data, o local e o preço do ingresso. |
IS12 | O usuário deve ser capaz de acessar um tópico de ajuda com ao menos 3 cliques. |
IS13 | Deve possuir uma tela de aviso sobre o início/fim de venda de ingressos para um dado evento em forma notificação, sendo essa acessível com 1 clique. |
IS14 | Deve oferecer atendimento especial para idosos/deficientes durante o processo de compra de ingressos. |
IS15 | Deve oferecer um mecanismo de autenticação seguro que permita aos usuários realizar o login com suas credenciais. |
IS16 | Deve possuir uma área para os usuários reportarem erros de funcionamento do aplicativo. |
Q10 | O aplicativo deve proteger os dados de cadastro e compra dos usuários. |
Q11 | O aplicativo deve disponibilizar em sua interface eventos que são relevantes ao usuário. |
Q12 | As notificações do aplicativo devem ser fornecidas em tempo hábil. |
Q13 | O sistema deve ser capaz de indexar e pesquisar palavras-chave ou tags de eventos a fim de oferecer uma resposta rápida aos usuários durante a busca. |
Q14 | O aplicativo deverá permitir a compra de ingressos de maneira simples (em menos de três telas). |
Q15 | O sistema deve solucionar problemas relacionados a compra de ingressos. |
Fonte: Autores.
Referências Bibliográficas
1. FIRST things first: Setting requirement priorities. In: WIEGERS, Karl E.; BEATTY, Joy. Software Requirements. 3. ed. [S. l.]: Microsoft Press, 2013. cap. 16, p. 313-329. ISBN 0735679665.
Histórico de versões
Versão | Data | Descrição | Autor(es) | Revisor(es) |
---|---|---|---|---|
1.0 |
29/04/2023 | Definição dos passos para realizar a ténica FTF | Sidney Fernando | Rafael Ferreira |
1.1 |
29/04/2023 | Adição dos resultados e entrevista | Sidney Fernando, Rafael Ferreira, Matheus Henrique | Douglas Alves |
1.2 |
21/06/2023 | Corrigido os erros ID4 e ID5 da verificação. | Rafael Ferreira | Matheus Henrique |
1.3 |
01/07/2023 | Ajustes dos não-funcionais. | Arthur de Melo | Douglas Alves |