viernes, febrero 25, 2005

Termina Febrero

Febrero está terminando, lo cual implica que es momento de celebrar dos eventos muy importantes en mi vida, en los cuales no estoy (estuve o estaré) involucrado directamente, pero sí han afectado positivamente mi vida.

El primero de ellos, es el inicio de la nueva temporada de Fórmula 1. Desde que recuerdo la F1 ha llamado mi atención, para prueba, una foto de cuando tenía 2 años y estaba recibiendo de regalo un Lotus de los 60's a escala, probablemente de Jim Clark. Durante mi infancia y adolescencia era un fan casual que veía unas pocas carreras al año, recuerdo el primer podium de Schumacher en el Hermanos Rodríguez en el 92. Y también recuerdo que los comentaristas decían que ese muchacho tenía futuro; yo estaba plenamente convencido de que nunca podría igualar a Prost o a Senna (¿Quien, de niño, no tendría como héroe de su infancia a Ayrton Senna?). El caso es que me equivoqué, y ahora el inicio de marzo marca sólo la pequeña emoción producida por la incertidumbre de una nueva oportunidad (la cual desaparece en abril) para que Michael Schumacher sea derrotado por alguien (Häkkinen, te extrañamos); y es que ya es hora, con más de 80 carreras ganadas en la máxima categoría ya extrañamos los podiums con himnos nacionales distintos a los de Alemania e Italia. De hecho, sólo en la temporada pasada Schumacher ganó 13 carreras, las mismas que ha ganado David Coulthard en 10 años y que le valen para ser el piloto activo con más triunfos después de Michael.
Ahora el bien, el dominio de Schumacher ha sido tal que sólo quedan 2 tipos de espectadores para la F1:
1) Los tiffosi y
2) Quienes quieren ver perder a Schumacher a toda costa.
y desafortunadamente ha alejado a todos los fans de muchos otros pilotos y a quienes se aburren de ver ganar a Michael. Yo no soy tiffosi, pero tampoco estoy catalogado en el segundo grupo, (aunque tengo que admitir que hay cierto placer mórbido cada vez que Schumacher comete un error y pierde la posibilidad de ganar una carrera). De hecho tuve que cambiar de compañía de televisión por cable porque Telemedia ya no transmite Fox Sports. El compromiso es tan grande que decidí decir adiós a Locomotion con tal de ver la F1 en vivo en la tranquilidad de mi casa, y poder brincar, llorar, gritar y en general actuar de manera ridícula (como lo hace esa extraña sub-especie humana que son los fánaticos deportivos) sin estar expuesto a la crítica de quienes siguen en su sano juicio.
Para esta temporada mis predocciones para la F1 son:
Peleando por el campeonato: M. Schumacher, Montoya, Raikkonen, Button
Peleando por ganar una o dos carreras: Fisichella, Alonso, Heidfeld, Barrichello
Peleando regularmente por los Podiums: Sato, Webber
Sorpresivamente uno o dos podiums: Coulthard, Trulli, R. Schumacher, Massa, Villeneuve
Media tabla hacia abajo: Klien, Pilotos de Jordan
95% de desempeño con 10% de presupuesto: Pilotos de Minardi.

En octubre veremos que tanto me equivoqué.

El segundo evento, y mucho más importante que la Fórmula 1, es el cumpleaños de mi madre quien, además de mí vida, me ha dado la suya para apoyarme en cada cosa que emprendo. Ella es la responsable de todo lo bueno que hay en mí (de lo malo yo me hago cargo). ¡Felicidades Mamá!.
Gracias.

domingo, febrero 20, 2005

Reingeniería o Refactoring

La mayoría de mis amigos saben que soy aficionado al automovilismo, pero principalmente a la Fórmula 1. Realmente no recuerdo cuando empecé a ver las carreras de F1 supongo que fue hace muchos, muchos años por Imevisión. Hoy no voy a hablar estrictamente de las carreras, pero sí de que me intriga la manera en como trabajan los ingenieros de esos autos.

