Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciclo de Deming
Edward Deming era un estadista norteamericano que tras la segunda guerra mundial empezó
a divulgar por allí conceptos relacionados con la mejora de los procesos y el aumento de la
calidad. Debemos recordar que Japón se encontraba desolada y habiendo sido perdedor de una
gran guerra. Poco a poco los japoneses fueron adoptando los consejos de Deming
principalmente en la industria automovilística, encabezada por Toyota.
Deming se hizo popular por divulgar los conceptos de Walter Andrew Shewhart, otro estadista
que realizó diferentes estudios sobre la optimización de procesos. Uno de los términos que
popularizó Deming fue el posteriormente llamado Ciclo de Deming que básicamente consiste en
establecer el modelo de aprendizaje empírico utilizando en otros ámbitos como las ciencias. Este
proceso consta de cuatro fases:
Planificación
Hacer
Inspección de los resultados.
Adaptación en función de los resultados obtenidos
Metodologías Ágiles
Triángulo de hierro
Tiempo que vamos a tardar en realizar el proyecto. Alcance como el conjunto de requerimientos
a cubrir. Coste como el dinero que deberemos invertir. Está directamente relacionado con las
personas y recursos materiales que participen en el proyecto.
Por mucho que queramos, no podemos cerrar los tres vértices ya que siempre al menos uno
debe ser variable para que la calidad (en el centro) no se vea repercutida. Esto quiere decir que
nunca en un proyecto podremos fijar el tiempo de duración, el número de tareas o alcance a
realizar, así como cuantas personas lo van a formar. Es decir, no podríamos fijar que vamos a
realizar un proyecto en tres meses, para realizar 25 tareas con 5 personas sin que la calidad el
mismo se vea afectada. De esta manera podemos cerrar tiempo y alcance y dejar libre el número
de personas necesarias (coste), o bien decidir el alcance del proyecto y las personas que lo van
a formar y así dejar libre el tiempo que tardarán en realizarlo.
Nunca debemos perder de vista la calidad en el centro de todo. Por tanto, cualquier decisión que
tomemos debería ir orientada a no repercutir en esta calidad. Construir proyectos de baja
calidad a la larga nos traerá muchos problemas de mantenimiento e inestabilidad futuros.
En las metodologías ágiles lo normal es fijar el tiempo (entre 1 y 4 semanas) y el coste, es decir,
el número de personas que participarán en cada sprint y variaremos el alcance o número de
requisitos o funcionalidades que entregaremos en cada periodo de tiempo. De esta manera al
fijar el tiempo estaremos consiguiendo un ritmo continuo por parte del equipo y si conseguimos
que el equipo sea estable (sin demasiadas salidas y entradas de personas) conseguiremos
también mayor efectividad con el consiguiente éxito en el proyecto.
Metodologías Ágiles
Cono de incertidumbre.
Pero en los proyectos relacionados con la gestión del conocimiento, proyectos cuyo resultado es
algo inmaterial (que no se puede tocar) como por ejemplo el desarrollo de software, no se puede
aplicar los mismos esquemas ya que lo que estamos intentando construir ni siquiera sabemos
cómo es.
Es por ello que las metodologías ágiles promueven el inicio de la fase de “hacer” lo antes posible
para tratar de que aparezcan estos impedimentos tan pronto como sea posible. De esta manera
pasamos del ámbito de lo teórico, al tratar de “adivinar” que impedimentos tendremos, al
ámbito de lo práctico donde los impedimentos tarde o temprano terminan apareciendo.
Metodologías Ágiles
Iterativo e incremental
Uno de los pilares en torno a las metodologías ágiles es que promueven el desarrollo de
proyectos de forma iterativa e incremental. Este enfoque es diferente al de otros enfoques o
metodologías como, por ejemplo, el enfoque en cascada donde se divide el proyecto en fases
para acabar construyendo el proyecto al final.
Los enfoques ágiles promueven sin embargo el desarrollo iterativo e incremental ya que están
pensados para proyectos con una alta incertidumbre y una gran variabilidad en los requisitos, es
decir, muchos cambios. Por ello, lo que nos interesa en este tipo de proyectos es ir obteniendo
feedback lo antes posible de nuestros clientes, con el objetivo de reducir la incertidumbre y saber
si lo que estamos construyendo es realmente lo que quieren.
Por ello, necesitamos un enfoque de proyecto que priorice esta entrega frecuente (en el caso
del software de funcionalidades) que nos permita saber si vamos en la buena dirección. Veamos
de qué manera nos puede ayudar.
El concepto de iterativo tiene que ver con dividir el proyecto en pequeñas fases (o iteraciones)
con el objetivo de entregar al final de cada iteración un pequeño entregable de nuestro producto
que añada (incremente) valor al anterior. Quizás el resultado final de cada iteración no sea el
producto tal y como lo quiere nuestro cliente, pero si será algo que le aporte valor y que nos
permita al equipo de desarrollo conocer si lo entregado se adapta o no a sus necesidades y
cumple con sus expectativas.
Por otro lado, el concepto de incremental tendría más que ver con dividir el cuadro de tal manera
que partamos de un lienzo con trazos muy sencillos y fuéramos poco a poco dotando de color y
complejidad a nuestro cuadro.
Una primera aproximación, la que siguen los enfoques más tradicionales en el que damos por
supuesto que nuestro cliente lo que necesita es un coche. Dado esto por supuesto dividimos la
construcción de este en diferentes fases. Al finalizar cada fase le entregamos a nuestro cliente
un trocito de ese coche. Solo en la fase final nuestro cliente se sentirá contento y tendrá su coche
Metodologías Ágiles
listo. Por el resto de fases anteriores no le hemos aportado nada de valor ya que no ha podido
hacer nada con solo dos ruedas, un chasis, etc.
Si, por el contrario, optamos por una aproximación iterativa e incremental trataremos de aportar
valor en cada una de las diferentes fases del proyecto. Sabiendo que la necesidad real de nuestro
cliente es viajar o transportarse a los sitios de una manera más rápida podemos optar en una
primera iteración por construirle un pequeño monopatín. De acuerdo, este monopatín no es un
coche, pero si pensamos en la necesidad que queríamos cubrir (viajar o transportarse más
rápido) creo que de esta manera ya estamos cubriendo con esa necesidad y nuestro cliente
puede empezar a estar un poco más satisfecho.
Lo malo de las metáforas es que son reducidas y pueden llevar a confusión. Está claro que, si
nuestro cliente tiene claro que quiere un coche, no estará muy contento si le entregamos un
monopatín al inicio, pero, estamos utilizando estos enfoques porque es nuestro cliente
precisamente el que no tiene claro lo que necesita.
Metodologías Ágiles
En nuestro contexto, los valores del manifiesto ágil son la base sobre la que tomar decisiones y
primar unas cosas por encima de las otras. En el manifiesto ágil así se indican estos valores:
El manifiesto ágil fue firmado por expertos de desarrollo de software que llevaban varios años
en la industria. Fue firmado pues por personas con amplios
conocimientos y experiencia. Fue en base a esta experiencia anterior lo que les había permitido
darse cuenta de que podría haber maneras diferentes de desarrollar software ya que los
enfoques hasta la fecha estaban centrados en metodologías y procesos que primaban más otras
cosas.
Metodologías Ágiles
Para complementar a los valores tenemos los principios que podríamos decir que son más
concretos. En el propio manifiesto ágil se incluyen 12 principios que pasamos a enumerar:
Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los
procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al
cliente.
Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con
preferencia al periodo de tiempo más corto posible.
A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a
continuación ajustar y perfeccionar su comportamiento en consecuencia.
Metodologías Ágiles
Scrum
Generalmente a las personas para las que construimos el producto se les llama Interesados o
Stakeholders en inglés. Pueden ser todas las personas que tienen interés en lo que estamos
construyendo. Por ejemplo, si estuviéramos construyendo una aplicación para un hospital, los
interesados podrían ir desde el Director General del Hospital, pasado por Celadores, Enfermeras,
Médicos, Supervisores, Recepcionistas y todas aquellas personas que de algún modo les afecte
directa o indirectamente en su trabajo la construcción de la aplicación.
Una vez tenemos claro que personas son a las que les vamos a aportar valor es necesario
recopilar en un único sitio todas las ideas, funcionalidades y demás elementos que van a
componer nuestro producto. A este conjunto de elementos ordenados por valor de negocio
(arriba los que más valor aportan) se le llama Pila de Producto o Product Backlog en inglés. A los
elementos que componen esta Pila de Producto se les conoce como PBIs del inglés Product
Backlog Items o Elementos de la Pila de Producto.
Para gestionar toda esta comunicación y gestionar la pila de producto existe un rol específico
llamado Dueño de Producto o Product Owner en inglés, cuyo objetivo es maximizar la entrega
de valor en cada Sprint, es decir, que el equipo construya lo que le aporte más valor a los
Interesados.
Otro rol clave entonces es Equipo de Construcción, encargado de las labores puramente de
construcción del producto. Es el encargado en cada Sprint de entregar una parte del incremento.
Tanto la selección de los PBIs más importantes como el desgranado de estos en tareas técnicas
se realiza en la Reunión de Planificación del Sprint o Sprint Planning en inglés. A esta reunión
acuden Dueño de Producto, Equipo de Construcción y Scrum Master y el resultado de la misma
debería ser una Pila del Sprint junto con los objetivos claros del mismo. Debe quedar claro que
en la Reunión de planificación el Dueño del producto junto con el Equipo de construcción
deciden de forma colaborativa que elementos entrarán en el siguiente Sprint. Ya que puede
haber elementos que aporten mucho valor a los clientes pero que técnicamente sean muy
difíciles de realizar en este momento. Por tanto, debe ser algo consensuado entre ambos roles.
Metodologías Ágiles
Una vez comienza el Sprint de duración fija entre una y cuatro semanas, el Equipo de
construcción comienza a trabajar sobre la Pila de Producto. Para realizar una gestión de riesgos
adecuada y fomentar la comunicación y sincronización entre los miembros del equipo Scrum
introduce la Reunión diaria o Daily Meeting donde el principal objetivo es detectar problemas e
impedimentos que afecten al desarrollo del Sprint. Esta reunión es una reunión corta de no más
de 15 minutos.
Pues esto se repite durante todo el Sprint y el equipo va terminando todos los elementos de la
Pila del Sprint. Por ello, al finalizar este, es necesario revisar todo lo construido para ver si se
ajusta a lo que necesitan los Interesados y así poder recibir feedback de estos Interesados. Eso
sucede en la Reunión de Revisión o Demo donde se inspecciona todo lo realizado por el Equipo
de construcción. A esta reunión acuden el Dueño de Producto como representante de los
Interesados, además del Equipo de Construcción y el Scrum Master. También puede acudir
cualquier otra persona que quiera ver lo entregado. Sería muy recomendable que hubiera algún
Interesado, aunque esto no siempre es posible.
Existe una última reunión cuyo objetivo es trabajar sobre los elementos futuros que entrarán en
el Sprint, es decir, trabajar sobre los siguientes elementos de la Pila de Producto. A esta reunión
donde el Equipo Scrum trabaja para refinar esos elementos, es decir, hacerlos más pequeños,
claros y entendibles se le llama Reunión de Refinamiento.
Metodologías Ágiles
Artefactos, como los elementos con los que trabajamos. Estos son la Pila del producto,
Pila del Sprint, el Sprint, el Incremento del producto, Definición de Listo y Definición de
Terminado.
Reuniones, como los eventos donde se reúnen los diferentes roles. Estas reuniones son:
Reunión de planificación, Reunión de revisión, Retrospectiva, Reunión diaria y Reunión
de refinamiento.
Roles, existen básicamente para dividir las diferentes responsabilidades que nos
encontramos a la hora de construir un producto. El Dueño de producto, encargado de
maximizar la cantidad de trabajo que se realizará, es, por tanto, el encargado de
mantener la visión del producto y la comunicación con los interesados. El Equipo de
Construcción, como encargado de construir el producto, el Scrum Master responsable de
cumplir el proceso y preocupado de las personas. Los Interesados como esas personas
para las que construimos el producto. Debe añadirse que, al equipo formado por Dueño
de Producto, Equipo de Construcción y Scrum Master se le conoce como Equipo Scrum.
Metodologías Ágiles
Una de las funciones del dueño del producto es la de mantener la pila de producto o conjunto
de funcionalidades actualizada y priorizada para que el equipo de construcción sepa en todo
momento cuales son los elementos que aportan más valor a los usuarios.
Además, el dueño de producto asistirá a las reuniones de planificación y revisiones del sprint
con el equipo de construcción para transmitir de una forma efectiva esta visión de producto a
todos los implicados.
El Scrum Master es un rol con un conjunto de responsabilidades muy variadas. Realiza labores
de facilitador de reuniones, así como acompañante del equipo para ayudarle a resolver las
problemáticas que se vaya encontrando a lo largo del proyecto. El scrum master es el vigía del
proceso que vela porque este se lleve a cabo sin olvidar que está pendiente de las personas que
conforman el equipo.
También debe tener una visión de la organización y buenas dotes de comunicación y gestión de
conflictos que ayuden al equipo a mejorar.
Metodologías Ágiles
Las metodologías ágiles nos hablan de que estos equipos deben ser pequeños (de no más de 9
personas), multidisciplinares, es decir, que entre todos los miembros puedan dar servicio al
proyecto y auto-organizados, es decir, que ellos mismos decidan la mejor manera de desarrollar
su trabajo. Algunas tareas típicas de autoorganización de estos equipos son la de asignación de
tareas y estimación, así como el desglose técnico de los requisitos en tareas de bajo nivel.
Diremos que estos equipos son más o menos auto-organizados en función de su nivel para lidiar
con todos estos temas.