
Software Engineering at Google
Titus Winters, Tom Manshreck, Hyrum Wright
- Editorial
- O'Reilly
- Año
- 2020
- Páginas
- ~602
- Nivel
- Intermedio
De qué trata
Obra enciclopédica escrita por los ingenieros de Google Titus Winters, Tom Manshreck y Hyrum Wright que sintetiza los principios, herramientas y procesos que permiten a la compañía mantener vivo y escalable su inmenso ecosistema de código a lo largo de décadas. El texto se articula en torno a la premisa de que la ingeniería de software es 'programación integrada a lo largo del tiempo', por lo que trasciende versiones puntuales de software para exponer directrices aplicadas a sistemas de escala masiva (con el contexto tecnológico de 2020). Está orientada a ingenieros de software intermedios y senior, líderes técnicos y responsables de ingeniería con experiencia en desarrollo colaborativo en equipo.
El contenido se organiza rigurosamente en cultura organizativa, procesos y herramientas internas de ingeniería. Analiza la Ley de Hyrum, los tres pilares del trabajo en equipo (humildad, respeto y confianza), la cultura de post-mortems sin reproches (blameless post-mortems) y el programa formal de legibilidad de código (Readability). En el apartado de procesos, profundiza en las revisiones de código (code reviews), clasificación de pruebas por escala (small, medium, large), políticas de desaprobación (deprecation) y uso de dobles de prueba con preferencia por fakes sobre mocks. En la sección de herramientas, documenta el flujo en un monorrepositorio masivo con Piper y CitC, el sistema de compilación distribuido Blaze (base de Bazel), la herramienta de revisión Critique, el análisis estático automatizado con Tricorder, la ejecución de cambios a gran escala (LSC con Rosie) y el sistema de gestión de cómputo Borg.
El volumen no incluye ejercicios de programación ni proyectos de laboratorio para construir aplicaciones; su valor reside en exponer las lecciones aprendidas y los compromisos (trade-offs) de ingeniería tras veinte años operando a hiper-escala. Aporta una perspectiva insustituible sobre la sostenibilidad del código, la amortización de costes técnicos y cómo las políticas de ingeniería deben escalar de forma reproducible. Deja claro que muchas de las soluciones e infraestructuras internas propietarias de Google no son directamente transferibles a organizaciones pequeñas o medianas, aunque sus fundamentos culturales y organizativos resultan universales. Es aconsejable poseer experiencia práctica en control de versiones, integración continua y dinámicas de revisión de código para extraer todo su provecho.
- Ingeniería de software a escala
- Cultura de ingeniería
- Code Review
- Ley de Hyrum
- Bazel / Blaze
- Monorrepositorios
- Pruebas unitarias y dobles de prueba
- Análisis estático (Tricorder)
- Large-Scale Changes (LSC)
- CI/CD
- Blameless Post-Mortems
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

