practicas valores agilesEl resultado de un marco de desarrollo scrum depende del grado en el que se compaginan sus dos componentes:

  • Las técnicas y prácticas empleadas para producir el resultado de forma incremental y continua.
  • Los valores y la cultura de la organización de las personas que trabajan con esas técnicas.

Usar técnicas y prácticas ágiles en un marco de producción sin una cultura ágil, no es propiamente agilidad, sino ingeniería concurrente (solapamiento de fases) con ciclo de vida incremental, o lo que se podría llamar "agilidad técnica"

La agilidad técnica es adecuada para trabajos en los que por su mecanicidad resulta más eficiente basar la calidad y homogeneidad del resultado en ingeniería de procesos, que en el conocimiento profesional de las personas que lo realizan.

tecnicas y valores agiles

La agilidad técnica resulta apropiada cuando la entrega temprana y el incremento continuo son un valor relevante para el cliente.

Si además también son claves para el valor del producto aportaciones que, como el nivel de innovación o de ingenio, no pueden aportarlos los procesos utilizados en su construcción, y dependen del conocimiento profesional de las personas que lo realizan, es necesario un ambiente scrum para potenciar el talento de equipos compuestos por personas competentes y motivadas.

La potencia de scrum radica en cómo gestiona el ciclo de vida de vida y la aportación de valor al producto.

Ciclo de vida

Scrum no tiene como objetivo entregar el producto completo y terminado en el tiempo y con el coste previsto, sino suministrar lo antes posible un producto mínimo viable e incrementar su valor a través de iteraciones de desarrollo breves y continuas.

Valor del producto

El valor del producto depende y es proporcional al conocimiento profesional de las personas que lo desarrollan, a diferencia de la producción industrial que confía el valor del resultado al “know how” explicitado en los procesos y la tecnología empleados.

La gestión de un ciclo de vida que incremente el producto de forma continua e iterativa, se consigue aplicando determinadas técnicas y prácticas.

Sin embargo la aportación del conocimiento necesario a través de las personas, no se logra por emplear determinadas técnicas, sino creando ambientes de trabajo scrum para atraer y hacer brotar el talento.

Técnicas y prácticas

El ciclo de vida ágil se caracteriza por la entrega temprana de valor, y su incremento continuo en periodos breves.

Los retos que plantea el ciclo de vida ágil son:

 

posomasPosoMAS (Process for Open Self-Organising Multi-Agent Systems) es un método de desarrollo de software que facilita el intercambio de información entre los equipos y mantiene el entendimiento compartido del proyecto, de sus objetivos, alcance y avances.

Recientemente ha presentado una versión para Scrum.

Lo desarrolla el Instituto de ingeniería del software y sistemas de la Universidad de Augsburgo, con la licencia abierta: Creative-Commons Reconocimiento-Compartir-Igual 3.0 y ofrece una completa documentación en fomrto Eclipse Process Framework.

posomas

 

Sólo he podido hacer una lectura rápida y superficial, así que no me atrevo a valorarlo pero me ha parecido que puede ser interesante conocerlo si se anda buscando cómo usar Scrum con un marco metodológico.

Cualquier información adicional o valoración es bienvenida.

 

propietario de producto ¿Sabes desde el principio qué es exactamente lo que quieres hacer, cuánto tiempo vas a necesitar y cuánto costará? ¿O lo que quieres es lanzar un producto, que sin tener un punto final definido, irá evolucionando y creciendo continuamente? Si es así, lo que te hace falta no es un gestor de proyectos que sepa de agilidad, sino un gestor de producto que sepa trabajar con un equipo ágil: lo que en scrum se llama product owner, o propietario del producto.

Scrum es un marco de trabajo para equipos autogestionados, y si se usa para desarrollar productos, el product owner más allá de estar implicado, debe ser miembro y líder del equipo, que si ya es experto en agilidad no precisa para nada ni scrum master, ni gestor de proyecto ágil ni similares.

 

scrum product owner

 

dudasKen Schwaber dice que scrum funciona "Si tienes un equipo de ingenieros brillantes, que usan excelentes herramientas y prácticas de ingeniería, comprendiendo de arriba a abajo el ámbito tecnológico y del negocio, a los que no se les interrumpe, y tienen los recursos tecnológicos que necesitan.

¡Toma! ¡Así no sólo funciona scrum, sino cualquier metodología!

A ver si va a ser verdad que los buenos equipos no usan metodologías  (y que los malos, ni con ellas ;-)

 

 

dardosEsta fue una de las afirmaciones de Steve McConell, que ayer (1) defendió su postura ecléctica sobre los modelos de desarrollo de software en su intervención "10 Most Important Ideas in Software Development" en el congreso SD WEST2006 (Software Development Conference & Expo).
Su experiencia profesional combina el conocimiento teórico de la ingeniería del software, por su etapa como editor jefe y miembro de IEEE Computer Society, con la visión real de la industria del desarrolo por su puesto actual de Ingeniero Jefe de Construx Software.

