Al igual que se utiliza un plano en la construcción, y se sigue una receta cuando se prepara una comida, hay principios a seguir para el desarrollo de software eficaz. Estos principios se reducen a lo que suele denominarse metodología de desarrollo de software. Una metodología de desarrollo de software es imprescindible, ya que contiene procedimientos que conducen al éxito de un proyecto de desarrollo de software.
Sin seguir un plano en la construcción, los resultados son un desastre, y lo mismo ocurre con la construcción de un producto de software sin seguir los principios adecuados. Se perderá una gran cantidad de pasos cruciales y, finalmente, tendrá un sinfín de problemas de calidad de software. Como gestor de proyectos, es vital saber que hay muchos enfoques a seguir para un proyecto de software, incluyendo el enfoque de desarrollo lean, y que cuando se elige correctamente, una metodología de desarrollo de software siempre producirá un producto de software de alta calidad.
Desarrollo de software lean
La metodología de desarrollo lean es un tipo de enfoque ágil que se fundó en los principios de fabricación lean. La fabricación ajustada comprende principios de gran éxito que fueron utilizados por primera vez por el sistema de producción de Toyota como práctica para gestionar y optimizar el proceso de producción de vehículos con el fin de aumentar el valor para el cliente y minimizar los residuos.
Entonces, si los principios ajustados tienen que ver con la fabricación de vehículos de motor, ¿dónde entra el desarrollo de software? Sabemos que la fabricación y el desarrollo de software son diferentes: la fabricación implica la creación de productos físicos, mientras que el producto de desarrollo de software es intangible y su valor sólo puede percibirse y crearse en la mente del equipo de desarrollo.
El mapeo entre la fabricación ajustada y el desarrollo de software ajustado se originó por primera vez en 2003 en un libro titulado «Lean Software Development: An Agile Toolkit» de Mary y Tom Poppendieck. En el libro, los Poppendieck interpretan cómo los principios de la fabricación ajustada pueden aplicarse de forma productiva al desarrollo de software. Tanto la fabricación como el desarrollo de software siguen procedimientos repetibles y requieren normas de calidad precisas. También se basan en el trabajo en equipo para conseguirlo. Por lo tanto, los siete principios de manufactura esbelta pueden aplicarse y utilizarse en el desarrollo de software.
Siete principios esbeltos a seguir para el desarrollo de software
Debido a que permiten una forma más rápida de desarrollar productos de software, los enfoques de desarrollo ágil son populares para muchas empresas de desarrollo. Estas empresas ya están implementando los principios de desarrollo lean. Estos son los 7 principios lean que puedes aplicar en tus proyectos de desarrollo de software:
- Eliminar el desperdicio
El primer principio a seguir en el desarrollo lean es eliminar cualquier cosa que no aporte valor a un usuario final. En el desarrollo de software, este principio puede aplicarse identificando primero el valor del producto de software que se va a construir. Una vez hecho esto, será más fácil detectar los «residuos», es decir, todo lo que no aporta valor al producto y, en última instancia, a los usuarios, incluido el código innecesario, los requisitos poco claros, las características y procesos adicionales, etc. También hay que eliminar otras fases de la metodología que no aportan valor. Existen herramientas que ayudan a identificar los residuos en el desarrollo de software, como el Value Stream Mapping.
- Crear conocimiento
El desarrollo de software es en sí mismo una progresión que genera conocimiento. El principio de creación de conocimiento anima, por tanto, a los equipos de desarrollo a disponer de las estructuras adecuadas para permitir un aprendizaje correcto. Suena sencillo, pero el principio requiere una atención y un compromiso totales. Puede aplicarse a través de la formación, las revisiones de código, los comentarios de código adecuados, la programación en parejas, la documentación del proyecto, las sesiones de puesta en común y mucho más.
- Construir la calidad en
Un equipo de desarrollo ajustado debe asegurarse de que su objetivo es desarrollar la calidad en el producto. Por lo tanto, no deben depender de la noción de garantizar un producto final sin fallos. Por el contrario, los equipos deberían seguir mejorando el proceso de desarrollo y dejar de dispersar los defectos en el producto desde el principio para obtener un producto final funcional.
- Entrega rápida
Las técnicas de desarrollo ágil se centran en entregar el software lo más rápido posible. El desarrollo Lean, al ser un enfoque ágil, también hace hincapié en la entrega rápida de software. Significa que un equipo de proyecto tiene que entregar un componente específico a los usuarios en el momento adecuado. Para su equipo, cree flujos de trabajo uniformes y estables que provengan de la comprensión del valor del proceso para facilitar resultados más rápidos.
- Potencie a su equipo
Potenciar a su equipo de proyecto requiere que se respete a todo el mundo: las personas que trabajan en equipo deben respetarse mutuamente. Cuando las cosas vayan mal, y la mayoría de las veces lo harán, no culpe a la gente. En su lugar, compruebe si hay lagunas en el proceso que puedan provocar problemas y conflictos. Cree un entorno de trabajo favorable para todos y predique con el ejemplo. Además, permita una libertad innovadora para que los miembros del equipo elijan e identifiquen los enfoques y las herramientas adecuadas para cualquier tarea asignada.
- Retraso en la toma de decisiones
Sé que esto suena controvertido ya que convencionalmente tendemos a trabajar tomando decisiones lo más rápido posible. Como principio lean, decidir tarde no significa ser irresponsable en la toma de decisiones. Por el contrario, anima a un equipo de proyecto a mantener las opciones abiertas durante un período más largo para reunir más datos e información que puedan ayudarles a tomar decisiones cruciales. Retrasar la toma de una decisión da más tiempo para aprender y adquirir más conocimientos, lo que se traduce en decisiones aún mejores. Como consecuencia, su proyecto no sufre los impactos negativos que podrían derivarse de una mala toma de decisiones. Piénsalo, ¿preferirías tomar una decisión precipitada y arrepentirte después, o tomarte un tiempo para reunir información y tomar la decisión correcta?
- Optimizar el conjunto
Apuesta siempre por la optimización de todo el proceso de desarrollo y no sólo de los subprocesos. Si sólo aportas valor a uno o a unos pocos de los procesos, el producto final se verá afectado y tus resultados serán inferiores a los esperados. No deberías lanzar un producto inferior porque no hayas tenido suficiente tiempo. Para hacer frente a la suboptimización, el principio de optimización del conjunto fomenta la eliminación de los ciclos viciosos de desarrollo y pruebas y, en su lugar, el funcionamiento con capacidades de trabajo mucho mejores. Optimizar el conjunto permite identificar los flujos de valor del proceso para un equipo completo, lo que permite una entrega más rápida y valiosa. Por lo tanto, hay que centrarse en todo el flujo de valor de principio a fin para lograr la optimización.