La construcción de un sistema como lo es Kentana Core requiere de una estrategia para poderlo construir. Al ser un sistema para crear sistemas, tiene una complejidad de un nivel diferente. Las ideas que se me ocurren deben esperar porque hay que mantenerlo estable antes de nuevas implementaciones. El proyecto es tan grande que a veces me trae fallos, dudas y problemas, por ejemplo, de concentración. Divide y vencerás es una de esas frases que se ven sencillas pero que despliegan una gran filosofía internamente, al analizarla con detalle.
La transición de Kentana Core de la primera versión a la siguiente
La primera versión del Core fue un proyecto Lean que sirvió para comprobar su finalidad y la respuesta de los posibles interesados. Mi punto de vista era como una hipótesis de la cuál hubo aciertos y fallas. Nace entonces un proyecto que debe abarcar lo aprendido de la primera versión, adicionar mejoras y agregar funcionalidades. Esta es la razón por la cual decidí, tener el concepto como base, pero volver a programar todo el sistema. Esto pasando por un cambio de enfoque que le permita ser más productivo al Core. Este proyecto es tan grande que no sabía ni por dónde empezar, tenía los conceptos, los diseños, las mejoras, etc. Traté de empezar con lo que ya tenía y tratar de realizar cambios, en el camino me di cuenta que eran más las mejoras que lo nuevo. Al final de todo era como si fuera otro sistema totalmente diferente.
La estrategia “divide y vencerás” ofrece los primeros pasos para resolver un gran problema
Soy una persona que opina que la planeación es lo primero, esto puede ser bueno, pero tiene un problema. El exceso de planeación no nos permite avanzar, entonces decidí ir más al detalle del sistema y empezar a resolver pequeños proyectos. Es ahí donde se ve la sabiduría de “divide y vencerás” ya que se convirtió en un proyecto macro. Al tener estos sub-proyectos me puedo centrar desde la funcionalidad hasta el diseño final y las pruebas del “nuevo” sistema.
Para empezar, me enfoco en el planteamiento general, ¿para qué serviría el nuevo Core? Esto para que no se olvide el objetivo final y evitar que cambie en el transcurso del tiempo. Luego trato de hacer un pequeño esquema sobre las funcionalidades que tendrá el software. Esto me permite ir una a una por estas funcionalidades, tener un pequeño resultado por cada una. Esto sin olvidar un factor muy importante y es ver que avanzo, aunque sea de a pocos.
Problemas que se presentan en el camino
Esta técnica no es absoluta y mucho menos indiscutible. Se de mi propia experiencia que avanzar despacio a veces no permite ver el fin del camino. Esto provoca algo de ansiedad ya que el objetivo general no se ve casi ningún gran resultado. Esto teniendo en cuenta que la estimación de proyectos es muy complicada para el software. Al dividir en micro-proyectos también es difícil de acertarle varias veces y encima de todo no podría saber cuándo será la fecha de entrega. Lo único que se sabe es que avanzamos y avanzamos sin saber nada más. Por otro lado, si fuera solo un gran proyecto se presentaría este problema igualmente pero el avance tampoco se vería.
En el caso de la segunda versión del Core, no se pueden hacer entregas sub-divididas ya que la naturaleza del nuevo software no lo permite. Sobre la primera versión, se entregó un proyecto lean con tres entregas programadas a futuro. Hay que tener en cuenta que es un gran proyecto que tiene todo lo de la primera versión y luego tendrá algunas entregas posteriores.