Exploración de la planeación continua

Completado

La planeación continua es una de las ocho capacidades de DevOps.

Explicación de la necesidad de la planeación continua

Vamos a examinar un caso práctico de una aplicación de software desarrollada por una agencia gubernamental entre 2000 y 2005. El proyecto no estaba próximo a su finalización cuando se abandonó oficialmente en enero de 2005, convirtiéndose en un auténtico fiasco. Además de desperdiciar al menos 100 millones de USD, el error conllevó críticas generalizadas para la agencia y su director.

En 2006 se inició un segundo proyecto con resultados igualmente desastrosos. En los dos casos se planeó una gran fase de diseño inicial y la metodología de desarrollo Waterfall (en cascada), con un espectacular evento de lanzamiento clásico planeado. Terminaron sin ninguna entrega y habiendo gastado cientos de millones de dólares.

Diagram shows the government agency project timeline.

¿Por qué fallaron estos intentos?

  • Gran fase de diseño inicial: un equipo de 200 personas dedicó seis meses a la creación de los requisitos.
  • Cambio de prioridades: a mitad del proyecto se produjo un desastre que dio lugar a un gran cambio de ámbito; otro equipo de 300 personas trabajó durante seis meses, lo que se tradujo en 600 páginas de requisitos.
  • El esfuerzo desperdiciado y la reelaboración llevaron a que no se cumplieran los plazos y al agotamiento del equipo: 700 000 líneas de código escritas y reescritas.

En diciembre de 2010 se configuró y emplazó en una ubicación compartida un estudio Scrum. El personal se redujo de 400 en los proyectos originales a 40. El diseño pasó de 600 páginas de requisitos a 670 casos de usuario. El equipo distribuyó código y mostró nuevas características cada dos semanas. Tras unos cuantos sprints, fue posible prever las escalas de trabajo aproximadas y planear los cambios empresariales incrementales. En diciembre de 2011 el código estaba terminado.

¿Por qué es difícil planear bien en detalle?

Alan Turing desarrolló una máquina durante la Segunda Guerra Mundial para descifrar el dispositivo de cifrado conocido como máquina Enigma.

Turing tenía que descifrar constantemente nuevos códigos para salvar vidas. En lugar de rendirse por la complejidad aparentemente infinita, Turing sabía que solo tenía que descifrar pequeños detalles para lograr resultados mayores:

"Solo podemos ver a una corta distancia, pero ahí podemos ver mucho de lo que hay que hacer".

Los proyectos de software ambiciosos siempre son complejos. Pero no deje que la complejidad le abrume. Ejecute donde hay claridad: el corto plazo.

Planeación continua y eficaz con dirección clara, enfoque y agilidad basados en objetivos y resultados clave (OKR)

Antes de definir la planeación continua, es necesario presentar un concepto importante y un marco de trabajo para ayudar a planear de forma continua y eficaz con dirección clara, enfoque y agilidad.

Los objetivos y los resultados clave (OKR) son un marco de definición de objetivos diseñado para conectar los objetivos estratégicos definidos por la dirección con las actividades cotidianas de los equipos de ejecución.

Importante

Los OKR ayudan a identificar el mejor resultado posible y a crear claridad en torno a lo que constituye el verdadero éxito.

Por lo general, los OKR se definen trimestralmente para lograr un enfoque y una agilidad precisos.

El objetivo es la dirección, y el resultado clave debe ser cuantificable. Al final puede mirar, y sin discusiones, decidir: ¿lo he hecho o no? ¿Sí? ¿No? Simple. Sin ningún juicio.

Los OKR se localizan en todos los equipos de la organización para mostrar alineación y transparencia.

¿Qué son los OKR?

Hay tres aspectos esenciales en los OKR:

  • Forman un marco para definir objetivos claros y proporcionar claridad sobre la intención y la dirección en todos los niveles de la organización.

  • Se refuerzan con resultados clave cuantificables. Los resultados clave son los resultados por los que se mide el éxito.

  • Impulsan una cultura de mentalidad de resultados, lo que permite un cambio claro de una mentalidad de inicio a una mentalidad de resultados.

