En la comunidad local y nacional del software, Sistema operativo de almacenamiento y Syneto tienen una reputación de excelencia en la aplicación de técnicas ágiles. En varios eventos de la comunidad, hablo con frecuencia de cómo desarrollamos software, cómo planificamos las características y cómo colaboramos en general para ofrecer el mejor producto posible. Sin embargo, hay algo que los asistentes no dejan de decirme y que me sorprende cada vez.
Es fácil hacer un proyecto ágil cuando se empieza de cero y se sabe lo que hay que hacer.
Esta observación, o conclusión si lo desea, me parece errónea por dos razones.
En primer lugar, no somos prodigios. No leímos un libro en media hora y milagrosamente nos convertimos en expertos en prácticas ágiles, desde TDD hasta Pair Programming, y desde Scrum hasta Lean y Kanban. Empezamos la transición de una gestión de software clásica en cascada a una ágil hace unos 5-6 años. No ocurrió en una semana ni en un mes. Ocurrió, lentamente, a lo largo de los años. Cuando empezamos, no había Sistema operativo de almacenamientotrabajábamos en el proyecto UTM de Syneto. Aprendimos a ser ágiles sobre todo en ese proyecto heredado. Y aunque teníamos lo básico cubierto cuando empezamos Sistema operativo de almacenamientoTuvimos que aprender mucho por el camino.
El segundo error de la afirmación anterior se refiere a que es más fácil hacer algo nuevo y de la forma correcta desde el principio. En primer lugar, no hay una forma universalmente correcta o incorrecta de hacer software. Si haces todo lo posible para escribir el código más eficaz, bonito, funcional y fácil de entender basado en tus conocimientos actuales, entonces esa es la forma correcta de hacerlo. Dentro de seis meses o un año, descubrirá que su forma de pensar ha cambiado radicalmente, que hay mejores maneras de hacer las cosas y que su nueva forma correcta de hacerlas es muy diferente... no hay problema, refactorice. Aplica lo conocido al viejo código que ya conoces. Aplique TDD para refactorizar un módulo cuya funcionalidad de negocio ya comprende. Utilice la programación en parejas para ampliar una extensión heredada de su aplicación. Planifique la próxima funcionalidad en un tablero Kanban. Siempre es más fácil modificar algo que entiendes aplicando una nueva técnica. Es mucho más difícil tratar de entender una nueva técnica (o varias) y, al mismo tiempo, intentar averiguar qué quiere la empresa que haga tu aplicación y cómo podrías implementarlo. Haz sólo una cosa a la vez, no más, siempre que puedas.
Más información sobre nuestra artesanía Sistema operativo de almacenamiento leyendo el Informe sobre la experiencia ágil de Syneto publicado en la Sitio web de la Alianza Ágil.