Modelo clásico de desarrollo prototipos
Un prototipo es una versión preliminar, intencionalmente incompleta o reducida de un sistema. El uso de prototipos es una estrategia que puede aplicarse en casi todas las actividades del proceso de software. El propósito de los prototipos es obtener de manera rápida la información necesaria como ayuda en la toma de decisiones.
Los siguientes son algunos tipos de prototipo:
- Los prototipos de requisitos permiten que los usuarios perciban la funcionalidad del producto final a través del diseño de interfaces o pantallas del sistema. El objetivo es ayudar a aclarar los requisitos y solicitar nuevas ideas.
- Los prototipos de análisis permiten generar rápidamente una arquitectura general que considere las características principales del sistema de acuerdo con la especificación de requisitos.
- Los prototipos de diseño permiten explorar y comprender la arquitectura particular de un sistema para poder evaluar aspectos como cuellos de botella (rendimiento y uso de memoria) o incoherencias en el diseño.
- Los prototipos verticales permiten comprender parte de un problema y desarrollar su solución completa. Esto se hace generalmente cuando los conceptos básicos no están bien comprendidos (por ejemplo, el seguimiento de cierta metodología).
- Los prototipos de factibilidad permiten demostrar si es posible lograr ciertos objetivos del proyecto (por ejemplo, aplicar una arquitectura particular, conectarse a una base de datos bajo ciertas restricciones de rendimiento, aprender a programar en cierto lenguaje en un tiempo determinado o predecir los costos de desarrollo de un proyecto). Un prototipo no es necesariamente un producto de calidad, que deba mantenerse a largo plazo. Por el contrario, los prototipos a menudo son creados y probados rápidamente, para luego ser descartados. Sin embargo, es común que, por presiones de tiempo, se trate de enviar un prototipo al mercado (venderlo) como si éste fuera el producto final.
En general, siempre existirá un conflicto entre un desarrollo rápido y un producto de calidad. Las siguientes dos listas muestran algunas consideraciones para el éxito o fracaso de los prototipos.
Los prototipos tienen éxito cuando se comprende su propósito y se usan de manera adecuada, se comprende la tecnología que va a utilizarse y su relación con el proceso de prototipos, se integra un grupo técnico apropiado para hacer el prototipo (líder de proyecto, documentador, elaborador de prototipos de requisitos y análisis, y elaborador de prototipos de diseño), se evalúa al grupo y las entregas finales, se involucra temprano en el proceso de software a los usuarios finales, se está dispuesto a repetir el proceso de prototipos para comprender mejor la arquitectura básica, se establecen criterios de evaluación apropiados al comienzo de cada etapa de prototipos y se basa uno firmemente en estos criterios para su terminación y/o se construyen prototipos basados en una biblioteca de código reutilizable, controlada por el bibliotecario asignado.
Los prototipos fallan cuando no se comprende qué es un prototipo y cómo debe usarse, no se comprende el proceso lo suficientemente bien como para organizar al grupo de manera adecuada, no se sabe hasta cuándo dejar de evolucionar el prototipo y comenzar de cero (así extendiendo demasiado el proceso), no se sabe hasta cuándo continuar para tratar de lograr los criterios de evaluación deseados (así terminando prematuramente el proceso), no se utilizan ambientes o herramientas de apoyo adecuados para el desarrollo particular, se cree que un prototipo razonable es un producto aceptable y/o los prototipos nunca terminan.
Veamos un poco mejor este modelo de desarrollo: