Desenvolvimento

7 abr, 2009

Desenvolvimento ágil e engenharia de usabilidade

Publicidade

Talvez existam dúvidas sobre as possibilidades de integração da
engenharia de usabilidade a uma estrutura ágil para o desenvolvimento
de software. Afinal, a engenharia de usabilidade propõe uma série de
competências, práticas e documentos que poucas empresas de software
adotem por acharem que isto tudo irá atolar o desenvolvimento. Uma
reputação incompatível com a idéia do desenvolvimento ágil.

Pois
bem. Eu estou trabalhando em um projeto de P&D financiado pelo
CNPq, cujo objeto de estudo é a integração da usabilidade com os
processos ágeis. A iniciativa deste projeto foi de uma empresa de
segurança de informações de Porto Alegre, a Interage Ltda. (www.interage.com.br).
Nossa estratégia é de adotar e adaptar práticas de engenharia de
usabilidade para que sejam rápidas e versáteis. Bom, pelo o que eu
estou observando por enquanto, não há duvida de que esta integração
pode dar certo.

Imagino que todos conheçam os princípios do manifesto ágil (http://agilemanifesto.org/principles.html). Eu selecionei os que mais interessam para esta discussão:

  • O software funcionando é a principal medida de progresso no desenvolvimento;
  • São realizadas entregas freqüentes de software funcionando (sprints de semanas em vez de meses);
  • Há um comprometimento com a agilidade: adaptação ao contexto em constante evolução (quando se cria algo novo);
  • As alterações nos requisitos são bem-vindas, mesmo as mais tardias.
  • Conversas face a face são a melhor maneira de comunicação (programação em pares);
  • Existe uma preocupação contínua com a excelência técnica e com o bom design;
  • A simplicidade é a tônica do projeto.

As propostas da norma ISO 13407, sobre o ciclo de concepção centrada no usuário, são as seguintes:

  • O desenvolvimento deve ser feito em ciclos de análise, concepção e testes com usuários;
  • A concepção deve ser rápida, baseada em prototipagem;
  • Em cada ciclo são realizados testes do protótipo com os usuários;
  • Caso o protótipo não satisfaça as necessidades dos usuários, um novo ciclo de análise, concepção e testes deverá ser realizado;
  • Os protótipos são revisados com base nos resultados dos testes e em novas informações que se obtenha dos usuários;
  • Tudo deve ser feito com o envolvimento do usuário;
  • A norma propõe ainda que a equipe de desenvolvimento seja multidisciplinar.

São inúmeros os manuais de ergonomia de software a propor que a
simplicidade seja um princípio do projeto de interfaces. Assim, sob o
ponto de vista de princípios de concepção, o pessoal de usabilidade e
do desenvolvimento ágil está totalmente de acordo sobre a necessidade
de simplicidade. É um excelente ponto de partida.

Sob o ponto de
vista metodológico, a primeira questão a examinar é se existe
compatibilidade entre protótipo e versões de software funcionando. Em
um contexto comprometido com as mudanças, as versões do software
funcionando são excelentes aproximações aos protótipos. Elas são mais
demoradas para aprontar, mas se existe o comprometimento com as
alterações indicadas nas avaliações e testes de usabilidade,
“protótipo” e “software funcionando” acabam sendo a mesma coisa. De
lambuja as interfaces do software funcionando são mais fidedignas, o
que melhora as possibilidades dos testes.

Na seqüência é
preciso verificar se os sprints rápidos, propostos pelo manifesto ágil,
podem funcionar como os ciclos de “análise, concepção e testes”
propostos pela norma ISO 13407. Se as avaliações ao final dos sprints
estiverem voltadas para a usabilidade, que é o que está acontecendo
aqui no nosso projeto, creio que as duas abordagens podem ser
consideradas como equivalentes.

Mas é preciso que os testes de
usabilidade sejam rápidos de maneira que seus resultados possam
alimentar as definições do que fazer no próximo sprint. Aqui no nosso
projeto nós demos um jeitinho para viabilizar testes rápidos, buscando
participantes entre as pessoas da empresa. Isto foi possível, pois o
público-alvo do produto de nosso estudo de caso é muito geral, composto
de pessoas de diversos perfis, embora algumas personagens (personas)
bem específicas tenham sido definidas. Nós pedimos então para as
pessoas da empresa que desempenhassem, ou que se colocassem nos papéis
destas personagens (os personas para o projeto estão definidos na wiki
de desenvolvimento da empresa). Como o público alvo era geral, isto
não foi muito difícil para eles, e os resultados dos testes foram muito
bons. Tudo foi muito rápido e os participantes nos mostraram os
problemas e nos alimentaram de idéias para mudanças. Os testes nos
permitiram conhecer melhor os usuários do Trevio, mesmo que eles sejam
da empresa e estejam apenas desempenhando papéis. O importante é que a
tarefa não seja estranha para eles, e que eles NÃO façam parte da
equipe de desenvolvimento. Evidentemente, os relatórios dos testes
devem ser muito objetivos e a maior parte da comunicação de resultados
se dá em reuniões de trabalho.

Perseguindo a integração da
usabilidade com a agilidade, nós colocamos em prática uma atividade de
concepção de interfaces em pares. Isto quer dizer que o pessoal de
programação, design  e usabilidade trabalhou junto para definir e
implementar as interfaces do produto. Isto pôde evitar a ocorrência de
problemas de usabilidade no projeto e toda uma cadeia de trabalho
inútil para o projetista e para o avaliador de usabilidade: i.e.,
desenvolver o erro (projetista), analisar o erro (avaliador), reportar
o erro (avaliador), eliminar o erro (projetista). Esta prática tem que
ser bem coordenada, pois muitas vezes o trabalho de programação da
interface consome o tempo do programador e a pessoa da usabilidade não
tem o que fazer. Além disto, em estruturas muito enxutas como a da
Interage, esta prática elimina a possibilidade de, ao final dos
sprints, a pessoa de usabilidade fazer avaliações heurísticas (por
especialista) de uma interface que ajudou a conceber. Assim, a
concepção em pares torna obrigatória a realização de testes de
usabilidade ao final dos sprints.

Assim como eu disse no
início, a integração da usabilidade com a abordagem ágil, como estamos
fazendo aqui em nosso projeto de P&D, está dando muito certo. Tudo
depende, é lógico, do comprometimento com as duas perspectivas. No nosso
caso, baseados nesta experiência de desenvolvimento de um software
produto com um público alvo bastante geral, vimos que a adoção /
adaptação de algumas práticas de concepção centrada no usuário
(personas e testes de usabilidade principalmente) ao processo de
desenvolvimento ágil é possível, fácil e dá excelentes resultados. Por
outro lado, a concepção de interfaces em pares merece ainda ser
examinada com mais atenção.