17.9.08

¿Cómo te explico? ¡No funciona!

Hay una discusión que ya decidí nunca voy a ganar. No es un asunto de argumentos, ya que como verá adelante, querido lector, si los hay: a favor y en contra. En fin, como no ganaré nunca y no quiero quedarme con la ira en mi, aquí les va:

¿Qué hace de un software una buena herramienta?

No voy a repetir los argumentos que todos conocen, intuyen o pueden buscar en internet. Baste decir, para los fines de este mensaje, que una herramienta es aquel software que nos permite realizar una tarea de la mejor manera posible.

El problema

Como en la mayoría de los proyectos de TI uno de los principales entregables involucra documentos, este no fue la excepción. Al final del camino fueron cerca de 400 páginas no triviales. En estos documentos se vertieron antecedentes, resultados, planes, etc., cosas que los cinco consultores involucrados trabajaron y desarrollaron a lo largo de tres meses.

¿Cuál fue la solución? Utilicemos OpenOffice, ya ves que es software libre y jala increíblemente bien y podemos utilizar estos bonitos patrones y definir esto y aquello y listo. Para el caso, cualquier cosa que termine en Office hubiera sido lo mismo (créame lo he comprobado, por desgracia).

No se puede editar concurrentemente, no podemos utilizar un sistema de control de versiones, no todos utilizamos "exactamente" la misma versión (en realidad si era "casi" la misma versión, pero en distintos SO) y todos hemos tenido malas experiencias con estas herramientas. ¡No te preocupes, no pasa nada, aquí lo solucionamos todo! Además (ojo, este es el argumento cúspide para SI utilizar *office) todos los clientes utilizan Office y al final les entregas algo que les sirve, que pueden editar, etc.

La hecatombe

Bueno pues, utilicemos eso. Resultado: sufrimiento sin límites para todos los involucrados, pérdida de tiempo de nuestros mejores consultores para "arreglar" o "pelear" con detalles del formato, ¿a dónde se fue el estúpido encabezado? ¿por qué no puedo obligar esta tabla a iniciar aquí, partirse y continuar en la siguiente página? ¿qué onda con los flotantes? En fin, no fue bonito, nunca lo es.

El control de cambios es una broma, el formato más endeble que un kayac en medio de un huracán, el resultado visual final: mediano, en el mejor casos.

Uno termina adaptando su funcionar y la solución al verdadero problema del cliente a la herramienta: en lugar de un único documento, vamos a hacer varios. De esta manera cada uno de los consultores no está ocioso y puede avanzar en su documento y luego intercambiamos para las revisiones y así. ¡No olviden nombrar sus archivos con el número de versión y la fecha! (¿si no, cómo vamos a saber qué versión vamos o de qué se trata?, gosh!) ¿Y si quiero hacer referencias cruzadas a texto, imágenes, diagramas en otros documentos? Ahhh pues di "ver OTRO documento", ¿qué? ¿En serio, sin número de página, así? Si, así. Si le pones número de página al rato van a estar todas mal cuando le hagamos cambios al otro documento.

Recórcholis.

En esto perdimos una cantidad de tiempo exhorbitante y, al menos yo, dejé la mitad de mi salud en enojos y molestias constantes.

Algo mejor es posible

Yo soy fan de LISP (en realidad de Scheme y CommonLISP (en realidad de PLT-Scheme Scheme48 SCSH CommonLISP (en realidad creo que ya entendiste la broma))) y probablemente lo que más me gusta es que el lenguaje se amolda a tus necesidades, es decir, te permite escribir un lenguaje dentro de él mismo, un lenguaje nuevo, que es el lenguaje que necesitas, el que mejor se amolda a tu problema. LaTeX no es, ni por asomo, el LISP de los formateadores de texto, pero se acerca.
LaTeX si puedes trabajarlo de manera distribuida con un sistema de control de versiones, es texto plano, el resultado es tan "apantallante" como quieras (aquí uno de los argumentos en favor de las suites de oficina es que puedes integrar distintas cosas como hojas de cálculo, imágenes, gráficas, etc. (en LaTeX también puedes y es, probablemente, más difícil, pero a la larga el resultado es mejor, más estable, menos estrés, menos odio a la herramienta)), puedes trabajar un documento maestro (en serio) y tener al sistema de versiones manejando los conflictos con las ediciones simultáneas en documentos esclavos, las referencias cruzadas, índices, tablas, etc. siempre, siempre, siempre van a salir bien, etc.
"A ver, a ver, ¿pero qué le entregas al cliente?" siempre preguntan los promotores de *office. Le entregas un bonito PDF, los fuentes de LaTeX y, si fuera necesario, (1) lo educas para que sepa que hacer o (2) le regalas un Acrobat Pro, le conviertes el texto a .doc, .odt, .txt o algo que pueda/quiera manejar. Seguro pierdes la mitad del tiempo y eres más feliz.