* Com co-autoria de Allan Bessa e Gleison Santos
A etapa de levantamento de requisitos está comumente presente nos projetos de construção de software, uma vez que as necessidades dos usuários são obtidas a partir de algum tipo de coleta dessas informações através de entrevistas, questionários, protótipos, etnografia, estudos de casos de uso, dinâmicas entre a equipe do projeto (JAD – Joint Application Design) e etc. (Nuseibeh e Easterbrook, 2000).
Apesar da disponibilidade dessas boas técnicas, alguns analistas não as utilizam, comprometendo assim o atendimento às expectativas dos usuários, tornando os sistemas complexos de serem utilizados (Carrizo et al., 2008) e fora do contexto das cinco características principais da usabilidade: facilidade de manuseio e capacidade de aprendizado rápido; dificuldade de esquecimento; ausência de erros operacionais; satisfação do usuário e; eficiência na execução das tarefas a que se propõe (Leal Ferreira e Nunes, 2008).
Um estudo de caso foi realizado envolvendo dois projetos, sendo um deles através da técnica de prototipação (Projeto P) e outro não (Projeto X). Os projetos foram avaliados em cima de um contexto real e da forma quantitativa a partir da comparação de funcionalidades similares e com o uso de uma abordagem para mensuração do processo de software, o GQM (Goal Question Metric). A execução desses dois projetos foi realizada em uma consultoria multinacional do setor de Tecnologia da Informação (TI) e pela mesma equipe em períodos diferentes num total de 11 profissionais.
Na fase de elicitação de requisitos foi criado um wireframe ou “esqueleto” principal no projeto P, a fim de delimitar as áreas distintas, organizar o conteúdo, padronizar as informações, manter uma identidade visual e uma consistência nas interfaces a serem construídas. Tanto o front end como o back end tiveram as funcionalidades revistas constantemente entre a equipe de requisitos, o designer e o cliente no intuito de tornar cada vez mais compreensível o conteúdo apresentado para os usuários. Já no projeto X optou por adotar uma gama de templates pré-definidos como modelos para desenvolvimento, sem passar pela fase de organização das informações em protótipos conforme ocorrido com o projeto P.
Definição dos objetivos, questões e métricas
O método GQM é um paradigma orientado a metas a fim de mensurar produtos e os processos de software. Dessa forma, estabelece metas/objetivos daquilo que se propõe a medir e suas respectivas questões e métricas (Basili, 1992), conforme apresentado na Tabela 1.
Tabela 1. Objetivo do estudo de caso de acordo com o GQM
Analisar | A aplicação da técnica de elicitação de requisitos por prototipação |
Com o propósito de | Avaliar a produtividade e reduzir o retrabalho |
Em relação à | Precisão e identificação dos fatores que impactam na utilização dessa técnica |
Do ponto de vista de | Do gerente de projeto e do design |
No contexto de | Uma empresa de consultoria em TI |
As questões, apresentadas na Tabela 2 foram baseadas nas quatro fases envolvidas no processo de construção de software adotadas pela consultoria em TI e compreendidas em: 1 – elicitação de requisitos, fase de levantamento das necessidades junto aos usuários; 2 – design, elaboração dos protótipos; 3 – construção, fase de desenvolvimento das necessidades obtidas nas fases de elicitação e design; 4 – testes, fase de execução de testes integrados e homologação junto aos usuários.
As métricas foram estipuladas a fim de obter a produtividade em relação ao percentual entre as horas executadas com as horas planejadas, como também, as horas de retrabalho em relação às horas executadas para cada questão/fase.
Entende-se neste estudo como retrabalho as horas aquém estipuladas e executadas por meio de retorno de avaliação de testes unitários e testes integrais de sistemas, bem como de erros ocasionados por problemas de má interpretação dos documentos de requisitos e de funcionalidades ruins quanto à usabilidade das interfaces.
Tabela 2. Questões e Métricas de acordo com o objetivo do estudo de caso
Questão | Métrica |
Q1. Qual a quantidade total de horas realizadas na fase de elicitação de requisitos? | M11. (horas executadas – horas planejadas / horas planejadas) * 100. (EE)
M12. (horas de retrabalho – horas executadas) * 100 (ER) |
Q2. Qual a quantidade total de horas realizadas de design? | M21. (horas executadas – horas planejadas / horas planejadas) * 100. (DE)
M22. (horas de retrabalho – horas executadas) * 100 (DR) |
Q3. Qual a quantidade total de horas realizadas na fase de construção? | M31. (horas executadas – horas planejadas / horas planejadas) * 100. (CE)
M32. (horas de retrabalho – horas executadas) * 100 (CR) |
Q4. Qual a quantidade total de horas realizadas nos testes? | M41. (horas executadas – horas planejadas / horas planejadas) * 100. (TE)
M42. (horas de retrabalho – horas executadas) * 100 (TR) |
A seguir são apresentadas as hipóteses do estudo.
Hipótese Nula (H0): A produtividade com o uso da técnica de elicitação de requisitos por prototipação (ou seja, no projeto P) são menores do que naqueles projetos sem a utilização dessa técnica (ou seja, no projeto X).
P ? X: ( ((EEP ? EEX) ou (ERP ? ERX)) e
((DEP ? EEX) ou (DRP ? DRX)) e
((CEP ? CEX) ou (CRP ? CRX)) e
((TEP ? TEX) ou (TRP ? TRX)) )
Hipótese Alternativa (H1): A produtividade com o uso da técnica de elicitação de requisitos por prototipação (ou seja, no projeto P) são maiores do que naqueles projetos sem a utilização dessa técnica (ou seja, no projeto X).
P > X: ( ((EEP < EEX) ou (ERP < ERX)) e
((DEP < DEX) ou (DRP < DRX)) e
((CEP < CEX) ou (CRP < CRX)) e
((TEP < TEX) ou (TRP < TRX)) )
Coletas de Dados
Os dados foram coletados a partir de um sistema de gestão de projetos da organização. As horas das atividades executadas foram processadas em uma planilha eletrônica e um sumário é apresentado nas Tabelas 3 e 4.
Tabela 3. Coleta de dados do estudo de caso no projeto P
Funcionalidades | Competências | |||||||||||
Requisitos | Design4 | Construção | Testes | |||||||||
P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | |
Cadastro Usuário | 08 | 12 | 02 | 04 | 04 | 00 | 32 | 40 | 04 | 12 | 14 | 00 |
Troca de Senha | 04 | 04 | 00 | 02 | 02 | 00 | 16 | 16 | 02 | 04 | 04 | 00 |
Cadastro Perfil | 08 | 10 | 00 | 06 | 06 | 00 | 24 | 24 | 00 | 06 | 06 | 02 |
Cadastro Notícias | 16 | 18 | 08 | 08 | 12 | 04 | 32 | 40 | 08 | 08 | 08 | 02 |
Cadastro Sistemas | 06 | 06 | 00 | 02 | 02 | 00 | 12 | 12 | 00 | 08 | 08 | 00 |
Inclusão Docs | 12 | 15 | 02 | 04 | 04 | 02 | 32 | 32 | 04 | 08 | 08 | 02 |
Filtros Consulta | 08 | 06 | 00 | 04 | 04 | 00 | 08 | 06 | 00 | 02 | 02 | 00 |
Listagem Consultas | 08 | 04 | 01 | 04 | 06 | 02 | 08 | 10 | 02 | 08 | 08 | 00 |
Total | 70h | 75h | 13h | 34h | 40h | 08h | 164h | 180h | 20h | 56h | 58h | 06h |
1 P = Horas Planejadas / 2 E = Horas Executadas / 3 R = Horas Retrabalho / 4 Designer alocado para criação de protótipos e apoio a requisitos |
Tabela 4. Coleta de dados do estudo de caso no projeto X
Funcionalidades | Competências | |||||||||||
Requisitos | Design4 | Construção | Testes | |||||||||
P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | |
Cadastro Usuário | 08 | 16 | 04 | 01 | 02 | 02 | 32 | 40 | 08 | 12 | 20 | 10 |
Troca de Senha | 04 | 04 | 04 | 01 | 01 | 02 | 16 | 16 | 04 | 04 | 04 | 00 |
Cadastro Perfil | 08 | 14 | 06 | 01 | 01 | 01 | 24 | 32 | 12 | 08 | 10 | 04 |
Cadastro Notícias | 16 | 12 | 08 | 04 | 04 | 04 | 32 | 32 | 14 | 08 | 12 | 06 |
Cadastro Sistemas | 06 | 10 | 03 | 01 | 01 | 01 | 12 | 18 | 03 | 08 | 10 | 04 |
Inclusão Docs | 12 | 22 | 10 | 01 | 02 | 04 | 32 | 34 | 14 | 08 | 16 | 08 |
Filtros Consulta | 08 | 14 | 06 | 01 | 02 | 06 | 08 | 10 | 08 | 02 | 02 | 00 |
Listagem Consultas | 08 | 10 | 04 | 02 | 02 | 08 | 08 | 14 | 08 | 10 | 16 | 08 |
Total | 70h | 102h | 45h | 12h | 15h | 28h | 164h | 196h | 71h | 60h | 90h | 40h |
1 P = Horas Planejadas / 2 E = Horas Executadas / 3 R = Horas Retrabalho / 4 Designer alocado para criação de sete modelos iniciais de HTML e para apoio a desenvolvimento no caso de redesign de telas |
Interpretação dos Resultados e Testes das Hipóteses
A partir do total das horas coletadas, ilustrado na tabela 5, os resultados das métricas foram gerados conforme a tabela 6.
Tabela 5. Total de horas das funcionalidades
Projeto | Competências | |||||||||||
Requisitos | Design | Construção | Testes | |||||||||
P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | P1 | E2 | R3 | |
P | 70h | 75h | 13h | 34h | 40h | 08h | 164h | 180h | 20h | 56h | 58h | 06h |
X | 70h | 102h | 45h | 12h | 15h | 28h | 164h | 196h | 71h | 60h | 90h | 40h |
1 P = Horas Planejadas / 2 E = Horas Executadas / 3 R = Horas Retrabalho |
Tabela 6. Resultados das métricas a partir das horas coletadas
Projeto | Competências | |||||||
Requisitos | Design | Construção | Testes | |||||
M11a | M12b | M21a | M22b | M31a | M32b | M41a | M42b | |
P | 7,14% | 17,33% | 17,65% | 20,00% | 9,76% | 11,11% | 3,57% | 10,34% |
X | 45,71% | 44,12% | 25,00% | 186,67% | 19,51% | 36,22% | 50,00% | 44,44% |
a Percentual das horas executadas com base nas horas planejadas.
b Percentual das horas de retrabalho com base nas horas executadas. |
As métricas M11, M21, M31 e M41 se basearam nas horas executadas com as horas planejadas. Na fase de elicitação de requisitos, por exemplo, o projeto X obteve 32 horas a mais que às 70 horas planejadas, ou seja, 45,71% (M11), onde: (102h – 70h / 70) * 100, enquanto o projeto P obteve 7,14%. Constata-se também esta variação positiva nas demais fases dos projetos.
Nas métricas M12, M22, M31 e M42 referentes às horas de retrabalho, obtiveram-se horas a mais no projeto X em relação ao P em todas as fases. Por exemplo, na fase de design, o projeto X consumiu 28 horas a mais que às 15 horas executadas, sendo 186,67%, ou seja: (28h / 15h) * 100.
Por meio dos resultados dessas métricas, os testes foram gerados a partir da substituição das hipóteses nula e alternativa, conforme Tabelas 7 e 8.
Tabela 7. Hipótese Nula H0 (P ? X)
Métrica | Atributo | Valor (%) | Teste | Resultado |
M11 | EEP | 7,14 | (EEP ? EEX) ou (ERP ? ERX) | FALSO |
EEX | 45,71 | |||
M12 | ERP | 17,33 | ||
ERX | 44,12 | |||
M21 | DEP | 17,65 | (DEP ? DEX) ou (DRP ? DRX) | FALSO |
DEX | 25,00 | |||
M22 | DRP | 20,00 | ||
DRX | 186,67 | |||
M31 | CEP | 9,76 | (CEP ? CEX) ou (CRP ? CRX) | FALSO |
CEX | 19,51 | |||
M32 | CRP | 11,11 | ||
CRX | 36,22 | |||
M41 | TEP | 3,57 | (TEP ? TEX) ou (TRP ? TRX) | FALSO |
TEX | 50,00 | |||
M42 | TRP | 10,34 | ||
TRX | 44,44 | |||
Resultado | FALSO |
Tabela 8. Hipótese Alternativa H1 (P > X)
Métrica | Atributo | Valor (%) | Teste | Resultado |
M11 | EEP | 7,14 | (EEP < EEX) ou (ERP < ERX) | VERDADEIRO |
EEX | 45,71 | |||
M12 | ERP | 17,33 | ||
ERX | 44,12 | |||
M21 | DEP | 17,65 | (DEP < DEX) ou (DRP < DRX) | VERDADEIRO |
DEX | 25,00 | |||
M22 | DRP | 20,00 | ||
DRX | 186,67 | |||
M31 | CEP | 9,76 | (CEP < CEX) ou (CRP < CRX) | VERDADEIRO |
CEX | 19,51 | |||
M32 | CRP | 11,11 | ||
CRX | 36,22 | |||
M41 | TEP | 3,57 | (TEP < TEX) ou (TRP < TRX) | VERDADEIRO |
TEX | 50,00 | |||
M42 | TRP | 10,34 | ||
TRX | 44,44 | |||
Resultado | VERDADEIRO |
Dessa forma, a hipótese nula (H0) foi negada e, assim, a hipótese alternativa (H1) foi considerada verdadeira.
O analista de testes no projeto P foi o que menos teve retrabalho em relação aos demais papéis envolvidos na execução do projeto. O designer foi quem registrou mais retrabalho, realizou testes de interface e usabilidade retornando as funcionalidades para desenvolvimento e refinamento antes de publicar em ambiente de testes para verificação e validação final.
A falta do wireframe/esqueleto ou pelo menos de um protótipo acarretou ao projeto X retrabalhos tanto da equipe de desenvolvimento como da equipe de testes. Algumas funcionalidades não atendiam por completo e diversas melhorias foram propostas pelo cliente, assim como problemas de usabilidade foram detectados após a construção. Caso o protótipo fosse implantado e discutido entre a equipe antes de colocar em prática o desenvolvimento, assim como foi no Projeto P, certamente o nível de retrabalho de diversas fases do projeto seria menor. Diante desse cenário, algumas melhorias foram até relacionadas como mudança de escopo, porém, o grande peso estava no retrabalho das funcionalidades que não foram completamente discutidas e analisadas entre a equipe.
Os resultados obtidos neste artigo são válidos no contexto pesquisado. No entanto, vale ressaltar que a generalização desses resultados para outros projetos e/ou organizações deve ser melhor investigado. A análise dos dados foi realizada de maneira imparcial, no entanto, convém mencionar que um dos autores do trabalho atuou como designer nos projetos, o que pode ser considerado um confounding factor do estudo.
Conclusões
Foi evidenciado que o projeto com menor índice de retrabalho foi aquele que aplicou a técnica de prototipação nas fases de Requisitos, Design, Construção e Testes, encorajando a adoção da prototipação nos próximos projetos da organização. A justificativa para tal era evitar o não cumprimento às necessidades e expectativas dos usuários e, também, a desmotivação da equipe dos projetos em decorrência de constantes retrabalhos.
Referências
Basili, V. R. (1992) Software Modelling and Measurement: The Goal/Question/Metric Paradigm. Technical Report CS-TR-2956, Department of Computer Science, University of Maryland, MD 20742.
Carrizo, D., Dieste, O., Juristo, N. (2008) Study of Elicitation Techniques Adequacy. 11º Workshop on Requirements Engineering(WER 2008), p. 104-114.
Easterbrook, S., Singer, J., Storey, M., Damian, D. (2007) Guide to Advanced Empirical Software Engineering. Springer-Verlag, Nova Iorque, Capítulo 11 – Selecting Empirical Methods for Software Engineering Research.
Leal Ferreira, S. B. e Nunes, R. R. (2008) e-Usabilidade. Rio de Janeiro: LTC, p. 19-54.
Nuseibeh, B., Easterbrook, S. (2000) Requirements Engineering: a Roadmap. Em: Proceedings of the Conference on the Future of Software Engineering (Limerick, Irlanda, junho 04-11, 2000). ICSE 2000. ACM Press, Nova Iorque.
* Allan Bessa – Analista de Sistemas e trabalha em empresa de telefonia móvel.
* Gleison Santos – Consultor em engenharia de software, professor de mestrado da Unirio e doutor em engenharia de software pela COPPE/UFRJ. [Webinsider]
Rafael Xavier Almeida
Rafael Xavier Almeida (rafaelxavier@gmail.com) - Designer, analista de projetos e trabalha em uma multinacional de TI. É mestrando em sistemas de informação pela Unirio. Twitter: @rafaelxavier.
2 respostas
Oi Fernando. Esse artigo foi um material científico no qual usamos um método para COMPROVAR, via quantidade de horas entre dois projetos, que o uso de wireframes reduz o retrabalho em várias competências como design, requisitos e testes.
Parece meio complicado por causa dos cálculos, mas veja as tabelas de horas gastas e de retrabalho em cada etapa.
O legal é que isso foi um divisor de águas e a equipe agora entendeu a importância dos wireframes e da participação dos stakeholders nas definições de caso de uso.
A “refação” das tarefas de boa parte da equipe foi reduzida e a qualidade do trabalho melhorou, sem contar com a satisfação do cliente e os prazos mais adequados.
Obrigado pelo comentário.
Agora, explica pra gente?