El Método KonMari aplicado al Desarrollo Software

Foto de mi portátil en un landscape de Dinamarca donde no había Internet

El libro “La Magia del Orden”, de Marie Kondo, dio el pelotazo en 2015, y ahora que Netflix ha sacado un programa, este método, conocido como Método KonMari, está llegando cada vez a más gente. El método describe con detalle una serie de pautas que te permitirán mantener tu vivienda ordenada de una manera eficiente.

Mientras intentaba, sin éxito, doblar las camisetas de modo que se sostuviesen verticalmente y me forzaba a creer que los vaqueros están mejor doblados juntitos que colgados en perchas a su libre albedrío, tuve una revelación. Tal vez el método no se adaptara a mi forma de ordenar la casa, pero le vi una gran utilidad en otro ámbito: el desarrollo software.

Para este post, he intentado condensar las ideas principales en tan solo 6 puntos. Por esto, es absolutamente posible que conozcas algún punto o alguna técnica que no menciono, por lo que os animo a añadir y a compartir vuestra experiencia y sabiduría 🙏.

1. Compromiso permanente 👐

Este es el primer punto, y sin duda el más importante. Lo que quiere decir nuestra amiga Marie es: si vas a ordenar, ordena. Siempre. Always. Porque si no, tus buenas intenciones no te van a servir de nada, tienes que ser constante. Se trata de adquirir un hábito. Y que si te vas a poner, te pongas de lleno, y no arregles un día una cosita por aquí y ya mañana arreglas otra por allá. Como diría el maestro Yoda: Hazlo, o no lo hagas, pero no lo intentes. ¿Quieres ser un verdadero Software Craftman o no?

2. Visualiza la aplicación que quieres tener 🔮

Cuando abres tu editor de texto favorito y miras fíjamente a la Tree View con todos los directorios y archivos de tu aplicación, pregúntate: ¿Es esto lo que de verdad quiero? ¿Me gusta como está? Mírala y céntrate en cómo la quieres tener, márcate unos objetivos, pon una línea de meta (conocida en el método como “The Destination”). Esto te ayudará a planificar los siguientes pasos en base a unos límites, para que puedas ser consciente de tu avance.

3. Primero, desecha. Luego, organiza. 🗳

Marie Kondo nos cuenta que, antes de organizar, tienes que deshacerte de todo aquello que ya no te hace falta, y no organizar y luego desechar. Será mucho más facil tener todos los archivos bien clasificados si antes quitamos la morralla, todo ese legacy code que lo único que hace es introducir ruido y hacernos infelices. Porque la felicidad es esencial para entender el método, como explico en el siguiente punto. Es importante que seas feliz. Sonríe, la vida es maravillosa y estás a punto de sentirlo.

4. Quédate con lo que te hace feliz 😄

Mira tu código. Tócalo (figuradamente, Marie lo aplica a objetos, pero en el software no se puede tocar, si eso pasa el ratón por encima que más o menos viene a ser lo equivalente). ¿Qué te transmite? ¿Te hace feliz? ¿O te parece una bazofia que nunca jamás debió existir?

Aférrate a ese código que irradia luz y te saca una sonrisa, y aquello de lo que quieras deshacerte, mételo en un rinconcito para ver si es tan útil como piensas. Si no lo usas pasados dos meses (ls -lU tuarchivo.ext), entonces muévelo a Trash. Es muy probable que tengas un montón de cosas que no te hacen falta, y este paso te ayudará a centrarte en lo que de verdad importa. Si todo va bien, según Marie, te quedarás aproximadamente con un tercio de lo que tenías.

5. Organiza por categoría, no por ubicación 🗃

En el método KonMari aplicado al hogar existen un total de cinco categorías principales, que a continuación paso a relacionar con sus equivalentes categorías en una aplicación software:

Core (Ropa) 👚

Tienes que empezar por el core, por lo que abulta, por lo que se hace bola. Por todos esos archivos que se distribuyen sin ton ni son en directorios que fueron nombrados con el menor atino posible (no hagas un git blame, recuerda que tienes que centrarte en la felicidad y no en el odio). Si bien Marie agrupa y dobla las camisetas, sudaderas y calcetines de distintas maneras, haz lo mismo en tu software.

