viernes, 12 de diciembre de 2008

Visual Padrob Editor 2008: Acerca de la entrega y presentación finales del proyecto de Ing. Software

El último post es de hace casi un mes atrás... Es entendible, ya que es fin de semestre y todos hemos estado lo suficientemente ocupados como para no tener tiempo de escribir acá...

Bien, Ingeniería de Software y su proyecto relacionado con Padrob (que ha sido el causante del jugo de algunos post anteriores) ha provocado gran parte de este colapso... Además, el factor "su programa se ve robusto, pero no cumple con lo que requerimos", incorporado por nuestro cliente en la corrección presencial anterior, agregó una cuota de tensión (y, por supuesto, trabajo) adicional...

Luego de planteados estos inconvenentes en el proyecto, intentamos buscar una solución para cumplir con lo que se nos pedía... Luego de haber reunido algunas ideas debí ausentarme del proyecto por aproximadamente una semana debido a que tendría muchos exámenes seguidos (otros procrastinadores no tenían tanto que hacer)...

Una vez finalizada dicha semana me reincorporo al proyecto, encontrándome con un porcentaje de avanca considerable... En este punto no tenía mucho que hacer, además de reparar algunos bugs pendientes que me habían sido asignados y otras funcionalidades de no mucha complejidad... Una vez hecho ésto se me encomendó la tarea de realizar un modelo digno de la presentación final que se realizaría después de la entrega (y, de paso, aprovechaba de hacer testing sobre el programa)...

Decidí poner manos a la obra y no encontré mejor idea que hacer una retroexcavadora o pala mecánica similar a una que aparecía en uno de los videos de Rexlab... Comencé con hacer la parte mecánica, lo que no me demoró más de 20 minutos... Luego, la parte geométrica...
Con la parte geométrica tuve los mayores problemas... Cada cierto intervalo de tiempo me aparecía una AccessViolationException producido por el excesivo uso de memoria de OpenGL (por suerte este bug fue arreglado antes de la entrega final), matando el programa y junto con él todos los cambios en el modelo geométrico que no había guardado... Ésto claramente provocó un retraso considerable, con lo que al final demoré alrededor de 4 horas en terminarlo (por así decirlo... En realidad ese es el tiempo en el que consideré que estaba lo suficientemente bueno y me dio lata seguir agregando detalles, considerando que la pala fue una completa improvisación... Además, era bastante "tarde" y debía dormir)...
El resultado fue éste:


Es claro que las medidas de la retro no son a escala con ninguna existente, solo querá crear algo que se viera lo suficientemente bien y que fuera "animable" en Padrob...

Los 2 dás siguientes fueron días de corregir bugs que eventualmente aparecían... En un momento en que no tenía mucho que hacer, en un momento de ocio decidí crear un script (que a esas alturas ya era completamente funcional en nuestro editor, no así cuando cree la retro) que animara a mi retro... La idea es que el script hiciera que mi creación geométrica ejecutara movimientos similares a los que haría una retroexcavadora en la vida real, que hiciera algo con sentido... Con esto en la cabeza fui asignando grados de libertad a las conexiones del modelo...
Los siguientes screenshots muestran algunas partes de la animación (imágenes tomadas de Padrob, pues nuestro editor es incapaz (por el momento) de mostrar animaciones de vestimentas; sólo puede mostrar animaciones de cuerpos y conexiones):


Las horas previas a la entrega fueron de bastante relajo... Estando el software prácticamente terminado, nos dedicamos a arreglar los documentos y a dejar Assembla en orden, además de comenzar con la preparación de la presentación final que tendríamos al día siguiente...

En la preparación de la presentación se decidió que mis trabajos sobre la pala debían ser incluídos, además de elaborar el ppt con el que presentamos... Después de eso nos fuimos a dormir para continuar al día siguiente...

Al otro día llegué a la U, encontrando a Nicolás y Pascal trabajando en su puente (proyecto de estática)... Después de verlos un buen rato pegar palos de maquetas y pelar cables (literalmente), decidimos un par de horas antes de la presentación continuar con su preparación... En esos momentos aún no habíamos decidido quién iba a presentar, ya que ninguno de nosotros se sentía con las habilidades comunicativas necesarias para ello... Solución: Decidimos presentar los 3 a modo de ensayo para luego decidir quien finalmente presentaría...

Luego de hacer ésto, decidimos que Nicolás era la mejor opción (y al final creo que fue la mejor decisión que pudimos tomar)... Ensayamos la presentación un par de veces más (coordinando el paso de diapositivas y detalles varios) para posteriormente dirigirnos a Mecánica, donde encontramos esperando a los otros 2 grupos presentadores... Dentro de la sala de reuniones en que presentaríamos se encontraban Matías, Juanfi (alto mando del curso) y J. P. Carrizo (ayudante asignado a nuestro proyecto), además de un par de integrantes de un grupo de otro proyecto que estaban de "público"... Luego entraron los integrantes de los otros 2 grupos...

