La cultura Japonesa influyó mucho en los campos de software y gestión de proyectos. Conceptos como Lean, Kata etc vinieron de Japón. Y hay que admitir, que mejoraron los procesos que existían, incrementando la eficiencia y la satisfacción de manera general. Así que, ¿que es Kata? O ¿ Katas de código ? 

La palabra Kata es Japonesa. Originalmente describió unos movimientos coreográficos practicados de manera individual o en pareja. Se basa en enseñar y entrenar aquellos métodos mediante aquellas técnicas de éxito que se mantuvieron durante el tiempo y pasaron de generación en generación. Hoy en dia, se implementa no solo en artes marciales, sino en otras industrias.

 

Katas de código

 

Por ejemplo, hay un concepto – katas de código en la industria del software. Es un ejercicio en programación que ayuda a los desarrolladores a mejorar sus habilidades a través de práctica y repetición. “Katas de código” fué introducido por primera vez por Dave Thomas, co-autor del libro – The Pragmatic Programmer-, combinando el concepto Japonés de Kata de las artes marciales.

El objetivo base del código Kata es preservar y transmitir buenas tecnicas y perfeccionarlas. A base de repetición de los ejercicios, sin importar la industria, el estudiante desarrolla las habilidades para ejecutar ciertas técnicas de una manera natural. Aquí la idea no se basa únicamente en aprender cualquier concepto y automatizarlo, sino tener el correcto concepto, entenderlo y pulirlo. Tener confianza en aquello que haces, ser un maestro en tu campo.

Katas de código tratan de aprender, y mejorar mediante la práctica. Después del Katas de código, el programador debería ser capaz de ejecutar y adaptar las técnicas aprendidas a diferentes circunstancias sin pensar o dudar. Esta es la meta.

Todos los grandes desarrolladores de software que conocemos son tan buenos por su capacidad de practicar todo el tiempo. Katas de código no se aplican únicamente a desarrolladores Junior o recien graduados, sino a todo aquel que quiera aprender y practicar con nuevas técnicas. Katas de código te ayudan a prender la teoría, y entender los mecanismos, aplicándolos de una manera más práctica.

Probablemente te has encontrado con esta situación mas de una vez en tu vida, cuando a un desarrollador de software le asignan un proyecto con una gran parte de teoría pero zero practica, es como tirarse al pozo, ha de ponerse a trabajar en proyectos nuevos para él y aprender cómo desarrollarlos de una manera práctica. ¿crees que es la mejor manera de trabajar? No lo es bajo mi opinión, es como conducir un coche. Primero tienes que aprender la teoría antes de ponerte a conducir el coche! Además, luego tienes que aprobar el examen práctico. ¿Como es que muchas compañías se olvidan de este paso práctico? En nuestra opinión Katas de código, es una manera fantástica de aprender la teoría mediante práctica sin dañar a nadie. Es una forma de prepararse para el proyecto, saber lo que esperar y saber como manejarlo. Puede que digas, que en el desarrollo de software, no todo es blanco y negro. Hay un montón de cosas que influyen aparte de eso. No puedes practicar todo aquello que realizaras en el proyecto. Correcto, pero aplica la misma lógica que conducir un coche, una vez tienes el concepto básico, estas mas listo para superar los obstáculos.

Katas de código es un intento de traer los elementos de la práctica al desarrollo de software. No hay normas estrictas para Katas de código, puede haber Katas de 30 minutos o 3 horas, no importa. Todo depende de la lógica. Lo más importante es practicar, practicar y practicar, tener confianza en aquello que haces! También, quería mencionar que Katas de código no solo se aplica a programación, sino en pensar tambien. Identificar aquellos errores detras de la programación y obtener soluciones.

En realidad, no estoy solo cuando creo que los Katas de código valen la pena. Muchos expertos de TDD y BDD tambien comparten mi opinion de que algunos procesos son mejor aprenderlos mediante Katas de código. Es un error pensar que TDD y BDD pueden aprenderse únicamente mediante realizar proyectos, de esa manera aplicas demasiada presión en el que aprende, tener que entregar un codigo de calidad utilizando técnicas que no son familiares para el. Esto puede provocar mucho estrés y ansiedad. Este estrés provoca frustración en el desarrolladores, provocando errores y probablemente no van a poder aplicar las mejores prácticas en los proyectos. Por ejemplo, lo que suele ocurrir para terminar tareas, los desarrolladores escriben implementaciones y luego las testean, resultado en un progreso muy lento en términos de aprender TDD, ya que primero tienes que escribir el test y más tarde el codigo.

No se deberías mejorar tus habilidades a traves de una alta competitividad, rendimientos in situ o desplegado en producción, esto es fruto del trabajo constante. Antes de esto, tienes trabajar duro y practicar.

 

Espero que hayas encontrado este artículo util, la meta en el desarrollo de software es construir software que funciona! Para conseguirlo, tienes que masterizar tus habilidades mediante practica en un ambiente no estresante, para pensar en ello, reflexionar, entender y pulir detalles. Hacer sin pensar no lleva a ningún lado, una cosa que tiene valor es que los desarrolladores entiendan aquello que hay detrás de las prácticas clave, ventajas, desventajas, soluciones y consecuencias.


Si compartes mi visión, te recomiendo que te suscribas a nuestro newsletter mensual para recibir consejos y mejores prácticas en software para mejorar tus habilidades y gestionar tus proyectos mejor.

 

Si te ha gustado este artículo, puede que te interese: