¿Qué tan común es la creación de prototipos como la primera etapa de desarrollo?

10

He estado tomando algunos cursos de diseño de software en los últimos semestres, y aunque veo el beneficio en gran parte del formalismo, siento que no me dice nada sobre el programa en sí:

  • No puede saber cómo va a funcionar el programa a partir de la especificación de Caso de uso, a pesar de que analiza lo que puede hacer el programa.
  • No se puede decir nada sobre la experiencia del usuario en el documento de requisitos, a pesar de que puede incluir requisitos de calidad.
  • Los diagramas de secuencia son una buena descripción de cómo funciona el software como pila de llamadas, pero son muy limitados y ofrecen una visión muy parcial del sistema en general.
  • Los diagramas de clases son excelentes para describir cómo se construye el sistema, pero son completamente inútiles para ayudarlo a descubrir qué debe ser el software.

¿En qué parte de todo este formalismo está el resultado final: cómo se ve, opera y qué experiencia brinda el programa? ¿No tiene más sentido diseñar a partir de eso? ¿No es mejor descubrir cómo debería funcionar el programa a través de un prototipo y esforzarse por implementarlo de verdad?

Sé que probablemente estoy sufriendo de que teóricos me enseñen ingeniería, pero necesito preguntar, ¿hacen esto en la industria? ¿Cómo se da cuenta la gente de lo que es realmente el programa, y ​​no con qué debe conformarse? ¿Las personas prototipan mucho o utilizan principalmente herramientas formales como UML y todavía no me acostumbro a usarlas?

EpsilonVector
fuente
2
Según mi lectura, pareces demasiado concentrado en la parte de la interfaz de usuario del desarrollo de software. Los prototipos son excelentes para desarrollar y refinar interfaces de usuario, no tanto para forjar la lógica central (o incluso para averiguar exactamente cuál es la lógica comercial que se supone que está implementando)
Anon.
1
Si hay un usuario humano, generalmente hay GUI. El aspecto de la GUI y cómo debe funcionar afectará el diseño de todo el sistema.
Trabajo

Respuestas:

6

Si estamos creando una aplicación GUI, casi SIEMPRE creamos un prototipo o POC (prueba de concepto). Estableceremos cuál será el vocabulario visual de la aplicación. Por lo general, involucramos a nuestros clientes a través del POC y nos aseguramos de que comprendan cuál es el propósito y en qué deberían centrarse. Nunca me arrepiento de haber producido un prototipo. Solo asegúrese de no intentar convertir el código del prototipo en el código de producción, inicie el código de producción desde cero en función de lo que aprendió del prototipo.

Dicho todo esto, casi nunca realizamos prototipos de aplicaciones del lado del servidor (servicios, middleware, etc.). Realmente no veo el retorno de la inversión para eso (a menos que esté utilizando alguna tecnología nueva y necesite probar diferentes conceptos).

Walter
fuente
+1 El prototipo de mi empresa con bastante frecuencia, pero solo como prueba de concepto, principalmente en GUI, pero también cuando se investiga un nuevo enfoque para un problema, también en el lado del servidor.
Orbling
6

En el mundo de los negocios, importa mucho

Yo también solía pensar eso, hasta que llegas al mundo de los negocios. Entonces ya no es lo suficientemente simple como para simplemente tomar requisitos y avanzar y construir.

En el negocio, los diagramas de "flujo" de los usuarios y los prototipos de baja fidelidad realmente tienen sentido.

El funcionamiento del "programa" es probablemente la parte fácil. En las aplicaciones LOB (Line Of Business), la mayoría es CRUD. El desafío radica en la lógica y las reglas del negocio . Aquí es donde los diagramas de flujo de usuario y los flujos de proceso de negocio se vuelven extremadamente importantes para comprender y planificar de manera efectiva.

Noche oscura
fuente
1

¿Qué quiere decir con cómo "opera" el programa? Parece que está buscando detalles de implementación exactos en algo diferente a la implementación final específica, lo cual no tiene sentido. Se supone que los elementos de nivel superior guían la implementación, no la determinan.

Desde mi experiencia, la creación de prototipos es algo poco común. Sin embargo, me lo enseñaron junto con las especificaciones, requisitos, arquitectura, etc., y puede ser muy útil.

En cuanto a "lo que el software debe ser", ESOS son los requisitos. Parece que te falta todo el punto.

Las interfaces a menudo se bosquejan de antemano, y los casos de uso se pueden utilizar para el "flujo" de la interfaz. La experiencia del usuario no falta en absoluto. Si siente que falta algún elemento, haga algo más que sus profesores no hayan mencionado. El diseño no consiste en un conjunto claro de reglas transmitidas desde el cielo.

Matthew Read
fuente
0

Mi observación personal es que los prototipos reciben mucha atención, pero con demasiada frecuencia el prototipo, una vez que muestra signos de vida, simplemente se renombra como 'Beta' o, lo que es peor, v1.0.

leed25d
fuente
+1 Muy cierto, el prototipo es visto por el marketing que tiende a anunciar la finalización del proyecto.
Orbling
1
Este es un argumento para hacer que sus prototipos sean lo mejor posible dado el tiempo, no para negarse a hacer prototipos.
Inaimathi
0

Hay dos tipos de creación de prototipos: tres, en realidad:

  1. construimos prototipos para refinar el diseño y reducir los riesgos antes de comenzar la codificación "real" (Ingeniería)

  2. construimos el proyecto como una serie de prototipos refinados (Agile)

  3. construimos un prototipo y lo enviamos tan pronto como funcione (Cowboy)

Steven A. Lowe
fuente
0

Un prototipo también puede considerarse "iteración 0" de lo que necesita hacer. Cumple varias cosas:

  • Demuestra que el concepto puede hacerse. Esto puede ser para su jefe o para un cliente que paga.
  • Le permite identificar cosas que pueden ser difíciles de lograr para la fuerza de producción, y le da una idea general de la cantidad de trabajo necesario.
  • En realidad tienes un código que hace algo . ¡Esto es inmensamente importante!

En general, el prototipo debería ser muy útil para construir el producto final, a menos que haya descubierto que es necesario un enfoque completamente diferente.


fuente