Modelo Kanban en Ingeniería de Software

¿Qué es Kanban?

Kanban es un marco muy popular para el desarrollo en la metodología de desarrollo de software ágil. Proporciona una forma transparente de visualizar las tareas y la capacidad de trabajo de un equipo. Utiliza principalmente tableros físicos y digitales para permitir a los miembros del equipo visualizar el estado actual del proyecto en el que están trabajando.

Kanban se originó en Toyota en la década de 1940. El significado de Kanban en japonés es "billtableros”. El tablero Kanban tiene columnas y tarjetas de historias. Las columnas no son nada, pero los estados del flujo de trabajo y las tarjetas no son más que una demostración de la tarea real que está realizando un miembro del equipo.

¿Cuándo utilizar Kanban?

Estas son las razones para utilizar el método de desarrollo Kanban:

  • Kanban se puede utilizar en cualquier dominio y de forma muy eficaz en el desarrollo de software. La gestión de proyectos Kanban ayuda a mejorar la eficiencia del equipo.
  • Es un sistema basado en pull. Las tareas se realizan tan pronto como un individuo queda libre.
  • Kanban debe usarse cuando desees publicar tu trabajo en cualquier momento. Requiere ramificación de git, pero es factible.
  • Kanban debe usarse cuando desee cambiar las prioridades sobre la marcha. Para eso, todo lo que necesitas hacer es poner esta historia en la parte superior de la cola de tareas pendientes.
  • Debe usarse cuando desee visualizar su trabajo y desee ver el progreso de sus tareas visualmente.

Tarjetas Kanban

El sistema Kanban recomienda la visualización del trabajo. Sugiere el uso del tablero físico y digital.

Tarjetas Kanban
Tarjetas Kanban

Las tarjetas Kanban son piezas esenciales en el tablero Kanban ya que representan el trabajo en el que está trabajando el equipo. Estas tarjetas tendrán

  1. Prioridad
  2. Propietario
  3. Tipo de Propiedad
  4. Fecha de vencimiento

Una columna en el tablero Kanban representa la etapa de trabajo y puede colocar un límite de WIP (trabajo en progreso) en la columna. El límite de WIP significa la cantidad máxima de tarjetas que pueden permanecer en esa columna..

Dado que la gestión de proyectos Kanban utiliza un sistema basado en extracción, cuando un desarrollador está libre, puede extraer una tarjeta de la columna de tareas pendientes a la columna de desarrollo.

Tablero Kanban

Tablero Kanban es una herramienta ágil de gestión de proyectos que ayuda a implementar Kanban para gestionar proyectos con fines personales y comerciales. Es un tablero físico o digital (JIRA) diseñado para ayudar a los equipos a visualizar su trabajo en diferentes etapas y procesos. También ayuda a representar las etapas del trabajo con columnas mediante tarjetas.

Tiene columnas que representan el estado del trabajo como

  1. Hacer,
  2. Dev
  3. Pruebas
  4. Hecho.

Cada una de estas columnas puede tener tarjetas <=el límite de WIP. Las tarjetas representan el trabajo real.

Puede utilizar números positivos para limitar el trabajo en progreso, y este número límite se puede colocar en la parte superior de las columnas en los tableros Kanban físicos y digitales. Cualquier individuo del equipo puede gestionar el estado de su tarjeta y todo el equipo puede visualizar el flujo de trabajo. A continuación, en este tutorial de Kanban, aprenderemos sobre el flujo de trabajo Kanban.

Flujo de trabajo Kanban

Flujo de trabajo Kanban es un conjunto de pasos que ayuda a los equipos a definir políticas y principios explícitos en Kanban. Representa las reglas y procedimientos mientras se realiza el trabajo en varias etapas de los ciclos de desarrollo y entrega. El flujo de trabajo Kanban consta de procesos paso a paso entre el inicio y la entrega de una tarea en particular.