Ejemplo de OKR

Este es un ejemplo de OKR:

Objetivo: llevar a un astronauta a la luna para 1970.

Resultados clave:

  1. Construir una nave espacial de menos de 20 000 kg para 1965.
  2. Entrenar astronautas para el aterrizaje en la Luna para 1967.
  3. Alunizar correctamente la nave espacial en la luna.
  4. Traer de vuelta a los astronautas a la Tierra sanos y salvos.

En este ejemplo de OKR se identifica el objetivo de llevar un astronauta a la luna para 1970.

Nota:

Los objetivos deben ser fáciles de entender, establecer una dirección clara y proporcionar motivación.

En este ejemplo, los resultados clave son mediciones de progreso que miden el éxito del objetivo.

Nota:

Los resultados clave deben ser cuantificables e identificar cómo se logra el objetivo.

Principales ventajas de los OKR

Los OKR tienen cinco ventajas principales:

  • Enfoque: todos los objetivos deben caber en una sola línea. En cuanto a los resultados clave, no debe haber más de cinco por objetivo.
  • Alineación: los administradores y colaboradores por igual vinculan sus actividades cotidianas a la visión de toda la organización. El nombre de esta vinculación es alineación, y su valor no se puede pasar por alto.
  • Compromiso: se ajustan las programaciones y los recursos para asegurarse de la entrega de todos los compromisos acordados.
  • El seguimiento de los OKR desde el inicio al resultado es el motivo por el que la administración mediante objetivos es tan popular en las empresas de alto nivel. Cada OKR debe poder seguirse por medio de las métricas definidas al escribirse.
  • Estiramiento: los OKR empujan de forma inherente a las organizaciones a luchar más, a esforzarse un poco más de lo que creían posible.

Comparar la planeación continua y estática

La planeación continua es un procedimiento que requiere que los planeadores, los arquitectos y los equipos de Agile integren sus planes en toda la empresa de manera continua.

En la planeación continua, los métodos de planeación basados en Scrum y los diseños emergentes permiten a los equipos perfeccionar la planeación en el nivel de ejecución.

Es importante contar con un plan general que sea resistente al cambio, pero que se guíe por una visión y un propósito claros.

El triángulo de hierro de las ventajas y las desventajas de las metodologías de desarrollo Waterfall y Agile ilustra la comparación entre planeación continua y estática.

En la metodología estática, el planeamiento del ámbito es fijo. Se determina cuánto tiempo va a durar el proyecto y cuánto va a costar.

En la metodología Agile, que usa principios de planeación continua, el tiempo se fija para satisfacer los objetivos empresariales. Lo único negociable es el ámbito.

Diagram shows the iron triangle of tradeoffs for Waterfall vs. Agile development methodologies.

El triángulo hierro suele mostrar el tiempo, los recursos y la funcionalidad. Gartner ha agregado la calidad a esta representación porque la duración y el costo están relacionados y suele faltar la calidad.

Pero ¿qué pasa con el éxito de los dos procedimientos?

Diagram shows a comparison between the success rates of Agile and Waterfall projects. 9% of the Agile projects failed, 39% succeeded, and 52% were challenged. 29% of the Waterfall projects failed, 11% were successful, and 60% were challenged.

Uno de los motivos por el que los proyectos de Agile son más exitosos es porque las publicaciones de lotes pequeños aumentan las oportunidades de obtener conocimientos.

Hay cuatro aspectos que se deben tener en cuenta:

  • Las necesidades empresariales cambian constantemente y lo hacen a corto plazo.
  • La metodología Agile tiene los mecanismos de planeación necesarios para seguir el ritmo de los cambios empresariales.
  • Los equipos de alto rendimiento pueden avanzar rápidamente con igual facilidad en la dirección equivocada.
  • La obtención de conocimientos reduce el riesgo.

Las metodologías Waterfall y Agile presentan riesgos. La metodología Agile solo logra el éxito un 30 % más del tiempo.

Exploración de los seis principios de la planeación continua

