Los cambios de requisitos son bienvenidos con Scrum, pero ¿a qué precio?
Blog -
Agilidad
16.02.2011
La gestión de proyectos predictiva afirma que la forma más eficiente de hacer un trabajo es hacerlo bien a la primera. ¿Es más eficiente la gestión de proyectos predictiva que la gesitón de proyectos ágil?.
La ingeniería de software tradicional necesita requisitos detallados y estables.
Para la gestión de requisitos tradicional, (una de las cinco áreas de
conocimiento de la ingeniería de requisitos según SWEBOK) cada
modificación de requisitos es una "incidencia". Un torpedo contra el
éxito del proyecto que requiere un estudio de impacto y medidas de reparación.
Sin embargo , los requisitos genéricos y los cambios durante el desarrollo son las premisas del desarrollo ágil, que
afirma cosas como "Son bienvenidos los requisitos cambiantes, incluso si
llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio
como ventaja competitiva para el cliente".
La clave de esta aparente contradicción está en los ciclos de vida
empleados por unos y por otros: El desarrollo secuencial o en cascada
necesita requisitos detallados y estables, algo que no sucede si se usan modelos iterativos.
Requirements Management in an Agile-Scrum
Pero... todo tiene su precio. La agilidad
se adapta al cambio y da más valor a la visión del producto, en cada
modificación que va descubriendo mientras lo construye... pero claro, los cambios de requisitos repercuten en la eficiencia del equipo y en la calidad entregada. Porque es evidente que "La forma más eficiente de hacer un trabajo es hacerlo bien a la primera".
¿Sí?.
¿Alguien lo ha comprobado, o simplemente se da por supuesto porque parece obvio?.
Esto es lo que se plantearon los profesores de la Universidad de San
Marcos en Texas Elizabeth Oyeyipo y Carl Mueller, y para comprobarlo han realizado un estudio con 33
alumnos de Ingeniería de Software, formando 8 equipos de 4 ó 5
programadores y cuyos resultados publica la Universidad en el reciente informe "Requirements Management in an Agile Scrum "
Los 8 equipos construyeron el mismo sistema con el mismo product backlog y
trabajando con el mismo propietario de producto: un programa de gestión
de agendas.
Siete equipos trabajaron con Scrum, admitiendo al propietario de producto realizar cambios en el backlog de requisitos durante la ejecución del proyecto. Un equipo se empleó como referencia para contrastar los datos, de forma
que usó un ciclo de desarrollo iterativo (4 iteraciones en lugar de los 4 sprints) pero sin modificar los requisitos, para
analizar las diferencias de eficiencia y calidad.
Las métricas empleadas en el estudio han sido 29, agrupadas en 4
categorías: Esfuerzo del equipo, Funcionalidad producida, Impacto de los
cambios de requisitos y calidad entregada.
(El grupo I trabajaba con Scrum y el II no)
El estudio concluye que los grupos trabajando con Scrum permitiendo cambios en el backlog entregaron más calidad, más funcionalidades e invirtieron menos horas que los que trabajaron con iteraciones sin permitir cambios.
Scrum: opiniones de los directivos y cambios en sus funciones
Blog -
Agilidad
10.02.2011
La función de los directivos y gestores en una organización con Scrum es un tema muy interesante del que no hay casi ningún estudio. El documento "Virtual Reality Meets Scrum. How a Senior Team Moved from Management to Leadership" analiza los cambios en las funciones de gestión y los comportamientos en el personal de empresa finlandesa de juegos sociales Sulake, que comenzó a trabajar con Scrum en 2006, y lo institucionalizó a los 6 meses.
El estudio se ha realizado en 2009 con las respuestas de 19 directivos y 36 técnicos.
Los mayores desafíos para los gestores en organizaciones con Scrum consiste en dar autonomía al equipo, y no practicar la micro-gestión.
Conocer metodologías acelera el aprendizaje, pero luego la conformidad lo detiene.
Blog -
gestion
27.01.2011
1998: "No termino de ver por qué tenemos que trabajar con ISO 9000 en el
departamento de programación, pero lo recomiendan todos los expertos en
calidad, y lo hacen las mejores empresas. Mejor no desentonar, porque soy novato en dirigir equipos de programación, así que vamos a
por lo mejor."
2001: "¿Donde vas con una ISO 9000? Para la industria del software lo mejor y lo último es CMM."
2005: "¿Procesos? Los procesos son del siglo pasado." Tienes que usar Scrum. 2007: "¿Scrum o Kanban?...." ¡Eso que tu haces no es así! ¡El proceso tiene que ser así....!
Wikipedia: Conformidad es el grado hasta el cual los miembros de un
grupo social cambiarán su comportamiento, opiniones y actitudes para
encajar con las opiniones del grupo.
Los modelos son útiles para dar los primeros pasos, pero después, adoptar mecanismos de conformidad puede bloquear el desarrollo de un criterio profesional propio.
En el último viaje a San Francisco conocí ingenieros tanto de
Google y de Apple, como de pequeños proyectos y startup's (La gente de Apple cuenta muy poquito por las cláusulas de confidencialidad de sus contratos).
Aunque son empresas y equipos diferentes,sus formas de trabajar tienen dos cosas en común, que prácticamente ni se las cuestionan:
La primera: sus prácticas y métodos dan forma a principios ágiles: Trabajan desde una visión conocida y
compartida por todo el equipo, no desde requisitos detallados. Avanzan
de forma iterativa e incremental en incrementos cortos y breves,
tomando feedback continuo...
La segunda: Pasan de metodologías y dogmas ágiles.
Y es que fijarse en la forma (en las prácticas) y no en el fondo (en los principios) es mirar al dedo y no a la luna a la que señala. La agilidad sin flexibilidad acaba siendo un dogma paradógico: enseñar cómo deben organizarse los equipos "auto-organizados" (?). Es como aquello del "prohibido prohibir"
Es una pregunta más ambigua de lo que parece. ¿Vendemos horas de trabajo o sistemas valiosos?. Preguntar cómo se debe facturar el software, es como preguntar cómo se debe facturar la pintura.
Es una herramienta gratuita sobre interfaz web para gestión ágil de proyectos que además de los artefactos más frecuentes (pila de producto, pila de sprint y pizarra de trabajo con representación kanban y gráfico burndown) incluye también aspectos interesantes como registro de requisitos no funcionales, riesgos, impedimentos, versiones, wiki o foro.
1.- herramientas para gestión y seguimiento ágil:
Pizarra de trabajo con gráfico de avance o Burndown.
Registo de Sprint: Registro y segimiento a nivel de tareas con indicación del estado y tiempo pendiente de cada una que se pueden ver en formato kanban, en el que se agrupan las tareas por historias de usuario, o en formato pila de sprint. En ambos casos con información de tiempos, impedimentos y comentarios.
Producto: Registro y seguimiento a nivel de historias de usuario en formato pila de producto, con información de estimación, comentarios del equipo, historias y temas relacionados. En este área también se pueden registrar requisitos genéricos de calidad que afectan a varias historias, Temas y versiones.
Proyecto: Registro y seguimiento de parámetros del proyecto: Impedimentos, Riesgos, Diario del proyecto, fechas e histórico de sprints.
Así era la primera implementación de Scrum para software
Documentos -
articulos
26.12.2010
Scrum es el término dado por Nonaka y Takeuchi al método de desarrollo de nuevos productos realizado con equipos reducidos, multidisciplinares, que trabajan con comunicación directa y empleando ingeniería concurrente, en lugar de ciclos o fases secuenciales.
Esta forma de trabajo logra niveles de eficiencia y valor en el producto superiores a los obtenidos con ingeniería secuencial y producción basada en procesos. En los 80, Nonaka y Takeuchi analizaron esta forma de producción, observando cómo trabajaban los equipos de las empresas tecnológicas que lograban mayores niveles de eficiencia y valor en sus productos("New New Product Development Game"): Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Xerox y Hewlett-Packard.
Diez años más tarde Ken Schwaber presentó en OOPSLA (1995) la descripción de la implementación de Scrum para software que él empleaba en el desarrollo de Delphi.
Las implementaciones de Scrum para desarrollo de software se vienen enriquecendo desde entonces, y poco tienen que ver las implementaciones actuales con la original de Ken. Ahora es muy raro que alguien configure un campo de Scrum con los controles originales (paquetes, cambios, riesgos, soluciones...) el Backlog único ha evolucionado a Backlog de producto y Backlog de Sprint. También es habitual usar un backlog estratégico o "Epics" de producto. La evolución añadió a la reunión de revisión de sprint, otra de inicio; y más tarde otra de retrospectiva. Tampoco se suele usar la fase de cierre, etc.
También la prácticas se han enriquecido. En 2001 apareció el gráfico burndown, más tarde empezó a ser habitual el uso de estimación de póker, luego tableros de control visual kanban...
Para tener una visión de retrospectiva, este es el "paper" de Ken Schwber presentado en 1995 su implementación de Scrum en OOPSLA: "SCRUM Development Process " y este otro su artículo del mismo año "Living on the Edge" en el que describía su implementación de Scrum para Software.
Como adelanto, esta sería la traducción de la "metodología" y su fases:
Los primeros en observar diferentes implementaciones de SCRUM para el desarrollo de nuevos productos con alto rendimiento fueron Takeuchi y Nonaka (1) en Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Xerox, y Hewlett-Packard. Coplien ha seguido y documentado un enfoque similar para el desarrollo de software en Borland, logrando la mayor productividad con C++ (1). Recientemente, Jeff Sutherland ha aplicado un enfoque más refinado de SCRUM en Smaltalk, y Schwaber en el desarrollo de Delphi. … Llamamos a este enfoque metodología SCRUM (véase Takeuchi y Nonaka, 1986) por el uso del término SCRUM en rugby –la formación cerrada que forman los delanteros para realizar el avance- … Scrum es una metodología para mejora y mantenimiento de un sistema existente o la producción de un prototipo. Se asume la existencia de diseño y código en su mayor parte orientado a objetos, basado en librerías y clases. SCRUM gestionará la reingeniería completa posterior de sistemas heredados. …..
FASES DE SCRUM
SCRUM comprende las siguientes fases:
1.- Pre-juego
Planificación: Definición de una nueva versión basada en la pila actual, junto con una estimación de coste y agenda. Si se trata de un nuevo sistema, esta fase abarca tanto la visión como el análisis. Si se trata de la mejora de un sistema existente comprende un análisis de alcance más limitado. Arquitectura: Diseño de la implementación de las funcionalidades de la pila. Esta fase incluye la modificación de la arquitectura y diseño generales.
2.- Juego
Desarrollo de sprints: Desarrollo de la funcionalidad de la nueva versión con respeto continuo a las variables de tiempo, requisitos, costo y competencia. La interacción con estas variables define el final de esta fase. El sistema va evolucionando a través de múltiples iteraciones de desarrollo o sprints.
3.- Post-juego
Preparación para el lanzamiento de la versión, incluyendo la documentación final y pruebas antes del lanzamiento de la versión.
"Somos parte de la tierra como organismo y la diferencia entre un
orgnismo y un mecanismo es que en el mecanismo el todo es la suma de las
partes, en un organismo cada parte está relacionada con el todo, lo que
hace cada una de las células influencia al todo, y cada célula necesita
a la totalidad para existir"
La cita no es de del presidente de una asociación de hermandad o una
ONG. Es del subdirector de un banco: Joan Melé, subdirector del banco
Triodos Bank, en su conferencia en la EOI el 6 de Mayo de 2010. "Dinero y Conciencia".
La idea del planeta o de la humanidad en su conjunto como organismo no
es ninguna tontería. Lleva preocupando durante años a científicos como
el nobel Edward O. Wilson, el inventor de la sociobiología, que siempre
ha creído que los humanos constituimos un superorganismo, pero que tiene unas células extrañas que suelen desarrollar un comportamiento que pese a colaborar con el superorganismo, nunca
renuncian del todo a su esfera de intereses individuales,
pudiendo éstos llegar a poner en peligro al conjunto.
Una célula centrada en su propio crecimiento, y no en el crecimiento equilibrado de todo el organismo, ¿no es un cáncer?.
fractalTeams, un modelo de equipos para empresas ágiles
Blog -
Libros
20.11.2010
Se llama fractalTeams y su autor, Michel Henric-Coll, muestra la antítesis del tecnomanagement poniendo al descubierto sus falacias, y desde ellas extracta un resultado de síntesis para la gestión de personas y equipos, al que llama fractalTeams.
Por el convencimiento personal de que la implantación de agilidad en una empresa debe ser sistémica, esto es: implicando a toda la organización como el sistema de relaciones complejas (no complicadas) que es, y considerando al mismo tiempo que sólo funciona en organizaciones basadas en equipos; ésta es sin duda la mejor descripción que conozco de lo que deberían ser los equipos en una organización ágil.
Por eso el libro con el que describe fractal Teams es un estupenda referencia para gestores, que además además de ser muy bueno, Michel comparte de forma libre.
Gracias!!
¿Queréis hacer ganas de leerlo?...
MODELO TAYLORISTA
(Organización Científica del Trabajo)
FRACTAL TEAMS
Los pilares
Centralismo: la información fluye de abajo arriba, y las decisiones desde arriba hacia abajo.
Fragmentación de las tareas: los empleados no disponen de
una visión global del trabajo ni de la finalidad del mismo.
Individualismo: premios, castigos, valoraciones y resultados
están basados en el individuo por diferencia u oposición a los demás.
Autonomía: los
equipos disponen de la información y de la capacidad de decisión
operativa necesaria para poder efectuar su propia regulación.
Sentido: el trabajo tiene significado y una finalidad que ha
de ser percibida y compartida por todos los que contribuyen.
Reciprocidad: estamos en un sistema interrelacionado en el
que somos interdependientes. De la colaboración nacen las sinergias.
Liderazgo
Basado en la autoridad del mando
y la subordinación de los trabajadores. El jefe asigna individualmente
las tareas y determina la manera de hacer las cosas.
Los objetivos
están marcados por los mandos pero el equipo dispone de autonomía
operativa y de un grado de libertad para la asignación de tareas y la
manera de llevarlas a cabo.
Control y regulación de las personas
La información y el control están centralizados al máximo y controlado por los mandos.
El control está descentralizado y parte de la regulación está en manos del propio equipo.
Selección de personal
La selección está basada en
conocimientos técnicos o en comportamientos anteriores tomando muy poco
en cuenta las interrelaciones y el entorno.
La selección toma muy en cuenta el entorno humano, las interrelaciones y los roles de equipo.
Formación del personal
Formación tradicional, estructurada y destinada a transmitir un saber o saber-hacer.
Además de la
formación estructurada, y con mayor recurso al aprendizaje experiencial,
se genera aprendizaje por la transmisión de conocimiento entre miembros
del equipo, y generación de conocimiento a través de la mejora de
procesos y de la resolución de problemas en equipo.
Gestión del conocimiento
Cuando un empleado deja de
formar parte de la empresa, se pierde la mayor parte del conocimiento y
de la experiencia acumulados por esta persona.
Cuando un
miembro del equipo se va, la mayor parte de sus conocimiento y
experiencia se queda al no ser un saber y saber-hacer individual sino
colectivos.
Motivación
Motivadores casi exclusivamente
extrínsecos basados en recompensas que a plazo, dejan de motivar. La
organización es en si misma desmotivadora.
Se tienen en
cuenta motivadores intrínsecos y existenciales. La autonomía operativa,
la corresponsabilidad y la mayor eficacia motivan. La organización es en
si misma motivadora.
Fidelización
Considera a las personas como un recurso y una variable de ajuste. El modelo de dirección de personas quema a la gente.
Es una
organización holística y ontológica donde existe la diversidad, se
aporta sentido a las tareas y se armonizan los proyectos personales con
los de la empresa.
Relaciones sociales e interpersonales
Se potencia la
individualización, las relaciones se basan en términos de competencia,
las relaciones sociales se perciben como una distracción de la
productividad.
Las relaciones
sociales y funcionales son interdependientes y se refuerzan mutuamente.
Las interrelaciones armoniosas son fuente de eficacia y productividad.
Clima laboral
Tenso, basado en una
contradicción entre un discurso que proclama la colaboración y una
realidad basada en la rivalidad individual. El jefe manda mucho y apoya
poco.
La
colaboración es una realidad favorecida por el modelo organizativo, las
relaciones se basan en la colaboración y la corresponsabilidad. El jefe
guía, anima y apoya.