La biblia del software de Google

La biblia del software de Google es una buena analogía para hablar del libro “Software Engineering at Google”, texto publicado por los ingenieros y evangelizadores de la compañía Titus Winters, Tom Manshreck y Hyrum Wright.

“Más que un libro de programación propiamente tal, este es un libro de las buenas prácticas ingenieriles utilizadas en Google”, dice de entrada Cristian Rozas, Gerente de Proyectos de Fusiona.

Y lo mejor de todo es que el gigante de la búsqueda tiene disponible en línea una versión digital gratuita de Software Engineering at Google, que cualquier interesado puede consultar.

También por supuesto existe la versión de pago en Amazon para quienes deseen incorporar Software Engineering at Google al stack de su biblioteca.

Como aperitivo, en esta nota damos un vistazo a los principales temas de un documento clave desarrollado por una de las empresas que ha modelado el desarrollo tecnológico de las últimas décadas.

Foto de portada de libro Software Engineering at Google.
Puedes encontrar una versión online gratuita del libro que muestra la cultura y el conocimiento acumulado por Google en dos décadas.

Así es el desarrollo de software de Google

¿Cómo construyen y mantienen el software de Google los mejores profesionales del mundo? La respuesta se encuentra en este texto que entrega una detallada visión de la práctica y enseñanza de la ingeniería de software al interior de la multinacional.

¿Cómo gestionan un código gigantesco sin caerse? ¿De qué manera colaboran 20 mil ingenieros en miles de proyectos? ¿Cómo mantienen la calidad de sus sistemas?

Las respuestas a estas y otras preguntas las puedes encontrar en el libro, que si bien en su versión gratuita resulta un poco tosco de leer (solo html y algunos gráficos), es un gran aporte a la cultura informática.

Cultura, procesos y herramientas de los desarrolladores de Google

Cultura de Google

El libro se divide en tres partes principales: cultura, procesos y herramientas. En el primer ámbito, el texto plantea que:

  • Los sistemas no son desarrollados por un genio solitario en una cueva, sino por un equipo. Por lo tanto, la vida o la muerte de cualquier producto depende completamente de qué tan bien pueda tratar con otras personas para lograr un objetivo común. 
  • Piensa siempre en la humildad, la confianza y el respeto que requieren las interacciones sociales.
  • ­Ser un líder de equipo puede ser difícil, especialmente para alguien que solía ser un colaborador individual. El consejo de Google es dejar de medirse por las líneas de código que produces. Mídete por el éxito general de tu equipo.

Procesos en Google

El libro plantea que al diseñar e implementar un sistema de cualquier tamaño, debes considerar los siguientes principios:

  • Tiempo y cambio. Cuánto tiempo estará el código en producción y con qué frecuencia se cambiará con el tiempo.
  • Escala y crecimiento. ¿Cómo estás preparado para el crecimiento de usuarios de tu sistema?
  • Costos. Ten presente que los costos pueden tomar varias formas: tiempo, dinero, etc. Debes estar preparado para monitorearlos, respetarlos y modificarlos rápidamente de ser necesario.
  • Aplica guías de estilo para tener consistencia en el código. Piensa en la corrección, comprensión y legibilidad del código durante las revisiones del código.
  • Ten presente el público objetivo del código al momento de crear cualquier tipo de documentación.

Herramientas para el desarrollo de software de Google

En esta sección, los autores describen un conjunto de herramientas que se utilizan en muchos equipos de la empresa. Para cada herramienta, hay una descripción de la necesidad que resuelve.

Las herramientas varían desde el control de versiones y los sistemas de compilación, hasta herramientas de automatización. 

Xooglers: ingenieros de Google

Los ingenieros de Google suelen autodenominarse Xooglers y lo que hacen en este libro es compartir un plan detallado para muchas de las prácticas y herramientas que sustentan su ingeniería de software.

“Más allá de los procesos y herramientas para el desarrollo de software, este libro pone en nuestras manos la filosofía que siguen los equipos de Google. Poner ese conocimiento al alcance de cualquier persona me parece un gran aporte a la cultura organizacional de las empresas de tecnología modernas”, señala Javier Villagrán, Director de Estrategia Fusiona.

Lo bueno de la tecnología es que nunca hay una sola forma de hacer algo. Y si bien lo más probable es que nunca nos convirtamos en Google, estar familiarizado con su estilo potenciará tu propio desarrollo.

Acceder a un conocimiento fundado en decenas de miles de ingenieros, que han trabajado colaborativamente en el software que ha modelado nuestro día a día desde hace dos décadas, es un conocimiento demasiado valioso para ignorarlo.

“Cada proyecto y producto es único, pero tienen en común que todos tratamos con personas y todos tratamos con computadores. Este libro nos muestra cómo los ingenieros de software de Google han resuelto sus problemas cotidianos administrando una base de código viva respondiendo a los inevitables cambios de manera eficiente”, finaliza Cristian Rozas.

Artículos Relacionados

PWA: qué son y cuándo utilizarlas

Conoce qué es una PWA, sus ventajas y desventajas en comparación con apps nativas e híbridas y cuándo deberías utilizarlas.

06 Septiembre 2023

Explorando plugins de Chat GPT

Explorando plugins de Chat GPT podemos constatar que la Inteligencia Artificial (IA) es más que una novedad pasajera y que…

27 Julio 2023

Headless CMS: el paso evolutivo en la administración de contenidos

Headless CMS o sistemas de administración de contenido sin cabeza, son la respuesta de la industria a los cambios en…

29 Junio 2023

Imágenes IA: ¿sueño o pesadilla?

Las imágenes IA o imágenes generadas por IA, han revolucionado la industria el último año haciendo su aporte a la…

07 Junio 2023

Puntaje nacional para el simulador de becas de la USS

Eliecer Yévenes, director general de servicios digitales de la Universidad San Sebastián, evalúa con máximo puntaje al simulador de becas…

11 Mayo 2023

Ionic framework para aplicaciones móviles

Ionic framework es un popular SDK (software development kit) utilizado para el desarrollo de aplicaciones móviles híbridas, que en el…

04 Mayo 2023