El principio básico que sigue Kanban es, “deja de empezar, empieza a terminar”. Con la ayuda de los límites de WIP, se puede realizar más trabajo. Hay flujos de trabajo y estados Kanban personalizables disponibles en cualquier herramienta moderna como JIRA.

A continuación se detallan los estados básicos que siguen muchos equipos de software para la gestión de su flujo de trabajo.

Zonas Comprensión de las tareas.
Que hacer Las tareas llegan aquí por primera vez en este estado.
Listo para el análisis Analice la tarea y agregue requisitos por completo.
Listo para el desarrollo Análisis completado y desarrollo puede comenzar.
En el desarrollo Se están desarrollando tareas.
Listo para la prueba El desarrollo se completó y ahora pueden comenzar las pruebas.
en las pruebas Se están probando las tareas.
Listo para el lanzamiento Pruebas completadas; la liberación puede ocurrir.
Publicado/Hecho Liberado.

Los cuatro principios de Kanban

A continuación se detallan los cuatro principios básicos principales de Kanban:

  1. Empieza con lo que tienes ahora.: El sistema Kanban sugiere trabajar de forma incremental y comenzar con lo que tiene actualmente. Dado que una de sus prácticas es mejorar continuamente, se debe mejorar el sistema gradualmente.
  1. Acuerde buscar un cambio evolutivo incremental: Kanban recomienda un cambio incremental en el proceso y no se debe realizar un gran cambio en el proceso de una sola vez.
  1. Respete el proceso, las funciones y las responsabilidades actuales: Una vez más, comience con lo que tiene ahora y cambie el proceso, el rol y las responsabilidades de manera incremental.
  1. Fomentar actos de liderazgo en todos los niveles: Cada individuo puede actuar como líder y aportar ideas para mejorar la eficiencia del sistema Kanban general. No debes pensar que se trata de una actividad de nivel directivo, e incluso el miembro más joven del equipo puede actuar como líder.

Las seis prácticas básicas de Kanban

Following son las seis principales prácticas centrales de Kanban:

  1. Visualiza el flujo de trabajo: Este principio sugiere tener un tablero Kanban (físico o digital) para visualizar el flujo de trabajo. Cada individuo de un equipo debe ver su tarjeta y las tarjetas de los demás miembros del equipo. Puede mover sus tarjetas en diferentes columnas según la imagen de arriba. Aporta mucha transparencia dentro del equipo y también facilita la resolución de bloqueadores.
  1. Limitar el trabajo en progreso: Kanban es un sistema basado en extracción y mejora la eficiencia de un equipo para limitar el trabajo en progreso y tener tareas que el equipo puede completar en el período de tiempo determinado. Este límite de WIP se aplica desde el principio hasta el final del flujo de trabajo. Puede aplicar el límite en la parte superior de la columna usando un número entero positivo.
  1. Centrarse en el flujo: Este principio se centra en el flujo y en cualquier interrupción. Si hay interrupciones o bloqueadores, se deben arreglar de forma permanente.
  1. Políticas explícitas: Se pueden establecer políticas en equipo para reducir el retrabajo y centrarse en las áreas que requieren atención o donde es más efectiva.
  1. Circuito de realimentación: Los bucles de retroalimentación son muy esenciales en Kanban. No es sólo dentro del equipo sino entre varios equipos, entrenadores, etc. Esto ayuda a mejorar la salud general del sistema Kanban.
  1. Mejora continua: Este es el principio central del sistema Kanban. Afirma que siempre se puede mejorar el proceso y eso dará como resultado una mayor eficiencia.

Sistema basado en tracción

Kanban es un método basado en extracción en el que las tareas se extraen en lugar de empujarse. Tan pronto como haya completado su tarjeta actual, podrá extraer una nueva tarjeta de la columna anterior del tablero Kanban.

Con el límite de WIP, Kanban ayuda a mejorar el tiempo de entrega y el tiempo de ciclo. Debería haber la menor diferencia posible entre estos dos tiempos. Por ejemplo, tenemos 5 desarrolladores y sólo 1 tester; ¿Qué pasará en este caso? Siempre habrá muchas cartas que requerirán prueba y estarán sentadas idle y esperando.

