Prototipagem rápida é o processo de criar um modelo realista de um programa futuro ou interface de usuário do produto programável, a fim de obter uma percepção antecipada da usabilidade, necessidades e funções do produto. Interfaces de usuário rapidamente criadas em protótipos são fáceis de modificar e permitem que o usuário final forneça informações sobre o design. Embora a prototipagem rápida ofereça a vantagem da entrada do usuário no projeto e a capacidade de detectar e corrigir falhas durante o desenvolvimento, também há vários desafios que surgem.
Problemas de código reutilizáveis
Algumas ferramentas de prototipagem permitem que o programador produza código reutilizável, mas elas produzem interfaces de usuário que são difíceis de revisar posteriormente. A abordagem mais comum, usando ferramentas que permitem o rápido desenvolvimento de interfaces de usuário mais fáceis de modificar, não produz código utilizável. O código gerado por essas ferramentas é altamente especializado e integrado de maneiras complexas que impedem sua efetiva reprodução em parte ou a transferência para outro aplicativo. Na maioria dos casos, o benefício do uso de ferramentas de prototipagem mais rápida é uma maior satisfação do cliente e um produto com maior probabilidade de atender às preferências, prioridades e requisitos do cliente. Dadas essas vantagens, a desvantagem de não ter código reutilizável é freqüentemente considerada um sacrifício aceitável em prototipagem rápida.
Processo de desenvolvimento mais lento
O envolvimento direto do cliente no processo de desenvolvimento tem o potencial de introduzir novas necessidades e recursos que exigirão mais codificação. Embora isso possa melhorar tanto a experiência do cliente em desenvolvimento quanto a usabilidade do produto final, cada nova especificação introduzida aumentará o tempo total necessário para concluir o desenvolvimento. Nos casos em que várias novas necessidades são descobertas ao longo do processo de prototipagem rápida, os atrasos menores causados por cada uma dessas mudanças podem resultar em um atraso significativo.
Ponto de parada
Os desenvolvedores que podem adicionar ou modificar recursos a qualquer momento correm o risco de desenvolver uma interface à qual sempre desejarão adicionar. O potencial para integrar inúmeras melhorias adicionais pode esticar o tempo necessário para desenvolver um produto tanto quanto o envolvimento do cliente, como mencionado acima. Sem um ponto de parada rigoroso imposto por cronogramas, prazos ou limites orçamentários, o projeto pode permanecer em desenvolvimento indefinidamente e um produto acabado e comercializável pode nunca ver a luz do dia.