Ágil UX

Modelação Ágil

  • Foco na modelação inicial de requisitos, da iteração e ”Model Storming“.
  • Processo de identificação da visão e âmbito da aplicação, pilha inicial de requisitos e visão da arquitetura.
  • Nas iterações seguintes, é importante modelar o suficiente para uma boa estimativa do produto final.

Requisitos Iniciais

  • Objetivo é entender o sistema, não documentar detalhadamente.
  • Inclui:
    • Modelos de Utilização:
      • São representações de como os usuários interagirão com o sistema. Eles podem ser abstrações de alto nível que ilustram os principais caminhos de interação ou processos de negócios que o sistema suportará. Os modelos de utilização ajudam a equipe de desenvolvimento a entender o contexto e o propósito do uso do sistema.
    • Casos de Uso:
      • Um caso de uso é uma descrição de como um usuário interage com o sistema para alcançar um objetivo específico. Casos de uso descrevem uma sequência de ações realizadas pelo sistema em resposta às ações de um usuário (ou outro sistema), proporcionando um resultado de valor para o usuário. Eles são normalmente mais detalhados do que os modelos de utilização e são usados para capturar requisitos funcionais.
    • Features:
      • Em desenvolvimento de software, uma feature é um resultado ou funcionalidade do sistema que é valiosa para um usuário ou stakeholder. Features são frequentemente descritas de forma mais ampla do que casos de uso e podem abranger várias funcionalidades ou aspectos do sistema. Uma feature bem definida ajuda a equipe a entender o que precisa ser construído e o valor que isso trará para os usuários.
    • User Stories:
      • As “user stories” são uma técnica de especificação de requisitos usada em desenvolvimento ágil. Uma “user story” é uma descrição curta e simples de uma funcionalidade do ponto de vista do usuário. Elas são formuladas de forma a capturar quem é o usuário, o que ele deseja alcançar e por que isso é importante. “User stories” são valiosas para manter o foco nas necessidades do usuário e para facilitar a priorização e a estimativa de esforço.

Modelação de Domínio e Interface com o Utilizador

  • Identificação de entidades de negócio fundamentais e relacionamentos.
  • Inclusão de “screen sketches” ou protótipos da interface com o utilizador para projetos interativos.

Model Storming

  • Análise “just in time” dos requisitos de nível superior.

Responsabilidades

  • Stakeholders como fonte oficial de requisitos; equipe de desenvolvimento implementa.

Classes de Requisitos

Os requisitos podem ser classificados em duas categorias principais: requisitos comportamentais e requisitos não comportamentais. Essa classificação ajuda a distinguir entre diferentes tipos de expectativas e necessidades para o sistema que está sendo desenvolvido.

  1. Requisitos Comportamentais:

    • Os requisitos comportamentais descrevem como o sistema deve se comportar em resposta às interações do usuário ou a eventos específicos. Eles são focados nas funcionalidades que o sistema deve fornecer e em como ele deve reagir a determinadas entradas ou condições.
    • Exemplos de requisitos comportamentais incluem a maneira como o usuário interage com o sistema (aspectos da interface), como alguém usará o sistema (aspectos de usabilidade), ou como o sistema realiza uma função de negócio específica (por exemplo, implementação de regras de negócio).
    • Esses requisitos são frequentemente capturados em forma de casos de uso, “user stories”, ou descrições de processos de negócios.
  2. Requisitos Não Comportamentais:

    • Os requisitos não comportamentais, por outro lado, descrevem características do sistema que não estão diretamente relacionadas com o comportamento específico que o sistema deve exibir. Eles geralmente se referem a aspectos gerais de qualidade, desempenho e restrições operacionais.
    • Exemplos incluem requisitos de desempenho (como tempo de resposta e capacidade de processamento), segurança (proteção de dados e controle de acesso), fiabilidade (disponibilidade e recuperação de falhas), e outros atributos de qualidade como escalabilidade, portabilidade e manutenibilidade.
    • Esses requisitos são cruciais para garantir que o sistema atenda aos padrões de qualidade e operacionais esperados pelos stakeholders e usuários finais.

