archivo

Archivos diarios: abril 16, 2011

Para Peter Drucker la eficiencia es: “Hacer mejor lo que ya estás haciendo”.

Esto debería ser aplicable tanto a aquellos aspectos personales y laborales que son francamente mejorables como a otros en los que ya se tiene un buen nivel.

Es necesario continuar evolucionando, aprendiendo, adaptándonos, siempre es posible, tenemos capacidad para ello. Si intentas ser mejor, serás mejor, si te quedas igual, lo mismo te sirve hoy, pero te perderás muchas cosas, porque con el crecimiento personal y profesional se descubren perspectivas que antes eran desconocidas para nosotros y se abren puertas que nos llevan a diferentes planos de conocimiento y nos permite vivir la vida y realizar nuestro trabajo de manera diferentes y mejor.

La búsqueda de la eficiencia debería ser un hábito, algo que hacemos de manera inconsciente, pero para ello es necesario creer que haciendo las cosas mejor, los principales beneficiarios somos nosotros mismos.

Asunto espinoso. Las metodologías ágiles están orientadas a la entrega de productos funcionales que vayan completando mediante iteraciones sucesivas y a través del feedback del usuario un sistema completo acorde a las necesidades del usuario (por tanto, un sistema de calidad), dentro los plazos y presupuesto establecido.

¿Es incompatible con lo anterior la calidad del código? Por supuesto que no, pero, ¿es lo más importante? Tampoco lo es.

El objetivo es conseguir que un sistema sea satisfactorio para el usuario, sin eso de nada vale lo demás y eso se consigue mediante aproximaciones sucesivas teniendo como soporte a un usuario que es aliado y que está comprometido en el proyecto.

Si nos centramos exclusivamente en el objetivo y no vemos más allá, la calidad del código queda en un octavo o noveno plano, es decir, el sistema es lo que el usuario quería, ¿para qué pedir más?. Si el sistema no se va a tocar nunca más, si se van a realizar modificaciones mínimas en el mismo o si no presenta problemas de rendimiento por una mala codificación y/o arquitectura, puede tener sentido que no importe mucho lo que está dentro (la máquina me da buen café y no requiere mantenimiento, ¿qué más me da cómo se hayan construido los circuitos que la hacen funcionar?).

Ahora bien, si se prevén modificaciones de cierta envergadura en el proyecto o que las mismas pueden existir, sí que entra en juego la calidad del código, ya que la deuda técnica del software puede hacer muy costoso el mantenimiento (y hacerte recordar a los ancestros de quiénes codificaron el sistema).

Esta misma idea podría ser aplicable a las sucesivas iteraciones en la construcción del producto. Hay que tener en cuenta que en cada iteración además de nuevas funcionalidades, se corrigen aspectos funcionales y no funcionales del sistema de acuerdo a las directrices del usuario y del equipo técnico del proyecto. Una mala arquitectura, una mala codificación, puede condicionar las sucesivas evoluciones del producto, haciéndose cada vez más pesadas y costosas, lo que obligaría a ser menos ambicioso en cada iteración y requiriéndose un mayor número de iteraciones para obtener el sistema, lo que puede provocar que se ponga en riesgo el cumplimiento de plazos y el presupuesto.

Tras la revisión del ciclo de vida expuesta en el anterior artículo se podría llegar a la conclusión de que esta metodología dista de ser ágil.

Si se hace una lectura al pie de la letra sí que puede parecerlo, pero hay que tener en cuenta que básicamente lo que se obtiene en cada fase es:

Preproyecto. ¿Qué se pretende conseguir y quiénes van a participar para conseguirlo?

Ciclo de vida del proyecto.

– Estudio de la viabiliadad (Feasability study). Lo que se pretende conseguir, ¿se puede obtener realmente con los recursos con los que se van a contar?, ¿es DSDM una metodología adecuada para llevarlo a cabo?, ¿qué problemas pueden provocar que el proyecto no evolucione adecuadamente?.

– Estudio del negocio (Business study). ¿Qué procesos se van a informatizar?, ¿qué requisitos se deben cumplir en los mismos (no se requiere entrar en detalle)?, ¿cuáles son más prioritarios?, ¿cuál se el plan de desarrollo iterativo e incremental?.

– Iteración del modelo funcional (Functional Model Iteration). En esta fase se perfeccionan y cierran los requisitos. Se puede apoyar en la realización de un prototipo. Se define una calendario para la realización de las distintas tareas que comprenden la fase.

