A prototipagem ou prototipação de software é a atividade de criação de protótipos de aplicativos de software, ou seja, versões incompletas do programa de software em desenvolvimento.

É uma atividade que pode ocorrer no processo de desenvolvimento de software e é comparável à prototipagem conhecida em outras áreas, como engenharia mecânica ou manufatura.

Um protótipo normalmente simula apenas alguns aspectos do produto final e pode ser completamente diferente.

A prototipagem tem vários benefícios: o analista e desenvolvedor de podem receber feedback valioso e rápido dos usuários no início do projeto. O cliente e o contratante podem comparar se o software está sendo construído de forma a corresponder às especificações do software. Também permite que o engenheiro de software tenha ideia da precisão das estimativas iniciais do projeto e se os prazos e marcos propostos podem ser cumpridos com sucesso.

O grau de completude e as técnicas usadas na prototipagem têm estado em desenvolvimento e debate desde sua proposta no início dos anos 1970: How Simulation Software Can Streamline Application Development.

Vídeo aulas sobre prototipação de software

Aula remota - Prototipação de tela em projetos de desenvolvimento de software - teoria

Vídeo aula remota com apresentação da teoria da técnica de prototipação de telas de software em projetos de desenvolvimento de sistemas, com fins de levantamento, elicitação e validação de requisitos. Tal ferramenta pode ser aplicada em processos ágeis de desenvolvimento nos momentos de planejamento de iterações ou sprints Scrum, como na entrega quando uma janela de tempo de desenvolvimento não contempla a implementação completa de uma funcionalidade por sua complexidade e tamanho.

Aula remota - Prototipação com Draw.io para projetos de tela de desenvolvimento de software

Vídeo aula remota com apresentação da Ferramenta Draw.io (agora Diagrams.net) para a técnica de prototipação de telas de software em projetos de desenvolvimento de sistemas, com fins de levantamento, elicitação e validação de requisitos.

Objetivos da prototipação de software

A prototipação de software é um processo ou atividade, que tem como objetivo facilitar o entendimento dos requisitos de uma aplicação.

Ela permite apresentar conceitos e funcionalidades do software de modo simplificado e com baixo custo.

É possível propor uma solução adequada para o problema do cliente, aumentando sua percepção de valor.

Melhora o engajamento de Stakeholders na avaliação de requisitos

Tipos de prototipação

Primeiramente é necessário compreender:

Protótipos podem ser desenvolvidos em diferentes níveis de fidelidade, porém: um protótipo de alta fidelidade exige mais recurso de tempo para ser criado ou modificado.

Wireframes & Rascunhos (Sketches)

  • prototipagem com baixo nível de fidelidade, porém criado ou modificado com rapidez.
  • não mostrarão detalhes visuais ou interações de tela, mas ajudarão a validar requisitos e regras de negócio de maneira eficiente.
  • são indicados para representar cenários complexos nos quais um fluxo ou processo precisa ser compreendido. Assim, o cliente pode definir recursos de modo rápido e realizar modificações sem grandes dificuldades.

Prototipação de software - Wireframe
Prototipação de software - Wireframe

Mockups - Protótipos visuais

  • utiliza componentes realistas, é uma representação do software finalizado.
  • criados com programas de edição gráfica, têm maior apelo visual.
  • não possuem interações de tela e demandam mais tempo para a realização de ajustes e melhorias.
  • são uma ótima opção para telas com maior ênfase em estética e usabilidade, quando os requisitos já foram entendidos.
  • é possível identificar com fidelidade o modo como o layout será estruturado, a linguagem visual e outros fatores que farão parte da interface.
  • não será possível avaliar o modo como as interações de tela serão desenvolvidas e executadas.

Prototipação de software - Application Mockup
Prototipação de software - Application Mockup

Protótipos Funcionais - Interativos

  • tem as mesmas características de um mockup, com a adição da possibilidade de interação com ele.
  • o usuário pode interagir tendo sensação de estar utilizando uma aplicação desenvolvida afim de testar a navegação e interação das telas.
  • são completos e representativos, além do visual, engloba uma série de detalhes de estética e efeitos de interação, proporcionando uma experiência realista.
  • também ajuda a equipe a identificar novos requisitos, oportunidades e futuros problemas.
  • porém, requerem uma equipe de maior conhecimento técnico e demoram mais para serem criados. Para reproduzir todos os detalhes da aplicação, será necessário criar uma estrutura mais complexa, o que demanda recursos mais avançados.

Qual tipo utilizar?

Algumas questões devem ser levantadas no momento de escolher o tipo de técnica de prototipação de software a ser aplicada.

Se deseja:

  • provar um conceito, aplique técnicas de completude parcial e mais baixa fidelidade, mais rápidas e de menor curso
  • vender uma ideia, aplique técnicas de completude parcial e mais alta fidelidade, relativamente rápidas e de custo médio
  • testar logicamente, aplique técnicas com resultados mais completos e mais baixa fidelidade, tempo e custos médios
  • testes de usuário, aplique técnicas de mais alta completude e fidelidade, tempo e custos mais altos.

Compreenda que validar requisitos não está ligado diretamente à realizar testes de usuário. Teste de lógica e usuário são necessários em módulos complexos da regra de negócio e de alta criticidade.

Utilize o gráfico de quadrantes a seguir para lhe orientar na decisão da escolha na técnica de prototipação a aplicar.

Qual ténica de prototipação de software utilizar
Qual ténica de prototipação de software utilizar

Em resumo

Em resumo, a prototipação de software é uma boa prática a ser adotada no processo de desenvolvimento de softwares, pela minha experiência, principalmente para facilitar a conversa com clientes, financiadores, usuários e demais stakeholders.

Apenas tome os cuidados de não: (1) prototipar todo o sistema, em geral desnecessário, (2) utilizar o tipo de prototipagem de acordo com o resultado esperado e recurso financeiro e de tempo disponíveis.

Referências