righting-software-book-main.jpg

Righting Software, reseña de libro: bloques de construcción para arquitectos de software

Righting Software: A Method for System and Project Design Por Juval L 枚 wy Addison-Wesley Professional 444 páginas ISBN: 9780136524007 $ 49.99 / 拢 37.99

En un mundo donde las herramientas de código bajo y sin código significan que casi cualquier persona puede crear una aplicación, la mayoría del software sigue teniendo errores. Gran parte de él se reescribe repetidamente y es difícil de mantener, a pesar de que el desarrollo de software siempre está en movimiento. Es posible que las marchas de la muerte se hayan intercambiado por historias ágiles y entregas continuas, pero los plazos y estimaciones para el software aún parecen difíciles de precisar.

Dado que el software de un tipo u otro ahora impulsa todo, desde automóviles hasta equipos médicos, infraestructura de servicios públicos y comercio de acciones de alta frecuencia, ¿seguramente podemos mejorar en su construcción?

¿Cuál es la causa principal de todo este software costoso, con errores y complejo que se entrega tarde, es difícil de mantener y no hace lo que realmente necesita hacer? “Diseño deficiente, ya sea del propio sistema de software o del proyecto utilizado para construir ese sistema”, dice Juval L 枚 wy en Software de corrección: un método para el diseño de proyectos y sistemas. Naturalmente, tiene una alternativa.

Pero no se deje intimidar por las páginas de elogios exagerados para las clases del autor con las que se abre este libro (incluso antes de llegar al colofón o al índice), que hacen que lo que el autor llama ‘El método’ suene más bien como un dieta milagrosa o el último superalimento a base de hierbas. La evaluación bastante brutal del estado de la mayor parte del desarrollo de software en el prefacio es una introducción mucho mejor a un libro que no se trata de codificación, ni siquiera de desarrollo, sino de ingeniería de software estructurada y basada en sistemas.

Si el juego de palabras en el título suena familiar, se remonta a un artículo de investigación de Microsoft sobre las herramientas de análisis estático en uso en Microsoft a principios de la década de 2000: el enfoque de L 枚 wy está en un nivel completamente diferente, y se trata de diseño.

El papel del diseño en general en los negocios, a diferencia del diseño industrial, la tipografía o la creación de interfaces de usuario, ha recibido mucha atención en los últimos años, y todos, desde Uber y Atlassian hasta IBM y McKinsey, han contratado diseñadores. mucho (o adquiriendo empresas de diseño) para llevar el “pensamiento de diseño” a más productos.

En el nivel más alto, el método es sencillo: diseñe el sistema en unos pocos días, utilizando un árbol de decisiones para asegurarse de que las decisiones de diseño posteriores no descarrilen las cosas y no diseñen según los requisitos, sino que proporcionen el conjunto más pequeño de componentes que puede ofrecer una destilación de los casos de uso principales; luego, valide el diseño a fondo, comunique claramente no solo cuál es el diseño, sino por qué se eligió, y administre el proyecto con la misma minuciosidad.

Dogmático

Profundizar en los detalles revela que L 枚 wy tiene muchas opiniones sobre algunas prácticas de diseño de software, desde evitar la descomposición funcional y de dominio hasta las convenciones de nomenclatura de servicios. La primera mitad del libro cubre los principios de diseño de software, incluida una idea bastante novedosa que él llama ‘volatilidad’: encontrar lo que es más probable que cambie y encapsular ese componente para que pueda cambiarlo con el menor impacto en el resto de la arquitectura del software. . Esté preparado para una cierta cantidad de repeticiones; al autor le gusta presentar ideas y luego retroceder para desarrollarlas en un capítulo posterior.

Los ejemplos del “ mundo real ” de todas las peores formas de construir una casa son quizás bastante exagerados (las metáforas analógicas para el ámbito digital no son particularmente útiles), pero transmiten la idea de que se realizan rutinariamente cantidades absurdas de reelaboración en el desarrollo de software sin empantanarse en discusiones sobre lenguajes y marcos específicos. Mucho más útil es la arquitectura del sistema de muestra basada en un proyecto de desarrollo de software real en el que participó la consultora IDesign del autor, especialmente la forma en que cubre las comunicaciones y la alineación comercial como parte del proyecto, porque el desarrollo de software no se realiza en el vacío.

¿Qué es DevOps?  Una guía ejecutiva para el desarrollo ágil y las operaciones de TI

¿Qué es DevOps? Una guía ejecutiva para el desarrollo ágil y las operaciones de TI

Para aprovechar al máximo los contenedores, servidores, máquinas virtuales y nubes actuales, debe implementar DevOps en su empresa. O puede dejar que sus rivales le saquen del negocio. Es tu elección.

Lee mas

De hecho, toda la segunda mitad del libro profundiza en los detalles del diseño de proyectos que normalmente se dejan a los gerentes de proyectos formales: planes de personal, presupuestos y estimaciones, análisis de ruta crítica, planificación del valor ganado y otras técnicas para comprender la planificación y el costo de recursos y tiempo. administración. Ninguna de estas son ideas nuevas en tecnología. Como señala L枚wy, se remontan a las líneas de producción de DuPont y a lo que General Electric aprendió al diseñar el GE-225, posiblemente la primera computadora comercial basada en transistores. Pero serán novedosos para muchos desarrolladores y arquitectos de software.

