Rigel en Inglaterra

viernes, julio 10, 2009

Capacidad de convicción

En los últimos dos meses he pasado gran parte del tiempo discutiendo con ingenieros de hardware. La discusión más encarnizada que tuve duró cosa de dos semanas.

Resulta que el hardware con el que estábamos trabajando tenía cierta limitación hasta el momento no había sido un gran problema pero que sabíamos que lo sería en un futuro cercano. El manager del equipo de hardware insistía en que teníamos que solucionar el problema de alguna manera mediante software. Los ingenieros de software le respondían que iba a ser muy costoso tanto en tiempo de desarrollo como en rendimiento. La tensión era palpable y ninguno de los 15 ingenieros implicados sabían cómo salir del atolladero.

En esto que le pregunto de qué se trata el problema a Andy Gruber, el arquitecto jefe de la GPU de la Xbox 360. Él me lo explica, y pensando un poco en ello se me aparece una lucecita encima de la cabeza. ¡Eureka! Sé cómo solucionar el problema, y la solución además es más eficiente y más elegante que el diseño actual.

Entonces escribo un email largo explicando este nuevo diseño, por qué soluciona la limitación anterior, por qué es correcto en todos los casos, y por qué es más eficiente. El manager del equipo de hardware me responde diciendo que el algoritmo es tan desastroso que no funciona en ningún caso.

¿Me amedrento? ¡No! Le respondo por qué su análisis es erróneo, y escribo una prueba semi-formal de por qué el diseño que propongo es correcto en todos los casos. El tío todavía se resiste, y encuentra un error en el algoritmo que propuse. La idea fundamental era correcta, pero cometí un error en la implementación.

Tras dos semanas de discusión y de convencer a varios ingenieros uno por uno, finalmente el manager admite que el nuevo diseño funciona, no tiene pegas y da mejor rendimiento que el anterior. Todo un éxito, ¿verdad?

Pues todavía hay más: hoy recibí un email que dice que la empresa va a intentar patentar la idea. No es particularmente compleja, pero los ingenieros implicados piensan que es patentable. Así que hay una pequeña probabilidad de que haya una patente de hardware conjunta con mi nombre escrito en ella.

La situación me parece de lo más graciosa. El manager pasó de pensar que la idea era completamente equivocada a pensar que deberíamos patentarla en menos de un mes. ¿Y qué diablos hago yo en una patente de hardware?

Esto también tiene relación con la entrada anterior. El motivo de que un ingeniero de software puede colaborar en el diseño de hardware es porque en el fundamento de ambas disciplinas es la computación, y ambos tipos de ingenieros pueden colaborar y entenderse. A fin de cuentas todos estamos hablando dialectos distintos de un lenguaje común.

2 Comments:

  • Estarás contento, aumentando o número de noxentas patentes.

    By Anonymous calvaris, at 11:24 a. m.  

  • Es una reflexion que yo tambien he hecho. Por otra parte, si la empresa me paga es entre otras cosas porque gana dinero con las patentes que posee. No se a ti, pero a mi me gusta tener un buen salario.

    Segundo, si la patente sale adelante los que estemos implicados sacaremos un pellizco. Te parece mejor o peor si te digo que donare a una ONG el dinero que saque con ello? Porque a la ONG seguro que le importa un pimiento de donde procede la donacion.

    By Blogger Rigel, at 5:05 p. m.  

Publicar un comentario

<< Home