2009-02-26 11 views
5

Me vi haciendo esto y me preguntaba si otras personas también trabajarían así:¿Alguna vez ha diseñado software imaginando la solución ideal?

Lo que suelo hacer frente a un problema de diseño de software es que anoto la solución "ideal", sin tener en cuenta viabilidad o cualquier otra consideración. Luego me pelaré de arriba hacia abajo, hasta que tenga la solución.

¿Es una metodología popular y tiene un nombre llamativo? Si es así, me gustaría saberlo para poder aprender más al respecto.

+0

"Ingeniería inversa" significa algo completamente diferente, FYI. Se refiere al uso de un artefacto existente como una guía para construir su propia implementación del mismo. – chaos

+0

Voy a editar la pregunta para reflejar eso; edite mis ediciones si tiene problemas. – chaos

+0

De acuerdo con aprender más al respecto, consulte esta pregunta: http://stackoverflow.com/questions/130933/design-coding-top-to-bottom-or-bottom-to-top – chaos

Respuesta

2

Crear software desde el punto de la experiencia es la mejor manera de hacerlo.

Desarrolle una visión, establezca casos de uso, cree una lista de características a partir de esos casos, priorice en términos de valor que obtendrá para construirlos, luego cree de acuerdo con esa prioridad.

Lo que esto ayuda a lograr es características que tienen un alto valor todo el tiempo mientras se mueve hacia la solución ideal cuando algunas funciones sólo pueden ser utilizados por un pequeño grupo de usuarios

12

Sí, se llama top-down design. :)

+1

Está seguro de que no se llama peel away ¿diseño? –

+0

Bueno, traté de llamarlo diseño sin viabilidad, pero mi gerente de proyecto se molestó. – chaos

+0

¿A ustedes les gusta? ¿lo usas? ¿Funciona para ti? –

3

En uno de mis viejos libros análisis/diseño (no recuerdo cual, y sin amor de Google), introdujeron el concepto de una "tecnología-no-filtro" cuando se piensa en el real objetivo, y pensar en el ideal solución. Es muy, muy parecido a lo que estás hablando. Es posible que el producto final no se parezca mucho a la solución ideal debido a la tecnología actual, pero saber qué es lo ideal significa que a medida que haya nuevas piezas disponibles, podrá evaluar fácilmente cómo se puede actualizar su diseño actual para aprovecharlas. Contraste eso con solo conocer el problema y la solución en términos de lo que puedes construir hoy. Mire a su alrededor y encuentre algún software que haya tenido problemas para hacer una transición a la nueva tecnología y puede ver esto en acción. ¡Sigue pensando en el ideal!

+0

Además, creo que tomar un enfoque descendente es menos propenso a errores. En el momento en que llegas al grano, tienes una muy buena idea de cómo interactuarán las piezas. Si haces un diseño de abajo arriba, entonces encontrar un problema tarde en el juego puede ser costoso en términos de código. –

+0

Sí. Si de verdad trabajas desde abajo, llegas a la cima y descubres que has hecho algo que hace un uso elegante de todos tus componentes y que no sirve para nadie. – chaos

2

Cuando diseño programas, primero diseño la interfaz de usuario usando prototipos de papel. Pruebo el prototipo de UI de que los usuarios pueden alcanzar sus objetivos con él. Tener algo concreto/visible para mostrar a los usuarios y clientes hace que sea más fácil explorar los requisitos y descubrir lo que realmente necesitan los usuarios.

En la fase de diseño de la interfaz de usuario (análisis de requisitos), siempre intento diseñar la solución ideal. No tomo en consideración lo difícil que sería implementar alguna característica. Luego, cuando el diseño se haya estabilizado lo suficiente como para implementarse (por lo general, toma una semana o dos), discutimos con los clientes y programadores sobre cuánto se necesitaría para implementar las cosas y qué cosas son las más importantes.

Porque primero diseñamos la solución ideal, podemos ver la imagen completa de lo que se necesita, y podemos comenzar a ajustar el alcance del proyecto, de modo que primero solo se implementen las características más importantes. Además, si algunos de los diseños de interfaz de usuario ideales serían demasiado costosos de implementar, podemos hacer un diseño comprometido que tenga una usabilidad ligeramente menor, pero que sea mucho más económico de implementar. El diseñador de la interfaz de usuario es siempre la persona que diseña el compromiso (es decir, no los programadores), por lo que cumple todos los requisitos y su capacidad de uso será lo suficientemente buena.

1

Esto es más o menos lo que hago, en la programación y en la vida. Por lo general, pienso en cómo un usuario necesitaría usar el nuevo software. Donde estan sus manos ¿Qué otras cosas usan para hacer el trabajo (un teléfono, otra ventana del navegador). ¿En qué orden llegará la información a ellos, y cómo afectará ese orden a las herramientas que proporciona mi software que necesitan?

1

En científica/numérica de computación en su punto de partida es la construcción invariablemente, algún ideal matemático, pero luego debe comprometer ese ideal para obtener una solución práctica utilizable.

Cuestiones relacionadas