Por utilizar una metáfora textil, no tendría sentido que guardara los sujetadores en el cajón de los pijamas, y que este estuviera situado a cinco metros del cajón de las bragas, ya que suelen ser dos tipos de objetos a los que suelo acceder al mismo tiempo. Una solución sería colocarlos en distintos compartimentos del cajón de la ropa interior. ¿Me explico?

Puedes elegir la convención que creas necesaria, aquí el método insiste en que recuerdes que tienes que organizarlos de manera que cuando lo veas, te transmitan facilidad. Por ejemplo, os podéis fijar en este esquemita de Clean Architecture.

Clean Architecture Schema — https://blog.cleancoder.com/uncle-bob/images/2012-08-13-the-clean-architecture/CleanArchitecture.jpg

Documentación (Libros) 📚

Si tu software precisa de documentación, tanto a nivel de desarrollo como de cara al usuario, es esencial que hagas un esfuerzo previo para identificar qué es lo que hay que documentar. No eres el Cervantes del software, aunque a veces escribas código quijotesco. El exceso de documentación se traduce en un alto coste de mantenimiento, y es muy probable que haya parte de esa documentación que ni siquiera sea útil. Comenta los métodos siguiendo un estándar cuando sea estrictamente necesario y estudia cómo interactúan los usuarios con la documentación.

Dependencias externas (Papeles) 📝

A casi todos nos ha pasado alguna vez que, de un día para otro, una ingente cantidad de papeles surge de la nada, papeles apilados unos sobre otros encima del escritorio, sin saber cómo llegaron ahí ni por qué. Seguramente, la mayoría fueron un intento de “ordenar” bajo la frase “lo dejo aquí para verlo luego” y al final ni lo viste ni te sirvió para nada.

Lo mismo pasa con esas librerías que no cuesta nada instalarse y que luego se quedan ahí para siempre, “por si”. En KonMari no existen los “porsis”. Empieza a purgar.

Utilidades (Komono) 📂

Los ya conocedores y practicantes del método saben que la palabra “Komono” se refiere, en Japonés, a todo aquello que solemos tener esturreado por nuestra vivienda, que no tiene un sitio fijo sino que pertenece a todos lados y a ninguno a la vez. Lo que no sabemos dónde colocar, pero que ciertamente tiene una utilidad.

En este caso, el método nos habla de sacarlo todo fuera e ir agrupándolo en montoncitos o subcagegorías. Lleva cuidado con esto, porque si has llegado al extremo de emplear el método KonMari a tu aplicación, seguramente no tengas ni un test que te avise de que la has liado parda al mover un archivo a otro lado sin cambiar las referencias. No te preocupes, poco a poco. Puedes ir guardando estas utilidades, por ejemplo, en un directorio de utils clasificado por subcategorías.

Objetos sentimentales 💔

No te aferres a esa maravillosa función súper eficiente DIY que hiciste hace un par de años y que da gusto verla, pero que ya no se usa en ningún sitio. Ni a la implementación de esa funcionalidad que se eliminó, pero que guardas por si algún día vuelve porque te parecía la caña. Asúmelo, a ningún usuario le interesaba.

Identifica estas piezas y déjalas ir. Como diría Elsa de Arendelle, let it go. Hazlo en un commit, que para eso está el historial, por si lo necesitas en algún momento en el futuro. Confía en tu control de versiones para que te ayude a encontrar esa paz.

6. Aplica la máxima sencillez y haz que todo sea fácil de encontrar 🔍

También conocido como KISS (Keep It Simple, Stupid). Usa nombres descriptivos que permitan ubicar las distintas piezas de tu aplicación de manera lógica e intuitiva. Así, si te vas de vacaciones, cuando vuelvas sabrás perfectamente dónde encontrarlo todo.

Conclusión 👌

Es posible que esto te haya sonado a hacer Clean Code de toda la vida, y en realidad es justo eso. Cada año tenemos que darle un lavado de cara al concepto y ponerle otro nombre, para que así, entre tanto cambio, la gente lo encuentre interesante.

--

--

--

Multimedia Engineer & FullSnack Developer.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Elena Torró

Elena Torró

Multimedia Engineer & FullSnack Developer.

More from Medium

TDD | How to do it?

The Singleton Design Pattern

design pattern

My application doesn’t scale, now what?

Why do I write Unit Tests