Para superar los problemas mencionados anteriormente y mejorar la eficiencia, Kanban sigue el enfoque basado en extracción con límites de WIP, donde habría una cantidad limitada de tarjetas para extraer.

Por lo tanto, un evaluador sacará una tarea de la etapa "lista para probar" cuando haya terminado la tarea actual que tiene entre manos. Con el límite de WIP en las columnas Kanban (etapas de desarrollo), no tendrá muchas tarjetas desatendidas en el flujo de trabajo Kanban.

El sistema basado en tracción también ayuda a encontrar la velocidad correcta para el equipo. Con la velocidad adecuada, el equipo se desempeñará mejor.

Plazo de entrega y tiempo de ciclo

En el método Kanban, el tiempo de entrega y el tiempo de ciclo se utilizan ampliamente, existe una diferencia entre los dos y es importante entenderlo para evitar confusiones.

Tiempo De Espera Tiempo del ciclo
El tiempo de entrega se mide como el tiempo entre la llegada de la tarea a su flujo de trabajo y su salida del flujo de trabajo, lo que significa que ha sido liberada. El tiempo del ciclo se mide como el tiempo entre la llegada de la tarea al estado "en progreso" y la llegada de la tarea al estado "listo para su lanzamiento".

Aquí también es importante comprender que no se debe incluir el tiempo que transcurre entre el momento en que está listo para su lanzamiento y el lanzamiento real.

Cycle Time = Work in Progress/Throughput

En el escenario ideal, la brecha entre el tiempo de entrega y el tiempo de ciclo debería ser mínima, y ​​Kanban utiliza un diagrama de flujo acumulativo (CFD) para medir los datos históricos del tiempo de entrega y de ciclo.

Diagrama de flujo acumulativo (CFD)

CFD es un gráfico que está disponible en todos los principales herramientas de gestión de flujo de trabajo como JIRA. Este gráfico mide la cantidad total de tarjetas/tareas de trabajo que ingresaron al flujo de trabajo y acumularon tarjetas/tareas completadas a lo largo del tiempo.

Le ayuda a tener una estimación del tiempo de entrega promedio y del tiempo de ciclo para un tiempo predeterminado.

El diagrama CFD le brindará indicadores o áreas problemáticas que debe solucionar. Le proporcionará una imagen clara y basada en este diagrama. Puede corregir el tiempo de entrega y el tiempo de ciclo de su equipo.

Diagrama de flujo acumulativo Kanban
Diagrama de flujo acumulativo Kanban
  1. Tiempo De Espera: Es el tiempo entre la llegada de una nueva tarjeta a su flujo de trabajo y su salida final del flujo de trabajo.
  2. Tiempo del ciclo: Es un período entre la llegada de la tarjeta al estado de funcionamiento y el momento en que la tarjeta está lista para ser liberada.
  3. WIP: El trabajo en curso (WIP) limita la cantidad máxima de elementos de trabajo en las diferentes etapas del flujo de trabajo.
  4. rendimiento: Es el rendimiento real e indica la cantidad real de tarjetas entregadas en un período de tiempo determinado.
  5. Rendimiento = WIP/tiempo de ciclo

Limitar WIP (trabajo en progreso)

En la metodología de desarrollo Kanban, WIP limita la cantidad de tareas/tarjetas en las que puede trabajar un miembro del equipo o todo el equipo al mismo tiempo.

Los límites de WIP aseguran que el equipo estabilice su trabajo y aumentan la naturaleza predictiva, lo cual es esencial en el sistema basado en pull. Por lo general, la decisión sobre el límite de WIP la toma el propio equipo.

Razón para establecer los límites de WIP

