El desarrollo de software se refiere a un conjunto de actividades de las ciencias informáticas dedicadas a diseñar, crear, probar, dar soporte y desplegar software. Los ingenieros de software construyen programas, prueban software nuevo, reconocen las necesidades de los usuarios y mejoran el software existente. La comunidad de desarrollo de software experimenta cambios rápidos y constantes que hacen que el aprendizaje continuo sea esencial para la carrera de un desarrollador.
Trabajar en el desarrollo de software puede ser una gran carga. Normalmente, los desarrolladores se preguntan si deberían leer libros para ser mejores en el desarrollo de software. Pero, la verdadera pregunta que debería hacerse es: «¿Qué libro debería leer para trabajar en el desarrollo de software?». Tenga en cuenta que leer libros no le convertirá en un mejor desarrollador. Eso requerirá años de experiencia y práctica. Pero, a través de su lectura, adquirirá una visión de los principios rectores que pueden aplicarse y aprenderá a evitar errores comunes durante el proceso de desarrollo.
He aquí algunos libros para trabajar en el desarrollo de software. La lista está incompleta, ya que siempre hay libros nuevos y mejores. Pero es probable que éstos tengan un impacto más significativo en su carrera de desarrollo de software.
- El programador pragmático: De Journeyman a Maestro
Libro de David Thomas, Andrew Hunt
Escrito y publicado por David Thomas y Andrew Hunt, Pragmatic Programmer trata de evitar los problemas típicos de la dinámica de equipo y la gestión de proyectos, así como los procedimientos fundamentales del desarrollo de software. Los autores analizan los problemas habituales que llevan por mal camino a los equipos de desarrollo. Uno de los escritores, Andrew Hunt, dijo: «la tecnología ha cambiado, los nombres han cambiado, pero los problemas, los enfoques erróneos y los factores que provocan dificultades siguen siendo visibles».
El libro está repleto de orientaciones profesionales y técnicas para desarrolladores, como escribir código flexible o dirigir a su equipo en un proyecto. Aunque escrito hace dos décadas, el libro sigue justificándose en muchos aspectos. Le enseña de forma pragmática con consejos para mejorar el proceso de desarrollo. Por ejemplo, los autores aconsejan aprender un editor de texto y comprender plenamente sus conceptos, y aprueban la utilización de software de seguimiento de versiones incluso en proyectos a pequeña escala. Tanto si es un desarrollador novel como uno experimentado, puede aplicar las lecciones de este libro y obtendrá mejoras en la productividad personal y la precisión. Adquirirá habilidades y cultivará hábitos y actitudes que conformarán los cimientos del éxito en su carrera.
- Una filosofía del diseño de software
Libro de John Ousterhout
Este libro de 2018 es un respectivo novato en el club de libros sobre desarrollo de software, escrito por un ingeniero de software certificado, John Ousterhout. A Philosophy of Software Design trata el problema elemental asociado al diseño de software, el control de la complejidad. El libro arroja luz sobre las cuestiones filosóficas del planteamiento del proceso de diseño de software y destaca un conjunto de principios de diseño para aplicar durante el diseño de software. A Philosophy of Software Design se centra en la descomposición de sistemas de software compuestos en módulos como métodos y clases que se pueden aplicar de forma independiente. El autor explica principios de programación que dan como resultado programas excelentes y mantenibles, como observar el nivel de abstracción adecuado de su código. El libro no se concentra en un lenguaje de programación concreto; por eso es menos prescriptivo y más aplicable. El autor señala cómo las abstracciones que tienen interfaces sencillas (módulos profundos) pero ocultan la funcionalidad compuesta ayudan a reducir la complejidad de los programas. Los módulos profundos lo consiguen mejor que los módulos superficiales porque éstos tienen funcionalidades sencillas pero interfaces complejas.
- Código limpio: Un manual de artesanía ágil del software
Libro de Robert C. Martin
Nunca reconocerá un buen código hasta que no vea un código malo, y eso es lo que le muestra este libro. Escrito en 2002 por Robert C. Martin, este clásico se centra en cómo escribir código que sea fácil de leer y de mantener. No sólo para la aplicación, sino también para los compañeros desarrolladores que puedan trabajar en el código en el futuro. El libro se divide en tres secciones: los principios, los patrones y las prácticas del código limpio. En su libro, el escritor presenta un código feo y difícil de leer, mantener y comprender. A continuación, presenta las disciplinas, herramientas y técnicas de la verdadera artesanía del software. Código limpio, con ilustraciones claras, muestra cómo refactorizar un código pobre para convertirlo en una pieza fácil de mantener. El libro destaca los errores habituales que cometen los desarrolladores y explica el principio de la programación orientada a objetos. Código limpio es esencial para los desarrolladores aficionados de Java, analiza ejemplos y casos prácticos reales en Java, y es igualmente aplicable a otros lenguajes de programación orientada a objetos. El autor hace hincapié en la idea de que un código pésimo puede poner de rodillas a una empresa, porque una vez que se empieza con un código malo, se sigue amontonando más código pésimo, lo que dificulta la depuración. Para que el código se considere limpio, debe ser fácilmente comprensible para los demás miembros del equipo y los usuarios finales.
- Patrones de diseño: Elementos del software reutilizable orientado a objetos
Por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides
Una obra maestra de 1994, escrita y recopilada por cuatro autores: Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. Los autores son reconocidos popularmente como la «Banda de los Cuatro» en el mundo del desarrollo. Aunque fue escrito hace dos décadas, los patrones de diseño siguen siendo aplicables y esenciales para los desarrolladores que están adquiriendo competencia en la estructuración de sus programas. El libro ofrece una visión de las tres categorías de patrones de diseño. A saber, Patrones de diseño creacionales: permiten formar nuevos objetos de diferentes maneras, Patrones de diseño estructurales: para la creación de prototipos y Patrones de diseño de comportamiento: que modelan diferentes acciones. El libro también explica cómo puede crear diseños más flexibles y reutilizables sin tener que redescubrir las soluciones de diseño. Los autores describen y evalúan los diseños recurrentes en los sistemas orientados a objetos. El libro también le enseña cómo estos patrones significativos pueden encajar en su proceso de desarrollo de software y cómo aprovecharlos para superar los problemas de diseño. Cada patrón de diseño explica las situaciones en las que puede aplicarse y cuándo puede aplicarse dadas otras limitaciones de diseño. Este libro es una lectura obligada para los desarrolladores que trabajan en proyectos y sistemas complejos.
- Refactorización: Mejorar el diseño del código existente
Libro de Martin Fowler
En su libro, Martin Fowler escribe sobre la mejora del diseño de un código existente. El libro de Martin habla sobre el proceso de refactorización y se toma su tiempo para explicar cómo ejecutar las distintas refactorizaciones: el comportamiento de preservar las transformaciones. El libro define la refactorización como la modificación de un sistema de software no para cambiar el comportamiento exterior del código, sino para mejorar la estructura interna. Esto significa limpiar el código existente pero que funciona. Implica cambiar el nombre de los métodos y dividir las sentencias switch en una forma polimórfica. El autor explica que puede eliminar un código erróneo y rediseñarlo en uno mejor mediante la refactorización. El libro describe las setenta refactorizaciones, la motivación para hacerlas y cómo ejecutarlas. Una de las estrategias fundamentales para la refactorización es ensamblar el código en torno a agrupaciones de código significativas y evitar la mezcla de pasos de procesamiento. El autor sigue adelante y explica las razones por las que debe refactorizar su código, las formas de reconocer el código que requiere refactorización y cómo llevarla a cabo con eficacia, independientemente del lenguaje de programación que utilice.
Conclusión
Estos son algunos de los libros más aprobados y aceptados para trabajar en el desarrollo de software. En caso de una recomendación para un colega desarrollador, elegiría para él El programador pragmático y Código limpio. Si está deseando reforzar sus habilidades y conocimientos sobre desarrollo de software, lea uno de estos libros o todos ellos para ampliar su mente sobre diversos aspectos del mundo del desarrollo de software.