Recuerdo un comentario de Ron Dennis, CEO de McLaren, quien decía que prefería tener un auto rápido y que fallara de vez en cuando, que uno lento y confiable. Mencionaba que para McLaren era más fácil resolver los problemas de confiabilidad de un auto rápido, que resolver los problemas de velocidad de un auto lento. Todo esto encaja perfecto con la filosofía del equipo, quien siempre se ha caracterizado por tener los autos más veloces y competitivos de la categoría. También recuerdo alguna vez a Eddie Jordan, hasta hace poco dueño de Jordan Grand Prix, diciendo que prefería tener un auto que no se rompiera, argumentando que para ganar una carrera primero había que terminarla. Esa filosofía los llevó en 1999 al tercer lugar en el Campeonato de Constructores y a un sorpresivo tercer lugar en el Campeonato de Pilotos con el ahora piloto de DTM Heinz-Harald Frentzen.

Ahora bien, independientemente de que las cosas vayan bien o vayan mal, el ciclo de vida de los autos en la Fórmula 1 es un tanto caprichoso. Es decir, en enero y febrero se presentan los autos nuevos que competirán en el campeonato que iniciará en marzo. Pero muchos equipos, para mayo o junio, ya han sacado la versión A, B, II, 2 ó MK8228-Robobestia-Destruye-Mazzingers-y-Ferraris (dependiendo de la nomenclatura que siga cada constructor), con lo que se pretenden corregir problemas de confiabilidad (quienes tienen autos que se rompen), problemas de velocidad (quienes tienen autos que no avanzan) o problemas de personalidad (quienes tienen autos introvertidos). Todo esto mientras Ferrari sigue ganando tres de cada dos carreras.

Aún así, a final del año, el auto será desechado para construir uno mejor para el año siguiente. Se invierten miles y miles de horas/hombre en el diseño de cada auto, y unos meses después se reemplaza por algo que es, en gran medida, completamente nuevo. Y es que, utilizando términos de ingeniería de software, los autos son altamente cohesivos, pero también tienen mucho acoplamiento. Siendo un tanto simplista, quiere decir que un cambio en un componente, generalmente requiera cambios en muchos otros también.

Y una vez que he llegado a esa analogía, me he estado preguntando si se podría hacer una comparación entre la ingeniería de autos F1 y la ingeniería de software. Es decir, existe la reingeniería de software, y existe el refactoring para arreglar el código, pero una vez que los sistemas están implantados y funcionando, se vuelve relativamente complejo darle mantenimiento y se va deformando poco a poco hasta que la aplicación se transforma en un monstruo a quien todo el equipo de desarrollo teme (Me han contado).

¿Qué tan factible sería que el equipo de desarrollo entregara una versión terminada del software y conforme pasara el tiempo, el equipo de mantenimiento adecuara el sistema a los nuevos requerimientos, mientras el equipo de desarrollo trabajaría en la nueva versión (y no una actualización más) que sustituiría por completo a la versión antigua?

Nos hemos dado cuenta que dar mantenimiento a un software es muy costoso y es algo que no se puede predecir al firmar el contrato y no siempre se puede cobrar como debería. Y lo que obtenemos al final es un sistema lento o poco confiable (si bien nos va, sólo tenemos uno de los dos problemas (no hablemos de los problemas que se tienen cuando el auto(o el software) se comporta de manera inesperada en la pista (o en la computadora) resultando en un desempeño poco competitivo (y terminando con un auto como servidor de bases de datos y una computadora en cuatro ruedas con casco en vez de monitor(que por cierto obtienen mejores resultados)))). Se debería vender el sistema dos veces, la versión uno funcionaría medio o un ciclo completo de transacciones de la empresa (normalmente un año). Entraría a los pits periódicamente para ajustes y reparaciones, pero al cumplir el plazo, el software regresaría a los pits para nunca más salir a la pista. En su lugar se echaría a andar la segunda versión la cual ya habría aprendido a sortear los problemas a los que se enfrentó la versión uno, además de que sería más confiable, rápida y, muy importante, más fácil de reparar cada vez que ingresara a los pits.