Momentos antes a la entrada a la sala de nuestros clientes, Juanfi nos informaba del orden en que presentaríamos: estábamos en segundo lugar... Así que a la llegada de Luciano Chiang y J.P. Oyarzún nos sentamos para presenciar la presentación del primer grupo...

Una vez terminada la primera presentación, tomamos ubicación para realizar la nuestra...
Todo parecía ir de acuerdo a lo planeado hasta que en las diapositivas apareció la primera imagen con un screenshot de nuetro programa... Ante ésto, Nicolás no perdió la oportinidad para decir en medio de la presentación algo como "nosotros sí mostramos los nombres de los ejes", refiriéndose a las letras X, Y e Z que identifican los ejes de un sistema de referencia, haciendo referencia al grupo que había presentado antes que nosotros y al que se le había preguntado por ésta capacidad (que ellos no implementaron)... ëste comentario fue el primero en provocar una risa entre los asistentes a la presentación...

Al llegar a las diapositivas que hablaban sobre la edición de modelos utilizando sistemas de referencia globales, nuestro presentador comentó "aunque a Uds. no les gusten mucho", haciendo referencia a que ésto fue uno de los principales puntos de conflicto en presentaciones pasadas entre nosotros y nuestros clientes, provocando nuevamente las risas entre nosotros...

Cuando llegó la hora de hablar sobre la capacidad de editar modelos usando los vectores PAR que usa Padrob, comentó "para qué les voy a expilcar lo que son, si ya todos acá sabemos", provocando aún más risas...

Respecto a la llamada por nosotros parte geométrica y nuestro editor de polígonos, dijo que "nosotros sí podemos mostrar polígonos cóncavos", haciendo referencia ésta vez a que el grupo anterior evitaba que aparecieran y a que Padrob mismo suele tener problemas en ésto...

Más tarde, mencionó que "nosotros sí mostramos las fuerzas intercuerpos", haciendo nuevamente referencia al grupo anterior que no lo hacía, pero además a la entrega pasada en que representábamos éstas fuerzas solo con flechas y se nos pidió que la representación fuera igual a como las representaba Padrob...

Posteriormente mencionó que "nosotros podemos reproducir un script" y que "nosotros hacemos cambios en tiempo real sin necesidad de presionar un botón", nuevamente como referencia al grupo anterior...

Una vez terminadas las diapositivas, llegó la hora de hacer la demostración del software... Para ésto usamos principalmente la pala mecánica... Al parecer la pala fue un factor importante a la hora de "vender" nuestro software, comenzando a verse ésto en la primera pregunta del profesor Chiang: "Ésto lo hicieron en su editor?"...

Luego de una serie de preguntas por parte principalmente de nuestros clientes para probar las funcionalidades de nuestro editor, nuestro ayudante (Carrizo) nos pregunta mostrándose sorprendido: "En qué momento hicieron todo eso?", refiriéndose a las nuevas funcionalidades agregadas después de la última corrección presencial...

Al finalizar la presentación, nuestro cliente nos felicitó por el avance que habíamos realizado al haber logrado algo muy bueno al final, confesando que "sinceramente no tenía muchas espectativas en Uds."... También, J. P. Oyarzún agregó que "nos costó hacer que usaran los PAR", en un cierto tono de broma que hasta ese día no habríamos esperado de él...

Finalmente, se nos preguntó qué pensábamos hacer con el programa ahora, a lo que Matías sugirió "enviarlo a la papelera de reciclaje"... Después de esa interrupción, se nos invitó a seguir trabajando con ellos si es que nos interesaba... Con eso nuestra presentación terminó y pasamos a tomar asiento para ver presentar al último grupo...

Una vez que éste grupo terminó de presentar, se hicieron unos comentarios finales... En ellos nuestro cliente resaltó la calidad de los trabajos presentados, diciendo sobre nosotros que "picaron al final"... Después de eso, se acercan a Nicolás los integrantes del público observador para expresarles su admiración por la pala mecánica... Luego nos fuimos bastante felices de haber gustado, mientras se decidía en la sala las notas que finalmente obtendríamos de las presentaciones... Más tarde nos enteramos (mediante a nota) que fuimos los que más agradamos al cliente, lo que nos dejó aún más felices...

Antes de terminar quisiera decir 2 cosas:
1.- A Nicolás y Pascal: Si recuerdan más detalles y/o frases notables que surgieron en la presentación, no duden en dejarlas como comentarios...
2.- El nombre del post se debe a que Visual Padrob Editor 2008 es el nombre que le pusimos a nuestro programa, ya que calzaba bastante bien con lo que es: un editor visual de modelos para Padrob (cualquier similitud con el nombre de la IDE desarrollada por cierta compañía y que curiosamente utilizamos para desarrollar el programa es pura coincidencia)...