– Iteración del diseño y de la construcción (Design and Build Iteration). Se realiza el proceso de diseño y construcción. Se define una calendario para la realización de las distintas tareas que comprenden la fase.

– Implementación (Implementation). Se realiza la aceptación del sistema, formación, la implantación y se realiza un análisis sobre la evolución e impacto del sistema, condicionando las próximas iteraciones a desarrollar.

Postproyecto. Comprendería lo que es la fase posterior a la entrega de un producto finalista (resultado de sucesivas iteraciones), de manera que haría referencia al mantenimiento del sistema de información que se puede hacer siguiendo DSDM o no.

Por tanto, la metodología, vista desde más arriba no tiene por qué resultar pesada.

Hay veces que la vida sonríe a la organización a la que pertenecemos o a nosotros, aparentemente sin grandes sacrificios se consiguen buenos resultados, incluso superiores a los esperados. Sin embargo, como la vida es una espiral de buenos y malos momentos, lo que antes se alcanzaba con las puntas de los dedos, ahora se encuentra a kilómetros de distancia.

Muy probablemente los buenos momentos tuvieron su por qué, realmente no vinieron solos, siempre hay una causa y un efecto. Tal vez estabas bien posicionado, tal vez las condiciones de mercado favorecían a tu organización, tus productos o tus servicios gustaban, estabas de moda, el equipo de trabajo se encontraba motivado y alineado con los objetivos de la organización, se tomaron buenas decisiones, se tenía menos competencia, se tenía hambre por conseguir cosas, etc…

Los malos momentos también tienen un origen y no necesariamente porque las condiciones externas hayan cambiado excesivamente. Hay que tener en cuenta que no estamos solos, estamos en mundo lleno de competencia y que evoluciona (tanto el mundo como la competencia). Si tus competidores se hacen más fuertes en términos de metodología, productividad, marketing, calidad, etc…, te terminarán superando y quitándote mercado y, más que probablemente, tus mayores talentos y/o tu personal más comprometido, lo que te hará caer en una espiral que de no salir pronto de ella puede dejar la organización en una situación muy difícil.

Llegará un día, por tanto, en que te des cuenta que tu competencia se ha multiplicado y el mercado al que puedes aspirar se ha reducido, ante esto solo queda actuar, analizar qué te ha llevado ahí, ser autocrítico y plantear un plan de acción y ejecutarlo. Esto podrá salir bien o mal, ya que lo mismo no se acierta o incluso acertando la situación era tan complicada que no se ha podido resolver, por lo menos con el nivel de satisfacción que hubiera sido deseable.

Lo que no te sacará de la situación comprometida es la simple espera de que vuelvan las condiciones que te hicieron tener éxito, eso es lo mismo que esperar que alguien o algo, que además no sabes quién es, te resuelva el problema. Si te quedas sentado, lo mejor que vas a conseguir va a ser una entrada de primera fila hacia la nada.

En muchas organizaciones se mantiene el personal improductivo sin saber muy bien el motivo, hay veces que se toman medidas y algunos de ellos salen de la mismas, pero generalmente suele haber supervivientes que son el caldo de cultivo para seguir creando improductividad.

Se piensa de manera errónea que son inofensivos, ya que se cree que su improductividad está controlada, de manera que hay otras personas que cubren sus tareas y que el único coste (que no es poco) que pueden suponer para la organización son sus sueldos.

Nadie trabaja con los ojos cerrados y con los oídos tapados. Se trabaja dentro de un entorno y sentir cómo te comprometes, cómo te sacrificas, cómo intentas hacer cada vez mejor tu trabajo e incrementar la cantidad de tareas realizadas con calidad por unidad de tiempo (productividad), mientras que hay otros que son ajenos a todo esto, afecta.

Tal vez el compromiso personal y/o la recompensa recibida por nuestro trabajo, retrase, incluso por mucho tiempo, la sensación de que te estás sacrificando y que estás sufriendo un desgaste que otros que cobran, algo menos, igual o más que tú no la tienen. Hay que tener en cuenta que hay vida después del trabajo y que un sobreesfuerzo en el trabajo y unos marrones que comerse de manera continúa afectan a la vida personal.

Al final, pasa que muchos trabajadores empiezan a notar que están haciendo más que los que se les debía exigir, se hace media aritmética y se está por encima de esa media y esto se traduce en una disminución de la productividad que además suele ser progresiva.