Creación de prototipos de software

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 5 de febrero de 2016; las comprobaciones requieren 13 ediciones .

La creación de prototipos de software (del inglés prototyping) es una etapa del desarrollo de software (software), el proceso de creación de un prototipo de programa  : un diseño (borrador, versión de prueba) de un programa, generalmente para verificar la idoneidad de los conceptos, arquitectura y / o soluciones tecnológicas propuestas para su aplicación, y también para presentar el programa al cliente en las primeras etapas del proceso de desarrollo.

El prototipo también le permite obtener comentarios de futuros usuarios y, además, exactamente cuando más se necesita: al comienzo del proyecto, todavía existe la oportunidad de corregir errores de diseño casi sin pérdidas.

Resumen

El proceso de creación de prototipos generalmente consta de los siguientes pasos:

  1. Definición de requisitos iniciales
  2. Desarrollo de la primera versión del prototipo, que contiene únicamente la interfaz de usuario del sistema
  3. Examen del prototipo por parte del cliente y los usuarios finales, obteniendo retroalimentación sobre los cambios y adiciones necesarios
  4. Reelaboración y mejora del prototipo: teniendo en cuenta los comentarios y sugerencias recibidos, se modifican tanto las especificaciones como el prototipo, tras lo cual se pueden repetir los pasos 3 y 4.

Tipos de prototipos

La creación de prototipos tiene muchas opciones diferentes. Sin embargo, todos los métodos se basan en cierta medida en dos tipos principales.

Creación rápida de prototipos

Con el prototipado rápido ( del inglés  rapid prototyping o throwaway prototyping ) se supone que se está creando un diseño, que en algún momento se dejará (“tirado”) y no pasará a formar parte del sistema terminado.

La principal ventaja de este enfoque es la velocidad: en respuesta a sus requisitos, el cliente recibe casi de inmediato un prototipo de la interfaz y puede aclarar inmediatamente los requisitos antes de escribir el código de trabajo del sistema. El costo de cambiar los requisitos en esta etapa es muy bajo porque no hay código para reescribir.

Es muy importante que dicha creación de prototipos se complete lo antes posible, ya que en este caso se desperdicia tiempo y recursos en un código que no se utilizará más.

La creación rápida de prototipos no se realiza necesariamente en la misma plataforma y las mismas tecnologías que el sistema que se está desarrollando. Los prototipos de interfaz gráfica de usuario (GUI) se pueden usar como páginas HTML estándar , o el prototipo se puede preparar en un programa diseñado específicamente para crear diseños (por ejemplo: Axure RP , Microsoft Expression Blend , etc.).

Prototipado evolutivo

La creación de prototipos evolutivos tiene como objetivo crear diseños de sistemas consistentes que se acerquen cada vez más al producto real . 

Este enfoque tiene la ventaja de que en cada paso tenemos un sistema en funcionamiento, aunque no con toda la funcionalidad necesaria, pero mejorando con cada iteración. Al mismo tiempo, no se desperdician recursos en el código que se "tirará".

Se puede elegir un enfoque evolutivo para la creación de prototipos basado en la suposición de que todos los requisitos necesarios se desconocen en el momento en que comienza el desarrollo y se determinarán a medida que se crea el programa; luego, en cada etapa implementamos solo aquellos requisitos que son conocidos y claros. Al mismo tiempo, los desarrolladores a veces se enfocan en trabajar solo en aquellos módulos del sistema, cuyos requisitos ya se han determinado.

En algunos casos, cuando se trata de un producto para un determinado nicho desocupado, los usuarios comienzan a usar el sistema incluso antes de que esté completamente terminado, esperando el sistema terminado, porque "es mejor un sistema sin terminar que su ausencia total".

Beneficios y riesgos

Las principales ventajas de la creación de prototipos son la reducción del tiempo y costo de desarrollo debido a que la evaluación del prototipo permite detectar insuficiencias o inconsistencias en los requisitos en una etapa más temprana. Cuanto más tarde se realicen los cambios en una especificación, más costosos serán, por lo que aclarar "lo que los usuarios/clientes realmente quieren " al principio del desarrollo reduce el costo total.

La participación del cliente en el proceso de desarrollo también juega un papel psicológicamente importante. Trabajar con un prototipo permite a los futuros usuarios ver cómo se verá el futuro programa e influir en su comportamiento, lo que reduce las discrepancias en la idea del programa entre desarrolladores y usuarios. El efecto del rechazo casi inevitable del nuevo sistema durante la implementación también se reduce, especialmente cuando se introduce en lugar del utilizado anteriormente.

Sin embargo, el uso de prototipos crea una serie de riesgos adicionales.

Aplicabilidad

La pregunta de hasta qué punto se justifica el uso de prototipos, de una forma u otra, para un proyecto específico, no tiene una respuesta inequívoca. La creación de prototipos da buenos resultados cuando se diseñan sistemas en los que una parte significativa de los costos de mano de obra está asociada con la implementación de interfaces hombre-computadora, y la evaluación del cumplimiento del sistema con los requisitos del cliente es en gran medida subjetiva. En tales sistemas, la creación de una especificación detallada es muy difícil, ya que el cliente no puede tener en cuenta todos los matices y los programadores organizan partes no especificadas a su propia discreción; como resultado, la reacción típica a la demostración del sistema terminado es: “Sí, todo corresponde formalmente a los términos de referencia, ¡pero no lo necesitábamos en absoluto!”. La creación y evaluación de un prototipo en tales casos permite, en las primeras etapas de desarrollo, separar los detalles que son importantes para el cliente, que no entraron en la especificación, de los que no son importantes, cuya implementación puede ser arbitraria. .

En el desarrollo de sistemas cuyo trabajo principal es la computación, como programas de línea de comandos y utilidades, la creación de prototipos ofrece pocas ventajas reales.

Véase también

Enlaces