Aprovechando que estoy lanzado y que tengo algo interesante sobre lo que escribir (al menos más que otras veces), pues ahí va, un post nuevo.
Acabo de terminar de re-leer el libro «Head First Software Development» y quería comentarlo un poco y a la vez recomendarlo. Recomendarlo no solamente a aquellos que empiezan en el desarrollo de software, sino también a gente con más experiencia. A los primeros porque definen las bases para comenzar un nuevo proyecto, qué factores tener en cuenta, cómo hacer el seguimiento del proyecto, qué puede ir mal, qué hacer para evitar que vaya mal, etc. A los segundos, porque el libro enfatiza lo que es más importante y no se debe olvidar: el cliente es el que manda, prioriza y dictamina si el resultado final es bueno (si funciona y cumple con las necesidades especificadas) o no.
Obviamente no voy a hacer un resumen del libro, pero sí que voy a numerar los puntos principales que creo más representativos del mismo:
- Procesos iterativos vs cascada
- Conocer qué quiere el cliente
- Priorización (en base a lo que quiere el cliente)
- SCRUM: Tareas, daily meetings, pizarra
- SRP (Single Responsibility Principle) & DRY (Don’t Repeat Yourself)
- Control de versiones, branching
- ANT & build tools
- Testing & Continuous Integration
- Test Driven Development
- Terminando una iteración de SCRUM
- Programando la siguiente iteración
- Corrigiendo bugs
- Implementando el proceso en la vida real…
Como conclusiones generales:
- La comunicación tanto con el cliente como dentro del equipo (y entre equipos si son varios los que participan en el proyecto) es la base para que el desarrollo salga bien.
- En cada sprint, tener un código que funcione y se pueda enseñar.
- Diseñar el entorno de desarrollo y gestión del proyecto de forma que se controle todo el trabajo hecho, lo que queda por hacer, los bugs existentes, las pruebas realizadas, etc.
- Cada proyecto es distinto, y no hay una biblia que haya que seguir al pie de la letra, pero las buenas prácticas son una buena base de partida.
- Un buen código es aquél que se entrega en el plazo establecido y cumple con las necesidades del cliente.
Para el que se quede con ganas de más, en Internet hay muchos y variados recursos, pero aparece citado un libro en HDSF (Head First Software Development) que va a ser mi siguiente lectura: «Scrum and XP from the Trenches» (Scrum y XP desde las trincheras).
El caso es que este libro se puede descargar gratis desde la web de InfoQ y también está traducido a castellano aquí. Si alguien ya lo ha leído (seguro que mucha gente) y tiene alguna opinión o comentario, es bienvenido.