
Modern Software Engineering
David Farley
- Editorial
- Addison Wesley
- Año
- 2021
- Páginas
- ~277
- Nivel
- Intermedio
De qué trata
Tratado formativo y conceptual escrito por David Farley (pionero del movimiento de Continuous Delivery) con el objetivo de elevar el desarrollo de software a una auténtica disciplina de ingeniería, fundamentada en el método científico, el empirismo y principios duraderos en lugar de modas o dogmas tecnológicos. Al ser una obra enfocada en principios perennes, no depende de versiones de tecnologías específicas. Está destinada a programadores, arquitectos de software, líderes técnicos y directores de ingeniería de nivel intermedio a avanzado que buscan una base metodológica rigurosa para crear software de mayor calidad con rapidez y previsibilidad.
Farley articula la ingeniería de software moderna en torno a dos actividades esenciales: la optimización para el aprendizaje y la gestión de la complejidad. En el primer bloque profundiza en el trabajo iterativo, la retroalimentación rápida, la entrega incremental, el enfoque experimental y la práctica disciplinada de Test-Driven Development (TDD) y Continuous Delivery (CD) como mecanismos de validación empírica. En el segundo bloque desgrana los principios de diseño que mantienen el software gobernable a medida que escala: modularidad estricta, alta cohesión, separación de responsabilidades (Separation of Concerns), ocultamiento de información (information hiding), abstracción y control riguroso del acoplamiento.
El libro no propone la construcción paso a paso de un proyecto de código comercial ni incluye baterías de ejercicios prácticos; en su lugar, recurre a ejemplos conceptuales, diagramas y analogías de la ingeniería aeroespacial y científica para ilustrar cómo medir y gobernar sistemas complejos. Su mayor aporte reside en desmitificar mitos de la industria y dotar al profesional de una filosofía sólida para evaluar arquitecturas y procesos; deja fuera configuraciones de herramientas específicas, sintaxis de lenguajes o manuales de despliegue. Resulta indispensable que el lector cuente con experiencia previa construyendo software en equipo para apreciar el impacto práctico de sus principios.
- Ingeniería de software
- Continuous Delivery (CD)
- Test-Driven Development (TDD)
- Modularidad
- Cohesión
- Acoplamiento
- Separación de responsabilidades
- Gestión de la complejidad
- Empirismo
- Diseño de software
- Entrega incremental
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