Dada la creciente comprensión de que el desarrollo de software es un deporte de equipo, es decepcionante que no haya nada sobre la diversidad o el lado humano de la gestión de proyectos aquí. Los gerentes no técnicos son descartados por no comprender cuán duro es el diseño de software, mientras que el equipo de desarrolladores es tratado como recursos sin rostro; todo lo que recibimos es un consejo para asignar componentes interactivos a los desarrolladores que trabajan bien juntos (lo que plantea otros problemas sobre la contratación para adaptarse a la cultura en lugar de las habilidades).

Otra pregunta es qué tan bien entenderá algo como el riesgo después de leer un solo capítulo sobre él. Además, el análisis del diseño del proyecto de la arquitectura del sistema de muestra se divide extrañamente en una sección bastante abstracta y menos identificable y luego en un recorrido posterior más detallado. El Método espera que los arquitectos de software adquieran habilidades que a menudo serían certificaciones en otro campo, pero nuevamente, las cuestiones más amplias de la profesionalización de la ingeniería de software no se exploran realmente. Es posible que parte de este material sea más útil como parte de una de las clases que imparte IDesign, o como una introducción para futuras investigaciones por parte del lector (es una pena que no haya una lista de lectura sugerida para esto en el libro).

Autorreferencial

Las notas al pie contienen demasiadas referencias tanto a Wikipedia como a otros escritos de L 枚 wy, mientras que las leyendas están abarrotadas de créditos para los servicios de imágenes de archivo por alguna razón. Además, el hábito de L wy de acuñar sus propios términos para conceptos como dar a los gerentes múltiples opciones para elegir y combinar estimaciones de un amplio grupo de personas, significa que de repente estás leyendo sobre la opcionalidad y la banda ancha con significados completamente diferentes de los reales. definición.

Muchas de las referencias son clásicos: la ley de Parkinson, Dunning-Kruger, Fred Brooks (de El mes mítico del hombre), David Parnas inventó el diseño de software modular en 1972. De hecho, aparte de una referencia al Brexit como un ejemplo de cambio inesperado que la arquitectura de software de muestra tuvo que hacer frente, y una demolición completa de microservicios propensos a una granularidad excesiva (un punto hecho por muchos defensores de los microservicios), hay poco aquí que no se podría haber escrito hace 20 años. L 枚 wy toca los patrones de actores (como se usa en Project Orleans) como una tendencia emergente, pero no se mencionan DevOps, canalizaciones de CI / CD, pruebas A / B, sistemas distribuidos o metodología ágil. Estos no son necesariamente incompatibles con The Method, simplemente no son el nivel de arquitectura de software del que habla L 枚 wy.

VER: Principales certificaciones de TI para aumentar su salario (PDF gratuito)

Sin embargo, esto no es simplemente un desarrollo en cascada formalizado, a pesar del énfasis en el diseño inicial: incluye consejos de gestión de proyectos para lidiar con lo inesperado, aunque parece que la suposición es que la mayor parte provendrá de la dirección.

Software de correcciónno es solo un libro para quienes han asistido a las clases que produjeron los encomios que llenan sus primeras páginas. Dicho esto, tanto esas clases como la capacitación sobre las técnicas de diseño de proyectos probablemente le darán a cualquiera que adopte el enfoque estructurado y riguroso que documenta una mayor probabilidad de éxito. El Método está muy dirigido a la ingeniería de sistemas: no es la única solución posible, pero si su organización no tiene un sistema exitoso para el diseño y desarrollo de software, estos métodos ‘probados y verdaderos’ pueden sacarlo de un agujero. incluso si no está de acuerdo con todas las opiniones fuertes.

CONTENIDO RECIENTE Y RELACIONADO

Microservicios: la base de las aplicaciones empresariales del mañana

¿Qué quieren los desarrolladores de software? Una oportunidad para aprender y una cultura corporativa decente.

Lenguajes de programación: los desarrolladores revelan lo que aman y detestan, y lo que se paga mejor.

Project Reunion: a la estrategia de aplicaciones unificadas de Microsoft todavía le falta una pieza

Microsoft: este es el motivo por el que amamos el lenguaje de programación Rust y lanzamos Project Verona

Leer más reseñas de libros

  • Adventures of a Computational Explorer, reseña de libro: el mundo de Wolfram, en 25 ensayos
  • Computadoras domésticas: 100 iconos que definieron una generación digital, reseña de un libro
  • Los costos de la conexión, reseña del libro: una visión más amplia del capitalismo de vigilancia
  • Speech Police, reseña del libro: Cómo recuperar un paraíso democrático perdido
  • Nano Comes to Life, reseña del libro: Pequeños pasos hacia un salto gigante
  • Defender la democracia en un mundo posverdad lleno de inteligencia artificial, realidad virtual y deepfakes

Similar Posts

Leave a Reply