Distinguir entre requisitos comportamentais e não comportamentais é importante para uma gestão eficaz de requisitos, pois cada tipo requer diferentes abordagens de especificação, implementação e teste.

Enquanto os requisitos comportamentais são frequentemente focados nas funcionalidades visíveis para os usuários, os requisitos não comportamentais são fundamentais para a qualidade geral do sistema e sua adequação ao contexto operacional e de negócios.

Artefatos

Dentro do contexto de desenvolvimento ágil de software, especialmente quando integrado com práticas de User Experience (UX), diversos artefatos são usados para capturar, comunicar e validar requisitos. Vamos detalhar cada um dos artefatos mencionados:

  1. Teste de Aceitação:

    • Descreve características observáveis do sistema que são importantes para um ou mais stakeholders.
    • São utilizados para verificar se o sistema atende aos requisitos especificados e se é aceitável para os stakeholders.
    • Frequentemente, estão ligados a requisitos funcionais.
  2. Regras de Negócio:

    • Representam princípios de operação ou políticas que o sistema deve satisfazer.
    • Podem ser detalhadas usando um template que inclui nome, descrição, exemplos, fontes e regras relacionadas.
  3. Change Case:

    • Descreve potenciais novos requisitos ou alterações nos requisitos existentes.
    • Ajuda a equipe a planejar e se adaptar a mudanças futuras potenciais no sistema.
    • Pode incluir tanto requisitos funcionais quanto não funcionais.
  4. CRC (Class Responsibility Collaborator):

    • Método para ajudar no design orientado a objetos, detalhando as responsabilidades de cada classe e seus colaboradores.
    • Embora um pouco em desuso e substituído por diagramas UML, os cartões CRC podem ser úteis para simplificar e visualizar a estrutura de classes e suas interações.
  5. Protótipos de Interface com o Utilizador:

    • Representam os aspectos essenciais da interface do usuário (UI).
    • Inicialmente, podem ser modelos genéricos e pouco detalhados, mas ajudam a visualizar e testar interações e designs de interface.
  6. Casos de Uso Essenciais:

    • Representam sequências de ações que fornecem valor mensurável a um ator, independentemente dos aspectos tecnológicos e de implementação.
    • São utilizados para capturar requisitos funcionais de alto nível.
  7. Features:

    • Representam resultados úteis na perspectiva do cliente, geralmente com dimensão suficientemente pequena para ser realizada em um incremento de desenvolvimento (como um sprint de duas semanas).
    • Normalmente são requisitos funcionais.
  8. User Stories:

    • Funcionam como memorandos para conversação com os stakeholders, capturando requisitos de alto nível, incluindo requisitos funcionais e não funcionais, e regras de negócio.

Esses artefatos são cruciais em abordagens ágeis de desenvolvimento de software, pois facilitam a comunicação entre a equipe de desenvolvimento e os stakeholders, ajudam na priorização e planejamento de tarefas, e fornecem mecanismos para validação e feedback contínuos.

Práticas

  • Envolvimento dos stakeholders na modelação dos requisitos.
  • Adoção de técnicas ágeis como “user stories” e priorização baseada em valor de negócio.

Gestão e Desafios

  • Foco na pilha de prioridades.
  • Desafios incluem diferenças entre engenharia de requisitos tradicional e ágil.

UX Ágil

  • Processo iterativo envolvendo UX e desenvolvimento.
  • Verificação de fidelidade da implementação e avaliação da usabilidade.
  • Avaliação do impacto emocional e tabela de importância de custo.
  • Ações consequentes para melhorias.

Lean UX

  • Focado na maximização do valor para o usuário através da experimentação contínua.
  • Ciclo de etapas inclui suposições, identificação do problema, design colaborativo, criação de protótipos e validação do MVP (Minimum Viable Product) através de testes de usabilidade.

Este resumo abrangente fornece uma visão detalhada da integração da UX no desenvolvimento ágil, destacando as técnicas e práticas para aprimorar a experiência do usuário em projetos ágeis. A ênfase é colocada na modelação just-in-time, participação ativa dos stakeholders e experimentação contínua para validar e melhorar continuamente a UX do produto.