En la Fórmula 1 funciona, 2 equipos de desarrollo trabajan sobre autos distintos, uno para explotar el actual a su máximo potencial y otro trabajando en el que sustituirá al primero. El ciclo se repite y terminamos teniendo un auto que corre durante 6 meses, pero se trabaja en él durante un año. Tal vez eso sea lo que necesita el software, puede ser que el cliente termine pagando un poco más, pero también tendrá un producto final tanto confiable como veloz, que es lo mismo que buscan los equipos de F1. Por otro lado, esto no ha impedido que Ferrari gane los últimos seis Campeonatos de Constructores, ni que Schumacher haya ganado los últimos cinco Campeonatos de Pilotos, tal vez exista un error en esta filosofía. Puede ser que ni McLaren esté excento de problemas de calidad. Tal vez yo esté intentando corregir el hilo negro (ya antes lo había inventado(un poco antes de reinventarlo)). Quizá haciendo refactoring se evite que el software termine en la trampa de arena o averiado a mitad de la pista sin posibilidad de reparación. Son demasiadas posibilidades, pero hay 3 verdades absolutas (y simples) en el blog de hoy:

1) Hasta Minardi evoluciona constantemente sus autos.

2) No se ha comprobado que las metodologías ágiles para el desarrollo de software diseñen un mejor auto de F1.

3) Siempre se puede hacer una analogía con la Fórmula 1.

miércoles, febrero 16, 2005

AUTOMÓVIL = EMOCIÓN. Ford Ka

Desde que recuerdo, mi mente siempre ha mantenido una liga muy estrecha entre los significados de las palabras ‘automóvil’ y ‘emoción’.

Cuando era niño, casi bebé, mi padre tenía un Chrysler Super Bee, color vino, motor V8 de 360 pulgadas cúbicas y 300 caballos de fuerza. Suficiente para decir que ha sido el auto más potente en el que yo haya viajado. Para mi desgracia realmente no me recuerdo en él, pero cada vez que veo una fotografía de ese bebé que alguna vez fui, recostado en el asiento trasero (o en los brazos de mi madre en el asiento delantero) puedo observar en mí una sonrisa estilo Crash Bandicoot (o más estúpida).

Supongo que fue entonces que inició mi gusto por los automóviles, y para la corta edad que tenía, hasta podría decir que el gusto viene implantado en mi código genético y aún así no mentir.

Y no es para menos, el único otro auto en el que he viajado y que se le asemeja en velocidad al Super Bee es un Chrysler Phantom que sufrió –literalmente– un par de modificaciones en el turbo para hacerlo un poco más veloz, y no es que antes de los ajustes fuera lento, pero en lo que se refiere a caballos de fuerza, nunca hay un ‘suficiente’. Bueno, para la caja de velocidad sí lo hubo, pero ese será un tema que posteriormente tocaré.

Dos Chrysler's, casi hasta podríamos decir que el segundo es el nieto del primero, con el Chrysler Magnum de inicios de los 80’s como el padre y el mítico Dodge Charger de los 60’s y 70’s como el bisabuelo. Extrañamente en la familia de mis padres –aclarando que en mi árbol genealógico son personas y no autos– siempre ha existido predilección por los autos de la marca del óvalo azul; y con los problemas que los Chrysler's han dado –un fuerte accidente que sufrió mi padre en el Super Bee, y un empleo de tiempo completo para el mecánico del Phantom– no los culpo.

Normalmente Ford no se caracteriza por fabricar los autos más emocionantes, a menos que la emoción que busquemos sea ‘aburrimiento’, y es que actualmente manejo un Escort, y antes manejé un Tempo y aún antes de eso, un Topaz. Ninguno de los tres es particularmente excitante, no sin gastar una fortuna en modificaciones como las que permite el juego Need for Speed Underground o el Gran Turismo. No es coincidencia que en esos juegos no se hayan licenciado ninguno de los tres autos, a fin de cuentas, ¿quién querría jugar con un Topaz modificado?

