¿Por qué Programación Extrema?
Muchos me preguntan por qué tanto mi blog como mi canal de youtube tiene como nombre “Programación Extrema”, y no es por la complejidad de los temas que trato en ellos, sino por la metodología de desarrollo que utilizo a la hora de escribir mi código.
A fin de cuentas, la metodología XP (Extreme Programming) posibilita un desarrollo ágil que aumenta la productividad del desarrollo. El hecho de que sea ágil implica que lo importante es el software y no la documentación necesaria en otras metodologías como la archiconocida Métrica v3.
Un poco de teoría
Existen una serie de principios que rigen esta metodología, aunque yo soy poco riguroso con ellos y prefiero adaptarlos de la siguiente manera:
- Pruebas: siempre intento generar resultados rápidos que permitan probar el código, aunque este no realice el trabajo completo desde el principio. Para ello tenemos que buscar una estrategia que permita construir nuestro desarrollo de forma progresiva sin perder de vista el resultado final.
- Planificación: la definición de una hoja de rutas es la piedra angular de esta técnica, pero particularmente no me ciño únicamente a lo planificado. Siempre hay que dejar abierta la posibilidad de que el desarrollo pueda cambiar radicalmente. Para ello debemos realizar entregas pequeñas que dispongan de funcionalidad definida, aunque no necesariamente final.
- Pensar en el usuario: el usuario de la aplicación deberá estar implicado en el desarrollo del mismo, por lo que o bien el cliente (si estamos trabajando para alguien en concreto) o bien nosotros, deberemos ser críticos con nuestro desarrollo e implicarnos en él. Siempre tendremos que pensar en que nos interesa y no en que puedo hacer para no complicarme la vida.
- Programa en equipo: teóricamente la ventaja de trabajar con otra persona en un solo puesto permite mejorar el rendimiento final. Ya se sabe que cuatro ojos ven más que dos y que el pique es una buena forma de forzar al ingenio.
- Integración continua: el desarrollo de forma continua y la ampliando del software de forma paulatina es mi día a día. Considero que esta es la mejor virtud de esta metodología ya que permite resultados rápidos que ayudan a la creación de un trabajo final más robusto puesto que este se puede ir probando cada poco.
- Refactorización: seguramente ya lo habéis visto en muchos de mis vídeos y quizás os parezca una pérdida de tiempo, pero os aseguro que cambiar de forma de programación, renombra variables, redefinir métodos, eliminar o rehacer código es lo mejor para desarrollar un código. Al final, cuando te acostumbras, veréis que se derriban un montón de muros que nos limitan a desarrollar en una sola línea debido a las barreras de esos métodos o códigos ya implantados en el pasado.
- Se minimalista: la simpleza es tu mejor arma, y como se suele decir, a veces el bosque no te deja ver el árbol. Piensa en el problema que quieres resolver y no añadas florituras pensando en el futuro. Recuerda que estás en el ahora y el futuro aún está lejano y si llega tenemos a nuestra amiga la refactorización.
- No seas egoísta con tu código: piensa que siempre trabajas con un equipo, aunque este esté formado por ti solo. Tu código por tanto ha de ser entendible por todo el mundo y sobre todo piensa que el tiempo pasa y nuestra mente evoluciona por lo que, en unos días, meses o años, quizás ese método que has creado puede ser incomprensible para nosotros mismo. Simplifica y ve al grano.
- Estandariza: construye o utiliza unas reglas que permitan que tu código sea estándar. Lo agradecerás en el futuro cuando tengas varios proyectos simultáneos y el llamado a métodos o variables sea natural para ti y tu equipo. Olvídate de tener que recordar.
Pero todo lo anterior no sirve si nos pasamos horas y horas trabajando como locos, una buena distribución de tu tiempo puede hacer que la productividad aumente rápidamente. Pero esto lo comentaremos en otro post…
No dejes de ver mis videos en https://www.youtube.com/programacionextrema y suscribirte el canal. También puedes dejar tus comentarios, sugerencias o preguntas en cualquiera de mis redes sociales.
No vemos en el siguiente.