La planeación continua tiene seis principios:

  1. Valoración de la simplicidad
  2. Manifiesto de Agile Software Development
  3. Pensamiento en el diseño
  4. Desarrollo iterativo e incremental
  5. Administración ajustada
  6. Precisión de la estimación

Principio de planeación continua 1: valoración de la simplicidad

El primer principio de la planeación continua es la valoración de la simplicidad.

"Si no se puede explicar simplemente, no se entiende bien".

-Albert Einstein

Principio de planeación continua 2: manifiesto de Agile Software Development

El segundo principio de la planeación continua es el manifiesto de Agile Software Development.

El manifiesto trata sobre la entrega de software. Trata sobre el desarrollo de software, no la administración de proyectos ni el diseño. Es la base de la planeación continua y DevOps.

Se están descubriendo mejores formas de desarrollar software al hacerlo y al ayudar a otros a hacerlo. Gracias a este trabajo se ha llegado a valorar lo siguiente:

  • Individuos e interacciones sobre procesos y herramientas
  • Software de trabajo sobre documentación general
  • Colaboración con el cliente sobre negociación contractual
  • Respuesta al cambio sobre seguimiento de un plan

Principio de planeación continua 3: pensamiento en el diseño

El tercer principio de la planeación continua es el pensamiento en el diseño.

El pensamiento en el diseño adopta un enfoque centrado en el ser humano para la innovación. Se centra en la intersección de viabilidad y conveniencia para establecer límites y reducir el desperdicio.

Diagram explains design thinking. Design thinking establishes the boundaries of the product early (often called the minimal viable product or “MVP”). It focuses on the intersection between business viability, technical and budget feasibility, and desirability. This intersection is where innovation happens.

Principio de planeación continua 4: desarrollo iterativo e incremental

El cuarto principio de la planeación continua es el desarrollo iterativo e incremental.

Algunas personas temen no saber lo que van a obtener. El desarrollo iterativo soluciona este problema al poner los requisitos y la clasificación de prioridades en manos de las partes interesadas en un bucle de reacciones iterativo. Cada iteración es completa, utilizable y útil para sus usuarios. Agrega más funcionalidad, preferiblemente la más importante en primer lugar.

Principio de planeación continua 5: administración ajustada

El quinto principio de la planeación continua es la administración ajustada.

El valor se define desde el punto de vista del cliente final. En el proceso se identifican los flujos de valor y los pasos en los que no se entrega valor al cliente se identifican como desperdicio y se eliminan.

El proceso comienza de nuevo, en un esfuerzo en pos de un estado de perfección mediante la mejora continua.

Diagram shows the stages of the process: identify value, map the value stream, create flow, establish pull, and seek perfection.

Principio de planeación continua 6: precisión de estimación

El sexto principio de la planeación continua es la precisión de estimación.

Una estimación es una predicción analítica de cuánto va a tardar algo, cuánto va a costar o cuántas características se pueden entregar. Tiene dos atributos: exactitud y precisión, que no están relacionados entre sí en absoluto. Las estimaciones son responsabilidad del equipo de ingeniería.

Un objetivo es una declaración de una necesidad empresarial: cuánto tiempo se querría que tardara algo, cuánto se querría que costara o cuántas características se quieren entregar. Los objetivos son responsabilidad del negocio.

Un compromiso es una promesa de entrega de funcionalidad y calidad en una determinada fecha. Los compromisos son una responsabilidad conjunta.

Importante

El objetivo de la planeación continua es mantener la alineación entre las estimaciones, el objetivo y el compromiso. De lo contrario, no se cumplen las expectativas dentro y fuera de la organización.

Explicación de la relación entre OKR y Scrum

Ahora que se entiende el porqué y el qué de los OKR, además de algo sobre la planeación continua, esta es la conexión entre los dos.

La estructuración del trabajo mediante técnicas como los OKR reduce la incertidumbre, al menos a corto plazo. Como los OKR están diseñados para definirse en cascada, eso empieza a cambiar la forma en que los administradores presentan su estilo de administración.

Técnicas como los OKR son una manera rápida y eficaz de iniciar el recorrido desde el estilo de administración autoritario.

Objectives and key results lead to epics. Epics help define features, which involve user stories, and result in a development task.