Desde su planteamiento central de que diferentes tipos de software necesitan diferentes modelos de desarrollo, argumentó el error que supone plantearse si para nuestra industria lo conveniente es la perspectiva ágil o la basada en procesos.

Defensor del valor de las personas sobre los procesos, y del desarrollo incremental e iterativo sin embargo en su razonamiento ecléctico criticó el exceso de confianza en los modelos ágiles, "en los que inicialmente se había depositado un entusiasmo excesivo. Algo frecuente en las nuevas tecnologías, como ya ocurrió por ejemplo con las herramientas CASE."
Apuntó la contradicción que están demostrando los modelos ágiles cuyos valores teóricos son las personas y su interacción, y que sin embargo en la mayor parte utilizan procesos y tecnología.

En cuanto al resumen de su charla: ideas correctas, e ideas erróneas en el desarrollo de software, expuso los principios que recogen sus obras:

Algunas de las ideas correctas:

  • El software lo desarrollan personas, y su capacidad es un factor crítico.
  • El desarrollo incremental e iterativo es esencial.
  • El coste de arreglar defectos es mayor cuanto más avanzado está el desarrollo, independientemente de que el modelo sea ágil o no.
  • Diferentes tipos de software necesitan diferentes modelos de desarrollo.
  • Ya hay un cuerpo de conocimiento de la ingeniería del software (SWEBOK) con disciplinas como la gestión de la configuración, mantenimiento y pruebas.
  • No cree que SWEBOK sea la ultima palabra pero es un buen inicio.
  • La precisión de las estimaciones se puede mejorar con el tiempo.

Algunas de las ideas erróneas:

  • Sólo hay dos opciones para desarrollar software: iteración continua o modelo secuencial.
  • Con los modelos ágiles el coste de reparar errores no se incrementa al avanzar el desarrollo.
  • Los proyectos de desarrollo de software son problemáticos "per se".
  • Los cambios en los requisitos son inevitables.
  • Los requisitos no se "obtienen", basta tomarlos como maná caido del cielo.
  • Los proyectos empresariales no deben temer a los riesgos
  • Un buen modelo de desarrollo se puede aplicar a todos los proyectos.

Diapositivas de la presentación.

(1) Artículo publicado el 14 de marzo de 2006 en la versión anterior de navegápolis (navegapolis.net)

 

vendidoLos "CMMI's" cada vez se llevan menos. Tras 20 años de ayudar a las empresas de programación, no se sabe si a mejorar el software, o a licitar con ventaja en los concursos públicos, han perdido fuelle y terreno frente a la agilidad.

Así que ahora le toca al negocio de la consultoría renovarse, porque el asesorar con "CMMI's" se vende cada vez peor, y la agilidad es sin duda la nueva tendencia. Lo malo es que algunos, o bien no entienden lo que venden, o sólo les preocupa hacer el dibujo de un marco lo suficientemente creíble para engatusar a los clientes que se conforman con aparentar e ir a la moda.

 

agile for phbs

 

Así que van a convertir a la agilidad en otro modelo de procesos, porque gracias a su capacidad de marketing, van a ser muchas las empresas a las que les van a enseñar cómo deben organizar a los equipos autoorganizados, o a las que convencerán de que Scrum tan sólo es un ciclo iterativo que pueden implementar sin dejar de "embau-contratar" con clientes y administraciones como hasta ahora, porque su marco ágil funciona sin esa bobada de la colaboración estrecha entre cliente y desarrolladores, que sólo serviría para destapar información inconveniente, como que le están facturando 7 "recursos senior" y en su proyecto sólo hay dos becarios desmotivados.

Y de cosas como la autonomía y "empowerment" de los equipos, cultura ágil de la organización... mejor ni hablar.

 

coste laboralEl coste laboral está en relación directa con el salario: coste = salario, pero con un modificador importante: "valor que aporta la persona".

coste = salario / valor.

En la manufactura industrial, y demás trabajos que aplican ingeniería de procesos para garantizar la calidad del resultado,  y que la diferencia entre las personas no resulte significativa, al factor "valor" se le puede considerar una constante.
Además la ingeniería de procesos minimiza la pérdida de know how en la rotación de personal, así que si no escasean los "operarios" en el mercado laboral, se puede simplificar la fórmula y dejarla en "coste = salario", considerando más barato al que menos cobra.

Sin embargo, en la construcción de software, la diferencia de valor aportado entre los buenos y los mejores es enorme. Tan grande que resulta miope mirar al factor "salario" para reducir el coste.
Y por supuesto a los malos y mediocres, ni los considere. A ningún precio; porque disparan el coste al no aportar valor, o aportarlo negativo, porque degradan y complican el código tocan.