Entrevista: Grady Booch

Publicado en

Grady Booch es Chief Scientist, Software Engineering en IBM Research. Recientemente compartió con SG un poco de lo que está haciendo, así como su perspectiva sobre tendencias en el software.

Aclaramos que en el ámbito de esta entrevista, cuando nos referimos a la “ingeniería de sistemas” estamos hablando de la disciplina general de todo tipo de sistemas, no necesariamente informáticos.

¿Por qué está cobrando importancia la ingeniería de sistemas y el enfoque de “sistemas de sistemas”?
La ingeniería de sistemas tradicional es una disciplina que existe desde hace tiempo. El problema es que está basada en ingenierías físicas (mecánica, electrica, etcétera) y no considera el software. Pero lo que está sucediendo es que el software cada vez es un componente más importante dentro de estos sistemas. El mundo está aprendiendo a lidiar con esto, con cómo aprovechar el software para integrar sistemas y generar sistemas de sistemas. Tal vez el primer grupo que se encontró con esto fue la industria militar, conforme han ido desarrollando armas inteligentes y cosas del estilo. La industria aeroespacial también ha aprendido a crear y manejar sistemas de sistemas intensivos en software. Creo que hay mucha experiencia de eso que podemos aprender. Un ejemplo es el caso de la industria automotriz, me ha tocado hablar con gente de las principales empresas productoras de automóviles y me dicen “tenemos estos productos super sofisticados y el software cada vez forma una mayor parte de ellos, pero no sabemos cómo considerar estas capacidades que brinda el software, dentro de nuestros esfuerzos de desarrollo de productos. El mundo está aprendiendo a entender esto.

¿Los sistemas de sistemas son lo que habilitan la visión de un “planeta inteligente”?
Sí, creo que eso es verdad. Hay mucho software por hacer, y eso me emociona aunque al mismo tiempo me da algo de miedo, ya que cada vez hay más sistemas de software de los que dependen vidas humanas.

¿Que opinas de la noción de “artesanía de software”?
Creo que es una buena idea. Considero que en varias maneras el software se asemeja a la literatura. El buen software se siente como una artesanía. Soy parte del consejo del Computer History Museum, y una de las cosas de las que los convencí es que no solamente fueramos un museo del hardware, sino también del software. Así que hemos estado recopilando piezas de software y código fuente muy interesantes y representativas. Yo acostumbro preguntar a los académicos si en sus universidades dan clases de lectura de software y es raro el que me dice que sí. Eso es un problema, porque ¿cómo podemos aprender a escribir buen software sino estudiamos el software de otros?”. Considero que en nuestra industria y en las instituciones académicas debemos impulsar la práctica de análisis literario de software.

¿Podrías mencionar algún software “bello” con el que te hayas encontrado?
Uno de los mejores códigos con los que me he encontrado es el de las primeras Macintosh. Casi me trae lágrimas a los ojos (risa).

¿Cómo calificas si un código es bueno?
No estoy seguro, creo que simplemente lo conoces cuando lo ves. Kent Beck, de la comunidad ágil, acuñó el término de “code smell” para referirse a síntomas del código fuente que típicamente implican problemas en su programación. Entonces, podría decir que para mí, un buen código es aquel que “no huele”, es relativamente consistente y se lee facil, no solo por su organización (espacio, indentado), sino por su nomenclatura y sintáxis.