WR 86: Desarrollo de software con Carlos Buenosvinos
Carlos viene a hablarnos de su experiencia técnica con metodologías como el DDD o el Extreme Programming y regalar un montón de sabiduría.
Carlos viene a hablarnos de su experiencia técnica con metodologías como el DDD, Extreme Programming o Scrum. Además aprovecharemos a conocer su faceta divulgadora en la que tantos años lleva involucrado.
Mañana, como cada miércoles, se publica un nuevo audiocurso de Marketing online para programadores.
Los developers, ¡también podemos hacer marketing! Hablaremos sobre como sacar partido a las redes sociales, especialmente Linkedin. Échale un vistazo a todo lo que ofrezco en mi Zona Premium.
Carlos Buenosvinos tiene una dilatada experiencia como director técnico en empresas como Xing, eMagister, Atrápalo… Incluso nos descubre que trabaja como consultor de PC Componentes, empresa líder en el sector del retail en España.
¿Por qué PHP tiene tan mala fama? ¶
El lenguaje de programación PHP es una de las herramientas de la navaja suiza de Carlos y no pasamos sin hacerle una pregunta: ¿Por qué tiene a veces tan mala fama?
Nos cuenta que es una cuestión heredada de viejos tiempos cuando era sólo un lenguaje de scripting sin orientación a objetos y un mantenimiento algo defectuoso. Todo cambió hace ya muchas versiones, pero la fama le acompaña.
Aunque es single threaded y no trabaja con asíncronía, para las próximas versiones el equipo que está detrás del mismo quiere incluir cosas como JIT para ampliar mercado y adaptarlo a más necesidades.
Al igual que Carlos confío en este lenguaje sencillo de aprender y con un time to market muy pequeño.
DDD táctico y estratétigo ¶
Nuestro invitado defiende el pragmatismo como excusa para enlatar sus conocimientos en formato vídeo o libro. De esta forma los básicos de su formación ya están disponibles para todos y si en alguna empresa necesitan más, ya saben donde encontrarle.
Uno de los ámbitos donde es más conocido es en la divulgación de la metodología DDD (Domain-Driven Design), de la que es autor de un libro, DDD in PHP del que hemos hablado aquí más veces (Productividad sin hechizos con Trello).
Diferencia entre el DDD táctico, en el que la gente puede usar los patrones habituales (eventos de dominio, agregadores, repositorios) sin necesidad de hacer uso de la otra parte, el DDD estratégico.
Éste defiende el concepto de un dominio de problema dividido en diferentes partes para que se pueda maximizar la productividad de los equipos, interfaces entre los espacios del problema. Recomendado para equipos grandes y nos habla sobre la frustración al intentar aplicarlo en empresas pequeñas.
Extreme Programming no es deporte de alto riesgo ¶
Extreme Programming es “programación extrema” pero no tiene nada que ver con deportes de alto riesgo, os lo aseguro.
Es una técnica que nace bajo el paraguas del agile en el que se definen los ámbitos del desarrollo de software en los tres círculos concéntricos de los que nos habla Carlos y puedes ver aquí:
TDD, coding standards, simple design, son algunos de los aspectos que aquí aparecen. Nos recomienda dos libros de su máximo promotor, Kent Beck: Extreme Programming Explained: Embrace Change y Planning Extreme Programming
La implantación de TDD no es siempre sencilla ¶
De todas las técnicas, la del TDD es la más complicada de implementar. Confiesa Carlos que en sistemas muy acoplados es casi imposible de implementar.
Por eso nos cuenta que adaptando el desarrollo al XP y refactorizando en esa dirección las cosas empiezan a fluir. Una arquitectura hexagonal altamente desacoplada es muy sencilla de testear por su propia forma de construirse.
Así desde el “codigo churrimangui” se avanza hacia aplicaciones con más sentido. Incluso en ese punto se puede evaluar también que código es necesario testear (la duda que tenemos todos siempre) en términos de rentabilidad. Esas partes que, como definen el comportamiento de la aplicación, tienen más sentido incluir en el TDD para que la adopción de nuevas features sea un éxito.
Refactorizar para ganar más ¶
Con todo este material es preciso hablar de refactorización. ¿Quién no la necesita en su código? Nuestro invitado nos comenta que no apuesta por cambiarlo todo desde cero. Tiene un coste muy alto para la empresa, que debe decidir entre no publicar ninguna novedad para sus clientes o mantenerse a medio camino entre lo nuevo y lo viejo.
la Reactivísima: Cada domingo en tu bandeja de entrada mi newsletter de desarrollo y programación. Recursos, reflexiones y trucos para ser un mejor developer. ¡Apúntate!
Es peligroso además encontrarse con proyectos rabbit hole, donde uno entra en la madriguera y luego no sabe como escapar: características pequeñas se convierten en procesos de años, ponen en riesgo las cuentas de le empresa o consiguen que los lead developer se vayan a mitad de camino hartos ya de todo.
Nos regala una importante receta. Prefiere aplicar la regla del boy scout: deja el campo mejor de lo que te has encontrado. Toda feature nueva se desarrolla en la nueva aplicación y lo que haya que hacer en la vieja, se trae a la nueva. Esto último sería el impuesto revolucionario gestionado como si fuera una deuda, pero negociada.
Hablemos de DevOps y Ruby ¶
Hablamos también sobre tecnologías. En DevOps Carlos prefiere https://www.ansible.com/. De hecho participa del proyecto Ansistrano para facilitar los despliegues.
Sus herramientas favoritas son Terraform, AWS y Google Cloud. Eso sí, igual que Marco Bellido nos habla maravillas de Gitlab.
Repasamos su experiencia con Ruby, sobre todo con el framework que domina ese lenguaje de programación, Ruby on Rails comparándolo con todo lo que conoce de PHP.
Recomendaciones ¶
Las últimas tentaciones de @buenosvinos han sido katas sobre TypeScript, Kotilin y Rust.
Está estudiando sobre Management 3.0 y Scrum at Scale, con un ojo puesto en el Machine Learning. ¿Quién no?.
Nos recomienda dos pesos pesados para futuros episodios del podcast: Ricard Clau y Sergi de Pablos. Cualquier día los tenemos por aquí, no te lo pierdas.
¿Dónde encontrar a Carlos Buenosvinos? ¶
A Carlos Buenosvinos puedes encontrarle en
- Twitter como @buenosvinos
- Su web o su canal de YouTube
- Físicamente en los eventos DevOps Conference y PHP Barcelona (os tenemos una sorpresa preparada a los suscriptores a mi newsletter este próximo domingo)
Recuerda que puedes seguir al podcast en twitter @webreactiva o suscribirte en Spotify, Apple Podcast (iTunes) o iVoox
Muchas gracias a Carlos por todo lo que nos ha contado. Nos escuchamos el próximo martes :)
Escrito por:
Daniel Primo
12 recursos para developers cada domingo en tu bandeja de entrada
Además de una skill práctica bien explicada, trucos para mejorar tu futuro profesional y una pizquita de humor útil para el resto de la semana. Gratis.