Pero llegó el año de 1996 a Inglaterra –después nos daríamos cuenta que también llegó al resto del mundo– y el Ford Ka vio la luz del mundo, El primer micro-carro de Ford fue todo un éxito en tierra británica, con su motor de 1.3 litros y 65 caballos de fuerza su aceleración no era exactamente la de un cohete. Pero sus 3.5 metros de largo lo hacían ideal para el tráfico citadino, no era exactamente un Mini, pero estaba muy cerca de serlo. El nivel de equipamiento era algo nunca antes visto para autos tan pequeños, estéreo con CD, aire acondicionado, quemacocos, vidrios y seguros eléctricos, hasta tacómetro tenía. Pero lo más interesante era su manejo. La suspensión firme y su bajo peso lo hacían muy ágil, era como manejar un go-kart de 800 kilos.

Los ingleses gozaban con el Ka y nosotros lo único que podíamos disfrutar era el Gran Turismo 2 y las revistas que hablan de autos europeos. Tuvieron que pasar 5 años para que Ford trajera el Ka a México. Si bien las opciones de equipamiento eran sólo las más bajas que se ofrecían en Europa, el motor sí fue reemplazado por uno más grande.

Aún cuando 1.6 litros y 8 válvulas no es –ni fue, ni será– el estado del arte en motores, los 96 caballos de fuerza que produce son suficientes para mover los 800 kilogramos del auto con más facilidad que su equivalente europeo. Tanto así que la versión Europea de 2004 con motor 1.6 es nombrado SportKa.

Afortunadamente en 2001 mis padres decidieron comprar un Ford Ka para mis hermanos, y he tenido la oportunidad de manejarlo en ciudad y en carretera. La velocidad máxima que me ha tocado experimentar en el Ka plateado es de 175 kilómetros por hora, y tal vez podría llegar a 180 si se eliminara el peso muerto: juego de herramientas, laptop de la empresa, circuito de frenos, balatas, discos, etc. Y es que el manejo del auto es tan preciso que nunca es necesario frenar para tomar una curva, vayas a 100 o 150 km/h el auto parece agarrarse al piso con más eficiencia que Elektra a las quincenas de los trabajadores.

Puede ser que en línea recta muchos otros autos sean más rápidos que el Ka, y realmente a él no le importa. ‘Cualquiera puede ser rápido en una recta’ se le ha escuchado decir, ‘el arte está en ir rápido cuando las rectas terminan.’. En una autopista de cuota, el Phantom se comería al Ka aún antes de pasar por la primera caseta de cobro, pero en una carretera sinuosa de dos carriles, ni el turbo Garret modificado del Chrysler ayudaría a evitar que el Ford se perdiera de vista en el horizonte, para nunca volver a ser visto.

Sin embargo, el pequeño corredor tiene sus defectos, el principal de ellos es la modificación que sufrió la puerta trasera en 2002 en pro de la ‘actualización’; ¿‘actualización’? actualización mis… mis-oftware. Las luces traseras de los modelos recientes hacen que se rompa la armonía visual que el auto tenía en 2001 y la posición de la puerta esconde algunos ángulos que el medallón y el bastidor formaban para armonizar con el resto del diseño ‘New Edge’ –El Ka fue el primero con ese estilo de diseño–. Supongo que a Ford no le alcanzó para contratar a un mejor diseñador y es que el auto se vende a un precio muy bajo, por menos de cien mil pesos, es uno de los autos con mejor relación valor-precio (si no es que el mejor) que se puede comprar en México.

La vida da muchos giros, y hace 6 años yo estaba convencido de que el Phantom era un auto espectacular, y realmente lo es, sólo que la emoción a la que está ligado es a la ‘angustia de no saber si saldrá de la cochera sin fallar’. Mientras que el Ka está relacionado con la emoción a la que estamos llamados todos los seres humanos: ‘Felicidad’.