Estas son las razones para establecer los límites de WIP:

  • Cambia el enfoque en hacer las cosas mientras un individuo se concentra en una sola tarea a la vez.
  • Ayuda a los equipos a comprender su capacidad.
  • Mejora la productividad y el tiempo de ciclo.
  • Ayuda a evitar la acumulación de tareas (en modo de espera).
  • Ayuda en el movimiento del flujo de trabajo y las tareas siguen moviéndose.
  • También ayuda a resolver los bloqueadores, ya que un individuo no cambia entre diferentes tareas.

Scrum vs. Kanban

Aquí están las diferencias importantes entre Scrum vs. Kanban

Melé Kanban
Melé énfasis en la planificación. Empieza con sprint planificación y termina con sprint retrospectiva. Se llevan a cabo muchas reuniones que ayudan a garantizar que el equipo esté alineado con los próximos pasos, prioridades y aprendizajes de anteriores sprints. Kanban está abierto a realizar cambios sobre la marcha. Significa que hay menos rigidez y las cosas pueden cambiar con frecuencia.
Recomienda la recogida de mediciones de tiempo hecho durante sprints Kanban recomienda gráficos para obtener una visión general del progreso del equipo a lo largo del tiempo.
Melé ya no Pide compromiso a los equipos. En cambio, se trata de la sprint objetivos y previsiones. Kanban se basa en tiempo-boxing y previsiones.
Hace hincapié en la planificación, y por eso La estimación tiene un papel muy importante. en melé Kanban tiene sin requisitos obligatorios para estimación.
Cada el individuo tiene su papel y responsabilidades. No Establecer roles para que haya flexibilidad. en términos de responsabilidades individuales.
Las iteraciones/SprintLos s tienen una duración fija. Esta duración varía de 2 semanas a 1 mes. Kanban es no basado en la duración. Esto se mide con respecto a los tiempos de ciclo.
Los equipos son requerido para comprometerse una cantidad específica de trabajo. Compromiso no necesario es opcional para los equipos.
En este método, equipos multifuncionales son importantes ya que pueden hacer frente a cualquier interrupción que pueda causar un cuello de botella en el desarrollo del software. Teniendo equipo especializado es importante.
Es no es posible agregar elementos a iteraciones en curso. Novedad Los elementos se pueden agregar fácilmente. si la capacidad adicional está disponible.
A sprint el trabajo pendiente es propiedad únicamente de un solo equipo. Equipo múltiplePodemos compartir el tablero Kanban.
Los entregables son determinado por sprints, en el que se debe completar un conjunto de trabajos y estar listo para su revisión. Los productos y procesos son entregado continuamente según sea necesario. Así que el proceso de prueba y revisión continúa simultáneamente.neoUsualmente
Método de desarrollo de software Scrum se centra en el trabajo atrasado. Método Kanban por completo se centra en el panel de procesos.
Cada El miembro del equipo tiene un rol específico. En Scrum Master decide los cronogramas, el propietario del producto establece metas y objetivos y los miembros del equipo realizan el trabajo de desarrollo. No hay roles predefinidos para un equipo. Sin embargo, todavía puede haber un Gerente de Proyecto; Se anima al equipo a colaborar y trabajar en conjunto.
Lo mejor para proyectos con cambiando prioridades. Ideal para equipos con prioridades estables Es poco probable que eso cambie con el tiempo.
Medidas de producción usando velocidad a sprints. Mide la producción usando Tiempo del ciclo o el tiempo exacto que lleva completar una parte completa de un proyecto.
Scrum requiere un cambio completo del modelo tradicional al modelo Agile Scrum que se implementaría en el proyecto. Kanban no permite cambios drásticos en el proyecto.
Es un método ideal para proyectos con prioridades muy diversas. Mejor adecuado para equipos con prioridades estables.
En Scrum, todo el tEl equipo se centra en colaborar y completar la tarea. para proporcionar un trabajo de desarrollo de calidad. Los equipos trabajan para lograr objetivos. y reducir el tiempo para completar todo el proceso. Por lo tanto, la reducción del ciclo de tiempo es el mayor indicador de éxito en este caso.
Melé énfasis en sus horarios; No se pueden agregar nuevos elementos a las iteraciones en curso. Kanban es más iterativo por naturaleza ya que no tiene plazos específicos. De esta manera, se pueden agregar nuevos elementos continuamente siempre que haya capacidad adicional disponible.
El trabajo total se realiza en lotes/Sprints. Todo el proyecto se realiza sobre el movimiento de elemento de trabajo de un solo subproceso flujos.
Scrum master actúa como solucionador de problemas. Kanban anima cada miembro del equipo es un líder y compartir la responsabilidad entre todos ellos.
Scrum prescribe tiempo-boxiteraciones de edición. Kanban se centra en planeando una duración diferente para iteración individual.
Scrum ayuda a las empresas a ahorra tiempo y dinero. método kanban centrarse en la mejora continua, productividad y eficiencia.
Lograr comunicación estable y consistente de desempeño en todos los niveles. Es más probable que los miembros del equipo lograr sus objetivos mucho más fácilmente debido a la naturaleza visual de los tableros Kanban.
El proyecto es codificado y probado durante el sprint una estrategia SEO para aparecer en las búsquedas de Google. Es más probable que los miembros del equipo lograr sus objetivos mucho más fácilmente debido a la naturaleza visual de los tableros Kanban.
Es Más fácil de adaptar a los cambios constantes. por lo corto sprints y retroalimentación periódica. Es Diseñado para una producción regular y constante., los cambios importantes en la demanda de los clientes pueden hacer que Kanban fracase.
El costo total del proyecto es mínimo lo que puede llevar a resultado más rápido y más barato. Si una tarea no se estima correctamente, el El costo total del proyecto nunca será exacto.. En tales casos, la tarea puede repartirse entre varios sprints.
Esta metodología requiere miembros del equipo experimentados solo. Por lo tanto, si el equipo está formado por personas que no son expertas, el proyecto no se puede completar a tiempo. No plazos específicos se asignan en cada fase, por lo que los miembros del equipo nunca tienen idea de cuánto tiempo pueden dedicar a cada fase.
En este método Agile Scrum, es más fácil entregar un producto de calidad a una hora programada. Está diseñado para un producción regular y constante, Los cambios importantes en la demanda de los clientes pueden hacer que Kanban caiga.
El El plan del proyecto nunca perturbará. incluso si un miembro del equipo deja el equipo. Si alguno de los miembros del equipo sale durante el desarrollo, puede perjudicar el desarrollo del proyecto.
A veces reuniones diarias frustrar miembros del equipo. Tablero Kanban obsoleto puede generar problemas en el proceso de desarrollo.
Los proyectos grandes se pueden dividir fácilmente en fácilmente manejable sprints.

Resumen

  • Definición de Kanban: Kanban se define como una metodología de desarrollo ágil para desarrollar software, automóviles, bienes, medicinas, zapatos o cualquier otro trabajo de fabricación.
  • Kanban utiliza el tablero Kanban para visualizar el trabajo. Utiliza columnas como etapas (tareas pendientes, desarrollo, pruebas, etc.) y tarjetas como elemento de trabajo.
  • La metodología Kanban soporta el tablero físico y digital para la visualización.
  • Kanban es un sistema basado en extracción, y los miembros del equipo extraen las tarjetas de la etapa anterior a las etapas actuales.
  • El método Kanban utiliza el diagrama CFD para comprender el tiempo de entrega y el tiempo de ciclo del equipo. Este gráfico ayuda a los equipos a corregir la brecha entre estos dos tiempos y mejorar la eficiencia.
  • Metodología de desarrollo Kanban, WIP limita la cantidad de tareas/tarjetas en las que puede trabajar un miembro del equipo o todo el equipo al mismo tiempo.
  • Los límites de WIP cambian el enfoque en hacer las cosas mientras un individuo se concentra en una sola tarea a la vez.