359

Navegápolis 2010

Embed Size (px)

DESCRIPTION

Una visión de la gestión de proyectos y empresas de programación, a través de una selección de los mejores artículos publicados en Navegápolis hasta enero de 2010.

Citation preview

Page 1: Navegápolis 2010
Page 2: Navegápolis 2010
Page 3: Navegápolis 2010

Navegápolis 2010. Blook: www.navegapolis.net

Juan Palacio Bañeres

Page 4: Navegápolis 2010

TÍTULO

Navegápolis 2010. AUTOR

Juan Palacio Bañeres

FOTOGRAFÍA DE PORTADA

Mario Alberto Magallanes Trejo FOTOGRAFÍAS

Stock.xchng® EDICIÓN

Navegápolis®

IMPRESIÓN Y DISTRIBUCIÓN

Edición impresa disponible en www.lulu.com http://www.lulu.com/content/1987035 Edición Febrero 2010

DERECHOS

Las formas en las que se puede copiar y distribuir este libro están registradas en Safe Creative y se pueden consultar en el enlace http://www.safecreative.org/work/1001175334227 o en www.safecreative.org/work con el código de registro 1001175334227

Page 5: Navegápolis 2010

A los lectores de Navegápolis

Page 6: Navegápolis 2010
Page 7: Navegápolis 2010

Índice Índice ............................................................................. 7 Prólogo .......................................................................... 11 Personas ........................................................................ 13

¿Gestores o domadores? .............................................. 15 Todo por la empresa ................................................... 16 ¿Cómo motivar a los programadores? ............................ 19 Organizaciones que castigan la comunicación honesta ....... 23 El mito de las evaluaciones de desempeño ...................... 24 Profesionalidad ........................................................... 27 Las interrupciones en el trabajo .................................... 29 Costes laborales ......................................................... 30 Cultura de cumplimiento y evaluación de desempeño ........ 31 El software se desarrolla con talento .............................. 33 Obediencia y docilidad ................................................. 35 ¿El proceso? De formación ........................................... 38 ¿Listo, cumplidor o motivado? ....................................... 39 La difícil combinación de talento y sencillez ..................... 41 ¿Quod natura non dat Salamantica non praestat? ............. 42 Cerrar el departamento de recursos humanos .................. 43 Errores en la selección de personal ................................ 48 Vivir para trabajar, y trabajar para morir ........................ 52 Por Favor, no motive a los programadores ...................... 53 ¿Es bueno medir el valor de las personas? ...................... 54 Los ocho estereotipos de programador ........................... 56 Proyectos, gestión, gestores y programadores ................. 58 Totalitarismo profesional .............................................. 60 A ver cuando me ascienden para dejar de programar ........ 61 Equipos auto-gestionados ............................................ 62 Trabajo, talento, procesos y agilidad .............................. 63 Jefes y jefes .............................................................. 64 Jefes y jefes .............................................................. 65

Procesos ......................................................................... 67 El manifiesto ágil se quita la chaqueta de pana y CMMI se vuelve ágil. ................................................................ 69 Métrica 3: ¿Reinventando la rueda? ............................... 72 Modelos de procesos y calidad: no auto-medicarse ........... 74 Del origen de Scrum ................................................... 76 Procesos: incompatibilidades y efectos secundarios .......... 77 Los cuatro principios del manifiesto ágil .......................... 81 Métricas en equipos auto-gestionados ............................ 85 Las historias de terror de CMMI ..................................... 87 Si nos han vendido una moto… nos van a dar una moto .... 89

Page 8: Navegápolis 2010

El error de los modelos CMM ......................................... 92 La caja del producto .................................................... 94 ISO reconoce que los actuales modelos de software son inadecuados para pymes .............................................. 96 Síntesis ..................................................................... 98 Good Agile, Bad Agile y otros fundamentalismos ............ 103 Cultura de cumplimiento ............................................ 106 Flexibilidad = síntesis + gestión sistémica ..................... 108 ¿Por qué 5 niveles de madurez? .................................. 110 La forma y el fondo de la agilidad son cosas diferentes .... 113 Método ágil de estimación: Planificación de póquer ......... 115 Síntesis entre agilidad y disciplina ............................... 118 Factorías y talleres de software ................................... 122 Homo homini lupus ................................................... 123 La certificación ScrumMaster es una amenaza para la gestión ágil ........................................................................ 124 Fundamentalismo ..................................................... 127 Scrum con el culo, y dinero por nada ........................... 128 La lista definitiva de modelos y buenas prácticas para proyectos de software ............................................... 131 Café o tila ¿Por qué no los dos a la vez? ....................... 143 Cefa-agilidad ........................................................... 146 Modelos ágiles, prácticas recomendadas y otras apostasías ............................................................................. 148 Agilidad: el hábito no hace al monje ............................ 150 La ingeniería del Software tiene aún muy poco camino recorrido ................................................................. 152 Scrum Master y Scrum Alliance: ¿La escoria de la agilidad? ............................................................................. 156 Agilidad y socialización del conocimiento ....................... 159 Un modelo razonable: aplicar metas y prácticas genéricas CMMI a las prácticas específicas ágiles ......................... 161

Proyectos ..................................................................... 163 ¿Cómo se estima el precio de los proyectos de software?. 165 El software es así...................................................... 166 Preguntas sobre el diseño .......................................... 167 ¿Métodos de desarrollo ágil con contratos de fecha y precio cerrados? ................................................................ 172 Necesitaré 3 recursos Java ......................................... 176 ¿Cómo se decide la compra de software? ...................... 178 ¿Cómo es la estrella de tu proyecto? ............................ 180 PSP (Personal Software Process) o cómo pasarse de rosca midiendo ................................................................. 182 Hay dos formas de viajar ........................................... 185 El escenario TIC necesita otro modelo de gestión de proyectos ................................................................ 188

Page 9: Navegápolis 2010

¿Requisitos cerrados o evolutivos? ............................... 189 ¿Cuánto he trabajado?, o¿cuánto me queda? ................. 192 Calcular la fecha de fin de proyecto ............................. 195 Los requisitos del sistema y el product backlog .............. 196 Scrum: reunión de planificación del sprint ..................... 200 El “Gantt” ágil .......................................................... 205 Clientes y gestores hablando idiomas diferentes............. 207 9 Bloques: rutina para obtener requisitos con Scrum ...... 209 Niveles de zoom de los requisitos ágiles ....................... 214 Agilidad Kanban ....................................................... 216 Midiendo velocidad, trabajo y tiempo en gestión ágil ....... 219 Los gestores de proyectos ágiles no existen .................. 224 Coordinación de varios equipos en un mismo proyecto .... 225 Sprint y plan de producto vistos como carreras .............. 227 Productividad ........................................................... 229 ¿Scrum, PMI o Flexibilidad? ........................................ 230

Empresa y mercado ........................................................ 233 La incompetencia calificada de los comités .................... 234 ¿Cuál es la finalidad de las empresas? .......................... 236 Problemas divergentes .............................................. 238 Gestores “PHB” ........................................................ 239 Ética empresarial ...................................................... 240 Adquisición de sistemas de software:Intuición ............... 241 ¿Es más importante la venta o el producto? .................. 246 Benchmarking y best practices en manos de aprendices de brujo ...................................................................... 247 Nuestros clientes no quieren programas ....................... 249 Empresas que optan por procesos. Empresas que optan por agilidad ................................................................... 253 Moros y cristianos ..................................................... 254 Algunas majaderías sobre el código abierto ................... 256 ¿El poder político debe intervenir en el sector del software? ............................................................................. 258 Gestión y procesos en empresas de software ................. 259 Estrategias empresariales ágiles .................................. 303 Indicador de la calidad técnica de una empresa de software ............................................................................. 306 Programadores que no están orientados a la rentabilidad 307 Hubo un tiempo en el que la gestión de los procesos valía más que la gestión del talento .................................... 309 Scrum en toda la empresa ......................................... 310 Los buenos directivos también son difíciles de encontrar.. 317 Scrum management: de modelo de negocio a modelo de valor ...................................................................... 319 Factor de escala y agilidad ......................................... 320 Lo mejor de CMMI y Scrum ........................................ 321

Page 10: Navegápolis 2010

Culturas tóxicas para la agilidad .................................. 325 Las tres responsabilidades (mejor que roles) para Scrum 328 ¿Qué tal resultará la implantación de una metodología ágil? ............................................................................. 330 Scrum: ¿de remedio a enfermedad? ............................. 332 ¿Las empresas deben enorgullecerse de su madurez? ..... 334 ¿Cuál es la personalidad de tu empresa?....................... 336 5 niveles de agilidad.................................................. 339 Gestión de blanco y negro .......................................... 341 Empresas con visión .................................................. 343 La teoría de gestión no sirve para los proyectos importantes ............................................................................. 345 Los tres errores más frecuentes de las empresas de programación ........................................................... 347 La agilidad necesita responsabili-dades en toda la empresa ............................................................................. 349

Índice .......................................................................... 357

Page 11: Navegápolis 2010

Prólogo En este libro recopilo una selección de los artículos publicados en Navegápolis (http://www.navegapolis.net) hasta 2010, que comprenden conceptos relevantes para la gestión de empresas y proyectos de software. Ofrecen, en conjunto, una visión práctica e independiente sobre productividad, gestión de personas, desarrollo ágil, compor-tamiento organizacional, modelos de procesos CMMI… Son apuntes escritos, porque me gusta aprender y compartir experiencia y criterios, porque la práctica de bloguear me libera de la rutina diaria, y como afirma Brooks, por el placer de desarrollar cosas que puedan usar y ser útiles a otras personas. Ojalá sea así.

Juan Palacio. http://www.navegapolis.net

Page 12: Navegápolis 2010
Page 13: Navegápolis 2010

Personas

Page 14: Navegápolis 2010
Page 15: Navegápolis 2010

Personas 15

¿Gestores o domadores?

10.03.2005

Las técnicas de gestión basadas en principios de conductismo pavloviano, que premian a quien lo hace bien, y castigan a los que no hacen lo que se desea, son técnicas apropiadas para los animales, y los domadores las vienen utilizando con muy buenos resultados, siglos antes de que Pavlov descubriera su base científica. Con las personas también funcionan, porque todos buscamos lo que nos gusta, y evitamos lo que nos desagrada, pero emplearlas para obtener talento y motivación es como pensar que con la violación se obtienen los mismos resultados que con la seducción.

Page 16: Navegápolis 2010

Personas 16

Todo por la empresa

27.04.2005

Me envían (mejor no mentar a los remitentes, vista la cultura de su empresa) me envían, digo, un documento con la relación de los principios y valores del cuerpo de los marines de EE.UU. (?) Resulta que el directivo de una empresa de desarrollo y mantenimiento de software les ha entregado este documento a los mandos intermedios de la compañía, para que transmitan que esos son los valores, la actitud y la entrega que espera la empresa de todo el personal. Algunos de estos mandos intermedios se han quedado a cuadros. Otros simplemente han comenzado a impartir disciplina; pero, bueno..., otro día prometo comentar las implicaciones de los experimentos de Milgram (pág. 81) Es cierto que hay una corriente, en muchos foros aceptada, que basa las relaciones laborales de las empresas en principios de entrega y disciplina ciegas. Comparar las relaciones de disciplina y acatamiento en una empresa con las del ejército, algo que parece aberrante en la cultura europea, resulta bastante habitual en EE.UU., donde muchos gestores leen libros como: "Semper Fi" (Carrison & Walsh, 2004) "Corps Business "The 30 Management Principles of the U.S. Marines" (Freedman, 2001) O como el escrito por Zell Miller (sargento militar que ha llegado aGobernador deGeorgia) que confiesa que todo lo que debe saber un gestor de empresas se enseña en el cuerpo de marines. Sin comentarios. Respeto todas las teorías y prácticas de gestión, y a sus autores; aunque muchas no las comparto, y algunas incluso me dejan a cuadros.

Page 17: Navegápolis 2010

Personas 17

Aunque hay autores que afirman que todo lo que debe saber un director de empresa se enseña en los marines, reconforta mucho más leer libros como el de Reinhard K. Sprenger "El mito de la motivación", que tiene mucho más clara la diferencia entre motivación y manipulación. Algunos fragmentos de "El mito de la Motivación"

Suele intentarse tal cosa con promesas de este calibre: 'Somos el número uno en el mercado, y tú también serás el más grande si te identificas con nosotros'. O bien: 'Nuestro producto es fantástico, y tú serás fantástico si lo vendes'. Un sistema así ofrece posibilidad de identificarse con algo grande a un yo débil, (...) Se exige veneración. Y no es precisamente raro que, bajo la máscara mágica de la progresista corporate identity, lo que se desee en realidad sean trabajadores dispuestos, como adolescentes, a tatuarse para siempre en el brazo el logotipo de la empresa. Pero esta cultura del fan usada por la estrategia 'seducción' será inefectiva cuando la prometida grandeza resulte vana y se rompa en pedazos; por ejemplo, cuando los productos resulten un fiasco, cuando se critique a la empresa en la opinión pública o, simplemente, cuando la conducta de la discreción no merezca crédito ("¡Por sus hechos los conoceréis!"). El sistema 'por la seducción' es esencialmente incapaz de aprender: comete errores, sin duda, pero no los reconoce, ya que podrían perjudicar la identificación con la entidad. Resulta ejemplar comprobar cómo de numerosas quiebras empresariales se deduce que allí se negaron a ver los errores hasta que ya fue inevitable percibirlos. En la cultura del fan, cualquier crítica se vive como un insulto a la propia familia. Particular interés ofrece el comportamiento de estas organizaciones frente a 'desertores' e 'inadaptados'. (...) En tales empresas, los inadaptados tienen la vida difícil. Y eso que el sistema los crea necesariamente. Pues la sensación de 'ser mejor que la competencia' es muy difícil de mantener a la larga. El espejismo termina por disolverse. Un globo de aire caliente necesita en todo momento más aire caliente. O, dicho de otro modo: aire cálido. Y, en esta lógica, cualquier interrupción en su marcha significa una 'crisis de identificación' del

Page 18: Navegápolis 2010

Personas 18

colaborador. Y cuando, a pesar de todo, el colaborador deja de andar a trompicones ciego de entusiasmo tras los colores de su equipo -e incluso aunque siga implicándose en su trabajo-, surge el conflicto. En un primer momento, aumenta la presión sobre ese 'excéntrico', 'cabezota' o 'listillo' para que se adapte. Si se resiste, se formará una burbuja a su alrededor, se le aislará y se le rechazará una vez tras otra. Podrá salvarse despidiéndose. Pero si permanece 'fiel', terminará abandonándose al cinismo -en mi opinión, la actitud predominante en la actual generación de managers. (...) El colaborador se convierte en 'adepto'. La 'identificación' estimula una cultura de 'fans' de rasgos profundamente adolescentes, un tentador '¡Hazte mío! ¡Serás grandioso!', que difícilmente podrá despertar una 'lealtad' adulta (que es la que yo preferiría por definición

Page 19: Navegápolis 2010

Personas 19

¿Cómo motivar a los programadores?

05.06.2005

Son muchos los directivos y responsables de RR.HH. en empresas de software que no terminan de encontrar respuesta a la pregunta de cómo motivar a los empleados. Son muchos, porque la preguntita es un estereotipo desgastado en ámbitos de management y de gestión de personal. Esta piedra, en la que tropiezan repetidamente tantos gestores no es exclusiva de empresas de software; y es posible que en determinadas industrias haya trabajos en los que pueda resultar complicado contar con personas o equipos motivados; pero en el desarrollo de software lo realmente extraño es justo lo contrario: tener programadores desmotivados.

-¡Vaya! ¿Conque te han castigado? Tom no se dignó a contestar. Seguía pintando entusiasmado, separándose de vez en cuando de la valla y observándola con mirada de artista. Ben, que tenía en la mano una manzana muy apetitosa, se quedó con la boca abierta, pues no acertaba a comprender nada. -Oye, Tom, me voy a nadar, ¿no quieres venir? ¿O es que tienes que trabajar? -¡Hola, Ben! Estaba tan entusiasmado pintando la valla que ni siquiera te había visto. -¡No dirás que prefieres trabajar a ir a nadar! -Depende de lo que tú llames trabajo. A mi me encanta pintar la valla.

Mark Twain. Las aventuras de Tom Sawyer

¿Por qué es divertido programar? ¿Qué beneficios esperan obtener los programadores? Primero, por el placer de construir cosas. Al construir cosas, los adultos experimentan el mismo placer que los niños al jugar con el barro, especialmente si construyen cosas que ellos mismos han diseñado. Segundo, por el placer de hacer cosas que puedan resultar útiles a otras personas. En realidad lo que persiguen es que otros usen su trabajo y lo encuentren útil. Tercero, por la fascinación de ver trabajar sistemas complejos, que asemejan rompecabezas en los que se integran diferentes

Page 20: Navegápolis 2010

Personas 20

piezas y partes móviles, que interactúan entre sí para llevar a cabo las funciones que inicialmente se han previsto. Cuarto, por el placer de estar siempre aprendiendo al trabajar cada vez en proyectos de características diferentes. Y por último, por el placer de construir con un material tan maleable y tan etéreo. El trabajo del programador, como el del poeta, se construye de forma sutil desde la materia pura de su pensamiento. Puede construir castillos en el aire, sólo con el esfuerzo de su imaginación. Pocos medios de creación son tan flexibles, tan limpios y fáciles de remodelar, para desarrollar complejas estructuras conceptuales.

Frederick P. Brooks. The Mythical Man-Month (Phillips Brooks, 1975)

Sourceforge.org: Un millón de programadores trabajando en más de cien mil proyectos, con la única motivación de realizar el trabajo. ¿Cuál es la cuestión?

¿Cómo motivar a los programadores?....

¿O cómo no desmotivarlos?

Cada día un anciano recibía insultos y burlas de los niños del vecindario. Un día, recurrió a una treta, ofreciéndoles un dólar si volvían al día siguiente para repetir los insultos. Los niños acudieron, le hicieron rabiar y a cambio se ganaron su dinero. El anciano les prometió de nuevo. "Si volvéis mañana, os daré cincuenta centavos". Y acudieron otra vez y, tras insultarle, recibieron su paga. El anciano les animó para que le siguieran haciendo enfadar al día siguiente, aunque esta vez a cambio de 20 centavos. Los niños se indignaron: no iban a insultarle por tan poco dinero. Desde entonces el anciano vivió tranquilo. No se ha publicado en ninguna parte del mundo estudio alguno que haya demostrado un aumento duradero del rendimiento por medio de sistemas de incentivos

Alfie Kohn. Punished by Rewards (Kohn, 1999)

Page 21: Navegápolis 2010

Personas 21

Algunas empresas diseñan sistemas de incentivos vinculando retribución extra a los resultados, cumplimiento de fechas, etc.

¿Los incentivos aumentan la motivación?

¿Los incentivos matan la motivación?

La cultura de la organización, el estilo y las torpezas de gestión pueden ser fuentes importantes de desmotivación

Trate a las personas como cosas o como animales. Pero antes de que nos precipitemos en nuestro juicio y pensemos que sólo monstruos stalinianos o hitlerianos son capaces de una cosa así, veamos primero en qué consiste eso. Empecemos por darnos cuenta de que "tratar mal" a las cosas o a los animales no es, en general, lo que suele hacer el ser humano. Bien al contrario es mucho más frecuente que las trate incluso mejor de lo que sería lógico esperar. Fijémonos, por ejemplo, cómo trata normalmente la gente a un coche de la gama alta, o a un traje, o a un animal de una cierta entidad como un caballo o un perro de raza... ... Tratar a un ser humano como una "cosa", entonces consiste en cuidarle para que dure, no ocuparse en absoluto de lo que piensa y darle la cantidad de dinero que "el mercado" dice que hay que darle. Esto es "mantenimiento". No hacerlo es "dejadez o caradura"... ...Pero si de lo que se trata es de trabajar con animales, uno suele tener en cuenta (a menos de que sea muy lerdo) que una cierta relación hay que establecer, que hay cosas que quieren y que hay cosas que no quieren, y que se puede tratar de condicionarles para obtener los resultados que se desean... ... Para un animal, un azucarillo hoy puede ser únicamente una golosina, y mañana pasar a ser el desencadenante de un determinado movimiento. Los animales no tienen "opinión" y por tanto no hay ninguna necesidad de escucharla ni de tenerla en cuenta.... ...Ignorar las opiniones de las personas, sus puntos de vista, sus soluciones a problemas reales, es tratarles como animales. Y usted destroza la organización, porque ellos lo notan. Si se resisten, usted siempre puede argumentar que "les falta información", o les falta "visión de conjunto"... le hará sentirse maravilloso a usted mismo, porque usted sí tiene información, visión de conjunto, y sabe de técnicas empresariales... ...Pero es tratarles como a animales, porque las personas tienen otras cosas que aportar además del esfuerzo físico (la "mano de

Page 22: Navegápolis 2010

Personas 22

obra") y/o mental elemental. De hecho, y para ser precisos, es tratarlos como si en lugar de pertenecer a la especie Homo sapiens pertenecieran a la Homo faber, un antepasado del hombre actual sólo útil para trabajos manuales o de segundo orden.

Josep M. Rosanas Martí. Cómo destrozar la propia empresa y creerse maravilloso (Rosanas Martí, 2003)

Usted ha escuchado mucho acerca de la escasez de talento. Lo que debe recordar es que, para los lugares de trabajo atractivos, no hay escasez de talento. Las compañías que carecen de talento, ¡probablemente se lo merecen! Cualquier persona que sea lo suficientemente inteligente como para trabajar en una compañía de alta tecnología, debe también ser tan listo como para no estar en un lugar de trabajo tóxico. Y si trabaja en uno, tan pronto como pueda se irá.

Alan M. Webber. Danger: Toxic Company (Webber, 2005)

...Luego me ocurrió lo mismo cuando, como director de seminarios, tuve que enfrentarme constantemente a la pregunta de los directivos: "Qué debo hacer para motivar a mi gente?". Me contenía para no contestarles con otra pregunta: "¿Qué es lo que ha hecho usted para des-motivarla?". Pronto comprobé que quienes no dejaban de preguntar por nuevas fórmulas de motivación eran sobre todo los malos directivos: los que ni querían dirigir ni eran capaces de ello.

Reinhard K. Sprenger. El Mito de la Motivación. (Sprenger, 2002)

Page 23: Navegápolis 2010

Personas 23

Organizaciones que castigan la comunicación honesta

11.07.2005

Transcribo un par de ideas del post "Honest Comunication: The Quote" publicado en "Software As She's Developped", que suscribo por completo, porque la experiencia me ha enseñado la diferencia entre organizaciones que permiten la comunicación honesta, y las que reclaman silencio servil.

Si tu organización castiga la comunicación honesta y tu te comunicas honestamente, acabarás destrozado.

(Beck K. , IBM, 2003) Esta es una cita de Kent Beck, fundador de eXtreme Programming, e impulsor del Manifiesto ágil.

La comunicación deshonesta no te destruirá si escondes la cabeza bajo la arena. Es algo habitual, incluso en empresas multinacionales que continúan en pie tras décadas de supervivencia a sus espaldas. Un colega me comentaba que estuvo en un proyecto financiero que perdía como un millón de dólares cada mes, y en el que terminó lógicamente condenado. Tuvo la oportunidad (osadía) de pedir a un directivo la explicación de por qué se seguía manteniendo a flote esa nave que se hundía. La respuesta: "Dejarla ir sería políticamente incorrecto". ¡Ah!, y por esta razón todos esos empleados, contratistas y consultores continúan cobrando de usted y de sus accionistas. Incluso en proyectos pequeños sobrevive este tipo de auto-mutilación, especialmente si hay en ella gente con talento (probablemente bien compensados) que trabajan de forma heroica.

Page 24: Navegápolis 2010

Personas 24

El mito de las evaluaciones de desempeño

21.08.2005

Hace 15 ó 20 años, la medicina suprimía de la dieta de las personas con problemas de colesterol, los alimentos grasos; y recomendaba, por ejemplo, ensaladas con muy poquito aceite, prefiriendo el de girasol al de oliva. También prohibía pescados grasos, como las sardinas, etc. Toda la doctrina cardiológica respaldaba estas prescripciones, y si alguien las hubiera cuestionado probablemente hubiera sido anatemizado. En muchas ocasiones las soluciones simples crean mitos, que por la lógica y simplicidad de su razonamiento resultan fáciles de aprehender y difíciles de cuestionar: "Si el enfermo presenta exceso de grasa en la sangre, reduzcamos la ingesta de grasa".

Para todo problema complejo hay siempre una solución simple, que es errónea

George Bernard Shaw

Cuando estamos convencidos de la realidad de un mito, resulta más fácil dudar de la razón e incluso de las intenciones de quien lo cuestiona, que de aquellos principios que consideramos reales e incuestionables. Por esta razón los mitos son muy resistentes al cambio, y a pesar de su dudosa o nula eficiencia se suelen perpetuar durante bastante tiempo. Ojalá que esta introducción me conceda al menos el beneficio de la duda al afirmar que: "las evaluaciones de desempeño son un mito, y suelen empeorar aquello que pretenden mejorar: la motivación y eficiencia de las personas". Hace ya algunos años, transmití esta opinión al responsable de RR.HH. que prescribió para el departamento de producción que yo dirigía un proceso formal de evaluación de desempeño. Afirmar que este tipo de evaluaciones son un mito, no es políticamente correcto, porque cuestiona la realidad que muchos

Page 25: Navegápolis 2010

Personas 25

profesionales de recursos humanos tienen por axiomática en el ejercicio de su trabajo o, que en el peor de los casos, emplean como medio para ganar dinero. Por supuesto que el entorno de trabajo debe proporcionar retro-información a las personas sobre qué tal lo hacen, cuales son sus puntos fuertes y cuáles las áreas de mejora. Por supuesto que se trata de conseguir un sistema de beneficio muto en el que las personas que trabajan en él crezcan y mejoren profesionalmente, y en consecuencia la organización logre mejorar la calidad y la eficiencia. Por supuesto que el exceso de grasa en sangre es malo. La cuestión es: ¿Las evaluaciones de desempeño ayudan o perjudican? Porque lo cierto es que al no haber ninguna prueba objetiva de sus bondades, resulta dialécticamente perverso defenderlas, presentando una premisa cierta: "vamos a mejorar a los profesionales y a la organización", y dando por obvia una consecuencia que en realidad no está demostrada: "lo conseguiremos con las evaluaciones de desempeño".

El 80% de las empresas hacen evaluaciones de desempeño, sin embargo, el 90% de las que hacen evaluaciones, y un porcentaje similar de quienes evalúan y son evaluados están insatisfechos con este procedimiento

"Abolishing Performance Appraisals" (Coens, 2002)

Ningún estudio controlado ha hallado jamás un mejoramiento de largo plazo en la calidad del trabajo de las personas que resulte de ningún tipo de programas de recompensas o incentivos

Alfie Kohn, Punished by Rewards (Kohn, 1999)

Los problemas de motivación y eficiencia, se suelen abordar de forma errónea, especialmente en industrias como la del software, que se basan en el talento de las personas, y no en su capacidad de trabajo mecánico; y emplear las evaluaciones de desempeño como medio de motivación (v. ¿Cómo motivar a los programadores? Pág. 19) es uno de los errores típicos. Las empresas, y sus departamentos de RR.HH. deben cuestionarse la forma y el fin real de las evaluaciones que realizan, porque lo cierto es que en algunos textos de management y de RR.HH. se puede leer:

Page 26: Navegápolis 2010

Personas 26

Las evaluaciones por escrito deben proporcionar efectivamente una documentación objetiva e imparcial, necesaria o útil en las decisiones disciplinarias o en los despidos".

"Abolishing Performance Appraisals" (Coens, 2002)

Y tienen formas poco alineadas con los fines que deberían perseguir:

Son un procedimiento obligatorio.

Se documentan por escrito.

Las administra el jefe.

Hacen a las personas responsables de metas y medidas pasadas.

Exigen a los individuos comprometerse por escrito con metas y acciones futuras.

Se sitúan y conservan durante años en el expediente oficial de personal del empleado.

Se ordena que el empleado la firme.

Se utilizan para tomar importantes decisiones relativas al salario, el avance, la promición y las suspensiones.

Están vinculadas a la disciplina o el despido, o se utilizan en conjunto con éstos

¿De verdad es tan aberrante pensar que no son un buen método para conseguir equipos de trabajadores del conocimiento motivados y comprometidos?

Page 27: Navegápolis 2010

Personas 27

Profesionalidad

16.11.2005

A muchas personas los libros de historia les parecen aburridos. A los historiadores no. No me preocupa haber leído muy poco (nada) sobre cálculo de estructuras, pero sí que me preocuparía si el arquitecto que diseñó mi casa compartiera este mismo desinterés. La materia prima del software es el talento. Y para que la materia prima (el talento) se transforme en producto elaborado (el software) tan importante como tenerlo es que habite en una persona motivada: que tenga interés por realizar el trabajo. El talento de Einstein nadie lo pone en duda, pero su carrera profesional en la oficina de patentes de Berna no fue muy diferente de la de sus compañeros. Había talento, pero escasa motivación por realizar ese trabajo. 1.- El interés es un factor clave para disparar los resultados de las personas que producen a través de su talento. 2.- Es el mismo interés el que marca la diferencia entre desear o eludir la lectura y el aprendizaje continuo. Con estas simples reflexiones se puede llegar a conclusiones no sólo interesantes, sino inquietantes en muchos casos. No es extraño que un médico se resista a leer el texto de la versión continua del CMMI, o la ISO 12207. No sería extraño que los tildase de “ladrillo” o de “rollo”. Yo pienso lo mismo de sus textos de histología. Sin embargo resulta inquietante encontrar tantos consultores, gestores de proyectos o de empresas de software que expresan los mismos tópicos de ladrillo o rollo. Personas con las que uno no será considerado como colega de profesión, sino como pedante, o pretencioso si les propone enviarles o recibir el SRS con el formato del estándar IEEE 830 (por ejemplo). La motivación, el talento y, en definitiva, la profesionalidad son difíciles de medir. Pero sin embargo puede resultar muy revelador el número y estado de uso de libros y documentos

Page 28: Navegápolis 2010

Personas 28

técnicos que se tienen en las mesas y estanterías de trabajo. ¿Por qué en nuestro oficio hay personas que viven “devorando” información técnica, y otras que “desconectaron” hace tiempo? ¿Por qué los lustres de los currículos no mantienen una correlación con el interés por la profesión? Que mi madre crea que hablo de estropajos cuando digo AJAX, y de joyas al hablar de Ruby, es normal. Que a estas alturas piensen lo mismo programadores “profesionales”, debería inquietar a sus empresas. Que un consultor “profesional” de calidad ofrezca sus servicios a una empresa de informática asegurando que en el fondo CMMI e ISO9001 son la misma cosa, y que si se cumple ISO9001, por una extraña propiedad transitiva que sólo el conoce, también se “cumple CMMI.”... ¿A todos sus niveles, en todas sus áreas de proceso? Mejor no preguntarlo, pensarían que somos unos pedantes.

Page 29: Navegápolis 2010

Personas 29

Las interrupciones en el trabajo

11.01.2006

Un estudio reciente realizado por Basex sobre el trabajo de 1.000 personas, entre oficinistas, ejecutivos y directivos; ha concluido que las interrupciones consumen por término medio el 28% de la jornada laboral (2.1 horas / día). Este tiempo comprende la propia interrupción y el de despiste hasta que se retoma el trabajo en el punto en el que se encontraba, y con el ritmo de implicación que se tenía. El estudio afirma que, como media, transcurren 11 minutos desde que comenzamos una tarea, hasta que nos interrumpe el teléfono, la campana de notificación de un e-mail, la visita de un compañero, etc. y una vez interrumpidos tardamos una media de 25 minutos en volver a estar trabajando en el punto que lo dejamos con el ritmo que teníamos. No se han considerado por igual a todas las interrupciones. Las hay más o menos perturbadoras; unas son relativas al trabajo, y otras completamente ajenas... Un dato: el 62% de las interrupciones son de temas ajenos al trabajo. Mary Czerwinski, vicepresidenta de SIGCHI está llevando un proyecto de investigación de Microsoft sobre la base de que la tecnología puede reducir estos tiempos, diseñando sistemas de comunicación inteligentes capaces de determinar cuándo resulta oportuno o inoportuno interrumpir al destinatario.

Page 30: Navegápolis 2010

Personas 30

Costes laborales

24.05.2006

Un mito endémico que lleva a muchos directivos a tomar decisiones erróneas es creer que salarios y costes laborales son la misma cosa. Si se trabaja con la fórmula "costes laborales = salarios" es normal estar convencido de que rebajar los salarios implica rebajar los costes laborales, y es normal también ver al personal como gasto. Sin embargo, trabajar con la fórmula "Coste laboral = salarios / valor que generan" proporciona una visión de gestión más amplia, sobre todo trabajando en sectores en los que las diferencias de valor entre personas pueden multiplicar al denominador de la fórmula x10 o x100 Cuando mayor pueda ser la diferencia de valor del denominador, más fácil será que la empresa considere al personal como inversión y no como gasto.

Page 31: Navegápolis 2010

Personas 31

Cultura de cumplimiento y evaluación de desempeño

05.10.2006

Tas publicar el artículo Cultura del cumplimiento (pág. 106) , tomaba café con un jefe de equipo que se lamentaba de que dentro de poco más de un mes tendrá que pasar la evaluación de desempeño a su equipo; de lo poco que le convence esta práctica y de las disparidades de criterios en función del "estilo" del jefe que la pasa. Al hablar sobre los "estilos de jefes": de los que miran las formas y encajan bien en las culturas de cumplimiento, y de los que chirrian en ellas, lo que decíamos me sonaba a "déjà vu"... era algo ya leído... pero no me acordaba dónde. Pues bien, al final lo encontré. Esta es la cita tal cual aparece en "El principio de Peter " del Dr. Laurence J. Peter :

La competencia de un empleado es determinada no por los extraños, sino por su superior en la jerarquía. Si el superior se encuentra todavía en un nivel de competencia, puede valorar a sus subordinados en atención a la realización de trabajo útil; por ejemplo, el suministro de servicios médicos o de información, la producción de salchichas o patas de mesa, o el logro de los objetivos declarados de la jerarquía. Es decir, valora el resultado. Pero si el superior ha alcanzado su nivel de incompetencia, probablemente evaluará a sus subordinados con arreglo a valores institucionales: considerará la competencia como el comportamiento que secunda las reglas, rituales y formas del statu quo. La diligencia, la pulcritud, la cortesía con los superiores, el papeleo interno serán tenidos en gran estima. En resumen, un funcionario de este tipo valora el trámite.

(Peter, 1969) Los que me conocéis recordaréis sin duda el caso de aquella programadora web que hacía unos trabajos que daban pánico: bases de datos de diseño horripilante, webs que se podían "hackear" siguiendo el manual de hacker para dummies... y la diferencia de valoración de sus dos superiores. Uno que decía que no se le debía renovar contrato, y otro que era una

Page 32: Navegápolis 2010

Personas 32

trabajadora ejemplar por el horario, su buena disposición y la cantidad de código que podía escribir en un día; y la quería proponer para un premio.

Page 33: Navegápolis 2010

Personas 33

El software se desarrolla con talento

01.12.2006

Aunque pueda parecer erróneo, en el desarrollo de software poco importa el trabajo, en comparación con su "primo lejano" el talento. La intervención humana en la programación no se puede simplificar como el "uso" de personas a través de la contratación de tiempos de trabajo. Los humanos, vistos como máquinas, somos bastante completos y complejos. Por supuesto nos podríamos catalogar como los mejores robots, o lo que es lo mismo, como las mejores máquinas, porque podemos operar en casi todos los trabajos, pero esta es sólo la faceta mecánica o física del concepto "trabajar". La Academia define "trabajar" como la ocupación en actividades físicas o mentales. Las máquinas y los animales tienen capacidad de trabajo, pero se trata siempre de capacidad de trabajo físico. Podríamos enmendar a la Academia e incluir también el trabajo lógico por aquello de que hay máquinas que pueden procesar información, pero de momento, los únicos con capacidad de trabajo mental o intelectual somos las personas. Los trabajos físicos e intelectuales tienen valores diferentes, y en función de la tarea que se quiera desarrollar serán necesarios unos u otros en mayor o menor medida. Los humanos además de poder hacer trabajos muy diferentes, tenemos un "interfaz de operación" bastante complejo. Las palancas de control que nos ponen en marcha en actividades físicas no sirven para motivar respuestas más elevadas como la creatividad, genialidad, innovación, pasión, etc. Estas respuestas pertenecen a la faceta humana, y para ellas no hay "palancas de mando directo" del tipo impulso - respuesta. Las empresas que necesitan capacidad de trabajo, más como mano de obra que como trabajo intelectual pueden emplear estímulos de control directo, porque tienen cierta razón al gestionar a las personas con criterios mecanicistas.

Page 34: Navegápolis 2010

Personas 34

Estos sistemas de producción fueron la base de los principios de la administración científica del trabajo, que desarrollaron conceptos y base teórica para la medición de la eficiencia de los métodos, de tiempos, demoras, movimientos, operaciones, etc. Aunque la simple consideración mecanicista de las personas, sin tener en consideración su componente humano es un error, no deja de ser cierto que para muchas actividades puede valer, y de hecho muchos gestores lo emplean, quizá porque resulta fácil fijar y medir parámetros de productividad, y porque las personas sí disponen de "palancas de control" directas para que generen trabajo físico. La capacidad en estos trabajos se puede medir sin excesivos problemas en términos tales como: palabras traducidas por hora, metros cuadrados de suelo pulido, o expedientes escaneados; y para activar y mantener la "maquinaria" se dispone de la retribución económica, y las regulaciones de la normativa laboral. Cuando de lo que se trata es de conseguir trabajo, se pueden conseguir resultados gestionando a las personas tanto con patrones "científicos" como "humanistas", así que allá cada uno según su convencimiento, gusto o personalidad. Pero cuando de lo que se trata es de conseguir talento, no se puede elegir.

Page 35: Navegápolis 2010

Personas 35

Obediencia y docilidad

21.12.2005

"¡Cuanto ha cambiado Fulanito!. Desde que en el nuevo puesto le han dado más poder, vaya lo que se ha crecido. Ahora es un brazo ejecutor fiel de la dirección. ¡Parece otra persona!." En las organizaciones en cuya cultura están la obediencia y la docilidad como valores "per se", esta es una conversación de café relativamente frecuente. Para unos, los "fulanitos" son unos pelotas, o... cosas peores; y para otros unos buenos profesionales, rectos y empleados ejemplares. Con el cambio a la nueva personalidad ganan unas cosas y pierden otras. Las circunstancias moldean la personalidad, y en palabras de Ortega y Gasset: "yo soy yo y mi circunstancia"; pero ¿porqué son más maleables unas personas que otras? ¿Por qué hay mandos intermedios que dejan a un lado su criterio, el de sus colaboradores y adoptan y ejecutan el de sus superiores sin cuestionarlo, ni permitir disensiones? Seguramente será difícil, y quizá poco conveniente, juzgar las razones que impulsan estos cambios de personalidad: ¿peloteo, erótica de poder, profesionalidad, escalas de valores diferentes, simplicidad...? Cada caso es diferente, y cada persona también, pero como semillas para pensar me parecen interesantes estas dos definiciones, y el experimento de Milgram:

Poder: capacidad para hacer que las cosas sucedan en la forma que se desea. Control sobre el comportamiento de otros.

Dogmatismo: Presunción de quienes quieren que su doctrina o aseveraciones sean tenidas por verdades inconcusas.

Page 36: Navegápolis 2010

Personas 36

Experimentos de Milgram acerca de la obediencia: Milgran diseño experimentos para determinar el punto hasta el cual las personas obedecen las órdenes de una figura de autoridad, incluso aunque ellos no estén de acuerdo con aquellas, pudiendo llegar al extremo de poner en peligro la vida de otra persona. Los sujetos del experimento iban de los 20 a los 50 años de edad y representaban un conjunto diverso de ocupaciones (ingenieros, vendedores, maestros, obreros, etc). Se informó erróneamente a los sujetos que el propósito del estudio era determinar los efectos del castigo sobre el aprendizaje. Los sujetos iban a ser los "maestros". El "alumno" era un aliado de Milgram, que estaba atado a una silla en un cuarto contiguo con un electrodo sujeto a la muñeca. El "experimentador", otro aliado de Milgram, vestido con una bata de laboratorio, y con apariencia impasible y severa, le ordenaba al "maestro" que leyera al alumno series de palabras emparejadas, y que posteriormente volviera a leer la primera palabra junto con otros cuatro términos. Se suponía que el alumno indicaría cuál de ellos se encontraba en la pareja original presionando un interruptor que marcaba su elección en el panel de respuestas. El maestro tenía instrucciones de administrar una descarga eléctrica al alumno cada vez que éste respondiera de forma incorrecta. El choque aumentaba un nivel de intensidad cada vez que el alumno cometía un error. El maestro controlaba los interruptores que administraban las descargas desde 15 hasta 450 voltios. En realidad no había corriente eléctrica en el aparato, pero los alumnos "erraban" a propósito y respondían a cada "nivel de choque" en formas progresivamente angustiantes. Si un "maestro" (sujeto) demostraba no estar dispuesto a administrar el choque, el experimentador utilizaba estímulos secuenciales para hacer que se comportara según lo requerido: 1.- Por favor siga, 2.- El experimento requiere que usted prosiga, 3.- Es absolutamente esencial que usted prosiga y 4.- No tiene opción, usted debe continuar. El experimento se suspendía solamente si el "maestro" se negaba a continuar después de haberle repetido estas cuatro instrucciones.

Page 37: Navegápolis 2010

Personas 37

¿Cuántos maestros se negaron a continuar? Milgran hizo esta misma pregunta a sus alumnos y colegas. La mayoría consideró que muy pocas o ninguna de las personas llegaría a suministrar descargas muy fuertes. En realidad el 65% continuó hasta el final del experimento, administrando choques a los "alumnos" hasta el máximo. Ninguno se detuvo antes de 300 voltios, punto en el cual el alumno se golpeaba contra la pared. Inquietante ¿verdad?, la cultura de poder, obediencia y sumisión.

Page 38: Navegápolis 2010

Personas 38

¿El proceso? De formación

23.08.2006

Si, conectada al ánodo de la fuente de alimentación, sumergimos una tuerca de acero en un baño electrolítico con un cátodo de cinc, obtendremos una tuerca galvanizada. Es un proceso. Si lo hacemos bien, tendremos tuercas relucientes. Si "sumergimos" a una persona durante x días en un seminario de formación; al terminar ¿Quedará "galvanizada" de conocimiento? Todas las personas que asisten al curso de 3 días de CMMI (por ejemplo), reciben un certificado oficial de SEI que les acredita como profesionalmente válidos para participar en las evaluaciones oficiales SCAMPI. No es cuestión de anatematizar a CMMI; que lo mismo ocurre, sin ir mas lejos en el extremo opuesto con las certificaciones de ScrumMaster o con postgrados y masters de especialización profesional. El título se otorga sin verificar si la persona ha adquirido los conocimientos, habilidades o conceptos que vayan al caso. Yo tengo algunos y son muy bonitos. Y si a alguno os pareciera extraño; adquirir capacidad, habili-dades o conocimientos profesionales, según hagan al caso, es así de simple y funciona a las mil maravillas. La mejor prueba es que nunca, ningún cliente ni proveedor (educandos y educadores en este caso) se han quejado, y antes al contrario todos afirman la excelencia y validez de la formación dada y recibida. No quisiera ser yo una excepción.

Page 39: Navegápolis 2010

Personas 39

¿Listo, cumplidor o motivado?

26.09.2006

Dicen las empresas que son las personas su componente más valioso. Algunas lo creen sinceramente, y otras no tanto. Las primeras valoran la capacidad y las segundas la dedicación. Unas buscan "gurús" y otras "currantes". Estas expresiones son estereotipos muy gráficos de tres estilos diferentes de gestión de personal:

"Dame gente trabajadora y currante, y no de los que están pendientes del reloj para salir a la hora."

"No quiero gente para calentar las sillas. Producimos con brain time, no con body time"

"Quiero gente que sienta los colores. Que sienta a la empresa, al producto y al proyecto en el que trabaja, como suyo".

Algunas organizaciones tienen predilección por, gurús, techies y similares; otras por quienes trabajan denodadamente; y otras por los que "se sienten empresa". Simplificar la ecuación a un elemento: capacidad, trabajo o compromiso es demasiado simplificar, y cuando se hace es frecuente acompañarlo de otro mito: suponer que la aportación de capacidad, trabajo y compromiso es responsabilidad de las personas. 1.- ¿Capacidad, trabajo o compromiso? El mejor valor para las empresas del conocimiento no está en uno o en otro, sino la combinación de los tres. Una persona capaz, desmotivada y sin compromiso es un lujo improductivo. El trabajo sin capacidad ni compromiso es ineficaz; y un entusiasta que no trabaja y sin capacidad es un pelota.

Page 40: Navegápolis 2010

Personas 40

También están las posibilidades en las que a cada estereotipo en lugar de faltarles los otros dos componentes sólo les falta uno: El capaz, comprometido pero que no actúa, o el capaz que actúa pero no está comprometido, y el comprometido que trabaja pero no tiene capacidad. La realidad no suele ofrecer tipos en estado puro, sino mezclas más o menos equilibradas, y las más valiosas son las personas con el grado necesario en los tres componentes. 2.- Trabajo, capacidad y el compromiso no lo "dan" las personas, lo "obtiene" la empresa. El talento no da resultados sin motivación, y sin formación continua la capacidad queda obsoleta en poco tiempo. Cuando se incorporan a la empresa las personas deben ser capaces y estar motivadas, pero a partir de ese momento el mantenimiento y desarrollo es más responsabilidad de la organización que de ellas. Para evitar a empleados desmotivados y desfasados hay estilos de gestión de personal diferentes, y las organizaciones tienden hacia unas u otras líneas según crean que la motivación y conocimientos del personal lo deben cultivar las propias personas, o que la organización también es responsable, y en qué medida.

Page 41: Navegápolis 2010

Personas 41

La difícil combinación de talento y sencillez

13.12.2006

La relaciones entre técnicos y gestores pueden echar chispas; y en los blogs y foros técnicos es relativamente frecuente que las risas y los razonamientos se hagan para "evidenciar" lo torpes que son los gestores y consecuentemente lo listos, trabajadores y abnegados que son los programadores Seguramente torpes somos todos, y sin embargo tolerantes hay muy pocos. Para tomar un poco de perspectiva, este es el comentario que Slavik (apodo de un ingeniero de software de Microsoft) hace en su blog:

Aquí los desarrolladores son niños mimados, y los buenos son como dioses. En honor a la verdad el nivel técnico medio es muy alto, pero el nivel de esnobismo, en especial entre los mejores es también muy alto. Realmente apesta, porque podrían ofrecer mucha ayuda, formación y consejo a los demás, pero parece ser que la mayoría sólo se preocupan por ellos mismos, de hecho disfrutan por saber más que los demás y no tienen la menor intención de compartir el conocimiento. No todos son así, pero sí la mayoría... La gente critica de forma constante la mediocridad de los mandos intermedios, crítica que se evidencia a través de muchos blogs. Pero uno siente lástima por los pobres mandos intermedios que son los que tienen que pastorear al rebaño de "gatos" intolerantes (programadores). Que la fuerza les acompañe."

Page 42: Navegápolis 2010

Personas 42

¿Quod natura non dat Salamantica non praestat?

18.01.2007

En el año 2001 la dirección de recursos humanos de Microsoft Corporation adoptó como criterio global para todos los países no poner como requisito titulaciones académicas en los procesos de selección de personal técnico. Desde que en las TechEd de ese año expuso la decisión y las razones el responsable de recursos humanos de la corporación, de vez en cuando pincho por las áreas de "Trabaja con nosotros" de los sitios de Microsoft, tanto americanos como españoles o de cualquier país y mantienen el criterio: en las ofertas para puestos administrativos, de marketing, ventas... es habitual que al final requieran formaciones del tipo: "Graduate degree required" , "MBA preferred"... Sin embargo en las ofertas de técnicos e ingenieros de software no mencionan títulos. Piden "pasión", experiencia demostrable en las plataformas o técnicas del puesto requerido, capacidad..

Page 43: Navegápolis 2010

Personas 43

Cerrar el departamento de recursos humanos

04.01.2007

Es una de las ideas radicales de Julen : suprimir la dirección de recursos humanos (Iturbe-Ormaetxe, 2006) Leído en seco puede parecer un titular de iconoclasia facilona, pero... si el principal valor de nuestra empresa no es el trabajo, sino el talento, ¿por qué todas las empresas del sector que conozco tienen un departamento de RR.HH. y ninguna tiene uno de gestión del conocimiento? Que en nuestro sector, el capital humano, y más concretamente el talento es más importante que el capital estructural es ya un estereotipo, y seguro que ningún gestor se atreve a negarlo (al menos en público), pero aunque la mayoría de las empresas afirman que su mayor activo son las personas, la realidad no siempre es así. En ocasiones es distinto lo que reflejan las comunicaciones corporativas y las manifestaciones de los coordinadores de recursos humanos de la realidad de su gestión diaria. Afirmar que las personas son el auténtico motor de la empresa y su principal valor vende muy bien, y, ¡qué caray!, debería animar y motivar a trabajar más duro, que a fin de cuentas es lo que interesa. La realidad del valor del capital humano es una cuestión de cultura, y se necesita un cambio cultural en todos los niveles de la organización, más que un cambio en los mensajes corporativos. Hay dos cuestiones relevantes:

Cuáles son las expectativas de la organización y cuales las de las personas.

¿Cuál es el peso de las personas en el capital de la organización?

Page 44: Navegápolis 2010

Personas 44

Expectativas de la organización, y expectativas de las personas. Dicho de otra forma: ¿Qué espera la organización de las personas? ¿Qué esperan las personas de la organización?. Normalmente la empresa sí que sabe lo que desea de las personas. Suelen ser listas del tipo: dedicación, espíritu emprendedor, capacidad innovadora, talento, iniciativa, originalidad, ingenio, espíritu de sacrificio, etc. pero también es habitual que sientan poca curiosidad por conocer las expectativas de las personas. ¿Cuál es el peso de las personas en el capital de la organización? El capital estructural está formado por los bienes que quedan en la organización cuando las personas se van a sus casas: patentes, licencias, cartera de clientes, equipos, maquinaria, inmuebles, etc. El capital humano es el compuesto por el valor que la empresa emplea en su negocio y que resulta inseparable de las personas. En función de la naturaleza del negocio y de la estrategia empresarial, cada organización tiene un esquema particular de capitales; y así por ejemplo los pesos y relevancia del capital estructural y humano son diferentes entre una empresa de extracción minera y otra de consultoría de sistemas informáticos. Cuanto menos peso tenga el capital estructural en el valor de una empresa, más suicida resultará aplicar criterios de "gestión científica del trabajo". En la visión, misión y estrategia de su empresa, ¿cuál es el peso de los capitales no estructurales?:"Conocimiento tácito de las personas."Valores humanos: fidelidad, talento, compromiso…¿Es un negocio más próximo a la cadena de producción de Chaplin en "Tiempos Modernos", o de la empresa del conocimiento de Peter Druker?.

Los mejores lo hacen mucho mejor que los mediocres "En el mundo del diseño informático, los mejores lo hacen entre 50 y 100 veces mejor que el promedio, y la cifra aumenta, conforme se incrementa la complejidad de la tecnología"

Pilar Jericó. La Gestión del Talento. Pearson Educación

La diferencia entre los promedios y los mejores ya no es de 1:2, como en el pasado. Es 1:100 o incluso 1:1000.

Nathan Myhvold (Ex-director de I+D de Microsoft)

Page 45: Navegápolis 2010

Personas 45

En los trabajos más o menos mecánicos, la productividad y la calidad se puede medir con relativa facilidad y objetividad .El número de piezas ensambladas, o de palabras traducidas o de metros cuadrados pintados por unidad de tiempo son algunos ejemplos. Algo parecido ocurre con la calidad, contando el número de unidades producidas que quedan dentro o fuera de los márgenes de tolerancia permitidos. Sin embargo, medir el valor que produce una persona a través su talento es más difícil, y al mismo tiempo las diferencias entre personas son enormes. Si las afirmaciones de Pilar Jericó o de Nathan Myhvold parecen exageradas, veamos algunos ejemplos: Hace algún tiempo, un programador estaba desarrollando un sistema "web-mail" para la gestión de cuentas de correo desde Internet. Había comenzado la programación de bandejas de entrada, salida, borrador, etc. creando un diseño en la base de datos donde almacenar los correos en tablas que correspondían con las citadas bandejas. Al ver el desarrollo, un compañero le apuntó:¿Y por qué no trabajas con protocolo IMAP en lugar de con POP3.?. IMAP incorpora de forma nativa la gestión de las carpetas. El diseño inicial hubiera supuesto unas dos semanas de programación para la gestión de las carpetas. El uso directo de la gestión de carpetas del protocolo IMAP no supuso ninguna programación para gestionarlas. Este sistema tenía previsto un uso intensivo y un número elevado de usuarios. La gestión de carpetas de IMAP es un sistema ya contrastado, y se ahorraron también los tiempos previstos para pruebas y verificación de esa parte. La robustez del sistema de IMAP es mayor en cualquier caso que la que se hubiera obtenido, así que también se ahorraron los posibles tiempos de mantenimiento perfectivo que el desliz de algún error hubiera generado. Al escribir este post, el sistema de correo lleva 6 años trabajando sin haber generado ningún error. Otro ejemplo: En el desarrollo del espacio web de un ayuntamiento, el programador debía incorporar un plano del municipio. Se trataba de un sistema similar a los ya desarrollados por la empresa para otros pueblos. En estos casos el mapa consistía en una imagen preparada a partir de los planos facilitados por el ayuntamiento.

Page 46: Navegápolis 2010

Personas 46

El programador asignado, no se limitó a incorporar la imagen. Con ActionScript programó un mapa dinámico para Macromedia Flash.El sistema permitía al cliente configurar las capas y sub-capas que deseara: calles, equipamientos (deportivos, culturales, sanitarios…), servicios (restaurantes, alojamientos, gasolineras…), etc. La administración del plano permitía crear o modificar los elementos en cualquier momento y registrar información de cada uno. La presentación en el web incluía visualización y ocultación de cada capa, zoom, deslizamiento, impresión, etc. Este trabajo lo realizó motu proprio, empleando incluso su tiempo libre para no trastocar agendas ni costes. La empresa no sólo obtuvo un desarrollo de calidad muy superior a la prevista, además incorporó un componente que permitiría integrar en sistemas futuros un sistema de mapas dinámico que a partir de entonces empleó como argumento para cerrar muchos desarrollos web, ofreciendo un valor superior a la competencia. ¿Cuál es la diferencia de valor entre los promedio y los mejores? ¿Por qué las personas se ven impulsadas a trabajar más allá de lo que se espera de ellos, dedicando todo su talento y motivación, prácticamente como si se tratara de su propio negocio? Cuando el valor de las personas no es el trabajo, sino el talento, se debe cerrar el departamento de recursos humanos y abrir el de gestión del conocimiento. No se trata de regular una prestación de trabajo sino de desplegar un interés sincero por los colaboradores. Considerar sus opiniones, expectativas y valores. Contar con los mejores, y cambiar la gestión de recursos de trabajo por la gestión de personas para que aporten el mayor valor para una empresa del conocimiento: desde la motivación, todo su talento. La relación con las personas no puede pretender obtener valor en un solo sentido: de las personas hacia la empresa. En este tipo de relaciones, aunque se puede conseguir tiempo de trabajo, el deterioro de la motivación reduce paulatinamente el valor de los resultados. Si trabajar en la empresa enriquece a la persona, ésta devolverá valor por partida doble. Por un lado cada vez dispondrá de mayor valía profesional; y por otro, de mayor motivación, ingrediente clave para poder aportar talento.

Page 47: Navegápolis 2010

Personas 47

Las personas son listas, y saben perfectamente cuando están integrados en un equipo interesado por sus necesidades, opiniones y desarrollo personal, y cuándo están siendo tratados como "recursos"

Page 48: Navegápolis 2010

Personas 48

Errores en la selección de personal

13.02.2007

Joel Spolsky1 afirma que "una empresa de software debe pensar que la contratación de la gente adecuada es su problema número uno". Los esfuerzos que dedican algunas como Microsoft o Google en los procesos de selección hace sospechar que a pesar de que a los anuncios de selección respondan cientos de candidatos, no es un problema de cantidad sino de calidad, y como expone Lawrence Bernstein en Trustworthy Systems Through Quantitative Software

Engineering (Bernstein & C.M., 2005)

Los mejores programadores pueden ser 20 veces más productivos que los medios... el 50% de los programadores se consideran a si mismos que están en la categoría de los mejores, pero en realidad sólo está el 1%.

La experiencia es fácil de evaluar, pero la capacidad no; y al no ir más allá del curriculum y la entrevista es fácil errar por exceso y valorar como "crack" o promesa a quien no pasa de la media, o incluso no llega; o por defecto y descartar a candidatos de capacidad elevada. Los errores por exceso los evidencia el tiempo mostrando que el esperado pura sangre no pasa de trotón. Los cometidos por defecto pasan desapercibidos sin darnos cuenta de que entre los cristales hemos tirado a la basura algún diamante en bruto. El mejor consejo es rascar más allá de los curriculums y actuar sin prejuicios. Los curriculums contienen, por un lado información de estudios certificaciones y títulos, y por otro trayectoria profesional; y si bien la experiencia se refleja en esta segunda, no ocurre lo mismo con la capacidad y las certificaciones académicas.

1 http://www.joelonsoftware.com

Page 49: Navegápolis 2010

Personas 49

Este es el principal prejuicio para descartar a personas de gran capacidad. Winston Churchill, por ejemplo, no pasaría este filtro como candidato para un puesto de gestión. En mi experiencia profesional he seleccionado a profesionales que sin más currículo que la pasión por su trabao, encerraban mayor talento y conocimiento de su profesión que compañeros con brillantes expedientes académicos, o sonoras listas de cursos y seminarios en sus espaldas; y en mi experiencia docente he tenido alumnos que han conseguido títulos técnicos de grado, a los que sin embargo no contrataría. La posesión de diplomas y títulos ni garantiza ni descarta el talento, y puede ser un síntoma de personas más interesadas por la forma que por el fondo; por el lustre de su currículo que por el conocimiento y el ejercicio de su profesión. Para evitar prejuicios, en la medida de lo posible, es útil considerar las siguientes afirmaciones:

No todas las personas con talento tienen títulos.

No todas las personas con títulos tienen talento.

Todas las personas interesadas en aparentar talento lucen currículums brillantes.

Otro error frecuente es no contrastar la información. Tom de Marco y Timothy Lister caricaturizan esta costumbre al contratar personal técnico, escenificando en su libro Peopleware, (DeMarco, 1987) una entrevista de selección entre un director de circo y un malabarista: Director de circo: ¿Cuánto hace que usted es malabarista? Candidato: Oh, unos seis años. Director: ¿Puede manipular tres bolas, cuatro bolas y cinco bolas? Candidato: Sí, sí, y sí. Director: ¿Trabaja con objetos en llamas? Candidato: Por supuesto Director: …¿cuchillos, hachas, cajas de cigarros abiertas, pamelas? Candidato: Puedo hacer malabarismos con cualquier cosa. Director: ¿Tiene un guión divertido la actuación? Candidato: Es divertida.

Page 50: Navegápolis 2010

Personas 50

Director: Conforme, suena bien. Voy a contratarle. Candidato: Ummm… ¿Antes no quiere verme actuar?. Director: Nunca lo había pensado. La realización de pruebas, la evaluación de programas o diseños realizados por los candidatos, o la contrastación de la información reflejada en el currículo es necesaria para no incorporar en el equipo a un farsante, algo que por experiencia sé que nos puede pasar. El objetivo del proceso de selección no debe ser conseguir la mejor relación títulos/retribución, o experiencia/retribución entre los currículos recibidos. La ventaja sobre nuestra competencia no se logra por reducir un par de euros en el coste de la hora de programación. En el área de Recursos Humanos indicadores del tipo:

Precio medio por persona incorporada (Costes de los recursos empleados: anuncios, horas invertidas en la criba de currículos y realización de entrevistas / personas incorporadas).

Tiempo de respuesta (tiempo transcurrido desde que un departamento pide una persona, hasta que ésta se incorpora a la empresa) para medir la satisfacción del cliente interno.

Transmiten a los gestores de personal como objetivos para su trabajo: "satisfacción del cliente interno" y "eficiencia". De forma que éstos intentan realizar su trabajo a la perfección para alcanzar las metas que se les exigen:

Responder con rapidez a las demandas de personal de los diferentes departamentos.

Eficiencia medida como buenos resultados a bajo coste, para lo que se esmeran en seleccionar a las personas con los currículos más lustrosos, y en conseguir que los indicadores de sus departamentos reflejen costes reducidos por persona contratada.

Quizá la organización tenga más tarde problemas por la baja innovación o calidad técnica de sus sistemas, o por producir con costes más elevados o con mayor lentitud que su competencia. Pero sin duda serán problemas de los gestores de proyectos, o de los programadores que siempre acaban apoltronados, desmotivados y sin alinearse con el espíritu de trabajo de la organización.

Page 51: Navegápolis 2010

Personas 51

O también puede ocurrir que sea cuestión de mala suerte, o de que el "software es así de desagradecido", y no de ineficiencia de las personas, porque tanto los indicadores de RR.HH. como los de los programadores demostrarán que cumplen con sus expectativas de eficiencia, o de nº de líneas programadas por hora o de horas de trabajo efectivo... Se produce de esta forma una situación bastante frecuente: obtención de resultados por debajo de lo esperado, en entornos en los que las personas realizan "eficientemente" su trabajo.

Page 52: Navegápolis 2010

Personas 52

Vivir para trabajar, y trabajar para morir

18.03.2007

Siete de cada diez profesionales del sector tecnológico chino morirá de infarto o derrame cerebral por exceso de trabajo(Karoshi) ; y hoy la media de vida de los intelectuales que trabajan en el parque de la ciencia de Zhongguancun es de 54 años. Según el artículo de Chinanews “70% of intellectuals might die of karoshi” (Chinanews.cn, 2007)los profesionales más expuestos son los informáticos y los jóvenes ejecutivos (lógico que sean los jóvenes: parece ser que senior ya no les quedan). "Por no querer perder el tiempo pierdes el tiempo y el alma. Estás perdiendo la vida de tanto querer ganarla."

José Bergamín

Page 53: Navegápolis 2010

Personas 53

Por Favor, no motive a los programadores

01.05.2007

Este es el ruego que le hacía al responsable de recursos humanos: bastará con que no los desmotive con sus programas de "motivación", desempeño, medición de horas de trabajo, premios y castigos. Es un error de gestores bien intencionados, pero mal orientados: quieren motivar a sus trabajadores. En otras profesiones no se, pero cuando se trata de programadores profesionales, a los que les gusta su trabajo, no se preocupe por motivarles: a estas personas les motiva la tarea y el trabajo mucho más que a usted mismo. Quieren hacer bien su trabajo y que éste resulte útil. Son gente inteligente, y los modelos al uso de motivación sacados del manual del enterado de Recursos humanos les resultan pueriles y denigrantes y lejos de motivarles, todas estas martingalas son gotas que horadan la motivación con la que ingresaron en la empresa el primer día. Estamos hablando de programadores profesionales; o sea que les gusta su profesión. Son un porcentaje escaso. Son gente que cuando dejan el ordenador de la oficina se ponen con el de su casa, les gustan los retos intelectuales y estar constantemente aprendiendo. Si los de su empresa no son de este tipo, si cuanto terminan de trabajar el viernes ya no cogen el correo, o consultan una página web hasta el lunes y no sienten ansiedad por no hacerlo... posiblemente el consejo de este artículo no sea bueno, y sí que necesite las prácticas del manual del enterado de recursos humanos para motivarles.

Page 54: Navegápolis 2010

Personas 54

¿Es bueno medir el valor de las personas?

03.05.2007

El valor de las personas, o mejor dicho, de su trabajo es un factor clave para los resultados de las empresas, y por aquello de que no es posible gestionar lo que no se puede medir (?), a los cuadros de indicadores de RR.HH. no les suelen faltar evaluaciones y métricas de este elemento tan valioso. Medir no es malo, lo malo es gestionar con indicadores erróneos. Normalmente se gestiona el valor de las personas midiendo su trabajo, aplicando la simplificación valor = trabajo; y en ocasiones se llega a simplificar aún más, con registros o culturas que presuponen que trabajo = tiempo trabajado. Supongamos una métrica que no sea tan ingenua como para suponer que el valor de la persona está en relación con el nº de horas que permanece en la oficina, y que considera valor = trabajo, midiendo el resultado producido por unidad de tiempo. Un indicador que mida el número de piezas torneadas, de palabras traducidas o de azulejos puestos puede ser válido para determinar la productividad de torneros, traductores o alicatadores. Pero aún así, medirá productividad, pero no exactamente el valor del trabajo. Combinándolo con otro indicador de calidad del tipo porcentaje de piezas o palabras erróneas se puede obtener una métrica de valor mucho más fiable. ¿Pero, y para medir el valor de un texto literario?, ¿de una estrategia de marketing?, ¿de un programa de software o de la arquitectura de un sistema?... ¿Medimos el nº de líneas o de páginas del informe?. ¿El tiempo que le ha costado a la persona producirlo?. ¿Qué equipo diseñó el mando de la Wii?. ¿Cómo puede medir Nintendo el valor del trabajo de esas personas?, o lo que quizá es más importante: ¿Necesita medirlo para gestionarlo?

Page 55: Navegápolis 2010

Personas 55

El valor de las personas para las empresas es una combinación de tres factores (v. pág. 39): trabajo - aptitud y motivación; y para cada tipo de trabajo el peso de cada elemento es diferente. La simplificación hace métricas más sencillas y de ahí la tendencia a reducciones del tipo valor = trabajo, con márgenes de error tolerables para la gestión, por ejemplo, del trabajo mecánico de una cadena. Cuando el trabajo es prácticamente el único valor. Cuando las variables son complejas, intangibles o ambas cosas, mejor que fabricar procedimientos de gestión sobre métricas resbaladizas, ¿por qué no considerar que sí se puede gestionar lo que no se puede medir?; aunque entonces haya que contar con gestores capaces de trabajar por su conocimiento tácito de gestión, y no el explícito del procedimiento de gestión. Gestores cuyo valor no dependa tanto de su trabajo como de su motivación y aptitud.

Page 56: Navegápolis 2010

Personas 56

Los ocho estereotipos de programador

29.08.2007

Vaya usted a saber por qué, pero sí que es frecuente encontrar entre los programadores a personas polarizadas en uno de estos cuatro tipos:

El pesimista: es el programador que siempre está advirtiendo de problemas y fallos. De carácter difícil.

El cowboy: le gusta programar, y sobre todo hacerlo a su manera, y lo que a él le parece importante o necesario, lo haya pedido el cliente o no.

El disciplinado: es el carácter preferido de los gestores. Hace lo que le dicen sin cuestionar.

El rey de las reuniones: para el que todas las decisiones necesitan una buena reunión.

Me ha llamado la atención esta clasificación que planteó Aaron Ruhnow en la exposición de Agile 2007: Conciously Evolving an Agile Team (Ruhnow, 2007); y si, es cierto, son tipos frecuentes, pero no coincido en que impliquen también si técnicamente son buenos o malos. No necesariamente por ser disciplinado, por ejemplo, se es también "programador experimentado y capaz", como dice Aaron; que una cosa es la personalidad y otra la cualificación técnica.

Page 57: Navegápolis 2010

Personas 57

Desde mi punto de vista los estereotipos puros serían ocho y no cuatro:

Page 58: Navegápolis 2010

Personas 58

Proyectos, gestión, gestores y programadores

24.03.2008

Algunos proyectos necesitan previsión de fechas y costes, y otros, valor constante, y ser vanguardia continua en un mercado muy rápido. Hay una gestión de proyectos que vela por el cumplimiento de fechas y costes: que mide el trabajo, lo trocea, reparte tareas a los programadores, coordina el trabajo, vigila riesgos y controla y actúa para que se cumpla el plan. Hay otra gestión de proyectos que vela por el valor del producto, por que los programadores sean un equipo que dé al producto lo mejor de su conocimiento, a través de la motivación, la comunicación e interacción directa. Hay gestores que tratan a los programadores con la teoría X(1): que piensan que no les gusta su trabajo y que es necesario el control, el palo y la zanahoria para conseguir que se apliquen.

Page 59: Navegápolis 2010

Personas 59

Hay otros gestores que tratan a los programadores con la teoría Y(1): que piensan que a les gusta dar lo mejor de ellos en su trabajo, establecer metas y lograrlas, que el compromiso individual y de equipo es la forma, antes que el palo y la zanahoria. Y para algunos programadores, su trabajo es un "modus vivendi" y para otros una afición.

Si la realidad fuera en blanco y negro, si los proyectos necesitaran sólo valor, o sólo previsibilidad; si las personalidades fueran, o todo "X" o todo "Y"... esta sería la simplificación del escenario: Como todo tiene un grado, y son raros los blancos o negros absolutos, el escenario real no es tan sencillo, pero tener este esquema presente ayuda. (1) Teoría X y Teoría Y de Doulas McGregor

Page 60: Navegápolis 2010

Personas 60

Totalitarismo profesional

24.03.2008

-¡Qué coordinación la tuya, para caminar con tantas patas, y no tropezar nunca! -dijo la hormiga al ciempiés-. Este, que nunca lo había pensado, descubrió sorprendido que, a partir de entonces, cuanto más lo analizaba, más se tropezaba. Hay artistas que tienen el brujo en el cuerpo. Actores que se han hecho solos, pisando tablas, y no escuelas de interpretación; músicos que han aprendido de los instrumentos, y no de los métodos; bailarines que parecen entrar en resonancia con el ritmo de forma natural. A otros, han sido las clases de solfeo, interpretación o danza las que los han forjado artistas. Quizá los primeros piensen que para ser artista hay que "nacer"; quizá los segundos duden que pueda considerarse músico a quien no sabe escribir en una partitura lo que compone. Quizá artistas lo sean todos, y totalitarios sólo los que no permiten formas diferentes. ¿Qué hacer cuando el departamento de calidad suspende en procesos al gestor que tiene sobresaliente en resultados? ¿Cuando las "incidencias de calidad" le desmotivan y le sugieren que coordine mejor los pies al andar?

Page 61: Navegápolis 2010

Personas 61

A ver cuando me ascienden para dejar de programar

12.06.2008

En una entrevista para selección de programadores el candidato admitía que su objetivo era ascender en la compañía... ascender para dejar de programar y pasar a comercial o a consultoría. Según sus palabras "a puestos con más proyección". No sé, entre arquitectos, médicos o astrónomos (por decir algo), no es una aspiración generalizada ascender para llegar a áreas administrativas de empresas constructoras, hospitales o centros astrofísicos; ¿o sí?, porque a mí no me gustaría que me atendiera un médico que espera con ansiedad cuándo dejar de ver pacientes, o que hiciera mi casa un arquitecto que no quiere hacer casas. Pero sin embargo sí que es frecuente embarcarse en ingenierías técnicas para "hacerse jefe". Claro, así son luego algunos directivos.

Page 62: Navegápolis 2010

Personas 62

Equipos auto-gestionados

19.06.2008

"Equipos auto-gestionados" es un valor de fondo del desarrollo ágil, más trascendental que la forma que adopta a través de prácticas de trabajo; y comprende dos conceptos: equipo y auto-gestión. Nonaka y Takeuchi (Ikujiro & Takeuchi, 1986) identificaron en los "campos de scrum" a un único equipo, no a un único grupo de trabajo. Detrás de esta diferencia hay valores culturales diferentes. En la cultura occidental los valores son el individualismo, la iniciativa individual, el esfuerzo individual y la recompensa individual. En la cultura japonesa, al contrario, el individuo se subordina al esfuerzo colectivo. El trabajo en equipo y la dedicación desinteresada son la forma de alcanzar las metas colectivamente establecidas. Es mucho más que una cuestión de técnica de gestión. Y para la que la auto-gestión sea real se necesitan dos factores: delegación y autonomía y no es fácil que se produzcan de forma real, porque transformar a las personas en equipos auto-gestionados no consiste en dar un toque de varita mágica o un espaldarazo cada persona y decirle: ya tienes autonomía. La autonomía uno no puede darla; es la persona la que tiene que tomarla.

Page 63: Navegápolis 2010

Personas 63

Trabajo, talento, procesos y agilidad

23.11.2008

Algunas combinaciones y los resultados más probables, trabajando con gestión de recursos humanos o gestión del talento, en cadenas basadas en procesos o en campos de scrum.

Page 64: Navegápolis 2010

Personas 64

Jefes y jefes

17.02.2009

Para algunos muchos jefes, el fin de su trabajo es ascender, ganar dinero, prestigio, imagen, o de todo un poco. El fin es mejorar su valor. Para otros (pocos) el fin es el valor de su gente. Cuando los primeros lo hacen bien, logran su objetivo: jefes imprescindibles para la organización porque saben "llevar" al personal. Cuando los segundos lo hacen bien, logran su objetivo: equipos excelentes y jefes aparentemente prescindibles. Para los primeros las personas son un instrumento, para los segundos un fin.

Page 65: Navegápolis 2010

Personas 65

Jefes y jefes

25.05.2009

Es curiosa la idea que de apalancamiento y trabajo negativo expone Andrew s. Grove en High output management (Grove, 1995): Los directivos realizan (o deberían realizar) trabajos de apalancamiento elevado, llamando apalancamiento a la medida de las consecuencias de productividad para la organización. El rendimiento de un directivo se relaciona con la actividad directiva a través de la siguiente ecuación: Rendimiento directivo = Rendimiento de la organización = L1 x A1 + L2 x A2 +... Esta ecuación nos dice que para cada actividad que un directivo lleva a cabo (A1, A2, etc.) el rendimiento de la organización debería incrementarse en algún grado. Por tanto, la extension en que se haya incrementado dicho rendimiento viene determinada por el apalancamiento de esa actividad: L1, L2, etc Un tipo de actividades de elevado apalancamiento son las que afectan a muchas personas, como por ejemplo cada vez que un directivo imparte a un grupo su conocimiento, habilidades o valores. Pero el apalancamiento también puede ser negativo. Los directivos pueden realizar actividades que reducen el rendimiento de la organización. Un ejemplo: supongamos que soy el participante clave de una reunión a la que llego sin preparación. No solo haré perder el tiempo a los asistentes a la reunión, a causa de mi falta de preparación -un costo directo de mi descuido-, sino que también privaré a los otros participantes de la oportunidad de emplear ese tiempo en hacer algo más. Hay muchos ejemplos de apalancamiento negativo: Un directivo que comprueba que su división no ganará aún dinero el año siguiente y se queda deprimido. Aunque no se percate de ellos, afectará a la gente que le rodea, extendiendo la depresión a todo su equipo.

Page 66: Navegápolis 2010

Personas 66

Otro ejemplo lo tenemos cuando un directivo titubeante aplaza una decisión que afectará al trabajo de otras personas. En efecto, la falta de decisión equivale a una decisión negativa: el no tener luz verde equivale a tenerla roja, con lo cual el trabajo puede quedar detenido en toda una organización. Tanto el directivo deprimido como el inseguro pueden conseguir un apalancamiento ilimitadamente negativo. El entrometimiento directivo (alias "microgestión") constituye otro ejemplo de apalancamiento negativo. Esto sucede cuando un superior emplea sus mayores conocimientos y experiencia de las responsabilidades de un subordinado para asumir el mando de una situación, en vez de permitir que el subordinado realice las cosas por sí mismo. El apalancamiento negativo se basa en el hecho de que, al haber sido expuesto a muchos ejemplos de este tipo, el subordinado comenzará a seguir un más restrictivo punto de vista de lo que se espera de él, mostrando menos iniciativa para resolver problemas y traspasándolos a su supervisor.

Page 67: Navegápolis 2010

Personas 67

Procesos

Page 68: Navegápolis 2010
Page 69: Navegápolis 2010

Procesos 69

El manifiesto ágil se quita la chaqueta de pana y CMMI se vuelve ágil.

05.07.2005

Los métodos ágiles nacieron con espíritu de respuesta revolucionaria a la rigidez y el engolamiento de los modelos de procesos de SEI e ISO (CMM - CMMI - 15504). Algunas de las cosas que han escrito sus autores y defensores reflejan bastante bien el descaro, la frescura y la rebeldía:

La diferencia entre un atracador de bancos y un teórico de CMM es que con el atracador se puede negociar ... La evaluación en CMM depende más de una buena presentación en papel que de la calidad real del producto de software. Tiene que ver más con el seguimiento a ciegas de una metodología que con el desarrollo y puesta en producción de un sistema en el panorama tecnológico.

Ken Orr, CMM versus Agile Development: Religious wars and software

development.

Si uno pregunta a un ingeniero de software típico si cree que CMM se puede aplicar a los métodos ágiles, responderá o con una mirada de sorpresa o con una carcajada histérica

Richard Turner y Apurva Jain, Agile meets CMMI: Culture Clash or Common Cause.

Sin embargo algo parece estar cambiando, porque la semana pasada se podía leer en La Red: 1.- A partidarios de los modelos basados en procesos, afirmar que es un mito eso de que CMMI sea un modelo pesado.

La creencia de que CMMI es un proceso pesado, basado en la desconfianza y en un excesivo control es un mito, basado más en la inexperiencia de los que "venden" los procesos ágiles. Algunos de los críticos más ardientes no han trabajado nunca en un negocio basado en CMMI, o en un proceso de evaluación. Mantienen con firmeza que CMMI es un proceso malvado, sin

Page 70: Navegápolis 2010

Procesos 70

comprender que CMMI es un proceso de EVALUACIÓN DE MADUREZ, no una metodología para desarrollo de software.

Herding Cats

2.- En el programa de conferencias del primer día de EuroSTAR 2005, David J. Anderson explicará en una ponencia que MSF para CMMI es un nuevo método ágil (?) 3.- En Yahoo Groups: Agile Management el post, "CMMI and Declaration of Interdependence", también de David Anderson en el que afirma sin miradas de sorpresa ni carcajadas histéricas que CMMI y los modelos ágiles son compatibles. Sobre el post de Herding Cats, sencillamente no coincido con lo que afirma:

Los propios textos de los modelos CMMI en sus versiones continuas y escalonadas afirman en el capítulo de introducción que no se trata sólo de modelos para evaluación, sino que también son guías para prescribir a las organizaciones la mejora de los procesos de desarrollo de software.

Hace pocos meses pude conocer de cerca la evaluación del nivel 2 de CMM en ATCA, y me reafirmó la opinión de que no es un modelo ágil, es un modelo formal. Precisamente el manifiesto ágil es su antítesis.

En cuanto a las otras dos, los puntos que resultan chocantes son: El autor: David J. Anderson es defensor de los modelos ágiles. Fue miembro del grupo de desarrollo de la metodología FDD (1997-1999) y autor del libro "Agile Management for Software Engineering".

Que afirme sin rubor no haber leído ni haberse interesado por los modelos CMM hasta hace 6 meses.

Que su interés por CMM coincida con el anuncio de Microsoft de su producto Team System for CMMI.

Que Anderson trabaja en Microsoft, concretamente en Team System for CMMI.

Page 71: Navegápolis 2010

Procesos 71

Extraer conclusiones es arriesgado, pero no hacerlo resulta aburrido, así que por mi parte las que me atrevo a aportar son:

CMM - CMMI es una cosa, y los métodos ágiles son otra bastante diferente. CMMI cubre 25 áreas de proceso que en mayor o menor medida intervienen, o deberían intervenir, en el desarrollo, mantenimiento y operación del software. Ninguno de los modelos ágiles tiene un ámbito de cobertura similar.

El modelo ágil que más áreas comprende es DSDM, y según afirma el propio DSDM Consortium, su aplicación equivaldría a un nivel 2 de CMM, dejando por tanto fuera de su ámbito los objetivos y práctica de los niveles 3, 4 y 5.

En muchas organizaciones, por las características de su tamaño, expectativas, tipo de proyectos o incluso por no tener previamente asentados aspectos básicos estratégicos u organizativos, la aplicación de un modelo CMMI puede suponer un lastre con más problemas que ventajas.

En muchos casos centrar la mejora sólo en las áreas de procesos más relevantes con prácticas de los modelos ágiles puede aportar niveles de mejoría más que suficientes para su estrategia.

CMMI incorpora una representación continua, que permite que una organización pueda seleccionar sólo aquellas áreas de proceso que le interesen. Dependiendo de las características de la organización y con el criterio de un experto, es una opción interesante.

Page 72: Navegápolis 2010

Procesos 72

Métrica 3: ¿Reinventando la rueda?

25.09.2005

Métrica 3 se autodefine como una "metodología para la sistematización de las actividades que dan soporte al ciclo de vida del software". Es un trabajo de distribución y uso libre, realizado por el Ministerio de Administraciones Públicas español (MAP). Las normalizaciones facilitan la comunicación, compatibilidad y calidad en actividades y procesos comerciales e industriales. Los modelos y estándares proporcionan lenguaje y criterios comunes, y pautas con las que guardar conformidad para garantizar compatibilidad o niveles de calidad. Métrica 3 es un instrumento que la Administración española pone a disposición de la industria del software para que las organizaciones puedan emplearlo en la mejora de sus procesos, o como norma de conformidad en la adquisición y suministro de sistemas de software. De hecho, la propia Administración Pública lo emplea con esta finalidad en algunos concursos públicos para la adquisición de sistemas de software. Los modelos son útiles para la industria, siempre que su cantidad y calidad sean adecuadas, y en el software ocurre que hace pocas décadas carecíamos de ellos, y ahora quizá tenemos demasiados, y algunos no muy buenos. A las personas nos gusta hacer cosas que resulten útiles para los demás, pero en este afán investigador e inventor se puede caer en la tentación de "reinventar la rueda" y producir creaciones o versiones de mejora que en realidad no son tales, y que como no aportan beneficios sobre lo anterior crean confusión o despistan a quienes pretendían ayudar. Es una tentación que recuerda la actitud de algunos programadores de "me voy a programar mi propio botón, o mi propia cola de mensajes, porque la que incorpora la plataforma no me convence." Esta es una opción muy arriesgada que lleva implícitas dos suposiciones. Primera: el botón, la cola de mensajes, o lo que

Page 73: Navegápolis 2010

Procesos 73

sea, es mejorable... (casi seguro que sí). Segunda: yo lo voy hacer mejor... (casi seguro que no). Sin entrar en consideraciones de eficiencia que para el proyecto pueda suponer. En este sentido hay que ser más que cautos, porque si no fuera por personas capaces de cuestionar y mejorar lo conocido, aún viviríamos en cavernas; pero al mismo tiempo también es cierto que: Los avances significativos no son consecuencia tanto de las mejoras como de las innovaciones. Modificación, revisión o versión no son sinónimos de mejora. Ahora que el software ya dispone de un abanico aceptable de estándares, modelos, marcos, metodologías, etc. conviene mantener cierto espíritu crítico para identificar duplicidades y apartar a los de mediocre solvencia, para que el escenario no crezca más en número que en calidad. Analizando con este criterio a Métrica 3 puede dar la sensación, o al menos a mi me la da, de modelo ambiguo que pretende ser a la vez "modelo" e "implementación". O lo que es lo mismo determinar tanto el "QUÉ" como el "COMO" ("qué" tareas y procesos deben hacerse, y "cómo" deben llevarse a cabo"). Desde este punto de vista, resulta como una mezcla de modelo de procesos tipo ISO 12207, 15504 ó CMMI, y de prácticas o implementaciones para diseño, seguridad, gestión de la configuración... (UML, Puntos de función Albrecht, MAGERIT, etc.) Para la primera faceta, personalmente me quedo con ISO 12207 como modelo de procesos, actividades y tareas del ciclo de vida; y con 15504 o CMMI como modelos para mejorar o evaluar su aplicación y capacidad. Modelos sobre los que Métrica 3 dice estar inspirada y mantener correlación, aunque lo cierto es que los parecidos, si los hay, son poco evidentes. En su segunda faceta, Métrica 3 resulta útil como texto de referencia o material de formación de UML, prácticas de gestión de proyectos formal, etc., pero en este caso la cuestión es ¿qué hace esto dentro de un modelo de procesos?

Page 74: Navegápolis 2010

Procesos 74

Modelos de procesos y calidad: no auto-medicarse

08.11.2005

Los modelos de calidad deberían incorporar en su primera página alguna advertencia del tipo: "Antes de suministrar este modelo a su empresa consulte con un experto", para evitar que algunos desorientados se empeñen en combatir el dolor de cabeza con antibióticos, o las infecciones con antigripales. En algunos países de Sudamérica está haciendo furor la moda del CMMI. Pequeñas start-up de poco más de 10 empleados se empeñan en implantar este modelo, por supuesto mucho más preocupados por la "fotografía" que por la "radiografía" de su empresa, por emular a sus grandes competidores que por mejorar sus procesos. A su vez, para muchos de esos grandes, CMMI no es tanto el modelo de procesos que les ayuda a mejorar, sino un medio para exclusivizar relaciones políticas entre consultores y clientes; y para cerrar más el coto, perdón, el cluster en el que se agrupan. En otros casos la desorientación es del calibre de la de aquel recién nombrado director general de una empresa de desarrollo de software que a su llegada dio una lección al despistado departamento de calidad, haciéndole ver que eso de CMMI era un modelo desconocido en la industria y que el modelo que más prestigio da a las empresas es ISO 9000. (?) Por favor, si a su empresa le "duele" algo, no consulte a la vecina, ni aplique el medicamento más anunciado en las revistas de management, o el de la caja más grande. Si dispone de un departamento de calidad, contrate a los mejores ingenieros de software que pueda localizar y si trabaja con asesores externos, huya de los "vendedores de crecepelo". Estos dos consejos tienen una cosa buena y una mala. La buena es que funcionan. La mala es que no es fácil encontrar a las personas adecuadas en cada caso.

Page 75: Navegápolis 2010

Procesos 75

Laurence J. Peter, el autor del famoso "principio de Peter" afirmaba:

El director de empresa que necesitara la ayuda de un experto debía evaluar las cualificaciones y competencia del consultor antes de contratarle. Un director que tiene problemas en un sector determinado de su esfera de actividad, es probablemente el menos cualificado para valorar la competencia de un experto en esa esfera determinada.

Laurence J. Peter, "Las fórmulas de Peter

Page 76: Navegápolis 2010

Procesos 76

Del origen de Scrum

07.03.2006

"Las reglas del juego de desarrollo de nuevos productos han cambiado. Muchas empresas han descubierto que para alcanzar la excelencia es necesario algo más que las bases actuales de alta calidad, bajo coste y diferenciación. También se necesita velocidad y flexibilidad... ...Este énfasis por la velocidad y la flexibilidad necesita un enfoque distinto en la gestión del desarrollo de nuevos productos. El ciclo tradicional o de "carrera de relevos" ejemplificado por la Administración Nacional Aeronáutica y Espacial: Phased Program Planning (PPP) puede crear conflictos con los objetivos de máxima velocidad y flexibilidad. Sin embargo, un enfoque holístico como un equipo de rugby, donde el equipo intenta avanzar como un todo, pasando el balón atrás y adelante, puede responder mejor a los requisitos de competencia actuales... ...Con el enfoque de rugby, el desarrollo del producto surge de la iteración constante de un equipo cuidadosamente seleccionado, multidisciplinar, cuyos miembros trabajan juntos de principio a fin."

Extractos del artículo "The New New Product Development Game." de Hirotaka Takeuchi e Ikujiro Nonaka que identificaron en 1986 la metodología de desarrollo iterativo e incremental basada en la formación scrum de los equipos de rugby

Page 77: Navegápolis 2010

Procesos 77

Procesos: incompatibilidades y efectos secundarios

19.04.2006

La teoría de los textos de administración de empresas sobre "procesos" y "organización centrada en procesos" debería incorporar una advertencia, que a modo de prospecto dijera algo así: Incompatibilidades: La administración en empresas del conocimiento debe realizarse bajo la supervisión de un experto. Efectos secundarios: En estas empresas, la administración en dosis o forma errónea puede producir mediocridad. Las empresas de programación son el mejor ejemplo que conozco de empresas del conocimiento, y aplicar en ellas teoría de procesos porque "es lo que se lleva", o lo que me dijeron en el master es una barbaridad.

Los modelos industriales emplean a personas, procesos y tecnología para inyectar valor en la materia prima y transformarla en producto. Los objetivos para este cometido son: conseguir la mayor cantidad de producto, con el mayor nivel de calidad posible de la forma más eficiente (con el menor coste). Desde que en los 80 Michael Hammer levantara la liebre de los procesos, las tres últimas décadas han enseñado a las fábricas que el factor más eficiente para dar calidad de forma homogénea, predecible y escalable son los procesos; y que la

Page 78: Navegápolis 2010

Procesos 78

mejor forma de aumentar la eficiencia es basando la producción en procesos, y mejorando la capacidad de éstos. Si el proceso y la maquinaria pueden llegar a comprender todo el know-how necesario, la persona queda como un operador de baja capacitación, barato y fácil de remplazar. Políticamente no es correcto decir que el principal factor de la empresa son sus procesos, luego las máquinas, ordenadores o robots, y por último las personas. En las presentaciones corporativas se mencionará justo lo contrario; pero se puede hacer una prueba curiosa: teclear en Google la cadena entrecomillada "organización centrada en procesos" = 625 páginas. "organización basada en personas" = 4 páginas. La Ingeniería de procesos y la producción basada en procesos han tomado el protagonismo. Su diseño, medición y mejora en ciclos tipo "PDCA" se han revelado como la clave para mejorar de forma continua eficiencia y calidad; dibujando una ecuación en la que, las personas ayudadas por la tecnología actúan como recursos para ejecutar los procesos. Aunque seguramente contra corriente de muchas opiniones, insisto que aplicar la teoría de este modelo en empresas del conocimiento es una barbaridad, porque trabajan con materias primas muy diferentes. ¿Cuál es la materia prima del software?

Esta cuestión es la razón de la diferencia y de la barbaridad. La mediocridad en el desarrollo de software es el resultado que se obtiene al gestionar a las personas como los recursos que ejecutan los procesos, ayudados por la tecnología, y al considerar axiomático que:

Page 79: Navegápolis 2010

Procesos 79

Los procesos son el elemento de mayor palanca para garantizar la eficiencia y la calidad.

En lo relativo a las personas, la fórmula de la eficiencia es conseguir el mayor tiempo de trabajo por el menor coste posible.

La materia prima del software es el talento, y por esta razón la teoría industrial aplicada a nuestro sector da empresas de productos mediocres, porque:

Suministra una materia prima de baja calidad.

Su sistema "personas - procesos - tecnología" incorpora al producto una mínima parte del valor que se le podría transferir.

Administrando a las personas que desarrollan software como un recurso de producción industrial se puede estar en el mercado, conseguir el volumen de trabajo que el marketing y el capital relacional propio sean capaces de lograr, pero el producto será mediocre. Este modelo de empresa no es capaz de desarrollar software innovador ni valioso. Algunas consideraciones

En el desarrollo de software el protagonista para dar valor al producto es el talento muy por encima de los procesos o la tecnología.

Las diferencias de valor, calidad o eficiencia que pueden aportar unas personas u otras no es como en los trabajos mecánicos de 1,5 ó 2. Pueden ser x10 o x100.

En la ecuación Personas - Procesos - Tecnología, falta un cuarto elemento: el Entorno. La cultura y el comportamiento organizacional. Los procesos y la tecnología, principales protagonistas de los entornos

Page 80: Navegápolis 2010

Procesos 80

industriales son insensibles al entorno. Las máquinas y los procesos no producen más o menos según sea la cultura de la empresa. Por eso el cuarto elemento no se suele considerar. Sin embargo el talento es muy sensible. Huye de las empresas tóxicas; y las personas, aunque lo tengan, no lo pueden expresar si no están motivadas.

La clave no es la "gestión de los recursos humanos" sino la "gestión del talento".

Empresas de producción industrial

Empresas del conocimiento

Valor Valor

Como respuesta a la crisis del software surgieron hace un par de décadas, en medio del auge y protagonismo de los procesos, marcos de modelos como solución para nuestra industria: ISO 12207, CMM, CMMI, ISO 15504, PSP, TSP... Son una gran ayuda que identifican las áreas de conocimiento de la producción y mantenimiento del software, y desarrollan pautas de ingeniería para trabajar con sistemas que tienen niveles de integridad elevados, pero también pueden hacer estragos cuando se administran con modos trasplantados de entornos industriales a entornos del conocimiento, cuando no se equilibran adecuadamente en función de las características de cada empresa y de cada sistema de software. Las pautas que en los entornos industriales logran eficiencia, en el software producen mediocridad. Gestionar empresas del conocimiento con teoría de management industrial genera productos mediocres y técnicos desmotivados.

Page 81: Navegápolis 2010

Procesos 81

Los cuatro principios del manifiesto ágil

1.06.2006

En marzo de 2001, 17 críticos de los modelos de mejora basados en procesos, convocados por Kent Beck, que había publicado un par de años antes el libro "Extreme Programming Explained" en el que exponía una nueva metodología denominada Extreme Programming, se reunieron en Salt Lake City para discutir sobre el desarrollo de software. En la reunión se acuñó el término “Métodos Ágiles” para definir a los que estaban surgiendo como alternativa a las metodologías formales, (CMM-SW, PMI, SPICE) a las que consideraban excesivamente “pesadas” y rígidas por su carácter normativo y fuerte dependencia de planificaciones detalladas, previas al desarrollo. Los integrantes de la reunión resumieron en cuatro postulados lo que ha quedado denominado como “Manifiesto Ágil”, que son los principios sobre los que se basan estos métodos. Hasta 2005, entre los defensores de los modelos de procesos y los de modelos ágiles han sido frecuentes las posturas radicales, quizá más ocupadas en descalificar al otro que en estudiar sus métodos y conocerlos para mejorar los propios. Manifiesto Ágil (http://www.agilemanifesto.org)

Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: A los individuos y su interacción, por encima de los procesos y las herramientas. El software que funciona, por encima de la documentación exhaustiva. La colaboración con el cliente, por encima de la negociación contractual. La respuesta al cambio, por encima del seguimietno de un plan.

Page 82: Navegápolis 2010

Procesos 82

Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda

Firmado por: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas. Valoramos más a los individuos y su interacción que a los procesos y las herramientas. Este es posiblemente el principio más importante del manifiesto. Por supuesto que los procesos ayudan al trabajo. Son una guía de operación. Las herramientas mejoran la eficiencia, pero en trabajos que requieren conocimiento tácito, sin personas con conocimiento técnico y actitud adecuada, no producen resultados. Las empresas suelen predicar muy alto que sus empleados son lo más importante, pero la realidad es que en los años 90 la teoría de producción basada en procesos, la re-ingeniería de procesos ha dado a éstos más relevancia de la que pueden tener en tareas que deben gran parte de su valor al conocimiento y al talento de las personas que las realizan. Los procesos deben ser una ayuda y un soporte para guiar el trabajo. Deben adaptarse a la organización, a los equipos y a las personas; y no al revés. La defensa a ultranza de los procesos lleva a postular que con ellos se pueden conseguir resultados extraordinarios con personas mediocres, y lo cierto es que este principio es peligroso cuando los trabajos necesitan creatividad e innovación. Valoramos más el software que funciona que la documentación exhaustiva. Poder ver anticipadamente como se comportan las funcionalidades que se esperan sobre prototipos o sobre partes ya elaboradas del sistema final ofrece un "feedback" muy estimulante y enriquecedor que genera ideas y posibilidades imposibles de concebir en un primer momento, y difícilmente se

Page 83: Navegápolis 2010

Procesos 83

podrían incluir al redactar un documento de requisitos detallados antes de comenzar el proyecto. El manifiesto no afirma que no hagan falta. Los documentos son soporte de documentación, permiten la transferencia del conocimiento, registran información histórica, y en muchas cuestiones legales o normativas son obligatorios, pero se resalta que son menos importantes que los productos que funcionan. Menos trascendentales para aportar valor al producto. Los documentos no pueden sustituir, ni pueden ofrecer la riqueza y generación de valor que se logra con la comunicación directa entre las personas y a través de la interacción con los prototipos. Por eso, siempre que sea posible debe preferirse, y reducir al mínimo indispensable el uso de documentación, que genera trabajo que no aporta un valor directo al producto. Si la organización y los equipos se comunican a través de documentos, además de perder la riqueza que da la interacción con el producto, se acaba derivando a emplear a los documentos como barricadas entre departamentos o entre personas. Valoramos más la colaboración con el cliente que la negociación contractual. Las prácticas ágiles están especialmente indicadas para productos difíciles de definir con detalle en el principio, o que si se definieran así tendrían al final menos valor que si se van enriqueciendo con retro-información continua durante el desarrollo. También para los casos también en los que los requisitos van a ser muy inestables por la velocidad del entorno de negocio. Para el desarrollo ágil el valor del resultado no es consecuencia de haber controlado una ejecución conforme a procesos, sino de haber sido implementado directamente sobre el producto. Un contrato no aporta valor al producto. Es una formalidad que establece líneas divisorias entre responsabilidades, que fija los referentes para posibles disputas contractuales entre cliente y proveedor. En el desarrollo ágil el cliente es un miembro más del equipo, que se integra y colabora en el grupo de trabajo. Los modelos de contrato por obra no encajan.

Page 84: Navegápolis 2010

Procesos 84

Valoramos más la respuesta al cambio que el seguimiento de un plan Para un modelo de desarrollo que surge de entornos inestables, que tienen como factor inherente el cambio y la evolución rápida y continua, resulta mucho más valiosa la capacidad de respuesta que la de seguimiento y aseguramiento de planes pre-establecidos. Los principales valores de la gestión ágil son la anticipación y la adaptación; diferentes a los de la gestión de proyectos ortodoxa: planificación y control para evitar desviaciones sobre el plan.

Page 85: Navegápolis 2010

Procesos 85

Métricas en equipos auto-gestionados

23.06.2006

Nonaka y Takeuchi analizando las prácticas de trabajo de las empresas de tecnología más eficientes y vanguardistas, las empresas del "campo del Scrum", identificaron un elemento común: equipos multi-disciplinares, auto-gestionados operando como mini start-up's. Los modelos de gestión ágil no parten de una planificación detallada, y no pretenden monitorizar y gestionar la ejecución de ese plan inexistente, por eso es un error aplicar métricas propias de las actividades de la gestión de proyectos clásica. Determinar indicadores, métricas y procesos de medición no es fácil, y ante la duda suele perjudicar menos quedarse corto que pasarse. Los directivos de las empresas que adoptan modelos ágiles suelen quedar desconcertados al sugerirles la conveniencia de que sean los mismos equipos quienes diseñen las métricas con las que van a trabajar. Las dudas y objeciones que argumentan apuntan el contrasentido de sean los propios trabajadores quienes decidan los criterios con los que se les va a medir... porque en el fondo sigue pesando mucho la base y la inercia de la gestión clásica de proyectos. Los siguientes son fragmentos del artículo de Christopher Meyer “How the right measures help teams excel”.

La finalidad crucial de un sistema de medida debe ser ayudar al equipo a estimar su progreso. El sistema de medición de un equipo tendría que ser esencialmente una herramienta para que el equipo supiera cuándo debe tomar medidas correctoras. Asimismo, el sistema de medida tiene que proporcionar medios a la alta dirección para intervenir en el caso de que el equipo esté inmerso en problemas que no puede resolver por sí solo. Pero incluso si un equipo dispone de un buen sistema de medidas, será de poca utilidad si los altos directivos lo utilizan para controlar al equipo.

Page 86: Navegápolis 2010

Procesos 86

Un equipo en el que se ha delegado autoridad de verdad debe desempeñar un papel fundamental en el diseño de su propio sistema de medidas. Un equipo sabrá mejor que nadie qué clase de sistema de medidas necesita, pero no sólo el equipo debe diseñar el sistema. La dirección de la empresa debe asegurarse de que el sistema de medidas es coherente con la estrategia de la empresa. Dado que el equipo es responsable del proceso completo de entrega de valor, tiene que crear medidas para su seguimiento. En una organización funcional tradicional, no hay una única función que sea responsable de un proceso completo de entrega de valor.

Page 87: Navegápolis 2010

Procesos 87

Las historias de terror de CMMI

26.06.2006

¿CMMI es una garantía de calidad para los clientes? ¿Por qué hay empresas que a pesar de tener niveles CMMI elevados, cosechan fracasos en sus proyectos? ¿Qué garantiza CMMI? Rick Hefner, director de iniciativas de procesos de Northrop Grumman y uno de los autores del modelo CMMI ha presentado en el SEPG americano de este año la conferencia "CMMI Horror Stories: When Good Projects go Bad" con las conclusiones de su estudio sobre los casos de fracaso de CMMI. Los modelos de CMM se desarrollaron para cubrir dos finalidades, y pueden emplearse para cualquiera de ellas: Guía de ayuda para mejorar los procesos de desarrollo de software. Baremo de medida para determinar el nivel de madurez de la empresa, o de capacidad de sus procesos. Pero lógicamente bajo el supuesto de la buena voluntad, porque de nada sirve que nos receten el mejor régimen, que lo colguemos por las paredes de la cocina, que digamos al médico y a los amigos que lo seguimos a rajatabla; mientras a escondidas seguimos comiendo lo de siempre. El médico es médico. No policía; y sería absurdo culparlo a él, y no al paciente. Y ocurre que cuando las empresas trabajan para la apariencia, construyendo fachadas de cartón-piedra y vendiendo la imagen de lo que no son, los problemas están a la vuelta de la esquina. Hasta hace unos años las siglas CMM eran desconocidas para los profanos, y como suele coincidir que las empresas de software que se preocupan mucho en el marketing y poco en la sala de máquinas suelen estar gestionadas por profanos, no había problema; pero durante los 15 años de trabajo, CMM se ha ganado un valor de marca merecido, que es ahora precisamente un peligro, porque atrae a los que sólo quieren vestirse con ese valor, sin cambiarse de muda.

Page 88: Navegápolis 2010

Procesos 88

Rick Hefner identifica que el principal problema son las empresas que sólo se esfuerzan en conseguir pasar la evaluación, por lo que sólo aplican la metodología en los proyectos que analizan los evaluadores al buscar las evidencias; y la aplican sin comprenderla ni interesarse por su institucionalización para todos los proyectos futuros. Una evaluación CMMI indica que la organización ha demostrado la capacidad en los proyectos evaluados. CMMI asume que la empresa propagará esos procesos al resto de proyectos, pero no lo garantiza. Hefner da consejos para evitar estos fiascos, haciendo hincapié en las prácticas genéricas del modelo, en permitir que sea el evaluador quien seleccione los proyectos, etc. Creo que el mejor consejo es "no se engañe, mejore de verdad, no sólo de apariencia", y añadiría: "antes de calzarse un CMMI asegúrese de que es un modelo adecuado para las características de su organización y de sus proyectos. v ("Modelos de procesos y calidad: no auto-medicarse", pág. 74).

Page 89: Navegápolis 2010

Procesos 89

Si nos han vendido una moto… nos van a dar una moto

28.07.2006

La familia de CMM's anunciaba un futuro CMMI-ACQ para el proceso de adquisición, y como lo prometido es deuda... vamos a charlar de eso del "proceso de adquisición". Un ejemplo: Un centro de formación, pagó no hace mucho un potosí por un sistema de "e-learning" desarrollado a medida; adquiriendo una plataforma que se le ha quedado "coja" antes de empezar. Su proveedor, que tiene como negocio la programación a medida y no la integración de software libre, no analizó el problema ni consideró por ejemplo la integración de un sistema como Moodle. Software gratuito con todas las funcionalidades que necesita el cliente (y tropecientas más). Si nos han vendido una moto, nos van a dar una moto. El proveedor podrá tener la certificación ISO tal, o varios CMM'ies, premios a la excelencia, etc. en cuyo caso, y si no los ha "comprado" sólo por attrezzo, lo más probable es que la "moto" sea buena, funcione bien y nos la entregue en fechas. Si no, es posible que la tengamos tarde, mal y nunca. Pero lo que no nos quita nadie es que nos han vendido una moto: algo que no se sabe si nos hace falta, o si nos solucionará el problema, o si es la mejor opción para nuestras necesidades... Ocurre en muchas ventas de sistemas de software, porque los departamentos comerciales de las empresas de soft suelen acudir a los clientes azuzados para cubrir cifras de ventas, no para solucionar sus problemas. Quizá soy algo ingenuo, pero me siento molesto, incómodo, con una especie de vergüenza ajena cuando veo festejar con risas y alharacas situaciones del tipo "Vaya moto le he vendido... ¡Un web en chino! y el tío no sabe ni para qué lo quiere. ¡por tropecientas mil!!". (Exclamaciones literal y lamentablemente reales). Sin entrar en si esto es un comportamiento profesional o simplemente mercantil, lo cierto es que el vendedor cuenta las

Page 90: Navegápolis 2010

Procesos 90

excelencias de lo que le conviene vender: si su negocio es software libre afirmará que lo mejor es el CRM tal open source. Si es un integrador de "SuperSoft" dará la casualidad de que los productos de esa casa son precisamente lo que necesitamos y si se dedica a programar, nos va ha hacer un apaño o un sistema nuevo para que tengamos la mejor solución. Y en el fondo, es que conocer el problema, analizar las soluciones posibles y seleccionar al proveedor más adecuado no es responsabilidad del suministrador, sino del adquiriente. Es el proceso de adquisición. Es mejor que sea el cliente quien elija al proveedor (basándose en conocimiento y razones objetivas), y no dejar que ocurra lo contrario.

Los diplomas de calidad del vendedor en el mejor de los casos dan garantía de que su trabajo lo sabe hacer bien, pero NO que vaya a hacer el nuestro. Adquisición es un módulo aparte del CMMI, y en el futuro será un modelo independiente, porque no es un proceso para fabricantes sino para compradores.

Page 91: Navegápolis 2010

Procesos 91

Los proyectos de software pueden ser un fiasco por problemas en el desarrollo, mantenimiento y operación, pero también por problemas en la adquisición. La mejor solución para adquirientes con infraestructuras TIC importantes es contar para las adquisiciones con un departamento de ingeniería propio y experto en Ingeniería de Software y en procesos de adquisición. Para los más pequeños, un tipo de consultoría TIC difícil y que no abunda: asesoría (profesional e independiente) para la adquisición: servicios de análisis de requisitos del sistema, arquitectura, evaluación de proveedores, gestión y seguimiento del proyecto, validación y verificación. Lo más difícil de estas consultoras es la independencia de marcas, productos o empresas amigas de desarrollo o integración, y el nivel técnico y profesional necesario; pero bueno, aunque pocas, alguna hay. Ojalá aumente la demanda y cada vez haya más consultores y arquitectos de software trabajando por los intereses del cliente

Page 92: Navegápolis 2010

Procesos 92

El error de los modelos CMM

02.08.2006

CMMI se ha desarrollado sobre la base: " La calidad de un sistema o producto depende principalmente de la calidad de los procesos empleados en su desarrollo y mantenimiento". Tomando por axiomático este principio, el modelo identifica a 25 áreas de procesos como factores clave para desarrollar software de calidad de forma eficiente, repetible, y cada vez mejor. Así, por ejemplo, garantizar la integridad de los fuentes, y controlar adecuadamente las versiones de todos los documentos, librerías y demás elementos de la configuración es una de las 25 áreas de procesos. Sin duda, para garantizar resultados de calidad en este punto, mucho mejor que contratar sólo a personas ordenadas de trabajo sistemático y buena memoria es apostar por los procesos; disponer de los procesos más adecuados y capaces para la gestión de la configuración es el modelo más adecuado para conseguir calidad y eficiencia en la gestión y control de las versiones. Pero, ¿para conseguir innovación, diseños de arquitecturas ingeniosos e implementaciones inteligentes, que puedan suponer mejoras de valor en el producto capaces de despeinar a la competencia. ¿Para multiplicar la eficiencia, no en la línea de producir más líneas de código en menos tiempo, sino diseñando arquitecturas que requieren la cuarta parte de trabajo y ofrezcan el doble de robustez? Para conseguir esto CMMI no ofrece una estrategia diferente: "A través de los procesos se logra más valor y eficiencia que con las personas". Da "cosa" contradecir a SEI, pero creo que es un error.

Page 93: Navegápolis 2010

Procesos 93

La innovación, los diseños de las arquitecturas y las estrategias de solución deben su valor a las personas, no a los procesos. Las organizaciones que desarrollan software para sistemas novedosos o para sectores de mercado de cambios rápidos o bases tecnológicas inestables pueden mejorar su valor y eficiencia a través de los procesos en el porcentaje que sea, pero a través de las personas pueden disparar esos mismos valores. Las organizaciones de software que dan soluciones a entornos de problemas bien conocidos, que necesitan poca innovación, que desarrollan sistemas con niveles altos de integridad, que trabajan en sistemas que pueden definirse con detalle desde el primer día, y sobre bases tecnológicas más contrastadas y estables, pueden aprovechar mucho mejor las ventajas de mejora, repetibilidad y escalabilidad que dan los modelos de mejora basados en procesos.

Page 94: Navegápolis 2010

Procesos 94

La caja del producto

17.08.2006

Los proyectos ágiles parten de la visión del producto, y no de una especificación detallada de requisitos. Comentando en el blog de Unkasoft que el propietario del producto debe tener muy claros dos puntos: la visión del producto y el alcance del proyecto; apunto en este artículo la práctica que suelo recomendar de la "caja del producto" porque resulta muy útil: para explicar qué es la "visión"; para transmitirla y compartirla con todo el equipo; y para que la comunicación enriquezca el concepto inicial. El concepto de visión suele resultar ambiguo porque no es fácil de definir: tener clara la idea de producto o servicio, aunque no se conozca o no se sea capaz de explicar el detalle; porque de hecho se espera que el propio proceso ágil trabaje e investigue para desarrollarlo y para dar al producto el mayor valor posible, dentro de las restricciones del proyecto (alcance). El desarrollo creativo y la innovación que irá aportando harán surgir aspectos que no pueden predecirse y que requieren un proceso evolutivo para analizarlos e incorporarlos. La visión del producto se mantendrá (si es buena y acertada), mientras las circunstancias y los requisitos cambiarán y evolucionarán para aportar más valor. Tan importante como disponer de una visión es que todo el equipo la conozca y comparta, y para garantizarlo suelo recomendar que todos los implicados en el proyecto realicen, al menos al comienzo la práctica de "la caja del producto". Se trata de describir cómo sería la caja del producto que se va a realizar. La que tomarán en sus manos los clientes en la tienda para echar un vistazo y descubrir de qué se trata lo que hay dentro. Este concepto de "caja" resulta apropiado para productos pequeños o determinados programas de software. Si se trata de un servicio, o de un producto grande, basta con cambiarlo por el folleto publicitario o la página web que lo describirá.

Page 95: Navegápolis 2010

Procesos 95

En una sesión de trabajo, el equipo en conjunto, debe diseñar, según sea el caso:

La caja con las imágenes y textos de todas sus caras.

Un folleto publicitario, en formato A4 por las dos caras, o tríptico.

La dos página que describirían el producto en el sitio web.

El resultado forma parte de la documentación del proyecto, porque junto con el alcance (objetivo y restricciones de negocio) es el centro de la diana a la que apunta todo el equipo.

Page 96: Navegápolis 2010

Procesos 96

ISO reconoce que los actuales modelos de software son inadecuados para pymes

28.08.2006

Si en su empresa o en sus proyectos no trabajan más de 25 personas, y está pensando implantar modelos de procesos tipo CMMI o ISO 15504, le interesa mucho conocer las conclusiones a las que está llegando el comité ISO de estandarización para la Ingeniería del software (ISO/IEC JTC1 SC7): "La industria del software reconoce la valiosa contribución de los productos y servicios aportados por las pequeñas empresas. Los estándares internacionales ISO no se han escrito para pequeños proyectos, organizaciones o empresas con menos de 25 personas". En la actualidad el sub-comité SCT7 está trabajando para proporcionar a este tipo de proyectos y de empresas, versiones equivalentes adecuadas para ellos con los principios de los cuatro estándares actuales más importantes: ISO12207, ISO15288, ISO15504 (compatible con el modelo de mejora CMMI), ISO 9000-3. El proyecto tiene como objetivo desarrollar normas que requieran poco esfuerzo de formación y adaptación y resulten adecuadas a los proyectos y empresas pequeñas, para hacer accesibles en ellas los estándares de la Ingeniería del Software. Los desarrollos serán armónicos y estarán alineados con los principales estándares ya definidos, así como con los principios de madurez de las normas ISO 15504 o CMMI. La agenda del comité ISO prevé tener la propuesta de ciclo de vida del software para pequeñas empresas, preparada para pasar a la fase de aprobación como estándar internacional en noviembre de 2007. Hace ya algún tiempo empecé a guiarme por mis propias conclusiones sobre los modelos de calidad, las técnicas ágiles, la gestión de los proyectos; y viendo por un lado las tendencias ágiles en busca del equilibrio entre agilidad y disciplina; y por

Page 97: Navegápolis 2010

Procesos 97

otro que ISO trabaja en proyectos como este, creo que no estoy tan loco. Lo que uno nunca sabe es si a las organizaciones como ISO o SEI, o a las firmas de consultoría no les pasará lo que a las malas empresas de software, que quizá no trabajan por la supervivencia de sus clientes, sino por la suya propia; porque ninguna empresa de software quiere estándares, sino calidad, eficiencia y valor. (Art. Rel. nuestros clientes no quieren programas, pág. 249).

Page 98: Navegápolis 2010

Procesos 98

Síntesis

10.09.2006

Cuestionar lo conocido genera la contradicción, la tensión entre contrarios que actúa de motor en la evolución del conocimiento. No es nuevo. Lo afirmó Platón. En filosofía ha creado la escuela dialéctica , y Nonaka y Takeuchi, en su último líbro Hitotsubashi on Knowledge Management afirman también estar convencidos de que este patrón dialéctico de tesis, antítesis y síntesis dirige la evolución del conocimiento: antítesis que se oponen y cuestionan las tesis anteriores, y dan como resultado nuevas posturas de síntesis que a su vez harán el papel de tesis en el siguiente ciclo evolutivo; formando así una espiral de evolución y perfeccionamiento continuo.

Estoy convencido de que los modelos basados en procesos han sido la "tesis" que inicia el conocimiento para desarrollar sistemas de software. Que la agilidad es su antítesis, y que estamos generando en estos años la síntesis; un resultado enriquecido de ambos, depurado y con mayor valor de conocimiento.

Page 99: Navegápolis 2010

Procesos 99

En 1968 la NATO organizó un congreso para ver qué pasaba con eso del software, porque en todos los proyectos siempre eran los subsistemas de software los que llegaban tarde, mal y nunca. Allí se etiquetó al fenómeno como "crisis del software" y se habló por primera vez de la necesidad de crear un conocimiento, una "Ingeniería del Software" para darle solución. Los ordenadores comenzaban a no ser excesivamente extraños, y la demanda de programas y programadores empezó a crecer, pero los héroes que se ponían a ello contaban con una base de conocimiento inexistente para ayudarles. Tan sólo disponían de los manuales de usuario de los sistemas operativos y de los lenguajes de programación. Unas referencias que ayudan a comprender la situación del conocimiento de aquellos años: En 1968 Edsger Dijkstra escribió su famosa carta "GoTo Statement Considered Harmful". La primera publicación sobre programación estructurada no vio la luz hasta 1974, publicada por Larry Constantine, Glenford Myers y Wayne Stevens. El primer libro sobre métrica de software fue publicado en 1977 por Tom Gilb El primero sobre análisis de requisitos apareció en 1979 El nacimiento de la Ingeniería del Software como respuesta a la crisis bautizada en el congreso de la NATO ha sido la primera tesis, el inicio del conocimiento para el desarrollo de sistemas de software. Esta "tesis" se construyó sobre las prácticas coetáneas, más o menos veteranas y más o menos contrastadas en otras ingenierías y en otros ámbitos: Desarrollo basado en procesos como garantes de calidad repetible y escalable. Principios de calidad de Juran (la calidad resultante depende de la calidad de los procesos empleados) Pautas de gestión de proyectos predictivas para garantizar la eficiencia y el cumplimiento de plazos y presupuestos. En los 80 y 90 comienza a cristalizar su base de conocimiento: Modelos de procesos específicos para software: ISO9000-3 CMM's SPICE-ISO 15504 , Bootstrap, etc. Aplicación al software del patrón de gestión de proyectos predictivo aplicado en otras ingenierías: PMI , IPMA .

Page 100: Navegápolis 2010

Procesos 100

Primer borrador de consenso sobre el cuerpo de conocimiento de la Ingeniería del Software: SWEBOK . En los 90 comienza la difusión y aplicación de este conocimiento. En algunos ámbitos da buenos resultados, y en otros genera una réplica "dialéctica"; la antítesis de la conferencia de la OTAN: El Manifiesto Ágil, (pág. 81) que cuestiona la validez de los modelos basados en procesos y la gestión predictiva para el desarrollo de software. Se radicalizan las posturas entre ambas líneas y se genera (y se está generando) la tensión entre contrarios que es el motor para el avance dialéctico del conocimiento.

Algunos ejemplos de esta tensión: "La diferencia entre un atracador de bancos y un teórico de CMM es que con el atracador se puede negociar" ... "La evaluación en CMM depende más de una buena presentación en papel que da la calidad real del producto de software. Tiene que ver más con el seguimiento a ciegas de una metodología que con el desarrollo y puesta en producción de un sistema en el panorama tecnológico". Ken Orr , CMM versus Agile Development: Religious wars and software development .

Page 101: Navegápolis 2010

Procesos 101

Si uno pregunta a un ingeniero de software típico si cree que CMM se puede aplicar a los métodos ágiles, responderá o con una mirada de sorpresa o con una carcajada histérica.

Richard Turner y Apurva Jain, Agile meets CMMI: Culture Clash or

Common Cause .

Sin duda estamos en la resolución dialéctica de los extremos hacia una síntesis: En estos momentos autoridades de la Ingeniería del Software como Barry Boehm y Richard Turner hablan de balancear la agilidad y la disciplina y proponen un patrón de 5 factores discriminadores (pág. 181). ISO comprueba y anuncia que los modelos desarrollados funcionan en unos entornos, pero no en otros, y ha creado ya comités para desarrollar versiones más ligeras. Surgen iniciativas de normalización como MoProSoft que buscan puntos intermedios entre ambos extremos. Muchos profesionales plantean dudas sobre ambos extremos, y prueban con mayor o menor tiento y acierto soluciones híbridas . Estamos determinando la primera oposición en la espiral dialéctica del conocimiento de la Ingeniería del software. Es un momento más confuso, durante el que ya no está tan claro el norte y es mas difícil orientarse. Resultaba mucho más cómodo 1995 por ejemplo. Con la tesis desarrollada, y sin haber despertado aún su antítesis ágil, sentíamos que habíamos alcanzado la verdad. Que ya sabíamos cómo desarrollar software. Que todo era cuestión aplicar pautas de ingeniería en fases secuenciales, con gestión predictiva... Ahora estamos a mitad de resolución entre esa tesis y la antítesis ágil. La contradicción es el motor del avance, pero produce confusión, y además la velocidad de difusión que ha imprimido la generalización de internet en la segunda mitad de los 90 y el apresuramiento general del entorno, hace que se solapen las tres tendencias del ciclo. ISO 15504, CMMI, Scrum, DSDM, Extreme Programming, etc. son grandes aportaciones y es mucho lo que se puede aprender de ellos, pero es iluso pensar de cualquiera que es la solución. El conocimiento va a estar evolucionando siempre y no tardarán mucho en quedar superados o mejorados por su propia

Page 102: Navegápolis 2010

Procesos 102

evolución. Los libros sobre CMMI o Scrum de hoy, cuando los leamos dentro de pocos años serán ya libros de conocimiento desfasado. La evolución la movemos todos, cuestionando y sugiriendo mejoras.

Page 103: Navegápolis 2010

Procesos 103

Good Agile, Bad Agile y otros fundamentalismos

30.09.2006

Good Agile, Bad Agile es el título del artículo en el que Steve Yegge, programador de Google, cuestiona aspectos y prácticas de los modelos ágiles, y que estos días ha causado cierto revuelo entre blogs y foros del mundillo. Este tipo de situaciones: de críticas entre posturas diferentes, mejor o peor argumentadas son de un análisis muy rico tanto para aprender sobre el tema que tratan, como por la miga sociológica que revelan. Los humanos necesitamos conocer el porqué de las cosas, aprehender la realidad del entorno en el que trabajamos; pero la realidad no es lineal y plana, es multidimensional. No se trata de la melodía simple de una flauta dulce sino del concierto de un una orquesta sinfónica. Trabajamos y nos movemos en sistemas complejos de múltiples dimensiones en las que operan muchas variables que actúan de forma relacionada y coordinada. En la construcción de conocimiento que vamos desarrollando y mejorando de forma continua para explicar porqué determinada realidad se comporta así, vamos revelando algunas variables, sus relaciones y parte de alguna dimensión. Con ellas elaboramos hipótesis, y desarrollamos modelos de la realidad que nos muestran un poco la explicación que andamos buscando. Pero un modelo es sólo el boceto de una visión parcial de la realidad. El desarrollo de software, como cualquier realidad, es muy rica y compleja, y además cada empresa debe operar con esas variables y dimensiones para adecuarla a sus circunstancias y entorno e interpretar su propio concierto. Por supuesto que en la realidad del desarrollo de software interviene la "dimensión" de procesos, por supuesto que también interviene la de las personas; también la tecnología, la cultura organizacional...

Page 104: Navegápolis 2010

Procesos 104

Y si miramos los entornos posibles... Hay quien desarrolla software para guiar misiles balísticos, para gestionar los saldos bancarios de sus clientes, para crear juegos en videoconsolas, para retocar fotografías, etc. En este escenario es en el que un buen día Steve Yegge se da cuenta de lo bien que funciona en "su realidad" de trabajo de Google: el que los programadores no tengan directrices pre-fijadas, que dediquen un buen porcentaje del tiempo de trabajo a mirar e investigar cosas diferentes al proyecto que tienen entre manos, que los gestores dediquen la mitad de su tiempo a programación, etc. Y todo lo que ve es cierto, funciona bien y le da valor a Google. Tiene razón. Podría sintetizar un modelo, una metodología de trabajo, etiquetarla como "Google-Agile" y difundirla. Jeff Sutherland hizo algo parecido hace 10 años, sintetizó el conocimiento de una metodología de trabajo que empleaba en su empresa: Easel Corporation. Lo etiquetó como Scrum y junto con Ken Schweber lo presentó como metodología de desarrollo. Profesores de universidades, investigadores y expertos de nuestra industria han descubierto también mecanismos e interacciones de variables y dimensiones que funcionan bien: CMMI, ISO, ITIL... El problema surge al decir: "¡Eh chicos, no le déis más vueltas!. Este es el modelo bueno, y no el vuestro!. ¡Pero dónde váis, madre mía que tonterías decís!. Y ya metido en harina, el artículo de Steve, aunque peca de esta tendencia fundamentalista, tiene también algunas incorrecciones políticas interesantes al cuestionarse el tema de los "$eminario$ de formación" que, si bien por su enfoque anti-agilidad sólo ve los abusos en un lado, en realidad se producen en todas las líneas que enseñan forman y asesoran sobre "su" modelo de la realidad. Se puede llegar a entender que merezca la pena pagar bien por oir hablar a Watts Humphrey sobre CMMI o a Jeff Sutherland sobre Scrum, pero en esta realidad tan compleja resulta que al final, estos enseñaron a otros, que hicieron un modelo en el que mantienen su negocio enseñando a otros que llevan gráficos y textos en proyectores y leen los guiones.

Page 105: Navegápolis 2010

Procesos 105

Si la corrección no me lo impidiera os diría detalles y anécdotas sobre el nivel del seminario de 3 días de introducción a CMMI que me costó 2.000 eurazos que harían sonrojar (espero) al formador y la firma de consultoría que lo impartió, o las dudas que me plantean los conocimientos que pese al diploma de "ScrumMaster", puede tener alguien que no sabe inglés, tras haber estado 2 días en un curso de scrum impartido en inglés por un formador de menos experiencia en programación que los propios asistentes. Pero claro, es que también hay otra realidad compleja: la de la formación consultoría y asesoría que se generan alrededor de los diferentes modelos de conocimiento, en el que se da con frecuencia que personas con muy poca experiencia y preparación, muestran a empresas que no tienen nada que ver con Easel Corporation lo bien que les va a ir aplicar Scrum "a calcetín", o que nada más entrar por la puerta, sin diagnosticar ni observar la realidad de esa empresa saben que lo mejor va a ser que implanten CMMI o incluso, como me ocurrió a mi personalmente me dijera una firma de asesoría que, bueno, nunca habían trabajado con empresas de software, pero que eso no tenía nada que ver, que ellos eran expertos en implantar ISO9001 y que seguro que si mi departamento era conforme con ISO 9001 lo sería con esa ISO 12207 o 15504 que yo decía (¿?¿?¿?).

Page 106: Navegápolis 2010

Procesos 106

Cultura de cumplimiento

05.10.2006

Dar prioridad “1” a los procesos, en las empresas que la deberían dar a las personas, crea “culturas de cumplimiento” que truecan los medios por los fines; y hace que, inexplicablemente y aunque trabajen bien… seguramente por la mala suerte, o por la competencia, o por la coyuntura o por causas contra las que es imposible luchar, los resultados no acompañen. Cuando los resultados dependen de la capacidad de las personas y se actúa mirando sólo a los procesos, se crean ecosistemas que camuflan la ineficiencia, porque por mimetismo copian para entornos de conocimiento un principio de calidad válido para entornos industriales: “La calidad obtenida es el resultado de la calidad de los procesos empleados” La causa de la calidad de la arquitectura de un sistema (por ejemplo) no hay que buscarla tanto en el proceso o en las herramientas empleadas, como en las neuronas de sus autores. Por ejemplo, en la gestión de proyectos, la base de conocimiento disponible ofrece a los gestores técnicas y herramientas para ayudarles a ordenar y estructurar las ideas; registrar, consultar y analizar la información:

1 Diagramas de Gantt

2 Ruta crítica

3 Plan de comunicación

4 Plan de riesgos

5 Plan de calidad

6 Plan de recursos

7 Matriz de responsabilidades

8 Actas de reuniones

9 Etc. Pero esto son las herramientas, y no su trabajo.

Page 107: Navegápolis 2010

Procesos 107

La misión del gestor no es: hacer el gantt, el presupuesto, el plan de comunicación, el plan de riesgos, moderar las reuniones… Cuando esto pasa a ser el trabajo de su cargo; se termina por considerar que quien hace las obligaciones de su puesto, hace su trabajo. De esta forma hay ingenieros, consultores o gestores que realizan perfectamente su labor, pero… tienen mala suerte y los resultados no les acompañan. Los directivos son los responsables de la cultura de la organización, y los más indicados para evitar la “cultura del cumplimiento” en actividades para las que el “cumplimiento” no garantiza los resultados, y hace olvidar que el fin de un diseño, de un plan, de una gestión… no es realizarlos según las normas, sino ayudar al ingeniero o al gestor a concebir el mejor plan, diseño o gestión (según los casos). Si la herramienta es el fin, y los procesos los responsables de los resultados, da igual que las personas sean más o menos aptas o ineptas. Serán estupendos trabajadores si cumplen con su jornada laboral, o mejor aún, si la exceden y “cumplen con el trabajo de su puesto”.

Page 108: Navegápolis 2010

Procesos 108

Flexibilidad = síntesis + gestión sistémica

30.10.2006

SÍNTESIS ¿Qué es mejor, el yin o el yang? ¿La tesis o la antítesis? ¿Los procesos o la agilidad? Los gestores y modelos ágiles que dan la espalda a la gestión predictiva, emplean en su trabajo un fondo de conocimiento incompleto; y lo mismo ocurre con la gestión predictiva que ignora los valores y prácticas de los modelos ágiles. GESTIÓN SISTÉMICA Las empresas son sistemas inter-relacionados, y no departamentos separados conectados por procesos de negocio. Desde esta realidad sistémica, un gestor de proyectos trabajando con técnicas ágiles en una empresa cuyo departamento de personal, programadores, departamento comercial y directivos trabajan sobre supuestos predictivos, acabará con sensación de impotencia y ganas de tirar la toalla. FLEXIBILIDAD Cada proyecto tiene sus propias circunstancias: estabilidad del entorno, componente de innovación, grado de criticidad del producto que debe construir, cultura de la organización que lo desarrolla, etc. No hay dos proyectos iguales, ni dos empresas iguales; ni por tanto una "talla única" para gestión de proyectos. La cuestión no es determinar si el modelo de gestión bueno para el software es PMI o Scrum, CMMI o Extreme Programming. En los dos extremos: en la tesis y en la antítesis hay conocimiento y prácticas valiosas. La gestión flexible los conoce y los emplea de la forma más adecuada a las circunstancias de cada proyecto o de cada empresa. Estas son las razones por las que desconfío de los métodos y cursos de formación milagrosos. Desde mi punto de vista crean mitos porque:

Page 109: Navegápolis 2010

Procesos 109

Un gestor de proyectos de software no se puede hacer en dos días.

La incorporación de una metodología en una empresa tiene repercusiones en todo el sistema y no sólo implica al gestor de proyectos.

Por tanto, para evitar gestores de proyectos con formación coja, y empresas fraccionadas la estrategia debe tener presente:

Un gestor de proyectos completo se forma con una visión sintética de la tesis y la antítesis de la gestión, y con experiencia. Y cuanto mayores sean ambos, mejor gestor será.

Implantar o mejorar modelos y procesos de desarrollo no es algo que solo ataña al gestor de proyectos.

Page 110: Navegápolis 2010

Procesos 110

¿Por qué 5 niveles de madurez?

06.11.2006

Watts Humphrey, cuando acometió el desarrollo del original modelo CMM for Software, tomó el concepto de madurez para los procesos, de la "Quality Management Maturity Grid (QMMG) desarrollada por Philip B. Crosby en su libro Quality is Free (1979), y que según el autor establece un criterio de para determinar el grado de desarrollo y asentamiento de los procesos en una organización, en cinco escalones que denominó:

1 Incertidumbre

2 Despertar

3 Aclaración

4 Sabiduría

5 Certeza CMM-SW es por tanto un modelo escalonado, y otros modelos de la familia CMM también tienen una representación "escalonada" y comparten el concepto básico de por qué esos 5 escalones para medir la madurez de la organización.

Page 111: Navegápolis 2010

Procesos 111

Una premisa fundamental e inherente al concepto de madurez de procesos es que una práctica no puede implementarse si no es posible su repetición. En las organizaciones con escaso nivel de madurez las prácticas de alto rendimiento son sólo esporádicas. Las áreas de procesos clave que forman los niveles 2 de los modelos CMM ayudan a las organizaciones a eliminar los elementos que les impiden repetir de forma estable resultados satisfactorios. En el caso del software las causas más comunes son las agendas, la consolidación de recursos y con un peso generalmente muy importante los cambios incontrolados de requisitos que arrasan la planificación inicial. Bajo la presión de satisfacer objetivos irracionales, la dirección de los proyectos comienza a trabajar omitiendo procesos de ingeniería y cometiendo errores que cuando se detecten producirán tiempos y costes excesivos para su reparación. Como consecuencia los proyectos pierden el control de las agendas, presupuestos y nivel de calidad esperados. Cuando se sacrifican las prácticas de ingeniería de software, el personal técnico pierde las posibilidades de mejorar su rendimiento o de implementar ideas innovadoras. El objetivo principal del nivel repetible es inculcar un proceso disciplinado en un entorno que garantice las prácticas básicas necesarias para estabiliza un escenario que permite unas bases de rendimiento repetibles. Obtenido un entorno de desarrollo estable y de condiciones repetibles, la organización puede centrarse en transferir las prácticas a través de toda su estructura. A pesar de que la organización puede realizar prácticas satisfactorias de forma estable al alcanzar el nivel repetible, los niveles de rendimiento varían entre personas y equipos diferentes. El nivel de madurez 3 (generalmente denominado "Definido") centra la atención en los procesos que obtienen mejores resultados para identificar aquellas técnicas que mejor han funcionado en proyectos diferentes y las integra en los procesos generales de desarrollo.

Page 112: Navegápolis 2010

Procesos 112

Una vez que la organización es capaz de modelar su proceso de desarrollo de forma consistente, puede procesar la información obtenida para eliminar sistemáticamente las causas de las diferencias de rendimiento. El objetivo del nivel 4 ("gestionado") es establecer objetivos cuantitativos de rendimiento y calidad, reducir las variaciones en los procesos para estabilizar la capacidad de la organización para conseguir sus objetivos. En el quinto nivel ("optimizado"), la organización se centra en un proceso de mejora continua. Identifica tecnologías y procedimientos innovadores que pueden mejorar de forma indefinida su rendimiento y posición competitiva. Las causas de los defectos se eliminan de forma sistemática. Para mejorar la capacidad de desarrollo, el patrón CMM ayuda a establecer un entorno de aprendizaje en el que la organización aprovecha la experiencia acumulada para retroalimentar el proceso de mejora. De forma genérica el entorno de maduración crea un entorno en el que Las prácticas pueden repetirse. Las mejores prácticas pueden transferirse rápidamente a través de los diferentes grupos. Se reducen las diferencias de rendimiento. Las prácticas se mejoran de forma continua para aumentar la capacidad.

Page 113: Navegápolis 2010

Procesos 113

La forma y el fondo de la agilidad son cosas diferentes

12.11.2006

Enamoramiento: Proceso bioquímico propio de los seres humanos que se inicia en determinadas ocasiones por la presencia o la comunicación entre dos miembros de la especie, generalmente de sexos diferentes. El proceso comienza con la producción en el cerebro del neurotransmisor feniletilamina; compuesto orgánico de la familia de las anfetaminas. Esta producción genera a su vez la secreción de otros neurotransmisores: dopamina, norepinefrina y oxiticina. Sus efectos en el sistema nervioso de la persona generan sensaciones plancenteras y mecanismos de refuerzo y resistencia al cansancio. Esta es una explicación correcta y objetiva del proceso neurológico del enamoramiento; pero el enamoramiento es mucho más, y en realidad no dice nada de su auténtica esencia y trasfondo. Scrum: Ciclo de vida del desarrollo que aplicado al software se caracteriza por un modelo de construcción iterativo e incremental. Cada iteración de desarrollo suele durar 30 días, pero puede ser desde 10 hasta 90; y produce un incremento del producto completamente funcional. Tras cada iteración se analizan y revisan los resultados y los requisitos globales del producto para detallar los que se programarán en la próxima iteración. Esta definición me recuerda a la anterior. El desarrollo ágil es mucho más, y esta descripción sólo revela la forma exterior pero no muestra nada de la auténtica esencia y del trasfondo.

Page 114: Navegápolis 2010

Procesos 114

La agilidad es una actitud frente al desarrollo, una cultura organizacional. Las formas (DSDM, Scrum, FDD, XP...) son diferentes carrocerías más o menos acertadas para soportar y distribuir las prácticas ágiles, pero sin el motor no funcionan.

Page 115: Navegápolis 2010

Procesos 115

Método ágil de estimación: Planificación de póquer

02.01.2007

En las metodologías ágiles es habitual desarrollar dos niveles de planificación: una general, planificación de la versión, y otra más detallada, planificación de la iteración. El objetivo de la planificación de la versión es calcular la dimensión del proyecto. Saber si estamos hablando de 10 o de 100, y tanto en Extreme Programming (Release planning) como en Scrum (estimación del product backlog) se realiza en una reunión en la que participa todo el equipo. En ella el cliente, o el propietario de producto expone una a una las historias o funcionalidades que necesita y el equipo determina el tiempo que llevará su desarrollo. Este proceso no es ajeno a los problemas típicos de dinámica de reuniones, y aunque tiene un guión concreto y conocido por todos los participantes, es habitual entrar en atascos de "parálisis por análisis", en los que los minutos van pasando sin que los participantes terminen de decidir entre las posibles soluciones para una determinada funcionalidad y fijen una estimación; y el moderador ve con impotencia cómo ha consumido ya 15 ó 20 minutos sin poder cerrar la primera funcionalidad, y la lista de las que aún están pendientes de valorar. Una aportación muy valiosa de las prácticas ágiles es la tendencia a definir protocolos concretos para conducir las reuniones; y para las que tienen como objetivo obtener valoraciones cuantitativas consensuadas por un grupo de personas, el protocolo definido por James Grenning para las planificaciones de versión de extreme programming, y que denomina "Planificación de póquer" (Planning Poker), es el mejor que conozco.

Page 116: Navegápolis 2010

Procesos 116

Planificación de póquer (Descripción para planificaciones de versión de extreme programming, en las que la "granularidad" del esfuerzo requerido para cada historia de usuario debe estar comprendida entre 1/2 día y 10 días de trabajo. El mismo protocolo resulta muy útil para estimaciones en rangos de horas en lugar de días, modificando los valores de las cartas; o incluso para otro tipo de estimaciones y acuerdos).

Cada participante de la reunión tiene un juego con las 8 cartas de la figura.

Para cada historia de usuario o funcionalidad de la pila del producto (product backlog) el cliente, moderador o propietario del producto (según sea) lee o expone la descripción empleando un tiempo máximo (No son aconsejables más de 2 minutos).

Se da un tiempo para que el cliente o propietario del producto responda a las preguntas que puedan tener los estimadores.

Terminadas las preguntas, cada participante selecciona, sin mostrarlas, una o dos cartas que suman el nº de días de trabajo necesarios. Si se estima que la funcionalidad

Page 117: Navegápolis 2010

Procesos 117

necesita más de 10 días, se selecciona la carta "infinito". Cuando todos han hecho ya su elección, se ponen boca arriba en la mesa.

Si no hay gran diferencia entre las estimaciones de cada participante, se toma como resultado la media.

Si la estimación resulta "infinito", la funcionalidad debe dividirse para ajustarla a los criterios de tamaño de la metodología que se esté empleando (en este supuesto 10 días).

Si las estimaciones resultan muy dispares el moderador con su criterio de gestión y basándose en las características del proyecto, equipo, reunión, nº de funcionalidades a evaluar. puede optar por:

Preguntar a las personas de estimaciones extremas: ¿Por qué crees que es necesario tanto tiempo?, y ¿Por qué crees que es necesario tan poco tiempo?. Tras oir las razones, repetir la estimación.

Dejar a un lado la estimación de esa funcionalidad y retomar al final o en otro momento las funcionalidades que no alcanzan consenso.

Pedir al cliente o propietario del producto que descomponga la funcionalidad y valorar cada una de las nuevas funcionalidades resultantes.

Tomar la estimación menor, mayor o la media. Este protocolo de reunión evita los largos atascos de análisis circulares en ping-pong entre diversas opciones de implementación, hace participar a todos los asistentes, reduce el cuarto de hora o la media hora de tiempo de estimación de una funcionalidad, a escasos minutos, consigue alcanzar consensos sin discusiones, y además... resulta divertido y dinamiza la reunión.

Page 118: Navegápolis 2010

Procesos 118

Síntesis entre agilidad y disciplina

10.01.2007

No todo lo que etiquetamos como procesos es la misma cosa. En algunos las personas ayudan al proceso, y en otros son los procesos los que ayudan a las personas. En el primer caso el proceso es el protagonista, el que sabe cómo hacer el trabajo y la persona se integra en el sistema como instrumento, como operario de apoyo. En el segundo el artífice es la persona y el proceso una ayuda, una herramienta que simplifica aspectos rutinarios para que pueda lograr más eficiencia y no diluir el esfuerzo en rutinas mecánicas. La principal diferencia entre unos y otros es el tipo de conocimiento con el que trabajan. La clasificación de Nonaka y Takeuchi entre explícito (contenido en los procesos y la tecnología), y tácito (contenido en la persona). Por eso prefiero abrir una distinción, y llamar "procesos" a los que operan en sistemas de conocimiento explícito, y "rutinas" a los que apoyan a las personas en sistemas de conocimiento tácito. Esta es una de las conclusiones de la síntesis entre procesos y disciplina (tesis) por un lado, y agilidad (antítesis) por otro. Ambas construyen sobre la premisa de tres elementos: personas, procesos y tecnología. Para los primeros, el valor de los resultados es consecuencia principalmente de los procesos empleados.

Page 119: Navegápolis 2010

Procesos 119

Para los segundos, la variable más influyente en el valor del resultado son las personas.

¿Quién tiene razón la tesis (CMM, ISO 15504, PMI...) o la antítesis (XP, Scrum, DSDM...)?. Ambos la tienen, y lo que su síntesis revela es que los procesos y las personas, que cada uno gestiona de forma diferente, encierran dos aspectos diferentes en cada caso, y no uno sólo.

Page 120: Navegápolis 2010

Procesos 120

Los procesos pueden ser procesos o rutinas. El valor que el sistema espera de la persona puede ser trabajo o conocimiento. Con este plano aparecen conclusiones y bases de gestión con más sentido. Lo adecuado que resultan los modelos formales en los sistemas que combinan procesos con trabajo, y lo inadecuado de los modelos ágiles en estos casos; y viceversa. Los chirridos que se producen al componer sistemas combinando rutinas con trabajo, o procesos con conocimiento. Y esta es una simplificación en blanco y negro de una realidad en color. Son raros los sistemas que encierran todo el conocimiento sólo en procesos y tecnología, o sólo en las personas, pero por eso mismo también son minoría los entornos de producción en los que puede encajar como solución de talla única un modelo basado en procesos o un modelo ágil "tal cual".

Page 121: Navegápolis 2010

Procesos 121

Page 122: Navegápolis 2010

Procesos 122

Factorías y talleres de software

23.01.2008

Esta definición me recuerda a la anterior.

Los modelos de calidad basados en el principio TQM (la calidad del software desarrollado se rige por la del proceso usado) son adecuados para las "factorías de software".

Los principios ágiles funcionan en los "talleres de software".

En las primeras, el valor de los resultados depende sobre todo de los procesos y la tecnología; en los segundos, de las personas.

Algunos productos o servicios de software necesitan eficiencia, resultados homogéneos y repetibles. Otros, valor innovador continuo.

Factoría es a operario, lo que taller a artesano; y proceso

es a factoría, lo que talento a taller.

Page 123: Navegápolis 2010

Procesos 123

Homo homini lupus

23.05.2008

El Manifiesto Ágil (Beck y otros, 2001)comienza así: "Estamos poniendo al descubierto mejores métodos para desarrollar software... " Podían haber dicho "nuevos" pero no, dijeron "mejores", con la suposición implícita por tanto de que los demás son "peores". No que sean diferentes, o quizá más apropiados para según qué proyectos o equipos... no: los modelos ágiles son mejores, y los otros son peores. La base de conocimiento del PSP, (Humphrey, Pomeroy-Huff, Julia Mullaney, Robert Cannon, & Sebern, 2005) el que posiblemente sea el método menos ágil para gestionar el trabajo de programación, dice en su introducción que hay muchos modelos para mejorar el desarrollo de software, que todos prometen ser los mejores, pero que el único que lo puede demostrar es PSP. "There is no such consensus in software engineering: Everyone promotes their own methods, claiming huge benefits in productivity, usually not backed up by any scientific, unbiased evidence” [Wikipedia 05]. A powerful counter to this criticism is the widespread adoption of the Personal Software process (PSP) methodology..." The Personal Software Process (PSP) Body of Knowledge

Lupus est homo homini, non homo, quom qualis sit non novit

Page 124: Navegápolis 2010

Procesos 124

La certificación ScrumMaster es una amenaza para la gestión ágil

14.05.2008

Es la opinión Sharon Cichelli, que esta semana volvía a cuestionar el valor real de la certificación ScrumMaster: "Basta con asistir a dos días de clase. Esto es todo. Suena realmente peligroso... ...Pregúntale a un directivo a quién preferiría contratar, si a alguien con tres años de experiencia trabajando en equipos scrum, o a un Scrum Master Certificado (trompetas y fanfarrias). Los que conocen Scrum saben que ScrumMaster es el nombre de un rol, pero a los que no saben de Scrum les suena a dos palabras, con un espacio en medio: Srum Master, el experto del proceso"

Agile Open Space: On Certifications (Cichelli, 2008) Opino lo mismo, y la argumentación, para mi, tiene bastante sentido: A Sharon le asusta esta certificación, y la considera una amenaza para la agilidad, porque, como dice: ella quiere permanecer en el juego del desarrollo ágil. Le encantan los proyectos ágiles, pero la sombra de advenedizos y encumbrados "enterados", colocados a gestionar equipos o departamentos de programación ágiles, por empresarios despistados, producirá, con nombre de agilidad, un nuevo modelo de gestión errónea y tediosa, y sembrará PHB's en un campo en el que aún no estaban creciendo. La certificación ScrumMaster tiene bastante de "nuevo traje del emperador". Los conocedores de desarrollo ágil y de scrum lo saben, y como apunta Sharon, tomando una cerveza con Mike Cohn es cuando puedes ver cómo bromea sobre la certificación; pero por una peligrosa y poco ética camaradería o corporativismo mal entendido, en público se mantiene y agranda el mito.

Page 125: Navegápolis 2010

Procesos 125

Las certificaciones profesionales son una cosa, y el networking otra. Ambos valiosos y necesarios en su medida, según cada caso. En cada profesión la utilidad de las certificaciones profesionales es directamente proporcional a la rapidez de evolución de su cuerpo de conocimiento. Si me dan a elegir como administrador de sistemas a fulanito, con credenciales de Ingeniería Informática, por la Universidad de XX en 1990; o a menganito, con certificación profesional de experto CISCO (CCIE). Me quedo con el segundo. Si fulanito no ha seguido una formación continua ya no estará "en el juego". Se habrá quedado en los "análisis funcionales y orgánicos", en las plantillas y formatos de codificación COBOL, y en la comunicación a través de puertos RS232 Nuestra profesión trabaja en un escenario muy rápido: el conocimiento de un médico (por ejemplo) de hace diez años, aún me puede valer; el de un programador, no. Las certificaciones profesionales facilitan la formación continua, mantienen al día a quienes trabajan en escenarios rápidos, y les ayudan a reflejar su actualización en los currículums. Y otra cosa es el networking: concepto poíticamente correcto, porque tiene la ambigüedad suficiente para abarcar desde relación o colaboración, hasta variantes de más dudosa ética como amiguismo, recomendación o incluso enchufe. Qué duda cabe que se trata de un valor importante; que una organización de buenos técnicos, pero sin "capital relacional" (otro maravilloso eufemismo) lo tiene duro para transformar su valor en beneficio económico; y que, sin embargo, una organización con buen "networking" y "capital relacional", se puede hacer millonaria. Las ferias y congresos son el campo de cultivo del networking, donde éste suele ser el principal, si no el único, atractivo para sus asistentes. Los cursos, o la enseñanza reglada, son los modelos tradicionales de formación profesional; y, en tercer lugar, los Master, tipo MBA, son un modelo con la combinación de ambos valores profesionales: actualización y networking. A las cosas conviene llamarlas por su nombre; a dos jornadas de charlas y ejercicios de simulación se le debería llamar congreso: sitio en el que te dan información, pero no un título, y en el que

Page 126: Navegápolis 2010

Procesos 126

vas a conocer a gente del mundillo (o a "hacer networking"); porque al no llamar a las cosas por su nombre, y ponerle el disfraz de Master de vanguardia en la gestión de proyectos: se despista, o incluso engaña a los profanos, y se fuerzan complicidades de dudosa ética entre los expertos, a quienes en pro de las buenas formas y de las obligadas sonrisas del networking se les fuerza a mirar a otro lado cuando los emperadores desnudos presumen de su nuevo trajes.

Page 127: Navegápolis 2010

Procesos 127

Fundamentalismo

29.06.2008

Entre la lista de posts pendientes de leer, encuentro otro :"Are you really using Scrum" (Duncan, 2008) de ayuda para saber si avanzamos por el camino recto, o andamos descarriados y apartados de la doctrina; para lo que prescribe, como suele ser habitual en estos casos, algunos mandamientos: ¿Las iteraciones son de menos de 4 semanas?, ¿Probamos el software al final de cada iteración?... Dejando a un lado cuál pueda ser el porcentaje de conocimiento, y cual el de majadería o de "post-copio - post-pego" con el que se ha elaborado la lista; hacer afirmaciones del tipo "esta es la verdad" no ayuda mucho a la evolución dialéctica (pág. 98) del conocimiento, ni a la riqueza que supone el mestizaje desde el convencimiento de que ninguna verdad es absoluta, comenzando por la de uno mismo; y puede ser algo pretencioso, sobre todo en escenarios dialécticos rápidos de conocimientos adolescentes como el de la ingenieria de software. Scrum, DSDM, Extreme Programming, CMMI, ISO 15504, Crystal, FDD, Prince2 PMI, ... son algunos de los modelos de procesos, métodologías o conjuntos de prácticas para mejorar el desarrollo de software y aportan un conocimiento muy importante, pero resultan mezquinos cuando afiman ser la doctrina verdadera, y empobrecen a los profesionales que se lo creen, anclándolos en sus convicciones, mientras el entorno sigue avanzando. Fundamentalismo (RAE): Exigencia intransigente de sometimiento a una doctrina o práctica establecida.

Page 128: Navegápolis 2010

Procesos 128

Scrum con el culo, y dinero por nada

06.09.2008

Por la exposición "Money for Nothing" que junto a Boris Gloger, Jeff Sutherland presentó en Viena a finales de marzo, y por la presentación en Agile2008, los análisis de Jeff Sutherland de los últimos meses sobre scrum se han centrado en dos líneas de propuestas para mejorar el valor que scrum entrega al cliente: la forma de contrato y los puntos clave que potencian la productividad de scrum. Para la primera propone introducir en los contratos una cláusula que denomina "dinero por nada", y para la segunda, una escala que identificaría cómo de productiva es la forma en la que se está usando scrum, y que va desde el nivel más bajo al que llama "scrum con el culo" al más alto: "scrum magnífico". Se le podría quitar el look informal y rebelde que se le ha dado, si a la cláusula en lugar de llamarla "de dinero por nada" se le hubiera llamado "de cancelación"; o si la lista fuera una "scrum Checklist", en lugar de una "scrumButt Checklist"... pero la primera perdería el disfraz de innovadora, y la lista daría menos

que hablar . "Dinero por nada" (Money for Nothing). La propuesta consiste en:

Emplear un contrato típico de funcionalidades y precio cerrado.

Incluir una cláusula "dinero por nada".

Sólo se podrá aplicar si el cliente sigue las normas scrum.

De mutuo acuerdo se estiman los costes de todas las funcionalidades incluidas en el contrato.

El cliente puede decidir en cualquier momento cancelar el contrato.

En ese momento se determinaría el coste de las funcionalidades restantes y se resuelve el contrato por el 20% del valor que quedaba.

Page 129: Navegápolis 2010

Procesos 129

El proveedor asume la inclusión de trabajos posteriores acordados de mutuo acuerdo.

Lista de comprobación para determinar el nivel de productividad de Scrum (ScrumButt Checklist): Categoría iteraciones

No se hacen iteraciones: 0 puntos

Se hacen iteraciones de más de 6 semanas: 1 punto

Se hacen iteraciones de longitud variable y de menos de 6 semanas: 2 puntos

Se hacen iteraciones de 6 semanas: 3 puntos

Se hacen iteraciones de 5 semanas: 4 puntos

Se hacen iteraciones de 4 semanas o menos: 10 puntos. Categoría pruebas

No se hacen pruebas: 0 puntos

Se hacen pruebas unitarias: 1 punto

Se hacen pruebas funcionales: 5 puntos

Se hacen pruebas funcionales inmediatas: 7 puntos

Se lleva a cabo un proceso de verificación: 8 puntos

Se hacen procesos de "deploy": 10 puntos Categoría especificación de requisitos

No se hace nada: 0 puntos

Se emplean documentos formales de requisitos

Se usan historias de usuario deficientes: 4 puntos

Se trabaja con buenos requisitos (?): 5 puntos

Se usan buenas historias de usuario: 7 puntos

Se emplea una especificación ágil: 8 puntos

Se emplean historias de usuario, y especificaciones ágiles cuando se necesitan (10)

Categoría propietario de producto:

No hay propietario de producto: 0 puntos

El propietario de producto no sabe o no entiende Scrum: 1 punto

El propietario de producto interrumpe al equipo: 2 puntos

El propietario de producto no está integrado con el equipo: 2 puntos

Page 130: Navegápolis 2010

Procesos 130

Hay propietario de producto con product backlog: 5 puntos

Hay propietario de producto con plan de versiones fechadas según la velocidad del equipo: 8 puntos

El propietario de producto motiva al equipo: 10 puntos Categoría pila de producto

No hay pila de producto: 0 puntos

Hay varias pilas de producto: 1 punto

Hay una única pila de producto: 3 puntos

Hay una pila de producto priorizada por ROI: 5 puntos

El plan de versiones que tiene el propietario de producto está basado en la pila de producto

El propietario de producto puede medir el ROI en coste por puntos de historia, o por otra métrica: 10 puntos.

Categoría: estimaciones

La pila de producto no está estimada: 0 puntos.

La estimación no la hace el equipo: 1 punto

La estimación no se hace con planificación de póker: 5 puntos

La estimación se ha hecho el equipo con planificación de poker: 8 puntos.

Se estima con error inferior al 10%: 10 puntos.

Page 131: Navegápolis 2010

Procesos 131

La lista definitiva de modelos y buenas prácticas para proyectos de software

29.10.2008

Escribir "lista definitiva", de "buenas prácticas...", y más, en un blog, puede sonar como los "requisitos definitivos" de un proyecto ágil: ¿Estos son? ¿No van a cambiar? Este artículo es un backlog, o pila, si empleamos en nuestro idioma: una lista en continuo cambio, para ir completando y mejorando entre todos, vuelta tras vuelta.

CRITERIO DE CLASIFICACIÓN Prácticas Dicen "CÓMO" hacer las cosas: cómo describir y gestionar los requisitos (historias de usuario, elementos de backlog...), cómo estimarlos, cómo realizar las reuniones para validar con el cliente, cómo realizar el mantenimiento del código, las pruebas, la integración... Prácticas listadas: Ágiles: eXtreme Programming, Scrum, FDD, CDT, EVO, TDD Predictivas: ITIL

Page 132: Navegápolis 2010

Procesos 132

Modelos No definen "CÓMO" hacer las cosas, sino "QUÉ" cosas se deben hacer para conseguir los mejores resultados: se debe hacer gestión de la configuración, gestión de proyecto, medición y análisis, desarrollo de requisitos, validación, etc. Unos se centran en un área de conocimiento (generalmente gestión de proyecto). Modelos centrados en un área (gestión de proyecto) Ágiles: Crystal, DSDM, Lean, Unified Process (RUP, Open UP, OUM, AUP, EssUP), MSF Predictivos: PMBOK, PRINCE2 Y otros abarcan todas las áreas de la organización implicadas en el desarrollo de software Los modelos más conocidos son CMMI ISO 15504. Tienen dos finalidades: 1.- Para mejorar: Como guión en los procesos de mejora, que indica cuáles son las áreas que se deben ir abordando. 2.- Para evaluar: Como criterio para medir a una organización cómo de bien lo hace, según cuántas de las cosas que dice el modelo, está cubriendo adecuadamente. Relación de modelos con carácter glogal: Basados en procesos: CMMI, ISO 15504 Ágiles: Scrum Manager (aparte de ser el único, es el que mejor conozco :-) y, of course... en fase inicial de desarrollo

Page 133: Navegápolis 2010

Procesos 133

Para situar en un escenario las prácticas y modelos, empleo el mismo criterio que en el proyecto ScrmManager: Hay prácticas orientadas a la gestión del proyecto, otras al desarrollo de la solución técnica y aunque muy pocas (o ninguna), también las debería haber preocupadas por la gestión de la empresa, porque las tres son necesarias para obtener el mejor resultado de un modelo, tanto sea de perfil ágil, o de procesos.

Page 134: Navegápolis 2010

Procesos 134

CRITERIO DE CLASIFICACIÓN Agile Unified Process (AUP) Es otra versión simplificada y ágil de RUP, desarrollada por Scott W. Ambler: aplica las siete disciplinas de RUP (modelado, implementación, prueba, desarrollo, gestión de la configuración, gestión de proyecto y entorno), pero dentro de ejecuciones iterativas, y sobre una base de cultura de desarrollo ágil. Enlaces: Página del modelo: http://www.ambysoft.com/unifiedprocess/agileUP.html CDT Context Driven Testing define un contexto de desarrollo y depuración de programas basado en las pruebas, que el equipo determina analizando el entorno del cliente, y determinando cuáles son las funcionalidades que éste necesita para su negocio, basándose en el principio de que un programa puede ser una solución válida en un entorno cliente, pero no en otro. Enlaces: Libro de los autores del patrón: "Lessons Learned in Software Testing " (Kaner, Bach, & Pettichord, 2001) Página del modelo: http://www.context-driven-testing.com/ CMMI El Departamento de Defensa Americano, a través de su fundación SEI (Software Engineering Institute), ha desarrollado una línea de trabajo para mejorar y medir el grado de fiabilidad de una organización que desarrolla software, basada en el concepto de "madurez". Por madurez se entiende la capacidad que tiene la organización para asegurar la calidad de sus proyectos de forma continua y homogénea; así como la capacidad de aprendizaje de su propia experiencia y aplicación en un proceso de mejora continua. En 1990 SEI publicó el modelo de madurez de la capacidad para el desarrollo de software (CMM-SW), que tras casi dos décadas de existencia ha demostrado su eficacia en algunas organizaciones.

Page 135: Navegápolis 2010

Procesos 135

Este modelo crea una escala de cinco niveles para determinar la madurez de una organización. En 2000 el modelo SW-CMM se actualizó en otro que facilitaba su implantación de forma conjunta y simultánea con otros modelos: fue el modelo CMMI (Capability Maturity Model Integration) En la actualidad hay varios modelos CMMI, en función de las áreas que integran: CMMI-SE/SW/IPPD/SS (Systems Engineering, Software, Engineering, Integrated Product and Process Development, Supplier Sourcing). CMMI-SE/SW/IPPD (Systems Engineering Software Engineering, Integrated Product and Process Development). CMMI-SE/SE (Systems Engineering, Software Engineering). Enlaces: Página del modelo en SEI http://www.sei.cmu.edu/cmmi/ Artículo en Navegápolis http://www.navegapolis.net/content/view/330/60/ Crystal La familia de metodologías Crystal ofrece diferentes métodos para seleccionar las prácticas más apropiadas para cada proyecto, en función de su tamaño y criticidad; de forma que los de mayor tamaño, o aquellos en los que la presencia de errores implique consecuencias de mayor gravedad, deben adoptar mayor "peso" de procesos en su gestión. Enlaces: Sitio de Alistair Cockburn , desarrollador del modelo. http://alistair.cockburn.us/ Libro Crystal Clear , de Alistair Cookburn (Cockburn, 2004) DSDM Es la más veterana de las metodologías ágiles, y la más próxima a los métodos formales; de hecho, la implantación de un modelo DSDM en una organización, la lleva a alcanzar lo que en CMM (modelo no ágil) sería un nivel 2 de madurez. Surgió en 1994 de los trabajos de Jennifer Stapleton, la actual directora del DSDM Consortium.

Page 136: Navegápolis 2010

Procesos 136

Su desarrollo se inspira en los principios RAD (Rapid Application Development), y le reprocha a CMM: - Aunque es cierto que CMM ayuda al éxito a algunas organizaciones, lo que funciona bien en un entorno, no tiene por que servir para todos. - CMM no le da al diseño la importancia que debería tener. - CMM plantea un foco excesivo en los procesos, olvidando la importancia que en nuestra industria tienen las personas. - Tener procesos claramente definidos no es sinónimo de tener buenos procesos. En común con los métodos ágiles, DSDM considera imprescindible la implicación y relación estrecha con el cliente durante el desarrollo, así como la necesidad de trabajar con métodos de desarrollo incrementar y entregas evolutivas. Enlaces: DSDM Consortium http://www.dsdm.org/ Artículo en Navegápolis http://www.navegapolis.net/content/view/361/59/ Enterprise Unified Process Es una extensión de RUP diseñada por Scott W. Ambler, que incluye dos fases adicionales: producción y retirada del sistema, y nueve disciplinas: operaciones, soporte, modelado de negocio, gestión de portfolio, arquitectura de empresa, reutilización, gestión de personas, administración de la empresa, y mejora del proceso de software. Página del modelo: http://www.enterpriseunifiedprocess.com/ EssUP Essential Unified Process es un modelo diseñado por Ivar Hjalmar Jacobson, co-autor de lenguaje de modelado UML y de RUP (Rational Unified Process). Vió la luz en Noviembre de 2005, y según su autor se trata de una orientación super ligera y ágil de RUP.

Page 137: Navegápolis 2010

Procesos 137

Evo Evolutionary Project Management es un modelo de gestión de proyectos ágil diseñado por Tom Gilb y Kai Gilb, que divide los proyectos en ciclos independientes y evolutivos; y sin llegar a la rigidez de la gestión predictiva, acuerda los requisitos con el ciente con mayor rigidez que otros modelos ágiles, para conseguir de esta forma cuantificar el valor que representan para el cliente y decidir la mejor estrategia de solución sobre tablas de estimación de impacto. Enlaces: Página de los autores http://www.gilb.com/ Libro del modelo: Evolutionary Project Management & Product Development. (Gilb, 2007) Extreme Programming Es el conjunto de prácticas ágiles para el desarrollo de la solución técnica que más popularidad ha alcanzado entre las metodologías ágiles. Su creador Ken Beck fue el alma mater del Manifiesto Ágil. Extreme Programming (XP) se irgue sobre la suposición de que es posible desarrollar software de gran calidad, a pesar, o incluso como consecuencia del cambio continuo. Su principal asunción es que con un poco de planificación, un poco de codificación y unas pocas pruebas se puede decidir si se está siguiendo un camino acertado o equivocado, evitando así tener que echar marcha atrás demasiado tarde, o construir partes que nunca se utilizarán. Cuatro son los valores que lo inspiran: simplicidad, feedback, coraje y comunicación. XP es un conjunto de 12 prácticas que se complementan unas a otras: De codificación: Simplicidad de código - Reingeniería continua - Estándares de codificación - Vocabulario común. De desarrollo: Desrrollo basado en pruebas - Programación por parejas - Propiedad colectiva del código - Integración continua De negocio: Implicación del cliente - Juego de planificación - Entregas regulares - Ritmo de trabajo sostenible. Enlaces:

Page 138: Navegápolis 2010

Procesos 138

El "libro blanco" de XP: Extreme Programming explained Embrace Change (Beck K. , 2000) Lista de correo de Yahoo http://tech.groups.yahoo.com/group/extremeprogramming/ FDD Desarrollo basado en funcionalidades (Feature Driven Development) es nombre de otro conjunto de prácticas ágiles para desarrollo iterativo e incremental que no hace tanto hincapié en la fase de requisitos, como en las de diseño y construcción. Diseñado inicialmente en 1997 por Jeff De Luca, partiendo de las prácticas que él mismo empleaba en su trabajo en un proyecto para un banco de Singapur. Enlaces: Sitio de la consultora de Jeff De Luca http://www.nebulon.com/ Sitio de la comunidad FDD : http://www.featuredrivendevelopment.com/ ISO15504 En enero de 1993 la comisión ISO/IEC JTC1 aprobó un programa de trabajo para el desarrollo de un modelo que fuera la base de un futuro estándar internacional para la evaluación de los procesos del ciclo de vida del software. Este trabajo recibió el nombre de proyecto SPICE (Software Process Improvement and Capability dEtermination) y en junio de 1995 publicó su primer borrador. En 1998, pasada la fase de proyecto, pasó a la fase de informe técnico con la denominación ISO/IEC TR 15504, y en la actualidad es ya un estándar ISO. Aunque ISO comenzó, con el proyecto SPICE algo más tarde que SEI con CMM, durante su evolución han ido convergiendo, y ambas instituciones vienen trabajando de forma continua desde 1998 para lograr la compatibilidad que en la actualidad ya está acordada, entre ambos modelos (CMMI e ISO 15504) ISO/IEC 15504, al igual que CMMI, es un modelo para evaluar los procesos de una organización y determinar si resultan efectivos para conseguir los objetivos. También es un modelo para guiar las acciones de mejora de dichos procesos.

Page 139: Navegápolis 2010

Procesos 139

ITIL La Biblioteca de Infraestructura de Tecnologías de Informción (Information Technology Infraestructure Library - ITIL) comprende documentación con las mejores prácticas para administrar y entregar servicios de tecnologías de la información. La primera versión fué desarrollada y publicada en 1980 por la Central Computer and Telecommunications Agency (CCTA), como un conjunto de manuales, especializado cada uno en un área de la gestión de tecnologías de la información. En la actualidad es marca registrada de la OGC británica (Office of Government Commerce) Página oficial http://www.itil.co.uk/ Lean Software Development Metodología ágil centrada en la gestión y seguimiento ágil de proyectos que adapta al desarrollo de software los principios "fabricación lean" (lean manufacturing), basada en el sistema japonés del fabricante de automóviles Toyota. Para saber más: Sitio de Mary y Tom Poppendieck , principales desarrolladores y difusores del modelo. http://www.poppendieck.com/ Libros: Lean Software Development An Agile Toolkit (Poppendieck, 2003) Implementing Lean Software Development (Poppendieck, Poppendieck, & Poppendieck, 2006) MSF MSF es la metodología empleada por Microsoft para el desarrollo de software. Hasta su versión 3 (principios de 2005), se definía como un marco flexible para adaptarse a las necesidades de cada proyecto, en oposición a lo que sería una metodología prescriptiva, porque parte de la base de que no hay una estructura óptima para las necesidades de todos los entornos de desarrollo posibles. Los principios fundamentales del marco MSF son: Comunicación abierta - Trabajo en torno a la visión compartida del sistema - Autonomía del equipo - Responsabilidades claras y

Page 140: Navegápolis 2010

Procesos 140

compartidas - El objetivo es la entrega de valor para el negocio - Esperar el cambio - Invertir en calidad - Aprender de la experiencia. MSF aplica estos principios en los procesos y en las personas, desarrollando un modelo de equipo y un modelo de procesos, que cubren tres disciplinas: gestión de proyecto, gestión de riesgos y gestión de la mejora del talento. El marco incluye: conceptos clave, prácticas contrastadas y recomendaciones. En 2005, el desarrollo del nuevo producto de Microsoft "Visual Studio Team System" generó la evolución de MSF hacia la versión 4.0, con dos líneas paralelas: MSF for Agile Software Development y MSF for CMMI. Para sabe más: Página MSF de Microsoft http://www.microsoft.com/technet/solutionaccelerators/msf/default.mspx OpenUP El proceso de gestión OpenUP (Open Unified Process) es una parte del marco de desarrollo Eclipse (open source, y desarrollado por la fundación Eclipse). Mantiene las característcas esenciales de RUP (Rational Unified Process), y las características de la gestión ágil: desarrollo iterativo e incremental. Enlaces: OpenUP en eclipse.org http://epf.eclipse.org/wikis/openup/index.htm PMBOK Project Management Body of Knowledge es un modelo de gestión de proyectos, desarrollado por el Project Management Institute (PMI) en 1987 para documentar información y prácticas para la gestión de proyectos. PMBOK identifica 5 procesos básicos y 9 áreas de conocimiento comunes a todos los proyectos. Desarrolla un modelo de gestión de proyectos predictivo, y ha tomado el rango de estándar: IEEE Std 1490-2003 Enlaces: PMI

Page 141: Navegápolis 2010

Procesos 141

http://www.pmi.org/ PRINCE y PRINCE2 PRojects IN Controlled Environments (PRINCE) es un modelo de gestión de proyectos desarrollado en 1989 por la Central Computer and Telecommunications Agency (CCTA) como estándar para la gestión de proyectos de tecnologías de la información. PRINCE2 fue el resultado de la revisión realizada en 1996 sobre PRINCE, que pasa a ser un desarrollo de la Office Government Commerce (OGC), dependiente de la administración británica, y amplía su ámbito para proyectos de cualquier tipo, más allá de las tecnologías de la información Desarrolla un modelo de gestión de proyectos predictivo, adaptable a las características del proyecto en cuanto al conjunto de prácticas que deben contemplarse. Prince 2 http://www.ogc.gov.uk/methods_prince_2.asp Scrum Metodología ágil centrada en la gestión y seguimiento ágil de proyectos, a través de ciclos cortos de desarrollo. Es uma implementación realizada por Ken Schwaber, Mike Beedle y Jeff Shuterland de los principios empleados por los equipos de trabajo "Scrum" definidos por Nonaka y Takeuchi en 1986 (Ikujiro & Takeuchi, 1986) Los principios de Scrum son: equipos auto-gestionados - Un avez dimensionadas las tareas no es posible agregar trabajo extra - reuniones de seguimiento diarias - ciclos de desarrollo de frecuencia inferior a un mes (propuesta original dos meses), que entregan una parte del producto completamente terminada. Enlaces: Libro: Agile Project Management with Scrum (Schwaber & Beedle, Agile Software Development with Scrum, 2001) (Schwaber, Agile project management with Scrum, 2004) Scrum alliance http://www.scrumalliance.org/ Flexibilidad con Scrum

Page 142: Navegápolis 2010

Procesos 142

Scrum Manager Es unodelo de evaluación y mejora desarrollado de forma abierta y libre por la comunidad profesional de gestores e ingenieros de software. Enlaces: Página del modelo http://www.scrummanager.net/ Wiki http://www.scrummanager.net/wiki TDD Desarrollo guiado por pruebas (Test-driven developmetn - TDD) es una técnica de programación definica por Kent Beck cuyas prácticas comienzan por elaborar primero el código que probará una funcionalidad, antes de programar la funcionalildad, y a continuación desarrollar y refactorizar el código hasta que se pasan satisfactoriamente. Estas prácticas eliminan los aspectos negativos que implican las pruebas en los procesos secuenciales de programación. Unified Process Marco de desarrollo ágil, iterativo e incremental, que solapa las tres fases de desarrollo (elaboración, construcción y transición) en iteraciones breves de tiempo cerrado. En determinados proyectos también puede solaparse la fase previa de inicio. Unified Software Development Process, comprende la definición general de este tipo de ciclo ágil: iterativo e incremental, pero no la concreción en procedimientos o prácticas determinadas, y son varios los autores y organizaciones que han desarrollado variaciones y concreciones sobre este patrón UP genérico: - RUP - Rational Unified Process, por IBM / Rational. - OpenUP Open Unified Process, por Eclipse como evolución del previo Basic Unified Process (BUP) - OUM Oracle Unified Method - AUP Agile Unified Process, por Scott W. Ambler - EssUP Essential Unified Process, por Ivar Jacobson

Page 143: Navegápolis 2010

Procesos 143

Café o tila ¿Por qué no los dos a la vez?

17.11.2008

Los empresarios del café y de la tila han descubierto la solución perfecta: que tomemos café y tila a la vez... algo que sin duda tiene que ser bueno tanto para somnolientos, como para insomnes, e incluso para los que puedan andar por ahí despistados, tomando otras cosas. Estoy convencido de que no es posible aplicar en un proyecto: gestión ágil, con CMMI; y sobre todo de que cuando se mezclan ambos, las razones no son técnicas, sino "administrativo-consultoriales", que anteponen cuestiones de marketing, a criterios sobre el tipo de gestión se necesita, y los resultados que se desean obtener. También creo que estar convencido, nada tiene que ver con estar en lo cierto, por mucho que al convicto se lo pueda parecer: que tan segura como para el ateo es su razón, lo es para el creyente su fé; y por eso quiero estar abierto, con los menores prejuicios posibles, a todas las opiniones y cuestionar si no estaré confundido; que todos los razonamientos honestos enriquecen, pero siempre que sean honestos, y no tretas burlonas, que lo único que prueban sin ninguna duda, es la doblez de los autores y sus razones. Falsear la historia, y fabularla a la medida del razonamiento que se quiere sostener, descalifica, a quien lo hace, y por eso me quedo a cuadros al leer en el informe panfleto de SEI "CMMI or Agile, Why not Embrace Both!: (Glazer, Dalton, Anderson, Konrad, & Shrum, 2008) Que esto de las metodologías ágiles tiene muy poco de vanguardista. Que en realidad, y aunque no lo supiéramos ninguno (mas que ellos), la agilidad, que ahora hace furor es un viejo modelo de ingeniería más viejo que la tos, con nada menos que 75 años (8 años antes de que se construyera el Eniac!!!) y que se llama IIDD (Iterative and Incremental Design and Development). Que el Ministerio de Defensa Americano DoD

Page 144: Navegápolis 2010

Procesos 144

(Patrón de SEI), estaba ya cansado de usarlo en los 50, y que para complementarlo y evitar las áreas de fallos que tiene, se desarrolló precisamente el CMM y luego el CMMI. "This cornerstone is iterative and incremental design and development (IIDD), a method adopted by engineers over 75 years ago. Early adopters of IIDD included Department of Defense (DoD) engineers who engaged in propulsion- related research and development, which included engineering activities tied to hardware not software... ...proliferated with names such as Scrum, Crystal, FDD, and others. With the proliferation of IIDD methods..." ¡Alucinante!, y al mismo tiempo curioso. Porque se trata de un organismo tan reputado como SEI, que si no uno pensaría que este IIDD Iterative and Incremental Design and Development, tan misterioso como supuestamente antiguo, es una mentira que se sacan de la manga, porque ni Google ha leído una sóla página en la que se le mencione (Supongo que enseguida tendrá al menos dos: la de su panfleto técnico, y ésta) Viendo que SEI recurre a la estrategia infantil de inventar lo que sea para "vender" la excelencia de su modelo, en lugar de convencerme de ella, me refuerza más la sospecha de que su objetivo cada vez es menos la mejora del negocio de las empresas de software, y más la del suyo propio de consultoría, aunque sea a pesar de las primeras. Todo el rigor del informe panfleto, cuyo título podría despertar la ilusión de algún argumento interesante, se reduce a: Repetir que no se debe ver a CMMI y a la Agilidad como agua y aceite. Que este es un error que se ha venido cometiendo por dificultades en la terminología, porque la revisión 2 de CMM, que se publicó en 1997 no la revisó nadie, y luego fue una de las bases de CMMI, y por malentendidos... vamos, de hecho DoD usa agilidad desde 1950 (IIDD), y en los 90 empezó a desarrollar CMM y luego CMMI para complementarla. Creo que, como el mismo informe afirma, hasta hace poco, los agilistas hablaban y conocían CMMI, pero los practicantes de CMMI no sabían de la agilidad, pero esto está cambiando.... y esto precisamente les puede hacer perder (les está haciendo perder parroquia), y la solución que adoptan es dejar bien claro que: ¡Oigan no se vayan, que en realidad lo bueno bueno,

Page 145: Navegápolis 2010

Procesos 145

bueno, buenísimo, mejor que aplicar sólo CMMI o sólo Agilidad, es aplicar los dos a la vez. ¡Toma ya!

Page 146: Navegápolis 2010

Procesos 146

Cefa-agilidad

29.01.2009

La agilidad no es cosa de pegar post-it's en las paredes, o hacer de las estimaciones juegos de adivinanzas o partidas de póquer. No se trata de convertir a equipos de programación, ni en grupos de boy-scouts, ni en comunas de hippies. La agilidad no nace de las formas sino del fondo: personas, motivación y cultura; y a diferencia de la producción basada en procesos, es muy sensible a la capacidad de las personas y al entorno de la organización. Por razones de vergüenza e imagen, ninguna empresa admite problemas en su organización, pero este estilo se sostiene en personas con competencias muy altas; y como tan escasos son los buenos programadores, como los buenos directivos, los campos de scrum que realmente funcionan son poquísimos. Si me pones de gestor a Ken Schwaber y de programadores a Kent Beck, Erich Gamma y Ron Jeffries ya verás que bien me sale scrum; y dará igual que lo use sólo, que lo combine con XP; o que haga mi propio apaño. Si me das a un jefe PHB(v. pág. 239) o un gestor Jar Jar, y de programadores a media docena de aprendices... acabaré cansado de modificar el modelo de trabajo, y culpando a éste y al equipo por los resultados. Pero no nos engañemos. Estamos hablando de agilidad. El grueso de los problemas no hay que buscarlos en los procesos; los más importantes estarán localizados en alguno de estos elementos: toxicidad de la empresa (Webber, Fast Company, 2007), motivación o competencia de las personas; pero sea cual sea, éste no es el origen real. El real se encuentra más atrás, porque... alguien dirige la empresa, gestiona, contrata y forma a las personas; y está tropezando en las asignaturas pendientes de la gestión ágil: motivación, organizaciones basadas en equipos y gestión del talento (que no de los recursos humanos).

Page 147: Navegápolis 2010

Procesos 147

De todas formas... hay poco que hacer. Los verdaderos causantes seguirán pasando desapercibidos y manteniendo la toxicidad en muchas empresas, porque el principio de "mantenimiento de la jerarquía" (Peter, El principio de Peter, 1969) es muy sólido, y bien a través del principio de Peter, o de alguna de sus aparentes excepciones como al sublimación percuciente, mantendrá o incluso ascenderá a los principales responsables.

Page 148: Navegápolis 2010

Procesos 148

Modelos ágiles, prácticas recomendadas y otras apostasías

15.04.2009

Cuanto mejores sean las condiciones del "campo de scrum": Nivel profesional del equipo, conocimiento de las necesidades y visión del cliente, tamaño (equipo reducido) y espíritu de colaboración; menos prescriptivas tienen que ser las prácticas ágiles empleadas. Henrik Kniberg, en su último artículo (Kniberg, 2009) , al comparar las prácticas ágiles de Scrum y Kanban, considera a Scrum más predictivo, y a Kanban más adaptativo adaptable. Como dice Henrik: "Prescriptivo significa más reglas que seguir, y adaptable significa menos reglas que seguir. 100% prescriptivo significa que no necesitas usar la cabeza, porque hay una regla para cada cosa. 100% adaptable significa: haz lo que creas, no hay ninguna regla ni limitación." Los dos extremos son absurdos; siempre se trata de una cuestión de grado, y algunas conclusiones que saco son: Hay otros artículos y posts, que al tratar sobre varios métodos tienden a sumarlos. En este caso sería Scrum + Kanban. La misma tendencia, relativamente frecuente de usar CMMI + ITIL + ISO... Si por las características del proyecto y nuestro "campo de scrum" una pizarra kanban da el soporte suficiente para el seguimiento diario, y ver el avance continuo o detectar estancamientos, ¿por qué no usarla?. A lo mejor al no acompañarla de un gráfico burndown se reduce el efecto de ley de Parkinson (1) que puede ejercer en equipos de nivel y rendimiento muy alto.

Page 149: Navegápolis 2010

Procesos 149

A lo mejor para tener una referencia visual y temprana del avance, la combinación de pizarra Kanban y gráfico de carrera es suficiente, y evita también el efecto de la ley de Parkinson. Pero claro, si no usas el gráfico burndown, habrá quien te señale con el dedo diciendo "tú no haces Scrum". Te sentirás "en pecado" y quizá tomarás la decisión de sumar métodos y usar Kanban + Scrum, para no saltarte ninguna norma y a la vez ser sentirte aún más ágil; pero bueno, aquí cada uno debe actuar según lo religioso que sea en tema de metodologías. Por experiencia: el tipo de pizarra que apunta Henrik Kniberg al final de su artículo, sin gráfico de avance de sprint (burndown) puede ser más eficiente que el "aparato" completo de Scrum cuando las condiciones de nuestro campo de Scrum son buenas.

(1) Ley de Parkinson: "El tiempo invertido en un trabajo varía en función del tiempo disponible". "Las tareas se expanden o se comprimen según el tiempo que dispongamos para hacerlas". "Todo proyecto tiende a alargarse en el tiempo hasta completar el que tiene asignado".

Page 150: Navegápolis 2010

Procesos 150

Agilidad: el hábito no hace al monje

31.05.2009

A las empresas no las valoramos por su realidad, sino por la percepción que de esa realidad tenemos. La clave no es por tanto que sean buenas, sino que se perciban como buenas; hecho que hace de las certificaciones de calidad herramientas de marketing, antes que de mejora; y como el hábito no hace al monje, quienes usan ISO, CMMI... sólo por la apariencia, no los los llevan como hábitos sino como disfraces. Como la agilidad empieza a ser conocida, y reconocida, están empezando a surgir disfrazados de ágiles; aunque en este caso no se trata de farsantes, sino de ingenuos. No se disfrazan para engañar, sino por creer que las prácticas de backlogs, reuniones guays, burndowns, kanban, etc... tejen un hábito milagroso que transforma en ágil a la empresa que lo adopta. Claro que es normal concluir que la agilidad es un conjunto de prácticas, cuando la información y formación ágil se ofrece con una distorsión de foco que consume todo o casi todo el esfuerso en las prácticas y las formas: en lo fácil; y pasa de puntillas sobre el fondo: lo difícil. El cuerpo de conocimiento para la formación y consultoría de la agilidad se debe plantear al revés, dedicando el mayor esfuerzo al fondo, que en realidad es la parte dificil de compender e implantar: Equipo

Motivado

Cualificado

Sumergido" en la visión y problemática del cliente Cliente

Implicado en el proyecto

Page 151: Navegápolis 2010

Procesos 151

Con un conocimiento claro de sus necesidades y la visión del sistema que desea.

Autoridad para decidir y re-trazar la visión Organización

Basada en equipos

De conocimiento, o que usa como materia prima el talento para producir valor, con una cultura acorde y contrapuesta a las organizaciones "cárnicas" que con la materia prima del trabajo producen código.

Alineada y cohesionada y tratar como temas y ayudas complementarias, como ejemplos y muestras para dar forma a los principio de fondo, las diferentes prácticas ("best practices") probadas o contrastadas por profesionales:

Formatos de reuniones para trabajar de forma auto-gestionada, transmitir y compartir la visión del cliente, seguir la evoluciñon diaria de cada iteración.

Técnicas y juegos de estimación...

Técnicas de gestión visual: gráficos, pizarras..

etc. Llegar al extremo de afirmar que quien no hace determinadas prácticas de determinada manera no es ágil, es haber perdido el norte y caido una vez más en el fundamentalismo. Relacionado: Una visión de la agilidad desde el fondo: Flexibilidad con Scrum (Palacio, 2007).

Page 152: Navegápolis 2010

Procesos 152

La ingeniería del Software tiene aún muy poco camino recorrido

22-07.2009

El 7 de octubre cumplió 40 años la Ingeniería del Software, porque 40 son los que han pasado ya desde la conferencia de la NATO2 que bautizó a esta nueva disciplina profesional, nacida para solucionar los desplantes del software en los proyectos militares, a los que hacía perder millones de dólares porque siempre entregaba tarde mal y nunca. Hace 40 años que se lanzaron las primeras balas trazadoras hacia las soluciones, aunque quienes las disparaban pudieran creer que eran ya tiros certeros y definitivos. Incluso aunque los que aún siguen a pie juntillas su estela, piensen que se trata de la meta del conocimiento, y no un punto del camino (concretamente el inicio v. síntesis pág. 98) Cuanto más nos empeñamos en seguir la trayectoria, sin corregir el tiro, más agrandamos el ángulo de error, y más nos alejamos del objetivo. En las direcciones iniciales de la Ingeniería del Software, estaban: rigor y precisión en los requisitos y diseño del producto, y la planificación y control del proyecto. Eran soluciones como todas: de y para su contexto. Un contexto de grandes proyectos militares con pérdidas millonarias en los sub-sistemas de software; y sería torpe criticarlas por no servir para proyectos diferentes en un escenario tecnológico 30 años más evolucionado. Criticarlas por pesadas e inadecuadas para pequeñas "start-ups" o grupos que no programan el guiado de misiles balísticos, y que no necesitan previsibilidad sino rapidez e innovación continua. Como también es torpe es no cuestionar lo que hacemos. Considerar que la solución que nos han enseñado es válida para todo, y en todo momento. Para todo, convencidos de que nuestro nuevo traje de ceremonia resulta apropiado para

2 Conference on Software Engineering. 1968 Garmisch, Alemania.

Page 153: Navegápolis 2010

Procesos 153

cualqueir ocasión. Y en todo momento, con una "actitud Peter-Pan" que no quiere evolucionar profesionalmente. Si errar es humano y rectificar de sabios, Tom DeMarco es de los segundos. Su obra es una de las principales contribuciones en el desarrollo de la Ingeniería del Software. Es autor de uno de los principales trabajos sobre métricas en la gestión de proyectos de software, referente de temarios como PMBoK: Controlling Software Projects: Management, Measurement and Estimation y con motivo del 40 cumpleaños de la Ingeniería del Software , el número de julio/agosto de IEE SOFTWARE publilca un artículo, en el que, mejor que comentar nada; y no sé si usando o abusando del derecho de cita, prefiero pegar literalmente sus palabras: Las métricas que inicialmente expuse en mi libro Controlling Software Projects: Management, Measurement and Estimation, (DeMarco, Controlling software projects: management, measurement & estimation, 1982) han definido la forma en la que muchos ingenieros construian el software y planificaban el trabajo. Con un ánimo de estado reflexivo, ahora me pregunto: ¿Fué correcto el asesoramiento en métricas? ¿Sigue siendo pertinente? y ¿creo todavía que las métricas son una necesidad para el éxito de cualquier desarrollo de software?. Mis respuestas son no, no y no. Tom DeMarco es también el autor de la afirmación que en las últimas décadas ha sido axioma para muchos modelos de procesos y gestión (¿todos?) "Usted no puede controlar lo que no puede medir". Y ahora, su autor afirma que el control puede no ser importante en muchos proyectos de software: "Muchos proyectos han avanzado sin centrar la gestión en el control, sino en la creación de productos maravillosos como GoogleEarth o Wikipedia. Para entender la verdadera función del control, es necesario distinguir de manera drástica entre dos tipos diferentes de proyectos: Un proyecto de tipo A, con un coste estimado de un millón de dólares y un cálculo de retorno aproximado de 1,1 millones. Un proyecto de tipo B que con un coste estimado de un millón de dólares produce un valor de más de 50 millones de dólares.

Page 154: Navegápolis 2010

Procesos 154

Lo inmediatamente evidente es que el control resulta importante en el proyecto A, y sin embargo su importancia es mínima en el B. Esto nos lleva a la extraña conclusión de que el control extricto es importante en los proyectos poco importantes, y viceversa. Me viene a la cabeza el principio de "CONTROL SUTIL" identificado por Nonaka y Takeuchi en los Campos de Scrum al seguir leyendo en el artículo la comparación que dibuja con el tipo de control que un padre realiza en la educación de su hijo adolescente: "Al aplicar el principio 'no se puede controlar lo que no se puede medir' a la educación en la adolescencia, la mayoría de las cosas realmente importantes, honor, dignidad, disciplina, personalidad, valores, ética, ingenio, lealtad, humor, bondad... no son medibles. Tienes que formar a tu hijo lo mejor que puedas sin tener feedback de métricas. Es difícil, porque ser padre es difícil. Tienes unas ciertas métricas del tipo de las notas del colegio, e intuyes que la nota de matemáticas es más importante que la de español y que la nota de comportamiento quzá diga más del profesor que del alumno". Para quienes creemos que el conocimiento está en continua evolución , y que en ocasiones se llega hasta la náusea desarrollando líneas de métricas y gestión inapropiadas para muchos proyectos, Leer estas afirmaciones de Tom DeMarco reconforta y da gusto ver que hay personas que con honestidad cuestionan, depuran y mejoran de forma continua3. Que a fin de cuentas afirman que los años de experiencia les hacen cuestionar y mejorar. Claro que esto es lo que me parece a mi. Seguramente quienes prefieren métricas de la línea PSP, y modelos CMMI para todo, opinarán que Tom DeMarco es una pena. Con las buenas ideas

3 Desde sus Ideas iniciales en la línea de "No puedes controlar lo que no puedes medir" a las conclusiones actuales sobre métricas y gestión de proyectos (ágil, por qué no decirlo), pasando por las que a finales de los 80 resumía en su afirmación "La mayoría de los problemas de nuestro trabajo no son tecnológicos sino sociológicos" (DeMarco, Peopleware: productive projects and teams, 1987).

Page 155: Navegápolis 2010

Procesos 155

que tenía, y ahora se ha echado a perder. Se ha pasado al lado oscuro. :-)

Artículo Software Engineering: An Idea Whose Time Has Come and Gone?

Page 156: Navegápolis 2010

Procesos 156

Scrum Master y Scrum Alliance: ¿La escoria de la agilidad?

15-08.2009

Scrum, entendido como los principios ágiles de organización del trabajo definidos por Nonaka y Takeuchi (Ikujiro & Takeuchi, 1986). O sea los "campos de scrum",es posiblemente el mejor marco para implementar ciclos ágiles de desarrollo. El "Scrum" de la ScrumAlliance y de los ScrumMaster: el "Scrum" cerrado en el que, como si fuera el Corán, nada se puede cambiar, además de ser un modelo de negocio piramidal sin escrúpulos, es una amenaza para SCRUM. Esto no es muy nuevo en Navegápolis, y por descontado, que decir según qué cosas en un blog corta el malentendido "buen rollito" y cierra algunas puertas; pero mantiene la conciencia tranquila, y anima a construir soluciones. A aportar formación que no sea costosa: libre, y que de verdad acredite el conocimiento. (OK-SM – http://www.scrummanager.net/ok). Por eso me ha parecido muy valiente el artículo, (Ambler, Ambysoft, 2009) nada menos que de Scott Ambler4. Me he sentido menos solo al leer a alguien de su talla, decir también sin ambages que el emperador está desnudo. Scott, jugando con las palabras en Inglés: cambiando Scrum por Scum (escoria) y derivando de SCAM (Scum Certified Agile Master) a Scammer (estafadores) para referirse a los que toman esta certificación; se ha despachado a gusto en su artículo sobre la certificación ScrumMaster diciendo cosas como estas:

4 SobreScott W. Ambler's

Scott W. Ambler's es autor de la variante ágil de RUP: Agile Unified Process (AUP) y de libros como: Agile modeling: effective practices for

eXtreme programming and the unified process (Ambler, 2002) , (Ambler, Agile database techniques: effective strategies for the agile

software developer, 2003), (Ambler, Tho object primer: agile model-driven development with UML 2.0, 2004) (Ambler, Refactoring

databases: evolutionary database design, 2006)

Page 157: Navegápolis 2010

Procesos 157

Puede conseguir el título de Maestro Certificado de la Escoria Ágil, o más coloquialmente Estafador, pasando dos días en nuestro curso de certificación. Queremos ser claros, lo que estamos certificando es la asistencia al curso (guiño, guiño, guiño, guiño). Usted decide si desea presentarse como un Estafador profesional. Si el 99,8% de los asistentes lo hacen. ¿Por qué va a asistir usted con otra intención?. ... Este curso sólo lo puede impartir un Artista de la Escoria Ágil Certificado. Para consultar un listado de los certificados como Artistas de la Escoria, consulte nuestra lista. El costo del curso de certificación de Escoria Ágil varía en función de cada Artista de la Escoria, pero normalmente oscila entre 1.395 y 1.995 dólares USA. En primer lugar obtendrá un certificado que indica que asistió al curso, y también una estupenda carpeta de la Alianza de la Escoria con el material del curso... Pero ¡aún hay más! Terminado el curso le enviaremos por correo los logos y gráficos que podrá inclir en sus correos y tarjetas para indicar que es un Estafador... Proximamente: Pruebas de Certificación. A partir del 1 de julio de 2009 todos los "falsos" (?) tendrán que cumplimentar un test on-line, que ha sido cuidadosamente diseñado por los miembros del círculo de la Escoria... esperamos que haya un 98 o 99% de aprobados, siempre y cuando no hayan sido tan estúpidos de cuestionar a esta cofradía en un foro público como el de yahoo (controlado y administrado por la Alianza de la Escoria), o sean miembros de la facción disidente. FAQ. ¿Estoy cualificado?... Si su cheque tiene fondos, usted será una Escoria Ágil Certificada. ¿Qué piensan los líderes ágiles de esto?. Varios de ellos no han podido resistir la tentación del dinero fácil y decidido certificarse como Artistas de la Escoria Ágil, por lo que ahora no pueden decir públicamente lo que piensan, por miedo a matar la gallina de los huevos de oro. El resto casi no tienen la integridad de levantarse y decir cualquier cosa. En lugar de eso albergan la

Page 158: Navegápolis 2010

Procesos 158

esperanza privada de que la Alianza de la Escoria se autodestruirá a consecuencia de su codicia y su falta de ética. Pero creo que 7 años de funcionamiento que han demostrado que están equivocados.

Page 159: Navegápolis 2010

Procesos 159

Agilidad y socialización del conocimiento

17-11.2009

Los modelos que dan el protagonismo de la producción al conocimiento depositado en los procesos y la tecnología , "externalizan" en ellos el conocimiento que hace posible la calidad y repetibilidad de los resultados. Las personas que ayudan a ejecutar los procesos aprenden "internalizando" el conocimiento. Cuando se trabaja con modelos ágiles, como el conocimiento empleado no es el de los procesos y la tecnología, sino el de las personas, resulta difícil (y posiblemente no sea recomendable) aplicar el mismo patrón: externalización-internalización, documentando y procedimentando. Lo normal en este caso es la "socialización". Hitotsubashi_on_knowledge

(Takeuchi & Nonaka, 2004).

Page 160: Navegápolis 2010

Procesos 160

Me parece especialmente gráfica la descripción que hacía Fabio en el foro de Scrum Manager en LinkedIn la semana pasada, al comparar una y otra forma de transmitir el conocimiento, desde el punto de vista de un agilista: Bueno, en realidad es difícil de creer que un esquema CMMI pueda dotar a un SEPG de las herramientas necesarias para hacer Knowledge Management. Durante 5 años he sido miembro del SEPG de una organización SW CMM level 5, y les aseguro que ningún KPA puede ni siquiera equiparar a la comunicación osmótica de un agile war room. Discutiendo con colegas alguien dijo claramente: Cómo quisieras pasar las dos primeras semanas como Ingeniero de Software? 1) Trabajando con el team participando de las daily stand up meetings o 2) Leyendo un manual de 653 hojas de un manual de procedimientos? Creo que tener un área de proceso que mencione Knowledge Management no quiere decir que lo hagas. Y si, un esquema agile basa su Knowledge Management en las personas, ese era el punto no?

Page 161: Navegápolis 2010

Procesos 161

Un modelo razonable: aplicar metas y prácticas genéricas CMMI a las prácticas específicas ágiles

29-11.2009

Combinar la agilidad con un modelo de procesos puede ser estrategia o astracanada: una táctica razonada y razonable, o el disparate de un gestor engañado, o perdido por las ganas de engañar. Los modelos de procesos como CMMI, ISO 15504, o Spice (que fue la versión beta de éste último) sirven para producción industrial, donde los protagonistas y responsables del saber hacer y de la calidad son los procesos; y donde las personas se necesitan para asistir a éstos. "La industria manufacturera ha reconocido la importancia de la efectividad de los procesos y la eficiencia. Hoy en día, muchas organizaciones en el sector manufacturero y de servicios a reconocer la importancia de los procesos de calidad"... En la década de 1930, Walter Shewhart comenzó a trabajar en la mejora de procesos con sus principios de control estadístico de calidad [Shewhart 1931]. Estos principios fueron refinados por W. Edwards Deming [Deming 1986], Philip Crosby [Crosby 1979], y Joseph Juran [Juran, 1988]. Watts Humphrey, Ron Radice, y otros extendido estos principios aún más y comenzó a aplicar a software en su trabajo en IBM y el SEI [Humphrey, 1989]. SEI ha tomado la premisa de la gestión sobre procesos, "la calidad de un sistema o producto es sobre todo consecuencia de de la calidad del proceso utilizado para su desarrollo y mantenimiento", y CMM se desarrolla sobre esta premisa. La creencia en esta premisa es compartida en todo el mundo por los movimientos de calidad, como lo demuestra la Comisión Electrotécnica Internacional (ISO / IEC) de la Organización Internacional de Normalización ISO..."

CMMI DEV 1.2, pág. 16

Page 162: Navegápolis 2010

Procesos 162

Las prácticas ágiles son exactamente lo contrario: métodos de trabajo que ayudan a los protagonistas responsables del know how y la calidad: las personas. "Preferimos el valor de las personas y su interacción al de los procesos y las herramientas"

Manifiesto ágil. Hay empresas o departamentos que integran o mantienen sistemas, o realizan otro tipo de tareas en las que quizá se puede externalizar en procesos el conocimiento necesario en un... ¿60, 70, 80%?. En otros casos ocurre lo contrario. Para no disparatar el modelo de producción conviene saber en qué caso se está, y no caer en la tentación de disolver el agua en el aceite. Los dos principios a la vez, no son posibles; sí lo es sin embargo una síntesis del conocimiento de ambos; y cuando se trata de una empresa ágil, que no busca también una evaluacion CMMI sino el conocimiento útil que de él puede emplear, este quizá sea un buen consejo: Tomar las metas y prácticas globales de CMMI, pero olvidarse de aplicarlas a las áreas de procesos, y aplicarlas a las prácticas ágiles que emplean, porque CMMI cubre algo que las prácticas ágiles no abordan: la institucionalización y homogeneización de la forma de trabajo. Algo que llevan a cabo las metas y prácticas globales. Se trataría de aplicar procesos para la homogeneidad en organización, la formación de las personas y la mejora de las prácticas y agilidad para la producción.

Page 163: Navegápolis 2010

Procesos 163

Proyectos

Page 164: Navegápolis 2010
Page 165: Navegápolis 2010

Desarrollo de proyectos 165

¿Cómo se estima el precio de los proyectos de software?

06.03.2005

Los proyectos con estimaciones limitadas terminan con desbordamiento de horas y costes, calidad deficiente y clientes satisfechos. ¿Cómo estiman las organizaciones de software el precio al cerrar los presupuestos con sus clientes? Los métodos empleados en muchas compañías de software son:

Averiguar cuál es el precio máximo que está dispuesto a pagar el cliente, o el presupuesto del que puede disponer, y emplearlos como base para calcular el importe del proyecto.

Conocer las ofertas de la competencia para basar el precio en ese rango.

Conjeturas, presentimientos, intuición... Si el proyecto es grande, se cuenta con los presentimientos de varias personas y se calcula una media.

Basar el precio en el importe que se necesita vender para cerrar las previsiones trimestrales de la compañía.

Para los proyectos que no interesan a la empresa se ofrecen precios desorbitados.

Page 166: Navegápolis 2010

Desarrollo de proyectos 166

El software es así

Michel A. Cusumano comienza su último libro (The Business of Software) reflexionando sobre las peculiaridades del negocio del software. Es un negocio diferente a todos los hasta ahora conocidos, de productos o servicios; y trasplantar técnicas de gestión "prêt à porter" puede resultar peligroso. ¿En cuántos negocios tiene un coste similar la producción de una unidad que la de un millón? ¿Cuántos negocios tienen un 99% de margen de beneficio en la venta de sus productos? ¿En cuántos negocios las empresas que desarrollan productos terminan incluyendo prestación de servicios, tanto si les gusta como si no? (proporcionando cierta configuración del producto, y servicios técnicos como integración del sistema y mantenimiento). ¿En cuántos negocios los mejores empleados son diez o veinte veces más productivos que los peores? ¿Cuántos negocios toleran como habitual que el 75 o el 80% de los proyectos de desarrollo de productos terminen tarde o desbordando el presupuesto? ¿En cuántas empresas, quienes desarrollan los productos se auto-consideran artistas, y no científicos o ingenieros, y presentan temperamentos difíciles e inestables? ¿En cuántos negocios los clientes terminan siendo cautivos de un determinado proveedor a raíz de las decisiones que alguien tomó diez años antes y que no se pueden eliminar fácilmente?

Page 167: Navegápolis 2010

Desarrollo de proyectos 167

Preguntas sobre el diseño

23.05.2005

Un ingeniero puede concebir el diseño de un sistema, de un componente o de una clase sentado en un sofá mirando al techo, o analizando y descomponiendo el problema con la ayuda de diagramas UML o tarjetas CRC. Hay quien emplea herramientas CAD y quien trabaja con libreta y papel. La documentación del diseño, o los diagramas que lo representan, NO SON EL DISEÑO. Son herramientas que pueden resultar útiles para concebirlo y para comunicarlo. El diseño es una actividad intelectual. No se produce a través de procesos que emplean diagramas UML o programas de representación. El diseño lo produce el talento de su creador o de sus creadores. Por esta razón, los modelos de calidad que cubren procesos de diseño, pueden garantizar que éste se documenta de determinada manera, que se comunica a las personas implicadas, que se mantiene actualizado durante el ciclo de vida del sistema, y que se verifica la adecuación del código al diseño. Pero no pueden garantizar que éste sea bueno. Al desarrollar software no hay que perder nunca de vista que el fin último es aportar soluciones a las necesidades o limitaciones de un sistema. Y como los problemas nunca tienen una única solución, dar con la más conveniente es la finalidad del buen diseño. El diseño es la estrategia de la solución, y la codificación la táctica. Por eso, dar respuesta a la pregunta de cómo identificar un mal diseño, que apunta un comentario del artículo Comprobación de la arquitectura no es fácil. Afirmaciones como la que en alguna ocasión he oido, del tipo "Ha realizado un análisis magnífico: más de 500 folios", son resultado de confundir los medios por el fin.

Page 168: Navegápolis 2010

Desarrollo de proyectos 168

Sin duda un trabajo extenso puede calificarse de magnífico, pero sólo por lo de "magno". Es posible que además sea una documentación rigurosa, y fiel en su organización y contenidos a normas y estándares. Pero ¿la estrategia de solución que propone es la más adecuada? Al ser el diseño un plan de solución, sin realidad física, y el resultado del talento de su creador, no resulta posible establecer unas pautas absolutas que a modo de lista de comprobación permitan evaluar y "poner nota" a la calidad de un diseño. En este aspecto, el criterio definitivo para determinarla es observando el comportamiento de la solución. Evaluar el diseño del sistema estudiando su funcionamiento, es un método de análisis dinámico cuya práctica analiza con dos casos de estudio el trabajo comentado en el artículo anterior5. De todas formas, aunque no resulta posible determinar criterios objetivos, que con rigor científico puedan evaluar a través del análisis estático de la documentación del diseño y del código producido la calidad de la arquitectura, sí que la experiencia y el sentido común pueden establecer criterios útiles a modo de "alertas" para identificar las probabilidades y los riesgos de encontrarnos ante un mal diseño; y por su puesto para poder "calar" con un primer vistazo errores de bulto. El análisis estático y predictivo de la solvencia de un diseño es más una cuestión más de intuición y de juicio experto, y en esta línea es recomendable la comparación con el "olfato" que hace Robert C. Martin en su libro Agile Software Development, al definir 7 características para identificar lo que él denomina "software podrido": 1.- Rigidez. Dificultad para modificar el software. Incluso con cambios pequeños. Un diseño es rígido si un cambio simple genera una cascada de modificaciones sucesivas en módulos dependientes. Cuantos más módulos deben cambiarse, más rígido resulta el diseño. 2.- Fragilidad Tendencia del sistema a romperse en sitios diferentes al implementar un cambio. A menudo los nuevos problemas surgen en áreas que no tienen una relación conceptual con la que se ha

5 http://www.navegapolis.net – comprobación de la arquitectura-

Page 169: Navegápolis 2010

Desarrollo de proyectos 169

cambiado; y al solucionarlos se generan otros nuevos, haciendo que el equipo de programación termine por parecerse a un perro que persigue su propia cola. 3.- Inmovilidad Un diseño es inamovible si contiene partes que aunque podrían resultar útiles en otros sistemas, el coste y los riesgos de su extracción y migración son tan elevados que no compensan. 4.- Viscosidad La viscosidad puede presentarse en el software y en el entorno. Normalmente una modificación puede implementarse de varias formas posibles. Algunas preservando el diseño original, y otras no (introduciendo parches). Cuando las formas que mantienen el diseño son más costosas que las que lo degradan, se trata de un diseño "viscoso". Entornos viscosos son los que hacen lento e ineficiente el desarrollo. Si los cambios requieren largos procesos de re-compilación, o implican horas de comprobación o bloqueo sobre otros ficheros para mantener el control del código fuente, los programadores tenderán a realizar modificaciones que no requieran tanto trabajo, aunque con ellas no se respete el diseño. 5.- Complejidad innecesaria Un diseño contiene complejidad innecesaria si las soluciones que plantea resultan complicadas o laberínticas. El talento y oficio del diseñador es el factor fundamental para evitarlo, pero en muchas ocasiones la complejidad innecesaria se produce por anticiparse a posibles cambios futuros de requisitos, implementando características en el software que teóricamente las facilitarán. Desafortunadamente el efecto suele ser el contrario, y el diseño acaba incorporando construcciones que nunca se emplearán y que puede implicar peso complejidad que harán un software más complejo y difícil de comprender. 6.- Repeticiones innecesarias. La técnica de "copy-paste" es útil para la edición de textos, pero puede resultar nefasta en la edición de código. Con demasiada frecuencia los sistemas de software se construyen repitiendo docenas o cientos de veces fragmentos de código idénticos. 7.- Opacidad O grado de incomprensibilidad del código, que puede producirse ya en la codificación inicial, o a través de la evolución a través de

Page 170: Navegápolis 2010

Desarrollo de proyectos 170

las sucesivas modificaciones. Para evitarla, los desarrolladores deben ponerse en el papel de un futuro "lector", y las tareas de modificación cubrir la refactorización del código siempre que sea necesario. Esta lista de posibles "sospechosos" o "culpables" del mal diseño, refleja también la idea que Jack Reeves expuso en 1992 en su artículo What is Software Design?, y que sigue manteniendo en 2005: el diseño es el código. En realidad la idea subyacente a la afirmación de Reeves no es que el código sea el diseño, sino que es en el código donde éste queda plasmado y a través del que produce los resultados esperados. Por esta razón para identificar un mal diseño no hay que detener el análisis en su concepción inicial, y es necesario extenderlo hasta el resultado final. Problemas como la opacidad, repeticiones o complejidad innecesaria, viscosidad, etc. pueden introducirse en las fases de codificación y mantenimiento. A modo de conclusión, para dar respuesta a las preguntas de ¿qué es el diseño?, ¿cómo se evalúa su calidad?, ¿es el código?, ¿son los diagramas?, etc. propongo las siguientes conclusiones:

El diseño es la estrategia de solución. Las tareas de codificación, integración y mantenimiento del sistema son la táctica. La estrategia debe ser adecuada a las necesidades de los usuarios (requisitos y atributos de calidad esperados). No surge de procesos, herramientas o lenguajes de modelado. Surge del talento de su creador. Los procesos, las herramientas y los lenguajes de modelado pueden resultar útiles como ayuda para descomponer la complejidad, y para comunicar el diseño a los participantes del proyecto. El talento de algunos profesionales les puede permitir manejar niveles de complejidad elevados sin necesitar apoyo de procesos, herramientas o lenguajes de modelado. A través del código es posible ver el diseño y la arquitectura del sistema.

Page 171: Navegápolis 2010

Desarrollo de proyectos 171

La documentación del código resulta útil para comunicar su diseño a través del espacio en sistemas en los que intervienen muchos desarrolladores, y del tiempo para facilitar su mantenimiento. Al emplear documentación para la comunicación del diseño es necesario trabajar con procesos suficientes para garantizar su integridad y actualidad a través de los cambios. El diseño no cumple su finalidad hasta que no queda plasmado en el código. El resultado del diseño puede fallar tanto errores en su estrategia como por distorsiones introducidas en la codificación, integración y mantenimiento.

Page 172: Navegápolis 2010

Desarrollo de proyectos 172

¿Métodos de desarrollo ágil con contratos de fecha y precio cerrados?

26.07.2005

De momento es una combinación peligrosa. Jamer World, Randy Miller, Andrew Cheeseman y Roy Osherove la trataron en la mesa redonda "Agile Development" que se celebró el 7 de julio en la Tech-Ed de este año, sin dar con más solución que el transmitir al cliente las ventajas y razones del desarrollo ágil, para que comprenda que al ser un modelo sin una planificación inicial cerrada, y estar abierto al cambio continuo, no permite cerrar fechas y precios. El mismo Ken Schwaber, en su libro "Agile Project Management with Scrum", dedica el apéndice D a esta cuestión, en el que afirma "I didn’t know how to use Scrum to address his business. Scrum’s principle is “the art of the possible,” not “you give me what I paid for, when you said that you’d deliver it." Pero por desgracia los clientes tienen la mala costumbre de querer saber cuándo tendrán programada la solución para su problema, y cúanto les va a costar; y algunos son tan suspicaces que no se fían si no lo firman en un contrato. ¿Puede una empresa de software comprometerse contrac-tualmente en fechas y costes con sus clientes, y al mismo tiempo emplear un modelo de gestión de proyectos que no se los puede garantizar? A grandes rasgos las dos líneas generales de gestión de proyectos son: el marco ortodoxo, con CMMI y PMI como máximos exponentes, y el marco ágil, del que scrum posiblemente sea el representante más significativo. En la primera son aspectos clave:

Obtención y análisis de los requisitos previos a la planificación y estimación del proyecto.

Planificación y estimación objetiva basada en los requisitos.

Page 173: Navegápolis 2010

Desarrollo de proyectos 173

Gestión de requisitos durante todo el ciclo de desarrollo con procesos rigurosos para aceptar los cambios y modificaciones, evaluando su impacto (que puede conllevar revisiones del contrato) y recabando la conformidad del cliente.

Procesos objetivos de validación y verificación contra requisitos.

Y en el segundo:

Desarrollo iterativo en ciclos breves (sprints).

Apertura al replanteamiento de los requisitos en el inicio de cada ciclo (backlog).

Incorporación del cliente (product owner) al equipo del proyecto.

La gestión de proyectos ortodoxa sí que está preparada para afrontar los compromisos de fecha y coste, pero pagando el precio de mayor rigidez en los procesos para aceptar cambios. La gestión de proyectos ágil no puede afrontar los mismos compromisos, y por contra resulta muy flexible para incorporar modificaciones de requisitos. Volviendo a la pregunta de si se pueden emplear modelos ágiles y firmar contratos con fechas y costes cerrados, lo cierto es que sí. De hecho algunas empresas firman fechas sin contar con modelos de gestión de proyectos. Ni ortodoxos, ni ágiles; pero estas aventuras no dejan de ser bastante temerarias. Las empresas son entornos sistémicos con múltiples relaciones internas, y esta es una de ellas: los modelos de contrato, con los modelos de procesos para el desarrollo. Los marcos legales que delimitan las modalidades contractuales posibles son diferentes en cada país, pero en cualquier caso, no está de mas conocer cuáles son las opciones jurídicas, para no mezclar modelos de producción y de contratación incompatibles. La legislación española establece en el artículo 1544 del Código Civil, que en los contratos de "obra o servicios" una de las partes se obliga a ejecutar una obra o a prestar a la otra un servicio por un precio cierto. Lo cierto es que nuestra legislación enturbia un poco el asunto al definir conjuntamente el arrendamiento de obras y el de servicios sin aportar los criterios para distinguir cuando estamos ante uno u otro, porque sería de gran ayuda poder contar con

Page 174: Navegápolis 2010

Desarrollo de proyectos 174

dos modelos diferentes para diferenciar sin ambages si el objeto es una obra cierta en una fecha cierta, o el realizar trabajo de programación según las indicaciones continuas del cliente. Los criterios que deben emplearse para poder diferenciar en el contrato cuál es la figura que recoge (si obra o servicio), por ser los que ha manejado nuestra doctrina y jurisprudencia son:

En el contrato de prestación de servicios se debe una actividad, sin tener directamente en cuenta el resultado del servicio, mientras que en el de ejecución de obra el objeto de la prestación debida es el resultado final, con independencia del trabajo necesario para lograrlo.

En el contrato de servicios la remuneración acostum-brada debe ser proporcional al tiempo de duración de los servicios contratados, por contra en el contrato de obra es normal fijar la retribución en proporción al número o medida de la obra.

En el contrato de servicios la prestación de éstos se realiza en situación de dependencia de quien los recibe, en tanto que en el de obra la actividad dirigida a lograr el resultado es realizada por un contratista o empresa independiente.

Algunos fragmentos de sentencias del tribunal supremo que recogen la diferencia entre ambas figuras:

"Como de obra o empresa en cuanto el profesional se obliga a prestar al comitente, más que una actividad, el resultado de la misma,"

"la jurisprudencia viene manteniendo que nos hallamos en presencia de un arrendamiento- de obra cuando su objeto viene constituido por el resultado concreto prometido por el profesional; y no la prestación de unos servicios, además el precio era cierto y determinado"

En consecuencia, un desarrollo guiado con un marco de gestión ágil, puede garantizar al cliente que cada mes se le hará entrega de nuevas funcionalidades operativas, que habrán sido las acordadas en las reuniones de trabajo en las que él participará. El contrato debería ser por tanto un contrato de servicio en el que nos comprometiéramos a realizar los trabajos que se indiquen en las actas de cada reunión mensual (backlog), y que

Page 175: Navegápolis 2010

Desarrollo de proyectos 175

el cliente adquiere también una obligación de colaboración en el proyecto. Un desarrollo conducido por un modelo de gestión ortodoxo puede cerrar fechas, precios y funcionalidades, pero no debería hacerse antes de disponer de las funcionalidades del sistema. Para sistemas complejos, una forma de trabajo adecuada consiste en la firma de un contrato previo de consultoría para realizar la obtención y análisis de requisitos, y otro posterior de fecha y precio cerrado, siendo el documento de requisitos parte contractual de la definición de la obra y criterio para validar el resultado final. Este tipo de contratos deben fijar también con claridad los procedimientos para introducir modificaciones de requisitos durante el desarrollo, que pueden suponer revisiones del contrato inicial.

Page 176: Navegápolis 2010

Desarrollo de proyectos 176

Necesitaré 3 recursos Java

14.08.2005

A lo peor estoy equivocado, pero no me encaja que un gestor de proyectos tome una lista de requisitos, la descomponga en un WBS, genere un gráfico de Gantt y tras analizarlo le diga al responsable de personal: "necesitaré 3 recursos java". Primero, un aspecto de forma: ¿Por qué "recursos"? ¿Por qué no tratar a las personas como personas? Programadores, analistas, ingenieros... Si, es posible que sea un poco maniático, pero es que no comprendo esta suerte de eufemismo. Puedo entender que para evitar posibles connotaciones peyorativas se hable de invidente y no de ciego; pero que se emplee un tropo similar para no llamar a una persona persona, y preferir "recurso" ¿? Segundo, ¿se puede tratar un proyecto de software, como el de construcción de un edificio? Una excavadora extrae x m3 de tierra en cada jornada de trabajo, las estadísticas de días de lluvia y de averías de maquinaria son también datos objetivos para una previsión de riesgos. Pero, ¿los modelos formales de gestión de proyectos resultarían válidos si la producción de las excavadoras no fuera homogénea, y entre ellas hubiera diferencias de "por 10", o mas? O si la motivación de los palistas, perdón de los "recursos", fuera un factor de primera relevancia en la eficiencia y la calidad del resultado? Hay una gestión de proyectos de corte mecanicista, que mira los proyectos con las gafas de ver tareas, actividades, tiempos que consumen, recursos necesarios, Gantt, ruta crítica, riesgos, presupuesto, ROI, etc. Es la escuela "formal" que se basa en la premisa de que el conocimiento y las prácticas de gestión para los proyectos son comunes para todas las industrias: farmacéutica, construcción, software... (premisa fundacional de PMI. PMBOK, edición 2000,

Page 177: Navegápolis 2010

Desarrollo de proyectos 177

pág. 167.) Pero también hay modelos ágiles para la gestión de proyectos que no emplean diagramas de Gantt, o en las que el gestor no asume las responsabilidades de gestión y organización de los "recursos", porque los cambian por equipos de personas auto-gestionados y auto-organizados. ¿Es posible un modelo único de gestión de proyectos? ¿Una talla única para todo?

Page 178: Navegápolis 2010

Desarrollo de proyectos 178

¿Cómo se decide la compra de software?

28.08.2005

Hace algún tiempo, el director general de la filial de un importante grupo empresarial español, acudió a la industria del software para encargar el desarrollo de un sistema que gestionara la práctica totalidad de los procesos de una nueva línea de negocio. Esta persona estaba preocupada, porque disponía de un presupuesto cerrado, se encontraba ya en junio y el nuevo sistema debía estar desarrollado y en funcionamiento en enero del año siguiente. Pero afortunadamente... Tuvo suerte. O al menos eso creyó tras entrevistarse con el representante comercial de una importante empresa de desarrollo de software. La fortuna había puesto en su camino la solución ideal, y a las personas capaces de realizarla. La empresa de soft, tras escuchar sus necesidades, restricciones de fechas y presupuesto; le sorprendió gratamente con la solución a su problema: podían desarrollar un programa sin exceder ni el presupuesto, ni las felchas. El presupuesto pareció algo ajustado, pero el proveedor consideró que podía estrechar su margen comercial, porque la relación que iniciaba con tan importante cliente lo compensaría en operaciones posteriores; y en cuanto al cronograma, había dimensionado un equipo con las personas para llevar a cabo el plan necesario: En julio se llevaría a cabo el análisis de requisitos. De agosto a noviembre, el desarrollo de la aplicación, y en diciembre la instalación y pruebas del sistema. Aunque el director de la empresa cliente sabía que las agendas estaban muy ajustadas, en el fondo no le importaba si al final la entrega se demoraba algunas semanas. A poca experiencia que se tenga en el negocio del software, uno se puede imaginar cuál fue el futuro de este proyecto, y de la prometedora relación comercial que iniciaba.

Page 179: Navegápolis 2010

Desarrollo de proyectos 179

Después de un año de retrasos (en enero, pero del año siguiente) el sistema seguía programándose, y sin funcionar. Cliente y proveedor se amenazaban con los tribunales... El director general de la empresa cliente fue cesado por decisión del grupo empresarial matriz. La empresa de software perdió una importante suma en esta operación, y lo más importante: prestigio y credibilidad profesional. Una cosa que siempre me ha sorprendido de nuestra industria es la ligereza con la que muchos de nuestros clientes llegan a cerrar importantes operaciones comerciales, aunque estoy convencido de que una parte importante de culpa la tenemos nosotros, al construir departamentos comerciales “nacidos para vender", no "para solucionar problemas". Los dos párrafos siguientes, extraídos de "La Agenda" de Michel Hammer definen muy bien una situación bastante frecuente de nuestra industria:

"Vender" esos sistemas, implica mucho más que una comida que paga el vendedor al responsable de compras. Es necesario analizar y determinar las necesidades del cliente. Habrá que diseñar un sistema que cubra esas necesidades, calcular su coste, y evaluar su viabilidad, rentabilidad y coherencia con la estrategia empresarial del fabricante... Tal como lo percibía otro de los departamentos, la sección de ventas "nunca veía un negocio que no le gustase". Por poco claro que estuviese el resultado, o por incierto que fuese el beneficio, perseguían el posible pedido hasta su más amargo final. Ansiosos por superar a los competidores, los representantes de ventas a menudo ofertaban al cliente un precio, antes de que alguien tuviese la más mínima idea de lo que iba a costar el sistema. (En esta empresa, el lamento común era que lo que se decía en los cinco primeros minutos de la primera visita de venta comprometía a la empresa durante los tres años siguientes).

Page 180: Navegápolis 2010

Desarrollo de proyectos 180

¿Cómo es la estrella de tu proyecto?

28.12.2005

Ni todos los proyectos, ni todas las organizaciones son iguales, y en algunos casos sienta mejor estar más cerca de la agilidad que de la formalidad de los procesos, y viceversa. Las preguntas clave son:

¿Cuál es el nivel de inestabilidad de los requisitos? ¿Cambia el 1% cada mes, o el 50%? [...]

¿Cuál es el nivel de criticidad del proyecto? ¿Qué clases de pérdidas pueden producir los errores en su desarrollo: vidas, bienes materiales o funcionalidad para los usuarios? ¿Se trata del sistema de software para regular el núcleo de una central atómica, o para gestionar una agenda infantil?

¿Cuál es el tamaño del equipo de desarrollo: 3 ó 300 personas?

¿Cuál el porcentaje de técnicos competentes y expertos frente al de principiantes y menos hábiles?

¿Cuál es la cultura de la organización? ¿Cada uno tiene detalladamente definidas sus tareas y responsabilidades, lo que tiene y lo que no tiene que hacer?, o por el contrario ¿se trata de una cultura de autonomía y empowerment sin una delimitación pormenorizada de tareas?

Page 181: Navegápolis 2010

Desarrollo de proyectos 181

Estas son las 5 puntas del gráfico que proponen dos que no necesitan presentación: Barry Boehm y Richard Turner. Si la estrella no te sale muy simétrica, si quizá se trata de desarrollar el sistema de asistencia al pilotaje de un avión, con un equipo de tres programadores junior.... mira no estés buscando la cuadratura del círculo, y ni los modelos ágiles ni los basados en procesos puedan ser de gran ayuda.

Page 182: Navegápolis 2010

Desarrollo de proyectos 182

PSP (Personal Software Process) o cómo pasarse de rosca midiendo

18.05.2006

¿No estará perdiendo el norte la línea "CMM'ista" en su afán de ver que todo está en los procesos? Estas son algunas de las métricas que PSP define para "ayudar a los ingenieros en su trabajo":

LOC(B) Líneas de código del programa antes de empezar a modificarlo.

LOC(D) Líneas de código del programa una vez terminado.

LOC(M)Líneas cambiadas en el programa base.

LOC(A) Líneas añadidas durante la programación del proyecto (A=T-B+D-R)

LOC(R) Líneas de código desarrolladas para otros programas que se han incluido sin ninguna modificación.

LOC(N) Líneas de código añadidas o modificadas (N=A+D)

LOC/Hora Líneas nuevas y modificadas divididas por el número de horas empleadas

Tiempo de interrupción: Tiempo dedicado por el programador a actividades ajenas al proyecto (charlas, teléfono, interrupciones, café...).

Tiempo delta: Tiempo de la jornada de trabajo - Tiempo de interrupción.

Defectos eliminados / hora etc, etc, etc. La implantación de PSP ha demostrado incrementos importantes en el "task time". En el tiempo que los programadores están efectivamente sentados produciendo líneas de código. Consigue por tanto incrementos igualmente importantes de eficiencia; considerando eficiencia como número de líneas de código por unidad de tiempo...

Page 183: Navegápolis 2010

Desarrollo de proyectos 183

Pero una cosa es task time o "body time" y otra "brain time". Las líneas de código se pueden medir, pero no ocurre lo mismo con la capacidad, la creatividad, el talento... Se puede medir o valorar el trabajo de un traductor por el número de palabras que traduce en una hora... pero no debería ser una métrica válida para determinar el valor de un novelista. Seguramente con ese criterio situaríamos a Corín Tellado por delante de Cela. Un caso práctico (Basado en un caso real y cotidiano): Miguel forma parte del equipo de programación de un sistema en entorno Visual Basic .NET. Ha trabajado durante dos días en el desarrollo de una función (ValidDate), de 130 líneas de código, capaz de comprobar la validez de una cadena como fecha. La función contiene dos bugs: * Considera como fechas válidas las cadenas vacías. * El cálculo de los años bisiestos no es correcto. ¿Cómo analizaría y gestionaría el trabajo de Miguel una empresa que desarrollara software desde la perspectiva de los procesos? Estas empresas trabajan con la premisa de producción industrial de que el valor del producto es resultado, en su mayor parte, de los procesos que siguen las personas que lo desarrollan. El modelo más destacado sobre esta premisa, para medir y mejorar estos procesos es PSP (Personal Software Process), desarrollado por SEI en el marco de los modelos CMM - CMMI. PSP mira el tiempo, el tamaño del trabajo y el nº de errores. Estos modelos permiten medir con parámetros objetivos la eficiencia y calidad de las personas y de los equipos. Para determinar la eficiencia de Miguel, la información objetiva no engaña: 130 líneas de código en x horas. Lo mismo ocurre con la calidad de su trabajo:2 errores en 130 líneas de código. Con estas informaciones los gestores de la empresa determinan si Miguel es más o menos eficiente que la media, si la calidad de su trabajo está en los parámetros admisibles, etc. Lo que no pueden descubrir con ellos es que Visual Basic incorpora de forma nativa la función IsDate(), y que si Miguel lo hubiera sabido, en lugar de 2 días hubiera tardado 1 minuto en realizar el mismo trabajo, que además no contendría ningún

Page 184: Navegápolis 2010

Desarrollo de proyectos 184

error. Este es un caso real, casos con el mismo fondo son muy frecuentes, y esconden diferencias de eficiencia y calidad enormes entre las personas, que pasan desapercibidas y tergiversadas al aplicar métricas que no son apropiadas. Administrando a las personas que desarrollan software con criterios de producción industrial se puede estar en el mercado, conseguir el volumen de trabajo que el marketing y el capital relacional propio sean capaces de lograr, pero el producto será mediocre. Este modelo de empresa no es capaz de desarrollar software innovador ni valioso (Procesos: incompatibilides y efectos secundarios pág. 77). De hecho la empresa que desarrolló este proyecto facturaba 250$ por hora de trabajo, por lo que programar esta función mediocre le aportó una facturación de más de 2.000 dólares. No cabe la menor duda de que este es un modelo de empresa de negocio atractivo, y razón más que suficiente para que se perpetúe.

Page 185: Navegápolis 2010

Desarrollo de proyectos 185

Hay dos formas de viajar

19.06.2006

Vamos de vacaciones 15 días a Túnez. Salimos el sábado. Con el AVE de las 12 vamos a Madrid, y desde allá en avión hasta el aeropuerto de Túnez. Un autocar nos lleva al hotel en Hammamet. El domingo día de playa. El lunes empezamos una ruta turística por el desierto de 3 días... Forma 2: Quiero pasar las vacaciones por Italia. La idea es salir en la primera semana de junio y estar entre 15 y 20 días allá. Tengo un presupuesto de 3.500 Euros. Quiero comenzar en Roma, pero luego no sé si ir hacia el norte e intentar abarcar Florencia, Bolonia y Venecia; o hacia el sur para conocer Nápoles y dar una vuelta por Sicilia. Bueno, lo decidiré sobre la marcha.

El primer viajero elabora un plan detallado; cuando todo lo tiene encajado y conoce el coste, la duración, etc... empieza el viaje. Si durante el mismo algo se tuerce, pierde un vuelo... tomará medidas para intentar mantener el plan inicial, y si no es posible trazará un nuevo plan. El segundo viajero comienza el viaje sin un desarrollo detallado. Tiene una visión general del objetivo. El devenir de los acontecimientos y la información de cada momento irán escribiendo los detalles del viaje. ¿Una es la forma buena y otra la mala?

Page 186: Navegápolis 2010

Desarrollo de proyectos 186

Hay dos formas de gestionar proyectos: una predictiva o clásica y otra adaptativa o ágil. La gestión predictiva parte de un plan detallado. Sabe exactamente qué es lo que va a hacer y conoce fechas y costes. Durante el desarrollo gestiona riesgos, evalúa el impacto que cada modificación supone sobre el plan inicial, toma decisiones frente a los imprevistos para seguir su cumplimiento; y si no queda más remedio, para replantearlo. La gestión adaptativa parte desde una visión general del objetivo y va dando pequeños pasos hacia él a través de un ciclo de construcción incremental, y de forma evolutiva contrasta y va descubriendo el detalle que resulta más adecuado para el producto con los usuarios y demás participantes, que pueden "tocar" o usar las partes construidas. Hay un modelo que quiere conseguir previsibilidad: construir lo previsto, en el tiempo previsto y con el coste previsto. Hay un modelo que quiere conseguir valor competitivo en entornos rápidos de la economía actual: innovación y agilidad.

Hay gestores que sólo trabajan de forma predictiva por la creencia fundamentalista de que es "la buena", y descalifican a los enfoques ágiles o adaptativos. Hay gestores que sólo trabajan de forma adaptativa por la creencia fundamentalista de que es "la buena", y descalifican a los enfoques clásicos o predictivos.

El viaje de negocios de un ejecutivo necesita ajuste y previsión de agendas. Se debe gestionar con un patrón predictivo. Un viaje de turismo innovador para descubrir rutas poco frecuentes, capaz de cambiar rápidamente si empeora el tiempo en la zona, o sacar ventaja de la pérdida de un avion se debe gestionar con un patrón adaptativo. Si se sabe perfectamente lo que se desea construir, si no se necesita un componente innovador importante, si se trabaja con estabilidad suficiente en los requisitos y la tecnología; Humphrey tiene razón: "Lo más eficiente es hacerlo bien a la primera". Pero esto no siempre es así.

Page 187: Navegápolis 2010

Desarrollo de proyectos 187

¿Cómo de innovador es el producto que se quiere desarrollar? ¿Dará solución a un entorno muy conocido como un programa de contabilidad, o a un nuevo concepto o servicio del que aún no se sabe muy bien el impacto, uso y utilidades que podrán encontrar los usuarios? ¿Durante los meses de desarrollo será estable la plataforma de hardware y software empleada? Una vez lanzado el producto, ¿Cuánto tiempo podrá mantenerse sin quedar obsoleto sin necesidad de cambios y nuevas versiones?

Page 188: Navegápolis 2010

Desarrollo de proyectos 188

El escenario TIC necesita otro modelo de gestión de proyectos

20.07.2006

En los años 50, 60 y 70, cuando se desarrollaban las bases de una gestión de proyectos basada en la planificación, los productos tardaban años en quedar obsoletos. Las empresas los concebían y diseñaban en un entorno relativamente estable, y luego se dedicaban a producirlos de forma constante durante años, introduciendo quizá algunas variaciones mínimas. Apple ha desarrollado 6 generaciones de su popular iPod, en sólo 6 años. Los productos hoy están en constante evolución. La presión del mercado y la velocidad de avance del entorno tecnológico obliga a desarrollarlos en el menor tiempo posible, o mejor dicho, a salir al mercado con un valor mínimo suficiente en el menor tiempo posible, y una vez allí, en un continuo estado beta seguir el desarrollo a lo largo de versiones y aplicaciones, guiando la evolución según se tercie.

En este sector las diferencias de liderazgo entre empresas no radican en la eficiencia y previsibilidad de costes y fechas con la que se gestiona el desarrollo de los nuevos productos, sino en la capacidad de agilidad y cambio durante el desarrollo; y el verdadero valor competitivo para ocupar puestos de cabeza es el valor y la innovación del producto.

Page 189: Navegápolis 2010

Desarrollo de proyectos 189

¿Requisitos cerrados o evolutivos?

03.10.2006

Para que un esfuerzo de desarrollo de software tenga éxito, es esencial comprender perfectamente los requisitos del software. Independientemente de lo bien diseñado o codificado que esté un programa, si se ha analizado y especificado pobremente, decepcionará al usuario y desprestigiará al que lo ha desarrollado

Roger S. Pressman. Ingeniería del Software. Mc Graw Hill 1995.

Parece lógico suponer que antes de empezar a construir algo, lo mejor es conocer con detalle qué es lo que vamos a hacer. Una constructora, por ejemplo, podría levantar el edificio que espera su cliente, de forma evolutiva e incremental, a través de ciclos sucesivos de: “construcción – validación con el cliente – demolición de lo erróneo”. Pero contar con un proyecto detallado antes de empezar la construcción es un modelo de desarrollo mucho más adecuado. En el desarrollo de software, el razonamiento que implica esta comparación es un punto de discordia importante entre defensores de modelos procesos, y de modelos ágiles. Para los modelos de procesos (CMMI, ISO15504...) y para el marco de gestión de proyectos predictivo (PMI, IPMA...) es obvio y axiomático que:

Para saber el tiempo y el precio que costará el proyecto, hay que tener una planificación detallada.

Para elaborar un plan detallado hay que saber con precisión, qué es lo que se va a construir.

La gestión de proyectos es la profesión que comprende las áreas de conocimiento necesarias para planificar, gestionar la ejecución del trabajo planificado, detectar y corregir las desviaciones.

Sin embargo para la gestión de proyectos adaptable o ágil, las fases no son fases, sino actividades que se desarrollan durante todo el ciclo de vida, a demanda según las circunstancias. El diseño, por ejemplo no es la fase que se realiza después de los requisitos. El diseño, como el descubrimiento de los requisitos, o

Page 190: Navegápolis 2010

Desarrollo de proyectos 190

la codificación y pruebas son actividades que se ejecutan según se van necesitando, a lo largo de iteraciones cortas. Los requisitos no se conocen de forma detallada al comenzar. La comunicación con el cliente, el análisis y la interacción con los resultados de cada iteración los irán descubriendo. Las fechas no son resultado de una planificación, sino restricciones de negocio. La garantía del resultado no se confía a los procesos sino a la excelencia técnica y a la responsabilidad del equipo. La existencia de estos dos enfoques para la gestión de proyectos ocasiona:

Discusiones de carácter fundamentalista entre defensores de ambos "bandos".

Despistes y desaguisados al aplicarlos en las organizaciones y en los proyectos que por simpatías, corazonadas o asesoramientos poco objetivos adoptan tal cual modelos poco apropiados.

Algunas cuestiones que ayudan a dar una perspectiva objetiva sobre la utilidad, y ámbito de cada marco: El software no resulta comparable a la materia prima de otras ingenierías. El software no es físico, y los sistemas de soft, a diferencia de los artefactos físicos son muy maleables. Por eso es tendencioso presuponer una "talla única" de gestión válida para cualquier sistema y establecer un paralelismo transitivo de métodos que por ser apropiados para la construcción de edificios o aviones, también lo son para desarrollar software. A nadie se le ocurre comenzar la construcción de un edificio sin saber cuál será exactamente el nº de plantas, o la superficie de éstas; o desarrollar una embarcación básica, e ir ampliando y modificando sus características, a medida que por el uso las van descubriendo los usuarios. Sin embargo con el software esto es posible. La capacidad de fertilización que sobre el concepto inicial del producto da el ver, tocar y jugar con un prototipo, con un fragmento de la obra, descubre posibilidades valiosas para el producto, que de otra forma difícilmente podrían haber sido incluidas en una descripción inicial. La cuestión es: ¿cómo de caro resulta construir poco a poco, realizando "prototipos" que retro-enriquecen la visión del producto?

Page 191: Navegápolis 2010

Desarrollo de proyectos 191

Si puedo:

Poner en contacto directo a desarrolladores y usuarios.

Conseguir que formen un equipo excelente y motivado.

Conseguir que toquen, interactúen y vean partes operativas del producto en fases tempranas, y enriquezcan el concepto y valor del producto.

Entonces puedo lograr productos con mayor innovación y con un valor superior al que el que habría conseguido a través de una obtención detallada de requisitos inicial y cerrada. "Preferimos el software que funciona a la documentación exhaustiva" (agilemanifesto.org)

La cuestión no es decidir cuál es el mejor modelo para los sistemas de software, sino para "este" sistema de software, con sus características determinadas:

Grado de incertidumbre del escenario tecnológico sobre el que se desarrolla.

Grado de inestabilidad del entorno de mercado del cliente.

Nitidez de la visión del producto.

Nivel de valor que por innovación necesita el cliente.

Estructura y factores sociales de las organizaciones adquirientes y suministradora.

etc. Si de lo que se trata es del programa para la gestión de un producto bancario, archiconocido, del que se pueden saber extraer y analizar todos sus requisitos al comenzar el proyecto, y para el que el cliente no espera un valor de innovación, sino eficiencia y predecibilidad de desarrollo; por muy software que sea, lo más acertado será conducir el proyecto con un modelo de gestión clásico predictivo.

Page 192: Navegápolis 2010

Desarrollo de proyectos 192

¿Cuánto he trabajado?, o¿cuánto me queda?

07.03.2007

Esta es la diferencia en la medición de tiempos entre la gestión de proyectos predictiva y la ágil. Justo ayer Richard, de Medellín, consultaba una duda frecuente al ver por primera vez la hoja de registro de un sprint: ¿Qué quieren decir las cifras de las horas trabajadas?. Hoy mismo Jeff Sutherland afirma en su blog que “medir el tiempo trabajado es anti-scrum” . Estamos tan acostumbrados a medir las horas invertidas, que al ver la hoja de scrum creemos que es un registro de tiempo trabajado, cuando en realidad se trata de: tiempo que falta para terminar.

Un ejemplo es mucho más ilustrativo: La primera tarea de "Elena" (en la figura): En la reunión diaria del 1 de febrero dice que va a trabajar en esa tarea y que estima que le quedan 40 horas para terminarla. Al día siguiente Elena dice que va a seguir trabajando en esa tarea y que le quedan 35 (?). ¿Qué pasó? ¿Sólo trabajó ayer 5 horas?. Esa no es la cuestión. Pudo trabajar 5, 8 ó 10. Seguramente surgió algo que no esperaba, y lo que parecía fácil no lo es tanto. En la tarea de Antonio, el primer día estima que le quedan 30 horas de trabajo, y el segundo sólo 15.

Page 193: Navegápolis 2010

Desarrollo de proyectos 193

La cuestión no es cuánto tiempo trabajó, sino que hoy estima que le quedan 15. Que la tarea en la que está trabajando progresa, y lo hace a un ritmo mayor del previsto ayer.

En el primer caso había una infra-estimación, y en el segundo una sobre-estimación. El síntoma del problema es un gráfico de avance del ciclo o sprint de desarrollo que se aleja en una u otra dirección de la diagonal ideal. Al desarrollo ágil no le gusta medir conformidades o magnitudes que no tienen que ver con el avance del proyecto. No le interesa cuánto se ha trabajado, sino cuánto queda. Sé que estoy avanzando si disminuye el nº de horas de trabajo que me faltan; y no si aumentan las horas que llevo trabajadas. La gestión ágil verifica el avance del proyecto midiendo el tiempo que le queda para terminar, mientras que la gestión tradicional

Page 194: Navegápolis 2010

Desarrollo de proyectos 194

lo hace midiendo el tiempo que ya ha trabajado. La razón es que la gestión tradicional parte de un plan que debe cumplir, y la ágil no.

De todas formas suele pasar lo que me comentaba Marta. Por razones de gestión, medimos lo que nos falta. Por razones administrativas los departamentos financieros de la empresa necesitan métricas del trabajo invertido (sobre todo si el proyecto en los libros contables representa una inversión). Así que al final medimos ambas cosas :-)

Page 195: Navegápolis 2010

Desarrollo de proyectos 195

Calcular la fecha de fin de proyecto

11.04.2007

Algunos procedimientos para calcular la fecha de llegada a puerto: 1.- Comparar los días transcurridos con los planificados. (Método del directivo) Si el viaje tiene una duración prevista de 30 días y llevamos 20 de navegación, se puede responder que faltan 10 días. 2.- Comparar las horas de trabajo realizadas con las planificadas. (Método del consultor) No estaría de más comprobar que los motores no están parados, y trabajan al ritmo previsto usando una métrica del tipo: ¿Cuantos litros de combustible habíamos previsto gastar?, ¿Cuántos hemos gastado? 3.- Comparar el trabajo realizado con el planificado. No cuántas horas se han trabajado sino cuánto se ha producido. (Método del gestor de proyectos clásico) ¿Cuántas millas hemos recorrido desde el puerto de salida? Las dos primeras no parecen muy fiables. La tercera sí que lo es cuando el plan del viaje conoce con precisión el destino, la ruta y la distancia. 4.- No medir lo que ya se ha hecho, sino lo que falta por hacer. (Método del gestor de proyectos ágil) La gestión ágil no mide ni el trabajo recorrido, ni el esfuerzo realizado, sino la distancia que queda y la velocidad de avance tomando el sextante a diario para comparar cuánto más cerca que ayer está hoy del destino. Si se puede definir con precisión el producto final, y trazar un plan fiable de ejecución, es más eficiente emplear gestión clásica que gestión ágil. Si no se puede precisar el objetivo ni la ruta, ¿por qué hacer un plan y medir sobre él? Las métricas de la gestión predictiva no son fiables en la gestión ágil.

Page 196: Navegápolis 2010

Desarrollo de proyectos 196

Los requisitos del sistema y el product backlog

21.05.2007

La ingeniería del software clásica diferencia dos áreas de requisitos: requisitos del sistema, y requisitos del software. A los primeros los sitúa en el proceso de adquisición, haciendo por tanto al cliente responsable de definir cuál es su problema y qué funcionalidades tiene que aportar la solución. No importa que sea gestión tradicional o ágil. Esta sigue siendo la responsabilidad del cliente, aunque por supuesto las formas son diferentes.

Los requisitos del sistema suelen especificarse en

documentos formales; y el product backlog, o pila del

producto toma la forma de una lista de historias de

usuario.

Los requisitos del sistema formales se especifican

completamente en el inicio del ciclo de desarrollo, el

product backlog es un documento vivo que se va

Page 197: Navegápolis 2010

Desarrollo de proyectos 197

desarrollando durante todo el ciclo de desarrollo de

forma concurrente con el resto de actividades.

Los requisitos del sistema los desarrolla una persona o

equipo especializado en ingeniería de requisitos a

través del proceso de obtención con el cliente. En

Scrum la visión del cliente es conocida por todo el

equipo y el product backlog se realiza y evoluciona de

forma continua con las aportaciones de todo el

equipo.

Pero la responsabilidad es del cliente, en el caso de scrum

"propietario del producto", que tiene la responsabilidad de

decidir lo que se incluye en la lista, y el orden de prioridad.

El product backlog es la relación de las funcionalidades,

mejoras, tecnología y corrección de errores que deben

incorporarse al producto a través de las sucesivas iteraciones

de desarrollo.

Representa todo aquello que esperan los clientes, usuarios, y

en general todos los interesados en el producto.Todo lo que

suponga un trabajo que debe realizar el equipo tiene que estar

reflejado en el backlog.

Estos son algunos ejemplos de posibles entradas de un

backlog:

Permitir a los usuarios la consulta de las obras publicadas por

un determinado autor.

Reducir el tiempo de instalación del programa.

Mejorar la escalabilidad del sistema.

Permitir la consulta de obra a través de un API web.

A diferencia de un documento de requisitos del sistema, el

product backlog nunca se da por completo; está en continuo

crecimiento y evolución.

Habitualmente se comienza a elaborar con el resultado de una

reunión de "fertilización cruzada" o brainstorming en la que

Page 198: Navegápolis 2010

Desarrollo de proyectos 198

colabora todo el equipo partiendo de la visión del propietario

del producto.

El formato de la visión no es relevante. Según los casos,

puede ser una presentación informal del responsable del

producto, un informe de requisitos del departamento de

marketing, etc.

Sí que es importante sin embargo disponer de una visión real,

comprendida y compartida por todo el equipo.

La pila del producto evolucionará de forma continua mientras

el producto esté en el mercado, para proporcionarle

constantemente el mayor valor posible, y que resulte en todo

momento útil y competitivo.

Lo necesario para comenzar a desarrollar el producto es

disponer de una visión comprendida y conocida por todo el

equipo, y elementos suficientes en la pila del producto para

llevar a cabo el primer sprint.

Formato de la pila del producto

El desarrollo ágil prefiere la comunicación directa, antes que a través de documentos. La pila del producto no es un documento de requisitos, sino una herramienta de referencia para el equipo. El formato debe ser el de una lista que incluya al menos la siguiente información para cada línea:

Identificador único de la tarea.

Descripción de la tarea.

Criterio de validación

Page 199: Navegápolis 2010

Desarrollo de proyectos 199

Campo o sistema de priorización. Dependiendo del tipo de proyecto y funcionamiento del equipo y la organización, pueden resultar aconsejables otros campos:

Observaciones

Estimación

Persona asignada

Nº de Sprint en el que se realiza

Módulo del sistema al que pertenece

Etc. Scrum no debe tomarse como un protocolo rígido. El formato del product backlog no es cerrado. Los resultados de scrum no dependen de la rigidez en la aplicación del protocolo, sino de la institucionalización de sus principios y la implementación en un "formato" adecuado a las características de la empresa y del proyecto.

Page 200: Navegápolis 2010

Desarrollo de proyectos 200

Scrum: reunión de planificación del sprint

31.05.2007

Descripción general En esta reunión, tomando como base las prioridades y necesidades de negocio del cliente, se determinan cuáles y cómo van a ser las funcionalidades que se van a aportar al producto durante el próximo sprint. En realidad esta reunión consiste en dos: En la primera, que puede tener una duración de una a cuatro horas, se decide qué elementos de la pila del producto (product backlog) se van a desarrollar. En la segunda se desglosan estos elementos para determinar todas las tareas necesarias, se estiman y asignan a las personas del equipo. La planificación del sprint no debe durar más de un día.

Page 201: Navegápolis 2010

Desarrollo de proyectos 201

Las características de la reunión son:

Pre-condiciones La organización tiene determinados los recursos posibles

para llevar a cabo el sprint.

El propietario del producto tiene preparada la pila del producto: priorizada y con elementos suficientes para desarrollar el sprint.

Siempre que sea posible el propietario del producto debe haber trabajado previamente con el equipo. De esta forma la estimación de cuántos elementos de la pila se pueden desarrollar en el sprint será bastante ajustada.

El equipo tiene un conocimiento de las tecnologías empleadas, y del negocio del producto suficiente para realizar estimaciones basadas en "juicio de expertos", y para comprender los conceptos del negocio que expone el propietario del producto.

Entradas La pila del producto.

El producto desarrollado hasta la fecha a través de los sucesivos incrementos (excepto si se trata del primer sprint)

Circunstancias de las condiciones de negocio del cliente y del escenario tecnológico empleado.

Resultados

Pila del sprint.

Duración del sprint y fecha de la reunión de revisión.

Objetivo del sprint. Es una reunión conducida por el scrum manager, a la que deben asistir el propietario del producto y el equipo al completo, y a la que también pueden asistir otros implicados en el proyecto (gallinas). La reunión comienza con la presentación del propietario del producto del product backlog, en la que expone los resultados que, por orden de prioridad, necesita; especialmente los que prevé que se podrán desarrollar en el siguiente sprint. Si el product backlog ha tenido cambios significativos desde la anterior reunión; explica también las causas que los han ocasionado.

Page 202: Navegápolis 2010

Desarrollo de proyectos 202

El objetivo es que todo el equipo conozca las razones y los detalles con el nivel necesario para determinar el trabajo necesario y poder estimarlo.

Formato de la reunión Esta reunión marca el inicio de cada sprint. El Scrum Manager es el responsable de su organización y gestión. Duración máxima: un día. Deben asistir: el propietario del producto, el equipo y el scrum manager. Pueden asistir: es una reunión abierta a todos los que puedan aportar información útil. Consta de dos partes separadas por una pausa de café o comida, según la duración. Primera parte Duración de 1 a 4 horas Propietario del producto Presenta las las funcionalidades de la pila del producto de mayor prioridad que él desea y estima que es posible realizar en el sprint. La presentación se hace con un nivel de detalle suficiente para transmitir al equipo toda la información necesaria para realizar el trabajo. El equipo Realiza las preguntas y solicita las aclaraciones necesarias. Propone sugerencias, modificaciones y soluciones alternativas. Las aportaciones del equipo pueden suponer modificaciones en la pila del producto. De hecho no es que "puedan" es que "deben" suponerlas. Esta reunión es un punto caliente del protocolo de Scrum para favorecer la fertilización cruzada de ideas en equipo y añadir valor a la visión del producto. Tras reordenar y replantear las funcionalidades de la pila del producto, el equipo define el "objetivo del sprint" o frase que define de forma sintética cuál es el valor que se le aportará al producto.

Page 203: Navegápolis 2010

Desarrollo de proyectos 203

Exceptuando sprints dedicados exclusivamente a re-factorización o a colecciones de tareas deslavazadas (que deberían ser los menos), la elaboración de este lema de forma conjunta en la reunión es una garantía de que todo el equipo comprende y comparte la finalidad del trabajo; y durante el sprint sirve de criterio de referencia en las decisiones que auto-gestiona el equipo. Segunda parte En la segunda parte, que puede alargarse hasta el final de la jornada El equipo desglosa cada funcionalidad en tareas, y estima el tiempo para cada una de ellas, determinando de esta forma los elementos de la pila del producto que se van a desarrollar. En este desglose el equipo tiene en cuenta los elementos de diseño y arquitectura que deberá incorporar el sistema. Los miembros del equipo se auto-asignan las diferentes tareas teniendo como criterios sus conocimientos, intereses y distribución homogénea del trabajo. Con esta información el equipo elabora el sprint backlog, o pila del sprint. Esta segunda parte debe considerarse como una "reunión del equipo", en la que deben estar todos sus miembros y ser ellos quienes descomponen el trabajo en tareas, las asignan y estiman. El papel del propietario del producto en esta parte es atender a dudas y comprobar que el equipo comprende y comparte su objetivo. El scrum manager actúa de conductor o moderador de la reunión.

Funciones del Scrum Manager El scrum manager es el responsable y garante de: 1.- Se realiza esta reunión antes de cada sprint. 2.- Que antes de la reunión que el propietario del producto disponga de una pila de producto adecuada y suficiente para realizar el sprint. 3.- Que el diálogo principal de la reunión se realice entre el propietario del producto y el equipo. Otros asistentes pueden participar, pero su colaboración no puede implicar toma de decisiones ni limitar el diálogo principal.

Page 204: Navegápolis 2010

Desarrollo de proyectos 204

4.- Que la reunión sea un trabajo de colaboración activa entre los dos protagonistas: cliente y equipo, y concluyen con un acuerdo sobre el incremento de producto que van a realizar en el sprint. 5.- Que el equipo comprende la visión y necesidades de negocio del cliente. 6.- Que el equipo ha realizado una descomposición y estimación del trabajo realistas y ha considerado las posibles tareas necesarias de análisis, investigación o apoyo. 7.- Que al final de la reunión están objetivamente determinados:

los elementos de la pila del producto que se van a ejecutar.

el objetivo del sprint.

La pila de sprint con todas las tareas estimadas y asignadas.

La duración del sprint y la fecha de la reunión de revisión.

El Scrum Manager Modera la reunión para que no dure más de un día. Debe evitar que el equipo comience a profundizar en trabajos de análisis o arquitectura que son propios del sprint.

Page 205: Navegápolis 2010

Desarrollo de proyectos 205

El “Gantt” ágil

27.09.2007

En la gestión predictiva, la "bola de cristal" con visión global de proyecto es el diagrama de Gantt. ¿Y en la gestión ágil?. El modelo ortodoxo de Scrum trabaja con el Gráfico Burn-Down, pero es una bola de cristal que alumbra con "cortas": sólo al sprint actual. Para vaticinar el proyecto "con largas", apuntando más lejos en la dirección de la visión del cliente, es muy útil el gráfico Burn-Up. Es una herramienta de planificación y seguimiento del propietario del producto, que muestra en un gráfico muy simple el plan general de desarrollo del producto, y la traza de su evolución. Se confecciona con:

La estimación de esfuerzo prevista en el product backlog.

La velocidad del equipo.

El eje X representa el tiempo de desarrollo con las fechas de los sprints previstos.En el área del gráfico se proyecta la línea que representa la velocidad de desarrollo del equipo.

Page 206: Navegápolis 2010

Desarrollo de proyectos 206

Este dato se obtiene sobre el histórico de velocidad desarrollada por el mismo equipo en proyectos o sprints anteriores. Si no se tiene información histórica, un buen dato para comenzar es utilizar “tiempo real” como unidad para el esfuerzo y la velocidad (horas o días reales) y suponer como velocidad del equipo un tercio del tiempo disponible de trabajo. Ejemplo: Par un equipo de 3 personas y sprints de 20 días laborables, el tiempo disponible es de: 3 * 20 = 60 días disponibles. Velocidad previsible: 20 (60/3). La intersección de los hitos en Y del esfuerzo previsto para una versión, con la línea de velocidad prevista, proyecta sobre X la fecha en la que previsiblemente estarán desarrolla la versión. Si las estimaciones se realizan considerando valores optimistas y pesimistas de velocidad, o de esfuerzo necesario, se obtienen rangos de fechas de probabilidad.

Page 207: Navegápolis 2010

Desarrollo de proyectos 207

Clientes y gestores hablando idiomas diferentes

18.10.2007

El nuevo escenario de negocio de muchos sectores necesita modelos diferentes para desarrollar sus productos. Las circunstancias de los mercados y de las empresas no se pueden cambiar, y es la gestión de proyectos la que debe adaptarse y responder a las nuevas necesidades. Las empresas acuden a los expertos en procesos de desarrollo con descripciones abiertas, solicitando adaptación continua y valor, y éstos les piden descripciones cerradas y les ofrecen garantías de cumplimiento de un plan.

Ahora es necesario desarrollar y construir el producto a la par de la investigación y del descubrimiento de los requisitos, y hacerlo con la capacidad de adaptarse a los cambios dictados por el entorno.

Page 208: Navegápolis 2010

Desarrollo de proyectos 208

El cliente conoce la visión de su producto pero por la novedad, el valor de innovación que necesita y la velocidad a la que se va a mover el escenario tecnológico y de negocio durante el desarrollo no puede detallar cómo será el producto final. ¡Ah!. Pero, ¿existe el producto final? Quizá ya no hay “productos finales”, sino productos en evolución, revisión mejora o incremento continuo a partir de la versión beta

Page 209: Navegápolis 2010

Desarrollo de proyectos 209

9 Bloques: rutina para obtener requisitos con Scrum

18.12.2007

"La parte más difícil en la construcción de sistemas de software es decidir precisamente qué construir"

(Frederick P. Brooks Jr.) El 60% de los problemas de los proyectos tienen su origen, directa o indirectamente en los requisitos; y los problemas de los requisitos surgen por alguna de estas razones: 1.- El cliente no tiene una visión clara de lo que quiere. 2.- El suministrador obtiene los requisitos superficialmente, quizá siguiendo un proceso, pero sin "sumergirse" en conocer el negocio del cliente y realizar desde ahí el análisis. 3.- Implicación y comunicación cliente-equipo de desarrollo. La mejor solución para el tercer punto es resolverlo vía proceso: integrando en el proceso de desarrollo la participación y comunicación del cliente. Si se trabaja con Scrum, se tiene resuelto, porque el propio modelo implica al cliente en el proyecto como "product owner", responsable de la visión del producto ("product backlog"), y define prácticas para la comunicación con el equipo y la monitorización del proyecto (reuniones de inicio y revisión de sprint) Pero además de que el cliente esté implicado y en comunicación con el equipo, es necesario disponer de una visión clara del objetivo, y comprender y analizar el entorno del problema. Para estos dos puntos no se puede confiar la solución a un proceso, porque ésta se alcanza más por el conocimiento tácito de las personas, que por el explícito del procedimiento de obtención y análisis de requisitos. Si el equipo está formado por el tipo de personas que Keith M. Eades denomina "Águilas", en su libro The New Solution Selling, (Eades, 2003)

Page 210: Navegápolis 2010

Desarrollo de proyectos 210

contará con la suficiente intuición y conocimiento tácito para identificar las necesidades y la solución necesaria, sin precisar especial apoyo en los procedimientos, pero si no es así, o si se encuentra con puntos especialmente difusos, la ayuda de una rutina puede resultar muy útil, y la que expone el mismo Keith en su libro, puede ser muy apropiada para incluirla en el inventario de recursos del equipo. La rutina que puede emplearse para ayudar a la obtención y análisis de los requisitos se denomina de "9 bloques" y se puede echar mano de ella tanto a nivel de visión general, como a nivel de elementos concretos del baklog. En el primer es una rutina útil para el responsable del funcionamiento de Scrum, cuando se encuentra con un cliente que tiene dificultades para definir la visión y priorizar un backlog; y en segundo, para el equipo, cuando en una reunión de principio e sprint se topa con algún punto de backlog, especialmente difuso o difícil de comprender. Consiste en interrogar el problema con tres tipos de preguntas: 1.- Abiertas 2.- Concretas 3.- De confirmación Y hacerlo de forma secuencial a través de las tres áreas de investigación: 1.- Diagnóstico del problema o necesidad 2.- Alcance del problema 3.- Visualización de la solución La representación gráfica de esta técnica de ayuda, forma una matriz de 3x3 que le da el nombre de "9 bloques".

Page 211: Navegápolis 2010

Desarrollo de proyectos 211

La rutina consiste en: 1 Diagnosticar cuál es el problema o la necesidad del cliente

1.a Partiendo de la descripción general de la situación 1.b Acotando y resolviendo dudas y ambigüedades 1.c Contrastando que cliente e interlocutores comparten la misma conclusión

2.- Cuál es el ámbito del problema o de la necesidad

2.a Partiendo de la descripción general de la situación 2.b Acotando y resolviendo dudas y ambigüedades 2.c Contrastando que cliente e interlocutores comparten la misma conclusión

3.- Cuál es la solución que se desea conseguir

3.a Partiendo de la descripción general 3.b Acotando y resolviendo dudas y ambigüedades 3.c Contrastando que cliente e interlocutores comparten la misma visión

Page 212: Navegápolis 2010

Desarrollo de proyectos 212

LOS TRES TIPOS DE PREGUNTAS Preguntas abiertas Son la primeras que se deben plantear, para permitir al cliente expresar libremente, desde su experiencia y conocimiento del negocio, el problema o la necesidad. En ellas es importante mantener una escucha activa, sin ideas pre-concebidas. Son preguntas del tipo: ¿Qué es lo que no te gusta del sistema actual? ¿Qué quiere conseguir la empresa (el departamento, el ayuntamiento, el proyecto...) con este nuevo programa?, ¿Qué cosas mejorarías a la aplicación actual (a la aplicaciones de la competencia...)? ¿La mejoras son necesarias en turismo, o en todas las áreas? ¿Necesitáis mejorar las funcionalidades y el interfaz de los usuarios, o también del backoffice? ¿Qué es lo que haría feliz al usuario?, ¿Cómo deberían ser los resultados? ¿Cuáles son las soluciones o las partes de las soluciones de otros productos que más se parecen a lo que se debería conseguir? Preguntas de control La exposición abierta de las razones y necesidades del cliente plantearán dudas, y para darles respuesta y concreción se plantean preguntas de control que requieran respuestas concreas del tipo sí o no; o cifras y datos precisos. Son preguntas del tipo: ¿Cuáles son, por orden de prioridad, los 3 principales objetivos que quiere cubrir la empresa con este sistema?, ¿Qué nº de nuevos usuarios se quieren alcanzar como mínimo con las mejoras de usabilidad?, ¿Se puede seguir empleando el módulo de préstamos durante 2009?... ¿Cuántos departamentos tiene la empresa? ¿Cuántos tipos de informes necesita un departamento? ¿Cuántos tipos de expedientes diferentes hay entre los tramitados en un año?

Page 213: Navegápolis 2010

Desarrollo de proyectos 213

¿Cuánto tiempo debería costar validar un informe? ¿Cuánto tiempo debería costar hacer una compra? ¿Cuáles serían algunos ejemplos de preguntas de usuario que debería resolver el sistema, sin ayuda de operadores? ¿Además del nº de socio se podría facilitar también otros datos como DNI, e-mail, firma digital...? De confirmación Después de entender y acotar el problema, su ámbito o la solución (según el área de investigación en la que nos encontremos), es necesario contrastar que todos estamos entendiendo lo mismo para evitar interpretaciones erróneas, o diferentes sobre algún requisito ambiguo. Son preguntas del tipo: Entonces, ¿no se puede lanzar ninguna versión hasta que no incluya una auditoría de modificaciones?. Si el usuario necesitara más de 1 minuto para darse de alta, ¿no serviría?. Por lo que has dicho, entiendo que el año se podría cerrar con las consultas actuales, pero sería un problema muy grave para la imagen de la marca que los clientes no hayan percibido mejoras sustanciales de usabilidad, ¿no?.

EL FONDO DE LA RUTINA Consiste en organizar el trabajo de obtención y análisis en una secuencia de dos dimensiones: 1.- A través de tres áreas clave, que es aconsejable despejar por orden para ayudar al trabajo de análisis. En primer lugar se trata de diagnosticar las razones y los porqués del cliente. Dimensionar después el alcance de esas razones en el entorno del negocio, y finalmente visualizar las posibles soluciones. 2.- En cada una de estas áreas clave, proceder de lo genérico a lo concreto, validando la información obtenida.

Page 214: Navegápolis 2010

Desarrollo de proyectos 214

Niveles de zoom de los requisitos ágiles

28.01.2008

Al tratar los requisitos en un proyecto ágil, me viene bien considerar que entre la visión del cliente, y las tareas de trabajo diarias, hay 3 niveles de "zoom"

El nivel es un punto de referencia sobre la forma de gestionar los requisitos, y las implicaciones o información que pueden suministrar en otros estratos. Niveles “de gestión del equipo” PRODUCTO: Ámbito del sistema: descripción de las áreas o módulos o funcionalidades. En la ingeniería del software ortodoxa equivaldría a los requisitos del sistema o ConOps. En un proyecto ágil, este es un "backlog" con la lista de funcionalidades generales del producto. Descritas de forma general, pero con las características de un backlog: priorizadas según los criterios de negocio, y con una estimación previa. Reflejaría el eje Y del gráfico Burn Up, en el que el cliente proyecta la previsión de desarrollo del producto a través de futuras versiones. VERSIÓN: Próximo objetivo de producto al que apunta. Lo que Scrum estricto considera el "product backlog", aunque desde esta

Page 215: Navegápolis 2010

Desarrollo de proyectos 215

perspectiva de tres niveles de trabajo para requisitos, los podamos considerar "release backlog". Se trata de la lista de funcionalidades con la que trabaja el equipo en las reuniones de inicio de sprint. SPRINT: El sprint backlog: la lista de tareas que se van a realizar en el sprint, que el equipo ha estimado y asignado, descomponiendo los puntos del "release backlog" que va desarrollar. TAREAS DIARIAS: Los tareas diarias que el equipo lleva a cabo y auto-gestiona durante el sprint.

Los cuatro "niveles de gesión de proyecto" se completan con VISIÓN: La descripción general del sitio al que el cliente quiere llegar, de lo que quiere conseguir. Normalmente el autor y responsable de este objetivo final no suele ser el propietario del producto, sino alguna instancia en la dirección de producto de su empresa. A partir de esa visión concebida por su organización, la persona que trabajará integrada en el equipo del producto con el rol de "propietario del producto", empieza con la elaboración del plan del producto: product backlog + gráfico Burn Up . Por esta razón, aunque resulta necesaria, su origen y responsabilidad no suele estar dentro del día a día de la gestión del proyecto.

Page 216: Navegápolis 2010

Desarrollo de proyectos 216

Agilidad Kanban

25.02.2008

Según el producto, o incluso el momento de evolución en el que está, puede resultar más dinamizador para el equipo cambiar como criterio base de "time box" el sprint backlog, por el de "mínima funcionalidad integrable". Gestionar estas "MFI" al estilo que el modelo de Producción de Toyota consideraría cada unidad Kanban. Tiene la ventaja de seguir lo más cerca posible las prioridades del cliente. La versión del Just in Time de la programación. También tiene el riesgo de que el equipo pierda la visión general del producto, y el concepto de "objetivo del sprint". Para evitarlo se deben mantener tres niveles de zoom de los requisitos del proyecto (v. pág. 214): funcionalildades de producto, de versión y tareas; y es muy útil trabajar con pizarras Kanban:

De funcionalidades Representan el trabajo, previsión y estado de las funcionalidades del sistema. Cada tarjeta kanban, o elemento de información representa una funcionalidad general de sistema. La dimensión horizontal de la pizarra representa el tiempo, de forma que en

Page 217: Navegápolis 2010

Desarrollo de proyectos 217

columnas temporales se van apilando las tarjetas con las funcionalidades que se irán cerrando en cada "versión".

De historias de usuarios Representan el trabajo, previsión y estado de avance de la versión que se está programando. Una pizarra de historias, descompone en historias de usuario, las funcionalidades de una columna de la pizarra anterior. Representa por tanto un nivel de detalle mayor sobre los requisitos del sistema. La dimensión horizontal de la pizarra representa las diversas funcionalidades separadas por columnas, y en cada una de ellas las historias de usuario en las que se descompone. De tareas Representan el trabajo y el estado de avance de la iteración en desarrollo. Las tarjetas Kanban o elementos de información representan las tareas de programación en que se descomponen las diferentes historias de usuario.Divide el espacio en 3 tres columnas. En la primera de ellas están todas las tareas pendientes de realizar. La segunda contiene las tarjetas de las tareas que actualemnte se están programando, y en la tercera la de aquellas tareas completamente terminadas. Para no perder en el equipo la visión y los intereses del producto, la que con sprints sería reunión de planificación del sprint es ahora una reunión periódica (¿mensual?), de características similares en la que el product owner y el equipo revisan las

Page 218: Navegápolis 2010

Desarrollo de proyectos 218

funcionalidades y su prioridad, y las transforman en historias de usuario y tareas.

Page 219: Navegápolis 2010

Desarrollo de proyectos 219

Midiendo velocidad, trabajo y tiempo en gestión ágil

07.05.2008

Velocidad, trabajo y tiempo son las tres magnitudes que mide la gestión de proyectos ágil. Las tres componen la fórmula de la velocidad, definiéndola como cantidad de trabajo realizada en por unidad de tiempo.

Velocidad = Trabajo / Tiempo

Tiempo En las métricas ágiles el tiempo se puede considerar de dos formas diferentes: como real o como ideal. Ambas son válidas, y cada organización opta por la que considera más adecuada para ella. Sea cual sea criterio, éste debe mantenerse de forma homogénea en todas las métricas y estimaciones. Tiempo real Tiempo efectivo de trabajo. Es equivalente a la jornada laboral. Para un equipo de cuatro personas con jornada laboral de ocho horas el tiempo real en una semana (cinco días laborables) es: 4 * 8 * 5 = 160 horas El tiempo real de ese equipo en un sprint de 12 días de trabajo es: 4 * 8 * 12 = 384 horas Tiempo ideal Tiempo de trabajo en “condiciones ideales”, esto es, sin ninguna interrupción, pausa, distracción o atención a tareas ajenas a la tarea del sprint que se tiene asignada. Es el concepto similar al que PSP denomina “Delta Time”.

Page 220: Navegápolis 2010

Desarrollo de proyectos 220

Trabajo Medir el trabajo puede ser necesario por dos razones: para registrar el ya realizado, o para estimar anticipadamente, el que será necesario realizar.En ambos casos se necesita una unidad, y un criterio de cuantificación objetivo. Trabajo ya realizado Medir el trabajo ya realizado no entraña especial dificultad. Se puede hacer con unidades relativas al producto (p. ej. líneas de código) o a los recursos empleados (coste, tiempo de trabajo…) Para medirlo basta con contabilizar las unidades que se empleen: líneas de código, horas trabajadas (reales o ideales)...

Medir el trabajo realizado NO es una métrica Ágil.

LA GESTIÓN ÁGIL NO DETERMINA EL GRADO DE AVANCE DEL PROYECTO POR EL TRABAJO YA REALIZADO, SINO

POR EL PENDIENTE DE REALIZAR Es posible que otros procesos de la organización necesiten registrarlo y medirlo, pero no la gestión ágil de proyectos. Trabajo pendiente de realizar Scrum mide el trabajo pendiente para:

Estimar el esfuerzo y la duración prevista para cada tarea.

Determinar el avance del proyecto, y en especial de cada sprint.

Para Scrum Management, estimar con precisión, de forma cuantitativa y objetiva el trabajo que necesitará la construcción de un requisito, es un empeño más que cuestionable. El trabajo de un requisito no se puede cuantificar de forma absoluta, porque las funcionalidades no son realidades de solución única. La “cantidad de trabajo” que consumirá cada funcionalidad o cada historia de usuario no se puede calcular de forma absoluta y objetiva; y en el caso de que se pudiera, la complejidad de la medición haría que la métrica resultante fuera demasiado pesada para la gestión ágil.

Page 221: Navegápolis 2010

Desarrollo de proyectos 221

Y si no resulta posible estimar con precisión la cantidad de trabajo que hay en un requisito, tampoco se puede saber cuánto tiempo costará, porque además de la incertidumbre del trabajo, se suman las inherentes al “tiempo”:

No es realista hablar de de la cantidad o de la calidad del trabajo que realiza una persona al día, o a la hora, porque hay diferencias muy grandes de estos resultados, según las personas.

Un misma tarea, realizada por las mismas personas consumirá diferentes tiempos reales en entornos de trabajo diferentes

Sobre estas tres premisas:

No es posible estimar con precisión, ni el trabajo de un requisito, ni el tiempo necesario para desarrollarlo.

La complejidad de las técnicas de estimación crece exponencialmente en la medida que:

Intentan incrementar la fiabilidad y precisión de los resultados.

Aumenta el tamaño de la tarea estimada. La estrategia empleada por la gestión ágil es:

No empeñarse en estimaciones precisas.

Estimar con la técnica “juicio de expertos”

Descomponer las tareas de los sprints en sub-tareas más pequeñas, si las estimaciones superan los rangos de las 16-20 horas de de trabajo.

Unidades de trabajo Las unidades para medir el trabajo pueden estar directamente relacionadas con el producto, como los tradicionales puntos de función de COCOMO, o a través del tiempo necesario para realizarlo. La gestión ágil suele llamar a las unidades que emplea para medir el trabajo “puntos”, “puntos de funcionalidad” “puntos de historia”… pero se trata siempre de medición a través del tiempo, no del producto. Así por ejemplo la unidad de medida “Story Point” de Extreme Programming define: la cantidad de trabajo que se realiza en un día de trabajo ideal.

Page 222: Navegápolis 2010

Desarrollo de proyectos 222

Cada organización, según sus circunstancias y su criterio institucionaliza su métrica de trabajo definiendo el nombre y la definición de las unidades teniendo en cuenta que se basan en el tiempo necesario para ejecutarlo. Pueden ser: puntos, puntos de función, puntos de historia, días, horas… y referirse a tiempo real o tiempo teórico. Lo importante no es si emplea uno u otro nombre, si se refiere al trabajo realizado en cuatro o en ocho horas, o si éstas son reales o teóricas. Lo importante es que la métrica empleada, su significado y la forma de aplicación sea consistente en todas las mediciones, en todos los proyectos de la organización y conocida por todas las personas: Que se trate de un procedimiento de trabajo institucionalizado. ¿Velocidad, o eficiencia? Los equipos que miden el trabajo con tiempo ideal, hablan de “Velocidad”. En los que usan tiempo real se dice que es “eficiencia”. Al decir, por ejemplo, que la velocidad del sprint ha sido de 23, se refieren a que han completado tareas que medían en toral 23 story points. Si en el sprint siguiente consiguen una velocidad mayor, querrá decir que han logrado programar más story points en el mismo tiempo, o lo que es lo mismo que han conseguido aumentar el porcentaje de tiempo ideal en la jornada de trabajo: han reducido los tiempos de interrupciones, distracciones o dedicados a otras tareas. Para los equipos que miden el trabajo con tiempo real, la fórmula de la velocidad, como concepto “velocidad” pierde sentido.

Velocidad = trabajo / tiempo Como el trabajo en tiempo real, numerador y denominador emplean la misma cifra:

Page 223: Navegápolis 2010

Desarrollo de proyectos 223

Velocidad = Trabajo que se puede realizar en la unidad de

tiempo / tiempo Estos equipos no incrementan la velocidad por dedicar más tiempo efectivo, puesto que no diferencian entre tiempo ideal y tiempo total. Para incrementar la velocidad, lo que deben hacer es conseguir realizar más trabajo en el mismo tiempo. En realidad es el mismo perro con distinto collar El objetivo en el primer caso es aumentar el porcentaje de tiempo ideal, y en el segundo aumentar los story points que se pueden realizar. Se le puede llamar velocidad o eficiencia, lo importante no son los nombres, ni merece la pena entrar en cuestiones bizantinas. Quizá sea más consecuente hablar de “velocidad” su se trabaja con tiempo ideal, y eficiencia si se hace con tiempo real.

Page 224: Navegápolis 2010

Desarrollo de proyectos 224

Los gestores de proyectos ágiles no existen

30.11.2008

Un gestor de proyectos, gestiona proyectos: mide el trabajo, lo descompone, asigna y planifica tareas, sigue la ejecución... Un equipo ágil se auto-gestiona: mide el trabajo, lo descompone, se asigna las tareas, monitoriza el avance... Y como una cosa no puede ser ella misma y su contraria, no es posible gestionar el proyecto de un equipo auto-gestionado. En este caso lo que corresponde es gestionar el sistema (eco-sistema) que hace posible la agilidad: un entorno capaz de obtener el valor del talento, más que el trabajo de los recursos; porque con el software se puede trabajar de forma mecánica o creativa; que el soft es sólo la materia prima: "las palabras", y con ellas lo mismo construye el mecanógrafo, que crea el novelista o el poeta.

Page 225: Navegápolis 2010

Desarrollo de proyectos 225

Coordinación de varios equipos en un mismo proyecto

07.12.2008

El marco de trabajo ágil óptimo es un equipo único de no más de 6 ó 7 personas. La pérdida de eficiencia por el crecimiento de la estructura afecta también a un modelo ágil, y toma mayor dimensión si los equipos están físicamente separados. Teniendo esto en cuenta, si el proyecto lo requiere, es posible emplear equipos de sincronización para coordinar en el mismo a varios equipos. Se debe poner como primer elemento en la pila del producto (backlog), la construcción de la línea base de la arquitectura. Lo

que Andy Hunt en "The Pragmatic Programmer" (Hunt & Thomas, 1999) denomina como "bala trazadora".

Las mesas de coorinación deben conseguir que las historias de cada equipo tengan la mayor coherencia funcional posible, y a la vez, la menor dependencia con las de otros equipos.

Page 226: Navegápolis 2010

Desarrollo de proyectos 226

Las mesas de coordinación de primer nivel se reunen diariamente, o día sin otro, después de haber realizado todos los equipos que la forman, la reunión diaria de seguimiento. Las mesas de coordinación de segundo nivel pueden reunirse una o dos veces por semana, en función del nivel de independencia de las historias de backlog distribuidas.

Recomendaciones:

La mayor prioridad de la pila de producto es construir la base de arquitectura y alguna funcionalidad que demuestre su funcionamiento.

El desarrollo comienza con un sólo equipo, encargado de armar la infraestructura y la arquitectura base, que permita trabajar de forma simultánea a varios equipos.

Los miembros de este primer equipo se distribuyen entre el resto de equipos cuando se van incorporando.

Las historias de la pila de producto se agrupan (normalmente a través de una columna adicional) en "relatos" (epics), que representen sub-sistemas funcionales completos, de forma que cada grupo tiene la mayor cohesión funcional posible.

Las mesas de coordinación procuran asignar los relatos a los mismos equipos.

Page 227: Navegápolis 2010

Desarrollo de proyectos 227

Sprint y plan de producto vistos como carreras

04.04.2009

Tomando el concepto de "carrera" que propone Alistair Cockburn para simplificar los gráficos de incremento de valor (burn-up), un par de ideas:

Usarlo para ver los sprints como "carreras".

Complemento de los planes de producto trazados con gráficos burn-up.

El sprint visto como "sprint". Vamos, que el nombre de gráfico o representación de la carrera, le va un montón ;-) Puede complementar o sustituir al gráfico burndown.

La pista representa los puntos del sprint (en orden descendente, para mostrar el esfuerzo pendiente ). El conejo refleja cada día el punto en el que deberíamos estar. El galgo representa el punto en el que nos encontramos.

Page 228: Navegápolis 2010

Desarrollo de proyectos 228

El plan de producto visto como una carrera En este caso, por ser una representación de valor ganado (burn-up), la pista representa los puntos de producto en orden ascendente. El conejo representa en cada momento el punto en el que se deberia encontrar el producto, y el galgo, el punto en el que está.

Page 229: Navegápolis 2010

Desarrollo de proyectos 229

Productividad

16.05.2009

Las empresas que desarrollan texto, las "texto-factory", deben ser muy cuidadosas en la contratación de personal, porque las diferencias de productividad y calidad entre los mediocres y los mejores es muy grande; siendo, generalmente, los mecanógrafos los más productivos, seguidos de traductores, notarios, novelistas y por último los poetas. Pero aunque esto es lo habitual, tampoco hay que actuar con prejuicios, porque siempre hay excepciones, además de que dentro de cada categoría también hay diferencias muy grandes; y así, por ejemplo, entre los novelistas, los hay tan buenos como Corín Tellado, que con una obra de más de 4.000 libros, deja muy atrás a mediocres como Cela o tantos otros. Estas empresas necesitan modelos de ingeniería con procesos que midan objetiva y cuantitativamente la eficiencia con alguna de las métricas que ha desarrollado la "Ingeniería del Texto", como puede ser el número de líneas (LOC LOT) por hora, o por día; y la calidad, a través de la densidad de erratas y faltas de ortografía.

Page 230: Navegápolis 2010

Desarrollo de proyectos 230

¿Scrum, PMI o Flexibilidad?

15.09.2005

Tener los requisitos cerrados antes de empezar a programar, y trazar con ellos un plan completo ¿es bueno o malo? La respuesta es distinta si le preguntas a PMI o si le preguntas a la agilidad. Para PMI cada modificación de requisitos es una amenaza para el plan del proyecto, una incidencia que hay que medir y gestionar sus consecuencias. Para la agilidad cada modificación de requisitos es una nueva aportación que va a hacer más valioso el resultado para el cliente. Si nos planteamos si será mejor PMI o Scrum ya nos hemos limitado las opciones. Si el planteamiento fuera o A, o B, un proyecto cerrado que debe ejecutarse en un plazo relativamente breve por un equipo habituado al trabajo ágil, sería un problema sin solución. Como los ejemplos suelen ser más claros, traigo el que surgió la semana pasada de una posible estrategia flexible para abordar un proyecto real que con requisitos y fecha de entrega cerrada; un plazo de ejecución relativamente corto (tres meses) y un entorno de trabajo ágil: .... Considerando: - No es previsible la inestabilidad de requisitos, por lo que los requerimientos pueden considerarse cerrados o bastante cerrados desde el principio. - Se ha dado ya un plazo de 3 meses al cliente. Haría una previsión global del proyecto (algo que parece propio de gestión predictiva) 1.- Analizaría los requerimientos (puesto que los tienes completos y cerrados) y extrairía el gran "epic" o los grandes epics (no deberían ser muchos, son las grandes historias o fines

Page 231: Navegápolis 2010

Desarrollo de proyectos 231

del sistema)... para tener clara la visión del proyecto, y lo que el cliente quiere obtener. 2.- Descompondría esos requerimientos en historias de usuario y compondría un backlog. 3.- Haría una estimación temprana por juicio de experto de ese backlog. Dicho llanamente: si tienes experiencia en trabajar de forma ágil con tu equipo, haría la estimación que por mi experiencia considero más probable para cada tarea. Si no tienes experiencia en trabajar de forma ágil con el equipo, llamaría al director técnico del equipo, o varios miembros, y les pediría que hicieran una estimación de las tareas (quizá emplearía estimación de póquer). 4.- ¿Es viable?. Con estos datos ya vería si parece que es un proyecto sensato, o si voy a arrancar una marcha fúnebre 5.- En el segundo caso, lo mejor es tratar el tema con los directivos del proyecto antes de empezar. (aunque a veces te puede buscar problemas según la apertura y sentido común de los directivos del proyecto) Haría una ejecución ágil para tener seguimiento cercano del avance real del proyecto y detectar posibles desvia-ciones rápidamente (porque el plazo es relativamente corto: 3 meses) 6.- Si se ve un margen de viabilidad aceptable, transmitiría la visión al equipo, o identificaría a quién debe asumir esta responsabilidad de Propietario del producto y empezaría a cortar el backlog y seguir un ciclo scrum.

Page 232: Navegápolis 2010
Page 233: Navegápolis 2010

Empresa y mercado 233

Empresa y mercado

Page 234: Navegápolis 2010

Empresa y mercado 234

La incompetencia calificada de los comités

20.01.2005

Los comités de dirección son un buen invento. En ellos se integra a un grupo escogido de managers para lidiar con los problemas de la organización. Para conducir proyectos interdisciplinares o resolver bretes que implican a diferentes departamentos también los comités resultan una solución muy socorrida, pero... ¿en su organización se dan los dos factores necesarios para que los comités resulten realmente eficientes? 1.- ¿Su empresa está cohesionada o fragmentada? 2.- ¿Su empresa tiene asumida una cultura de aprendizaje? 1.- ¿Su empresa está cohesionada o fragmentada? Frecuentemente los equipos administrativos, simulan respaldar la estrategia común de la organización, para mantener la apariencia de un equipo cohesionado, cuando en realidad emplean la dirección de sus estrategias en la defensa de su "territorio", evitando todo aquello que pudiera dañarles. Para mantener esta simulación callan sus desacuerdos y sus reservas. Estos comités terminan emitiendo o bien tibias mezclas aritméticas de intereses, reflejo de lo que es aceptable para todos, o la decisión del miembro predominante del grupo. 2.- ¿Su empresa tiene asumida una cultura de aprendizaje? Este segundo factor es el que Argyris denomina "incompetencia calificada" en su libro Overcoming Organizational Defenses. Nuestra cultura nos impide reconocer que desconocemos la respuesta, y son muchas las empresas que refuerzan esta cultura premiando a quienes defienden sus puntos de vista sin entrar en los jardines de cuestionar la complejidad de los problemas. Las empresas premian a los gestores que se afanan en resolver los problemas con urgencia, más que a quienes ejercen de "abogados del diablo", cuestionando problemas en las políticas de la compañía.

Page 235: Navegápolis 2010

Empresa y mercado 235

Hemos aprendido a defendernos del dolor de manifestar ignorancia o incertidumbre, bloqueando de esta forma la comprensión de lo que nos amenaza. Y este tipo de equipos son los que Argyris denomina de "incompetencia calificada": equipos de gente increíblemente apta para cerrarse al aprendizaje. ¿Los comités de su empresa están formados por personas defensoras de sus intereses, cerradas al aprendizaje?

Page 236: Navegápolis 2010

Empresa y mercado 236

¿Cuál es la finalidad de las empresas?

31.03.2005

Veo la presentación que el coordinador de un grupo de gestores de proyectos está preparando para exponer a su equipo la necesidad de ser rentables en los proyectos y ganar dinero. La primera diapositiva presenta un rótulo que reza así "¿para qué existen las empresas? A continuación aparece la respuesta que tantas veces sirve de arranque en estos foros: para ganar dinero. Algo que por evidente parece incuestionable, y que sin embargo es el lema para conseguir profesionales con dislexia funcional; quizá el error más grave de los malos gestores, que les lleva a confundir la forma por el fondo, el medio por el fin y el efecto por la causa Para esta diapositiva se me plantean algunas dudas: Si en el mercado hay millones de empresas, la pregunta de cuál es la razón de su existencia ¿sólo tiene una respuesta? ¿Todos los emprendedores, comparten la misma razón cuando crean una empresa?, y si es así, ¿cómo ha llegado a esa certeza quien lo afirma? Sentar toda una teoría sobre una premisa que no es cierta me recuerda al modo expositivo de las sectas. Seguro que hay muchas empresas que tienen como finalidad ganar dinero, pero yo prefiero pensar en las que ganar dinero no es una finalidad, sino una consecuencia. Creo que lo contrario es confundir el fin con los medios, y padecer la dislexia funcional que apuntaba. Hace poco me comentaba el director de negocio de una relevante empresa de software: "El cliente no sabe lo que quiere. Copia y pega este informe que hice yo hace unos meses para Fulanitez, cambia los datos y ya tenemos facturado el estudio". ?¿?¿?¿?¿? No lo entendía, y sin duda el aludido director comercial no entendería por qué yo no lo entendía. Uno de los dos tiene dislexia.

Page 237: Navegápolis 2010

Empresa y mercado 237

Si el fin de la empresa es ganar dinero, el disléxico sin duda soy yo. Si el fin de la empresa es dar soluciones a los clientes el disléxico es él. Vemos cosas diferentes. Se me ocurre comparar la pregunta sobre la existencia de las empresas con otra: ¿Porqué algunas personas quieren ser médicos? Si alguien me planteara esta cuestión, le respondería de igual forma: son muchos los médicos y seguramente la pregunta no tiene una respuesta única. Sin duda muchos lo son para ganar dinero, pero a mi me gustan más los que tienen como finalidad curar enfermos. Los primeros tienen que curar pacientes para ganar dinero, los segundos ganan dinero porque curan pacientes. Los primeros centran su atención en figurar en las listas de los congresos, tener un bonito chalé... al fin y al cabo quieren ganar dinero, y el ser médico es algo accidental, es el medio, no el fin. Los segundos son reclamados por los pacientes, y por los organizadores de los congresos médicos. Para éstos el lucro es la consecuencia de su trabajo, no el fin. Pues bien, yo prefiero a éstos, y los clientes, perdón, los pacientes también. Mañana, un grupo de gestores de proyectos escucharan cómo su coordinador les trasmite cuál es la verdadera finalidad de sus proyectos: ganar dinero.

Page 238: Navegápolis 2010

Empresa y mercado 238

Problemas divergentes

03.08.2005

A veces no entendemos por qué otras personas tratan algunos problemas de formas tan raras. También es frecuente tropezar con situaciones a las que cuantas más vueltas les damos, más difícil se vuelve su solución. Hace poco descubrí y me paraeció muy interesante la idea que desarrolla E.F. Schumaker en su libro "A Guide for the Perplexed", en el que afirma que de forma general hay dos tipos de problemas: los convergentes y los divergentes. Son convergentes aquellos que tienen una solución, de forma que cuanto más inteligentes o talentosas sean las propuestas que se hagan, más convergerán entre sí. Sin embargo para los problemas divergentes no hay una solución "correcta", y cuanto más esfuerzo e inteligencia se dedica a su estudio, surgen más respuestas, incluso contradictorias El tipo de pruebas empleadas en los test de inteligencia son un ejemplo de problemas convergentes, sin embargo no son convergentes cuestiones del tipo ¿cuál es la mejor política comercial para el nuevo producto?

Page 239: Navegápolis 2010

Empresa y mercado 239

Gestores “PHB”

13.10.2005

La semana pasada publicaba Ask Metafilter el post de un programador que afirmaba tener un "jefe pelo-pincho". Las tiras cómicas de Dilbert han acuñado el término "pointy-haired boss" (comúnmente PHB) para designar a jefes y directores con las características de este estereotipo de gestor que con tanto acierto reflejan las historietas de Scott Adams. PHB cuenta con entradas propias en Wikipedia o en Dehumanizer que merece la pena leer. Como se menciona en ellas, una de sus características es no comprender la tecnología de su propio sector, ni el trabajo que realizan sus empleados, así que son un tipo de gestor relativamente habitual en empresas de las tecnologías de la información. Algunas de los rasgos que emplean en sus definiciones estas fuentes: Les encantan las reuniones. No entienden nada de tecnología (o del campo de su trabajo). Les encantan los títulos ("Doctor", "Ingeniero", etc.) los diplomas universitarios... Te respetan si tardas 3 meses en realizar un trabajo, pero no si haces exactamente lo mismo en 5 minutos. Sus decisiones parecen aleatorias o caprichosas etc, etc..

Page 240: Navegápolis 2010

Empresa y mercado 240

Ética empresarial

25.10.2005

La expresión "ética empresarial" puede parecer un oxímoron, y efectivamente lo es en empresas cuyos accionistas o propietarios imprimen como objetivo la obtención del mayor beneficio en sus operaciones. Por corrección política ninguna empresa puede afirmar en público su indiferencia sobre la "ética" y la "responsabilidad social"; y muchas, con culturas y actuaciones de dudosa moral se barnizan, justifican o incluso se defienden con ejercicios dialécticos más o menos convincentes. Puedo estar confundido, pero... la ética de mis comportamientos no la descubriré mirando los beneficios que me producen, sino lo que producen en los demás. La ética de las empresas, igual que la de las personas no se demuestra con argumentos, sino mirando los beneficios que producen en los demás. Los empresarios, los accionistas que presuman de éticos no deberían actuar por egoísmo, sino por altruismo. La ética es esencialmente altruista. Para una empresa con comportamiento ético, su beneficio no es un fin, sino una consecuencia. Su fin no es actuar en su propio beneficio sino en el de sus clientes, sus trabajadores y la sociedad en general. Quizá este sea un buen criterio para determinar la ética con la que una empresa tratará internamente las operaciones: ¿Los empresarios o accionistas tienen como fin: Beneficio propio (Ganar dinero, prestigio, poder...) Beneficiar a clientes, empleados y a la sociedad en general. ¿El beneficio es un fin o una consecuencia?

Page 241: Navegápolis 2010

Empresa y mercado 241

Adquisición de sistemas de software:Intuición

04.11.2005

Las empresas de sistemas de software dan, o deberían dar, un cierto miedo a sus clientes porque trabajan con probabilidades muy altas de fracaso. Las estadísticas y los gráficos de los informes anuales de nuestro sector están resultando tan tozudos como contundentes, y a pesar de los conocimientos teóricos sobre procesos y calidad, se resisten a cambiar. Como los sistemas de software rezuman técnica, lo normal es que los clientes no sea expertos, y de no ser empresas de cierta envergadura con departamentos informáticos propios, o de no contar con un servicio de asesoría especializado en procesos de adquisición de soft (que son muy difíciles de identificar), suelen gestionar la selección del proveedor, y demás tareas del proceso de adquisición (ISO/IEC 12207 5.1) con una mezcla de suerte e intuición.

Page 242: Navegápolis 2010

Empresa y mercado 242

Para afrontar la adquisición de un sistema de software los clientes se suelen apoyar en tres estrategias:

1. Asesoría profesional para la adquisición de software. 2. Currículum del proveedor (certificaciones oficiales,

experiencia…). 3. La mencionada intuición.

Y aunque esta última pudiera parecer la menos rigurosa o profesional, bien guiada puede ser la más útil de las tres. Los proyectos problemáticos son una manifestación más del Principio de Pareto: la mayor parte de sus problemas proceden directa o indirectamente de un número muy reducido de causas, y con un poco de olfato o de intuición se pueden detectar con bastante puntería. Las otras dos estrategias también son efectivas, aunque convendría observar algunos consejos para esquivar los errores comunes, que las pueden mudar en ineficaces o contra-producentes; pero por ser limitada la extensión que se espera de un artículo, será más provechoso dedicar este a la intuición, empezando así por el factor fuerte de Pareto; y dejando a las otras dos como temas para posteriores artículos, que podrían cerrarlo a modo de trilogía. INTUICIÓN Las primeras respuestas que busco en cada nuevo proyecto son:

¿El cliente sabe realmente qué es lo que quiere conseguir o mejorar? ¿Sabe lo que necesita?, o en caso contrario ¿Sabe que no lo sabe, y que ésta es su principal prioridad?

Los presupuestos, estimaciones, charlas, reuniones y en general las conversaciones que se han mantenido con él ¿estaban encaminadas a medir la profundidad del futuro sistema, a conocer el ámbito del problema que tiene que solucionar el software, y el nivel de análisis que ya ha realizado el cliente?; o por el contrario su objetivo ha sido no “dejarle enfriar” y conseguir que firme en un contrato una operación de la que no se tiene claro su alcance. ¿El cliente va a colaborar con el equipo durante el proyecto?, o ha hecho el pedido y se ha quedado a

Page 243: Navegápolis 2010

Empresa y mercado 243

esperar el día de la entrega.

En mi experiencia estos son los factores clave o los que podríamos llamar “factores de Pareto”. Cuando se gestionan bien, los proyectos no suelen fracasar. Por el contrario, cuando surgen problemas, la mayor parte tienen origen directa o indirectamente en una de estas tres causas:

1. Clientes que buscan programas. 2. Proveedores que buscan dinero. 3. Clientes que no se implican en el proyecto.

1.- Clientes que buscan programas. Los clientes que buscan programas dan una orientación a las tareas de adquisición que atrae factores de riesgo hacia el proyecto. Sin duda los clientes no necesitan programas. Necesitan soluciones. Aunque a primera vista esto pueda parecer un simple juego dialéctico, lo cierto es que esta diferencia de enfoque transmite implicaciones importantes al proyecto. Si lo que el cliente quiere es una página web, es posible que su proveedor le entregue una más o menos bonita, pero lo que no sabemos es si con ella mejorará la calidad en la atención a sus clientes, o se reducirán las llamadas al centro de soporte telefónico, o recibirá feed-back del mercado, o… ¿Cuántas empresas han “comprado” un CRM o un ERP que funciona, pero que no han conseguido las mejoras que se esperaban? En los proyectos de clientes que quieren programas se suelen descuidar actividades clave como el análisis del problema, de los requisitos del sistema, el estudio y comparación de las posibles opciones de solución, o de los criterios que se emplearán para la validación y verificación del producto generado. La Ingeniería del Software y la experiencia conocen muy bien las consecuencias de estos descuidos.

Page 244: Navegápolis 2010

Empresa y mercado 244

2.- Proveedores que buscan dinero. Hay empresas (no sólo de software) que tienen como objetivo aportar beneficios o valor a los clientes a través de sus sistemas, y la consecuencia de ese trabajo es una facturación directamente proporcional al número de clientes y a la cantidad de valor proporcionado. Otras tienen como objetivo ganar dinero, y para conseguirlo venden productos o servicios a sus clientes. También aquí puede parecer que se trata de una misma cosa, vista desde ángulos diferentes; pero no es así. Quizá en otros negocios las consecuencias de uno u otro enfoque no sean muy significativas, pero en el nuestro cada una de estas visiones transmite implicaciones muy importantes a los proyectos, y los puede predisponer al fracaso. El primer tipo de empresa forma a su personal, mide sus resultados, elabora su estrategia y su táctica para conseguir que los negocios de sus clientes triunfen, sabiendo que de esta forma cada vez ganará más dinero. En el segundo tipo de empresa la estrategia, la medición de sus procesos y sus esfuerzos se dirigen a aumentar las cifras de ventas, pero no a solucionar los problemas de los clientes. Las consecuencias de trabajar con la segunda estrategia suelen ser:

Las estimaciones de precio y agendas responden a razones estratégicas, no a la realidad del sistema.

El análisis y la gestión de los requisitos se realizan de forma inadecuada.

Se acaban desbordando agendas y presupuestos.

Se inyecta presión al proyecto.

Se generan sistemas de baja calidad: tasas de errores altos, arquitecturas parcheadas o diseños para salir del paso

Las deficiencias de los requisitos hacen difícil validar y verificar los productos obtenidos

3.- Clientes que no se implican en el proyecto. El descubrimiento temprano de desviaciones sobre la planificación, de modificaciones o sugerencias no descubiertas en los requisitos iniciales es la mejor estrategia para evitar el re-trabajo y conseguir una eficiencia alta en el proyecto.

Page 245: Navegápolis 2010

Empresa y mercado 245

Por muy bien que se haya realizado el análisis de requisitos del sistema y del software, cuando el cliente vea el resultado descubrirá atributos o funcionalidades que no se han implementado como él esperaba, o que necesitan algunas ampliaciones que no se consideraron al principio. Como resultado se terminan descubriendo en el momento más caro del ciclo de desarrollo: en la validación del sistema. Los desencuentros en ese momento suelen generar recelos entre cliente y proveedor, de mayor o menor calado, que en ocasiones terminan como el rosario de la Aurora.

Page 246: Navegápolis 2010

Empresa y mercado 246

¿Es más importante la venta o el producto?

29.11.2005

Para las empresas de las tecnologías de la información, ¿Qué es más importante, vender o producir? Si sólo fuera posible elegir una opción, ¿cuál preferiríamos?:

Una empresa con excelentes técnicos y vendedores ineficientes.

Una empresa con grandes vendedores y técnicos chapuceros.

No hace falta decir cuál de las dos que faltan es la buena. Se suele decir que la empresa es un equipo. Que todo el mundo está en el mismo barco, y que tan importante es la venta como el producto. Que de poco sirve hacer los mejores programas, si no se ponen en el mercado. Y que al contrario, vender software con problemas sólo consigue desprestigiar a la compañía. Esta suele ser la postura políticamente correcta, que ante la difícil pregunta de ¿a quién quieres más mi hermanito o a mi?, responde que a los dos igual. Sin embargo suele ocurrir que el hermanito recibe mejores juguetes, más sonrisas y menos broncas. Vía Barrapunto he leído el siguiente párrafo, sacado del artículo de Dirson, "buscando dinero en Google"

Por último, este interesante artículo hace mención a lo que se ha llamado un 'sistema de castas' dentro de Google. Este hipotético sistema relegaría a una segunda posición a los comerciales y personal relacionado con las finanzas, en favor de los ingenieros, programadores y responsables de producto, los cuales tienen mayor influencia. Incluso se afirma que existen ciertos prejuicios contra los hombres de negocios.

Desde Google niegan este extremo, afirmando que han contratado a diversas personas con títulos de MBA, aunque en Slashdot se felicitan de que por fin una compañía diga bien claro que los ingenieros hacen que el mundo funcione." ¿Será esta una de las razones del fenómeno Google?

Page 247: Navegápolis 2010

Empresa y mercado 247

Benchmarking y best practices en manos de aprendices de brujo

18.01.2006

"Tu departamento gasta más del 5% de su presupuesto en formación, cuando la media de nuestro sector es del 3%". Esta fue la razón por la que la prestigiosa y cara firma consultora que nos ayudaba a ser más eficientes, redujo los "gastos" del departamento de programación, consiguiendo así un coste de producción más acorde con la "media de nuestro sector". La consultoría de "expansión y mejora" hizo un análisis exhaustivo de la empresa y las medidas que finalmente arbitró fueron tan acertadas como esta, basadas nada menos que en benchmarking y buenas prácticas. Callados, impresionados y contentos quedamos todos en la reunión de comité por tener a nuestro alcance tanta sabiduría para mejorar nuestra empresa. Pero la desdicha quiso que las medidas que aplicó esta consultora, inspiradas en prácticas tan incuestionables no pudieran llegar a dar resultados, porque un cúmulo de mala suerte se cernió sobre la empresa, tal y como ocurre en los dibujos animados con la nube gris sobre el coyote. El departamento de RR.HH. comenzó a ser más eficiente. Se le aplicaron métricas, porque antes... éramos un desastre, no medíamos nuestra eficiencia, y claro así... cómo íbamos a mejorar. Ahora sabíamos cuál era el coste de contratar a una persona: precio de la difusión en los medios, nº de personas entrevistadas, tiempos dedicados por RR.HH. Así, sí. ¡Alucinante!. En los consejos de dirección podíamos ver en gráficos que contratar un programador nos "costaba" xxx€, y los consultores eran tan listos que habían incluido en la retribución de la plantilla unas cantidades variables en función de objetivos. ¡Anda, qué genial!. RR.HH. sólo podía mejorar. Si hoy costaba tanto contratar a una persona, ya verías como se las ingeniaba

Page 248: Navegápolis 2010

Empresa y mercado 248

para que al año que viene saliera más barato... ¡En ello le iba el sueldo!. Y así con todos los departamentos. El nuevo modelo de procesos métricas y eficiencia obligaría lo quisiéramos o no a mejorar en todos ellos. Eso sí, ahora lo cuento muy deprisa, pero esto no es fácil. Costó semanas... qué digo semanas, meses de reuniones que duraban mañanas y tardes enteras para poder encontrar la fórmula de cálculo de retribución variable adecuada para cada puesto. En el caso de los programadores: ¿Líneas de código?, ¿Incumplimiento de fechas?, ¿Errores encontrados?, valoración de los superiores, etc, etc... Habría que poner algunos sistemas de registro... Por supuesto, tantas horas de trabajo con la inestimable ayuda de los consultores terminaron por dar las fórmulas, así que las pudimos implantar... Pero, lo que decía... vino una racha de mala suerte y no pudimos obtener los resultados de tantas medidas de mejora. La casualidad quiso que técnicos y gestores veteranos abandonaran la empresa. Con los nuevos que se contrataban no tuvimos la misma suerte que antaño, y los que encontrábamos eran mas "junior". La competencia es muy mala, y tiró por tierra la fama que hasta entonces habíamos tenido de técnicamente buenos y solventes, y quedamos como técnicamente del montón, el clima laboral se hizo irrespirable, la gente que antes se olvidaba de mirar al reloj, ahora se había vuelto maniática y quería salir a la hora en punto... y así un largo etcétera de cosas, todas de mala suerte, Claro con este cúmulo de desdichas, ni la mejor consultoría hubiera podido hacer nada. Qué rabia ¿verdad? Haber descubierto como mejorar y no poder disfrutarlo por la mala suerte; y por otro lado empresas a las que les va tan bien sin tan siquiera haberse dado cuenta de que son diferentes a los demás, que podrían ahorrar un montón en formación o I+D+I, o en tantas cosas que seguro hacen diferente a la media de nuestro sector, o peor que los mejores.

"El 75% de las empresas que conozco no tienen estrategia y se limitan a imitar a sus competidores"

Michel Porter

Page 249: Navegápolis 2010

Empresa y mercado 249

Nuestros clientes no quieren programas

02.03.2006

Dicen que durante una reunión del consejo de administración de Black & Decker, su presidente interrumpió la exposición del departamento de marketing, diciendo con gravedad: “Señores, han confundido el objetivo: Nuestros clientes no quieren taladros…. Nuestros clientes quieren agujeros”. Muchas empresas de software creen que los clientes quieren programas. Hacer soft no es un fin en sí mismo, es un medio; y ganar dinero tampoco debería ser un fin, sino una consecuencia. A mayor número de clientes satisfechos, y con mayor nivel de calidad en sus soluciones, mayor volumen de negocio y mayores expectativas de crecimiento. El objetivo de la empresa no debería ser crear software, sino soluciones; y no debería hacer programas para ganar dinero, sino ganar dinero porque hace programas. Las empresas que truecan las consecuencias por el fin, construyen culturas con mensajes erróneos. Sus departamentos se alinean con un fin: ganar dinero, y cumplen los objetivos de facturación vendiendo “programas” (o lo que sea) sin pararse a analizar los problemas de los clientes. Los gestores de los proyectos se centran en cumplir las fechas de entrega, asignando todos los programadores posibles a los proyectos retrasados. Normalmente las fechas no encajan con las previsiones, y los programas no terminan de contentar a clientes que piden cambios por no tener lo que necesitan. Al analizar la rentabilidad se ve que los retrasos aumentan los costes, y merman el beneficio esperado. Los departamentos comerciales ponen a los programadores como culpables de estos retrasos, y ellos se defienden diciendo que negocio cierra agendas sin saber si se podrán cumplir.

Page 250: Navegápolis 2010

Empresa y mercado 250

Hace algunos meses fui testigo de cómo una empresa de software cerraba, tras muchos problemas, un proyecto con una desviación de agenda y presupuesto de un 400%. Inicialmente se vendió como un sistema de gestión integral que debía estar funcionando en 6 meses. Era una operación con la que el departamento comercial conseguía dos objetivos: el de facturación trimestral, y la incorporación de un cliente importante a la cartera de la compañía. Por eso, cuando el cliente dijo de cuándo dinero disponía, y la fecha en la que el sistema debía estar funcionando, la empresa de software le hizo un presupuesto con un cronograma que encajaba como un guante. En 6 meses estaría todo terminado. En julio y agosto: obtención, análisis y especificación de requisitos, de septiembre a noviembre desarrollo, y en diciembre instalación y pruebas. El 1 de enero funcionando. ¡Justo lo que el cliente quería!. El departamento de ventas, con su mejor criterio consideró:

Se trata de una operación importante, y aunque es seguro que cuando los ingenieros vean las fechas se quejarán, bien merece la pena poner a los mejores programadores, y el número que sea necesario, para que esté en enero.

El presupuesto es posible que se quede algo estrecho, pero con esta operación, conseguiremos el contrato de las dos fases siguientes, y una buena cuenta.

En enero el programa no estuvo disponible, y lo que fue aún peor, el cliente, al iniciar su nuevo negocio descubrió que necesitaba funcionalidades que no se habían contemplado. Las tareas de requisitos no se habían realizado para conocer las necesidades del negocio del cliente, sino para hacer el documento de requisitos, obligatorio según los procesos del departamento de desarrollo. Las deficiencias de los requisitos, y las modificaciones introducidas llevaron, en enero, a tirar todo el código y comenzar con un nuevo diseño de arquitectura y datos. Tras un rosario de vicisitudes y trabajo en constante presión de fechas, el cliente, disgustado y cansado, validó finalmente el trabajo en abril ¡del año siguiente!. Lo que inicialmente debía haber durado 6 meses se prolongó durante 22, y en la misma proporción, los costes del proyecto.

Page 251: Navegápolis 2010

Empresa y mercado 251

Tras los casi dos años de retrasos, el cliente quedó muy descontento con la empresa de software, cuya falta de profesionalidad le había obligado a demorar sus planes de negocio, y a introducir medidas de contingencia de última hora para realizar operaciones mensuales y otros procesos previstos en el sistema que constantemente retrasaba su fecha de implantación. Las tensiones entre el departamento comercial, gestión de proyectos y programación tampoco resultaron agradables. El único beneficio que se puede extraer de estas experiencias es emplearlas para aprender. Aunque en la realidad, las tiranteces que generan y las tensiones personales hacen difíciles los análisis objetivos, y frecuentemente no se llega más allá de achacar a las circunstancias y a la culpa de otros la responsabilidad. Analizando este caso, y tantos otros similares… ¿dónde diríamos que se encuentra la responsabilidad?

¿En el departamento comercial?

¿En la falta de comunicación entre desarrolladores y vendedores durante la estimación de proyecto?

¿En el trabajo deficiente o lento de los ingenieros?

¿En la gestión del proyecto?... Estas suelen ser las líneas de análisis tras los fracasos de los proyectos; pero lo cierto es que los aludidos consideran que cumplieron bien su trabajo y alcanzaron sus objetivos. El departamento comercial cerró el presupuesto del año satisfactoriamente y aumentó la cartera de clientes, y los programadores trabajaron denodadamente, alargando sus jornadas diarias de trabajo a fines de semana y horas extras. Por estas razones, el equipo, e incluso los gestores de la empresa, que saben del interés y dedicación de su personal, concluyen reafirmándose una vez más en el convencimiento de que son “gajes” de nuestra profesión. Las cosas en este negocio suelen ser así y poco se puede hacer. Pero… ¿Quién pensó en el cliente?. ¿Quién tenía como objetivo su éxito. ¿Conocer y analizar las necesidades de su negocio, y trabajar con él en el diseño e implantación de las soluciones?

Page 252: Navegápolis 2010

Empresa y mercado 252

La conclusión no es compleja: todo el personal hizo lo que debía hacer, y si hubiera que buscar un responsable, habría que dirigir la mirada hacia las instancias altas de dirección. Los objetivos de los departamentos no estaban alineados entre sí, ni respondían a una estrategia coherente. Ninguno de ellos tenía como fin solucionar los problemas del cliente. Orientación al cliente no es amabilidad, cortesía, o incluso servilismo. Por supuesto que debe dispensar amabilidad y cortesía a su cliente, pero lo que además se espera de una empresa profesional de software es que haga suyo el problema del cliente. Más allá incluso de lograr clientes satisfechos, se trata de conseguir clientes con éxito. Que nuestro trabajo sea una de las razones del éxito de su negocio.

Page 253: Navegápolis 2010

Empresa y mercado 253

Empresas que optan por procesos. Empresas que optan por agilidad

27.05.2006

Revisando noticias de la semana, leo que Acer implanta modelos ágiles en el ciclo de desarrollo y mantenimiento de sus productos. Son habituales las notas de prensa anunciando que la empresa tal ha adoptado un modelo ágil, o que que la empresa cual ha alcanzado el nivel x de madurez CMM o CMMI. Una muestra de empresas que han optado por modelos ágiles (adaptativos) o formales(predictivos), de los que yo tengo constancia son:

Modelos formales Modelos ágiles

Accenture - DB Systems GambH - General Motors - Harris Corporation - JP Morgan - Reuters - Motorola - NCR - TATA - Ebix...

Acer - Honda - NEC - Epson - 3M - Microsoft - Yahoo - Hewllet Packard - Brother - Sun - Phillips.

A los modelos formales se puede acudir buscando mejoras o buscando apariencia (o ambas cosas). Trabajan sobre los procesos para mejorar la calidad y la eficiencia, y dan diplomas de certificación. A los modelos ágiles se puede acudir buscando adaptabilidad, innovación o reducción de tiempo de salida al mercado. Trabajan sobre las personas, el talento y la motivación. Hay empresas que desarrollan y mantienen sistemas con niveles de integridad muy elevados (banca, medicina, ejército, aviación, etc.). Otras viven de la innovación, del desarrollo constante de nuevos productos, de la reducción del tiempo de salida al mercado...; y otras tienen diplomas, certificaciones y reconocimientos de eficiencia, calidad, innovación, atención al cliente, etc, etc, etc.

Page 254: Navegápolis 2010

Empresa y mercado 254

Moros y cristianos

19.10.2006

Hay oficios y profesiones que toman como criterio de especialización áreas específicas de problemas o de soluciones. Los médicos por ejemplo se especializan en ginecología, urología, cardiología, pediatría... Otros emplean como criterio tecnologías, o incluso proveedores. En programación son bastante frecuentes profesionales y empresas especializadas en software libre, o a través de las figuras de partner, en tecnologías y plataformas como Microsoft u Oracle... Con los primeros es más fácil dar con el profesional o la empresa adecuada. Afortunadamente decidir si lo que nos hace falta es un ginecólogo, un cardiólogo o un pediatra es más fácil así que si tuviéramos que decidir entre un especialista en Bayer, Johnson & Johnson o Menarini. En el segundo caso el "proceso de adquisición" sería más difícil y debería estar guiado por un experto para evitar que algún "profesional" sin escrúpulos nos "garantizara" que lo mejor para nuestra dolencia es el último descubrimiento de Medical Reunidas del que casualmente él es partner. En algunos procesos gripales la aspirina puede bastar, y en otros puede ser necesario el ingreso en un hospital. Algunas intranets y espacios colaborativos pueden tener la mejor solución con herramientas como Drupal o Joomla... y otras con Sharepoint Portal Server o Documentum. Es posible que la intranet sea para una asociación empresarial o recreativa; una empresa con dos delegaciones o doscientas, con trabajadores dispersos, que necesite control de versiones de documentos o no... etc. Si buscando una intranet (por ejemplo) acudimos a unos especialistas en software libre, estaremos de suerte, porque seguro que lo que nos hacía falta era una solución libre, que son mucho mejores que las propietarias. Si acudimos a un partner de Microsoft, estaremos de suerte,

Page 255: Navegápolis 2010

Empresa y mercado 255

porque seguro que lo que nos hacía falta era Sharepoint o Portal Server que es mucho mejores que esas soluciones libres. Además en los profesionales que se especializan por tecnologías o marcas es frecuente la radicalización pasional:o eres de Linux o de Windows, de Java o de C#, de CMMI o de Extreme Programming, etc, etc. Hay áreas (quizá la religión, o el fútbol) donde las preferencias racionalmente injustificables pueden tener sentido. Ser del Betis o del Sevilla, del Madrid o del Barcelona; o la aversión de un católico a leer el Corán, o la de un musulmán hacia la Biblia. Pero esa misma tendencia al aislamiento en "religiones tecnológicas" e impermeabilización frente al conocimiento de las otras tendencias no parece tener mucho sentido, porque las actitudes fundamentalisas o sectarias empobrecen, aíslan y crean recelos y enconos infundados. Las visiones objetivas y amplias dan perspectiva, criterio y enriquecimiento profesional.

Page 256: Navegápolis 2010

Empresa y mercado 256

Algunas majaderías sobre el código abierto

21.11.2006

Vía Sergio Hernando leía hace unos días:

Con el código abierto, no hay propiedad intelectual. Cualquiera puede usarlo, y tus ideas pasan al dominio público. Si nadie puede hacer dinero con eso, no habrá desarrollo y los programas de código abierto rápidamente se vuelven obsoletos. Si soy programador, caso de poder escribir buen código, ¿por qué regalarlo? Tailandia puede hacer buen código sin necesidad de código abierto.

Son declaraciones del ministro tailandés de tecnologías de la información y las comunicaciones. Es lo que tiene la libertad de expresión, que cada uno puede decir lo que quiera, y se puede llegar a extremos como los de este señor. Se pueden afirmar majaderías como que con el código abierto no hay propiedad intelectual. ¿Cómo se dirá en tailandés: "qué tiene que ver el culo con las témporas"?. ¿Por qué le parece mal que cualquiera pueda usarlo y que las obras pasen al dominio público? Una de las principales motivaciones que apunta Brooks por las que los buenos profesionales trabajan es porque mantienen la ilusión del niño: hacer algo útil y que sea usado por los demás. Cualquier programador quiere que los demás usen sus inventos, así que lo de que "cualquiera pueda usarlo" no es malo, sino todo lo contrario (por lo menos para los profesionales que no consideran su trabajo como un castigo). ¿Es malo para el autor que su obra pase al dominio público, si el autor así lo desea? La frase "Si nadie puede hacer dinero con eso, no habrá desarrollo" tiene un fondo interesantísimo: "La motivación por la que el hombre construye artilugios es el dinero". Pobre señor, no puede comprender el placer de hacer algo por el simple gusto de hacerlo, de ver la obra hecha, de poderla compartir, regalarla a quien pueda resultar ÚTIL, y en especial

Page 257: Navegápolis 2010

Empresa y mercado 257

en todo aquello en lo que el valor de las copias es 0 y por tanto la capacidad de regalar y compartir resulta infinita. Eso de que los programas de código abierto se vuelven obsoletos, debe ser porque los programas propietarios tienen el elixir de la eterna juventud. En fin, no merece la pena ni comentarlo. Antes de terminar vuelve a demostrar su pobreza de espíritu cuando afirma no comprender "Si soy programador, caso de poder escribir buen código, ¿por qué regalarlo?". Y por fin, una frase con cierta lógica: "Tailandia puede hacer buen código sin necesidad de código abierto". Sí señor, totalmente de acuerdo. Pero lo que no vale es cerrar un discurso de majaderías con una frase cierta, como dando a entender que es la conclusión de lo dicho. Esto es así porque es así. Tailandia puede hacer buen código sin necesidad de que sea abierto. Hay software cerrado y comercial estupendo, y los que lo fabrican no son demonios. Y también hay iniciativas de artífices que dibujan, escriben, programan, investigan... porque son curiosos. Porque les gusta, porque pertenecen a esta rara especie humana de actividad y curiosidad insaciable, y siguen manteniendo una cierta inocencia infantil, por la que comparten, regalan y les preocupa más que guste lo que han hecho, a que se lo paguen.

Page 258: Navegápolis 2010

Empresa y mercado 258

¿El poder político debe intervenir en el sector del software?

14.12.2006

Hace pocos días era el ministerio de tecnología de Tailandia el que a través de argumentos majaderos se cubría de razones y razonamientos por los que debía favorecer los modelos de negocio de software propietario, y vetar a los modelos de negocio de software libre. Bueno, como es Tailandia y está tan lejos. Ya se sabe, en esos países tan remotos los dirigentes son así... Pero anteayer leía en el País: "El Congreso insta al Gobierno a promover el software libre ". ¡Anda, ahora es el estado de mi país el que cree que entre sus obligaciones está la de mediar en la industria del software!. ¿Por qué hay gobiernos de economías capitalistas que se interesan en beneficiar a uno u otro modelo de negocio de este sector? ¿No son dos modelos de negocio son perfectamente válidos y caben y tienen su lugar en un sistema de libre competencia? Por eso sinceramente, lo pregunto con perplejidad: ¿Esto no es intervencionismo tendencioso? .

Page 259: Navegápolis 2010

Empresa y mercado 259

Gestión y procesos en empresas de software

11.12.2005

Las empresas que desarrollan software no pueden ignorar que su negocio

es un negocio de software, y que el modelo que cada una adopte para las actividades de desarrollo y mantenimiento tiene implicaciones relevantes

en la eficiencia general del negocio.

El problema que pueden encontrar quienes deciden implantar métodos

más eficientes, es caer en la desorientación ante el abanico de modelos

de calidad, de procesos y de técnicas de trabajo desplegado en la última

década; o abrazar al primero que se presenta en la puerta de la

organización como “solución” de eficiencia y calidad

Este artículo dibuja un mapa de situación general como orientación para

directores técnicos, responsables de departamentos informáticos y

personal directivo de organizaciones de software.

La visión general que ofrece, muestra cómo en su totalidad un entorno de

producción es un entorno sistémico, en cuyo diseño global los

componentes tienen que encajar y funcionar armónicamente, alineados

con las características, cultura y estrategia de la organización.

Amenaza u oportunidad Según como afrontan las organizaciones el desarrollo del software, éste puede comportarse como factor de riesgo o amenaza para el negocio; o por el contrario como una poderosa oportunidad de negocio. Todas las empresas quieren producir más rápido, mejor y con menores costes, y sin duda esto es posible porque la naturaleza del software no es origen de riesgos y problemas, sino una fuente de oportunidades. Cada vez más directivos están comprendiendo que la forma de gestión del desarrollo de software, puede hacer de la materia prima de su negocio un material arisco de resultados impredecibles, o una ventaja competitiva.

Page 260: Navegápolis 2010

Empresa y mercado 260

La evolución hacia entornos de ingeniería del software requiere cambios severos en la organización, así como el convencimiento, implicación y empuje de la dirección. Pero sobre todo el diseño de un modelo de producción propio que sepa aprovechar la personalidad de la organización, y responder a las particu-laridades de su negocio. El software ha estado generando los mismos problemas en los últimos 40 años, y quien no cambia la forma de hacer las cosas, sigue tropezando en ellos. El problema que pueden encontrar quienes deciden implantar métodos más eficientes es caer en la desorientación ante el abanico de modelos de calidad, de procesos y de técnicas de trabajo desplegado en la última década, o abrazar al primero que se presenta en la puerta de la organización como “solución” de eficiencia y calidad. Trabajar sin ningún método es una opción, pero no una metodología. Las organizaciones que desarrollan o mantienen software pueden optar por trabajar "a la buena de Dios", o por seguir una metodología. Hacerlo a la buena de Dios no es tan raro. Es la primera forma que se empleó para desarrollar programas: "Aquí tenemos unos ordenadores, aquí unos señores a los que les encanta leer los manuales de programación, y se trata sencillamente de conseguir que estas máquinas terminen imprimiendo facturas (o haciendo lo que sea)". En realidad, cuando en la segunda mitad del siglo pasado la industria del hardware puso en la calle máquinas que se podían programar, poco más se podía hacer; y los pioneros de nuestra profesión, atraídos por el encanto de diseñar y construir artefactos útiles, y verlos funcionar, fueron los primeros en remangarse frente al teclado y decir a su cliente con una sonrisa:"en un par de meses esto estará funcionando". Fueron también los primeros en pasar noches en vela programando, prometiendo una y otra vez que "tan sólo es cuestión de un par de días más." Aunque las cinco décadas de vida del software ya han sido suficientes para experimentar los excesos y los errores de la infancia y la juventud, la resistencia al cambio es el mejor aliado de la inercia, y por eso se produce una cierta impermeabilidad a la experiencia.

Page 261: Navegápolis 2010

Empresa y mercado 261

En cualquier caso es una opción: trabajar sin ninguna metodología. SEI, (Software Engineering Institute) por el rigor de su documentación y la circunspección de su imagen no puede llamar a esta forma de producir como "a la buena de Dios", y en su lugar afirma que es la forma propia de organizaciones "poco maduras". En la escala que de 1 a 5 emplea para determinar el grado de madurez de una organización, y en consecuencia el nivel de garantía que ofrece en cuanto a calidad, predictibilidad en los resultados y eficiencia en el desarrollo de software, este tipo de organi-zaciones se quedan, lógicamente, en el 1. Que, ¡ojo cuidado! no quiere decir que necesariamente van a producir mal software, de forma ineficiente y con retraso, sino que las probabilidades de cumplir las tres facetas es baja. Hay equipos que lo consiguen, pero son pocos. La razón es sencilla, los resultados en estos casos son tan buenos como las personas que los desarrollan, y lo cierto es que los buenos programadores escasean. A este modo de producción se le ha venido a llamar "programación heroica", porque todo el peso del resultado descansa sobre el "saber hacer" de los programadores. El éxito o fracaso de las organizaciones que trabajan sin metodologías depende del conocimiento tácito de su personal, pero teniendo en cuenta que se trata del conocimiento que cada uno traía ya de la calle, o del que adquiere motu proprio, porque estamos hablando de "ninguna metodología", lo que implica que como mucho los procesos de formación de la empresa llegan al "ahí tienes manuales y libros, por si hubiera algo que no sabes". Este es sin duda el modelo con el que empiezan muchas empresas "start-up": un equipo de emprendedores con talento, capaces de construir sistemas de software con calidad. Los resultados serán tan buenos como ellos los sepan hacer. El cumplimiento de agendas dependerá de su capacidad de previsión y organización. Pero no hay que engañarse; en este caso no se trata de empresas que saben hacer software, sino de personas que saben hacer software. Y esta situación dibuja el guión común a todas las pequeñas empresas de desarrollo de soft que surgen de cero, impulsadas tan sólo por el empuje de sus emprendedores: pueden llegar todo lo lejos que la combinación del talento y de la capacidad de marketing de sus creadores les permitan. O sea, en ocasiones acabarán cerrando, y en otras alcanzarán un nivel de estabilidad tan mediocre o tan brillante como dicha combinación les permita. Y si una vez logrado ese nivel de

Page 262: Navegápolis 2010

Empresa y mercado 262

equilibrio desean proyectar mayor crecimiento a su organización se enfrentan a un reto importante:

Pasar de personas que saben hacer software a empresa que sabe hacer software.

Salto que supone que no van a ser ya ellos, sino su empresa quien deberá producir de forma eficiente y repetible en todos sus proyectos, resultados de calidad. Y esta es otra aventura en la que muchos fracasan teniendo que regresar a la casilla de salida, o si el "roto" del intento ha sido muy grave, terminar cerrando, o como mal menor dejándose adquirir por algún competidor más o menos grande del sector. La teoría de la gestión empresarial recomienda para esta travesía tomar como medio de transporte la gestión por procesos. Sí, no es nada nuevo, y leerlo a estas alturas puede dar la sensación de estar desayunando con el periódico del día anterior. Aparte de las excelencias recogidas en el manual del consultor sobre la transversalidad de los procesos, que atravesando a toda la organización dibuja modelos organizacionales sin rigideces departamentales, y alinea con sus flujogramas a toda la empresa en el mismo sentido con visión centrada en el cliente, y bla, bla, bla. Lo cierto es que la gestión por procesos encierra cuatro factores que hacen posible pasar de grupo de emprendedores a empresa:

Repetibilidad de resultados. Al conseguir que la calidad del resultado sea consecuencia del proceso, producir aplicando el mismo proceso garantiza la homogeneidad de los resultados.

Escalabilidad. Es una consecuencia de la repe-tibilidad. No sólo un equipo consigue resultados homogéneos en todos los proyectos, sino que los obtienen todos los equipos.

Mejora continua. Al aplicar meta-procesos que trabajan sobre los propios procesos de producción, midiendo y analizando los resultados se obtienen los criterios de gestión necesarios para aplicar medidas que mejoran de forma continua la eficiencia y calidad de los procesos base, y por tanto de los resultados.

Un know-how propio, consiguiendo finalmente una empresa que sabe hacer, porque su modelo de procesos termina conteniendo un activo valioso de la organización: la

Page 263: Navegápolis 2010

Empresa y mercado 263

clave para hacer las cosas bien, con eficiencia y de forma homogénea.

No sólo son procesos Los procesos marcan pautas para realizar el trabajo, pero sin las personas y las herramientas (tecnología) necesarias, lo que se puede producir con ellos es más bien poco. Las únicas combinaciones válidas para formar sistemas capaces de producir resultados son:

Personas + tecnología Producción heroica

Personas + procesos + tecnología

Producción basada en procesos

Un ejemplo que seguro todos hemos realizado alguna ves, y que ilustra las diferencias entre ambos sistemas de producción es el montaje de un mueble en kit. Para enfrentarnos a esta tarea tenemos, por un lado a las personas: nosotros. Y por otro la tecnología: el destornillador (manual o eléctrico), los tornillos, pasadores, la cola de montaje, etc. Y si dejamos el proceso a un lado (el manual con las instrucciones de cómo proceder) tendremos un sistema perfecto de producción heroica: personas + tecnología; del que cabrá esperar los resultados propios de estos entornos. La productividad y la calidad no son homogéneas. Hay quien ensambla la estantería o el mueble, en cuestión de minutos, y quien necesita toda una tarde. Algunos obtienen estanterías robustas y perfectas, y otros terminan el montaje con peor fortuna, afirmando que la estantería está bien montada pero que las piezas venían mal

Page 264: Navegápolis 2010

Empresa y mercado 264

cortadas de fábrica, o que quien diseñó ese mueble era un perfecto inútil, o que los tornillos son de mala calidad, o quizá sin ni siquiera percatarse de los defectos con los que ha dejado el mueble. En definitiva esta forma de trabajo produce resultados, y puede resultar más o menos apropiada para realizar hobbys o bricolajes domésticos, pero para una empresa de montaje de muebles no resultaría viable un sistema de producción que no pudiera garantizar eficiencia en los costes, y resultados con una calidad homogénea. Hay dos formas de evitar estos problemas:

Introducir un tercer elemento en el sistema de producción: los procesos.

Trabajar sólo con personas y tecnología, pero empleando sólo a los mejores ebanistas, y proporcionándoles las mejores herramientas.

Como veremos a continuación generalmente la mejor solución no suele consistir en adoptar una u otra opción, sino una mezcla de ambas, con mayor o menor peso específico en una u otra, en función de las características del negocio. Al añadir procesos al sistema se consigue que todas las personas ejecuten el trabajo siguiendo las mismas pautas, y que los parámetros de ejecución y los resultados puedan ser medidos de forma homogénea en toda la organización. De esta forma se reduce drásticamente la heterogeneidad de los resultados, tanto en la eficiencia de los tiempos invertidos, como en la calidad obtenida, que empieza a ser proporcional a la capacidad de los procesos que se hayan diseñado. Pero no hay que dejarse deslumbrar por los procesos y olvidarse de los otros componentes. Basar una empresa sobre un sistema de producción de dos elementos: personas y tecnología plantea limitaciones; pero basarlo en un entorno exclusivo de procesos, o de procesos y tecnología, simplemente no es posible. La realidad de los procesos es cierta, pero en el triángulo personas - procesos - tecnología cada elemento actúa con un peso específico, diferente en función del tipo de producción, e incluso de las características de personalidad de cada empresa. Por eso, llegados a este punto, el ámbito de la teoría generalista

Page 265: Navegápolis 2010

Empresa y mercado 265

se acaba, y cada sector y cada empresa, más que importar una metodología estándar sacada del manual del perfecto consultor, debe comenzar por el gnosce te ipsum, y a partir de ahí analizar y descubrir la potencia de cada uno de los tres elementos de la producción para componer el diseño de un sistema de producción a su medida. Los gestores o consultores "estándar" no existen; bueno, perdón, sí que existen, pero obtienen los resultados estándar que todos conocemos. Relevancia del capital estructural y del capital humano El capital estructural está formado por los bienes que quedan en la empresa cuando las personas se van a sus casas: patentes, licencias, cartera de clientes, equipos, maquinaria, vehículos, etc. El capital humano es el compuesto por el valor que la empresa emplea en su negocio y que resulta inseparable de las personas. Todas las industrias necesitan ambos tipos de capitales para elaborar los productos o servicios de su negocio, pero la relevancia con la que cada uno de ellos puede influir en el resultado final es muy diferente de unas empresas a otras. Es frecuente que para las empresas dedicadas a la fabricación de productos el componente estructural sea más crítico que para las dedicadas a los servicios, en las que el elemento humano tiene más relevancia. Pero este no es un principio universal, y dentro de la misma industria o del mismo sector, la estrategia y la táctica de cada empresa también influyen en los niveles de relevancia que van a tener el capital humano y el estructural. Veámoslo con un ejemplo, comparando la relevancia de ambos en dos empresas del mismo sector: hostelería. Por un lado pensemos en un exquisito restaurante de cocina vasca (por ejemplo), y por el otro en un establecimiento de PhonoPizza (también por ejemplo). Al margen de consideraciones gastronómicas, ambos negocios tienen perfectamente claros su identidad, personalidad y segmento; ambos tienen también su propio patrón de atributos de calidad sobre el que medirse. En el segundo modelo la empresa tiene una serie de procedimientos para garantizar de forma continua la calidad de sus resultados (calidad y repetibilidad), por lo que éstos dependen mucho menos del conocimiento tácito de sus cocineros, y en su mayor parte se deben a los procesos y la

Page 266: Navegápolis 2010

Empresa y mercado 266

tecnología empleada. Los hornos regulan automáticamente el tiempo y la temperatura, los ingredientes se producen también en base a unos procesos, y se distribuyen de forma masiva a todos los establecimientos en estuches, ambientes frigoríficos y medios de transporte en base a unos procesos que son los principales responsables de los resultados. Por esta razón resulta mucho más fácil, o en lenguaje empresarial, menos costoso, reemplazar al personal de cocina de un establecimiento de PhonoPizza que al de un restaurante de cocina vasca.

Las barras de color azul de la figura 2 representan de forma gráfica el valor, que para una empresa determinada, aporta cada elemento a su sistema de producción. Las combinaciones posibles para cada negocio son muchas, y factores como la innovación en la tecnología, en los procesos o la formación del personal pueden abrir la horquilla de potencial de cada elemento. La homogeneidad y calidad de los resultados, y la eficiencia del sistema en su conjunto serán consecuencia del equilibrio logrado. Por supuesto una franquicia de hamburguesas y comida rápida podría incluir, además de tecnología y procesos eficientes, la

Page 267: Navegápolis 2010

Empresa y mercado 267

contratación o formación de gourmets de alta cocina.; pero de esta forma su sistema de producción no estaría aprovechando la naturaleza de su producto como ventaja competitiva. La obsesión por la excelencia mal entendida, o la desorientación sobre las funciones del propio puesto lleva a muchos gestores a centrar sus esfuerzos en la incorporación de modelos o técnicas, bien de procesos, bien de recursos humanos o de innovación tecnológica; o de todos a la vez, por razones como que “es lo último en gestión”, o lo estudiado en el último seminario, o lo que con tanta vehemencia le ha “vendido” el último pseudo-consultor que visitó su empresa, o lo leído en ese libro de gestión tan interesante. Esta es al fin y al cabo, la razón del escepticismo y las críticas que finalmente verterán sobre modelos, métodos o técnicas contrastadas y eficaces; cuya debilidad no radica en ellas sino en una interpretación incorrecta, o en una implementación en un grado incorrecto, o sobre sistemas para los que no resultan apropiadas.

Conseguir que el sistema de procesos, tecnología y personas formen una ventaja competitiva frente a la competencia, y no un reto más del negocio, no es fácil, ni puede importarse con la implantación “prêt-à porter” de un modelo estándar.

Page 268: Navegápolis 2010

Empresa y mercado 268

Como refleja la figura 3, la clave del éxito radica en conseguir que cada factor pueda aportar el mayor valor hasta el límite de su mejor relación eficiencia / calidad. En esta tarea nunca está dicha la última palabra, y la labor de innovación constante en procesos y tecnología puede ir ampliando los límites de valor a un factor para conseguir un nuevo equilibrio con mejores parámetros de eficiencia y calidad en el sistema. Gnosce te ipsum

“No hay mayor inmoralidad que ejercer un oficio que no se conoce”

Napoleón Lo cierto es que un gestor o un directivo necesita combinar los conocimientos de management con los del propio negocio, sector e industria en la que se mueve. Quien se sienta en el puente de mando de una embarcación, por su puesto debe ser un buen “gestor” y contar con las habilidades y conocimientos para gobernar una nave, pero para realizar la travesía necesitará conocer las características de la propia nave, de la ruta y de las condiciones de la mar. Muchas veces los problemas que desde los puestos directivos se transmiten a la organización tienen su origen en la carencia de alguna de estas habilidades:

Decisiones más o menos fundadas en principios de gestión, que han ignorado las características de la empresa, o las particularidades del sector.

Decisiones de conocedores del negocio sin experiencia en management.

En cierto modo es como poner a los mandos de una embarcación a un capitán que desconoce cómo es el barco que tripula y las características de la ruta que va a seguir; o como apostar al timón a un tripulante veterano del navío, sin conocimientos de pilotaje. Según las características y dimensiones de la embarcación, y las vicisitudes que presente la travesía, alcanzar puerto puede ser un reto sin solución. Conocer la empresa

Page 269: Navegápolis 2010

Empresa y mercado 269

Los aspectos de la empresa que se deben conocer son, en general, comunes en todos los sectores, y poco puede aportar este artículo a un gestor, que él no conozca ya: Para conseguir eficiencia en su estrategia de producción esta deberá ser consecuente y estar alineada Con: La visión: Qué quiere llegar a ser la organización y cuál es su meta. Estrategia:, foco y plan de negocio, contemplando el mercado, las fortalezas y debilidades propias, etc. Cuál es la ruta que se ha perfilado para alcanzar esa meta. Sin saber adónde se va, difícilmente se puede diseñar la estrategia para lograr el objetivo, y sin estrategia también es difícil que un gestor pueda ejecutar la táctica adecuada, que es la que deberá incluir, entre otras cosas, el modelo de producción empleado. Por supuesto se puede zarpar y navegar a la deriva para ver en qué puerto se acaba, pero si no se es amante de las emociones fuertes; y si se siente respeto por el capital de los accionistas, y el trabajo de toda la tripulación, es mejor considerar que la lotería no es una inversión, sino un juego de azar. Industria del software Para todas las industrias hay marcos de trabajo compuestos por normativas y estándares más o menos estables y consensuados, que en forma de modelos ayudan a mejora o evaluar la calidad de sus sistemas de producción. Al mismo tiempo cada ingeniería tiene delimitadas sus áreas de conocimiento, y reguladas las técnicas de trabajo para ofrecer las garantías necesarias en la construcción de sus respectivos artefactos. Así por ejemplo, una empresa de arquitectura, o de ingeniería aero-espacial, naval o nuclear . tiene estándares y conocimientos estables, que si aplica sistemáticamente aportan garantías contrastadas a la robustez de las estructuras de sus edificios o de las naves que construye. Estos conocimientos, que sirven de referencia y ayuda a los entornos de desarrollo, provienen de dos áreas: 1.- Currículo de técnicas y conocimientos de las respectivas ingenierías. 2.- Modelos, normas y estándares de calidad y procesos aplicables a cada industria.

Page 270: Navegápolis 2010

Empresa y mercado 270

Una diferencia importante entre la industria del software y otras industrias de ingeniería es la falta de consenso o inmadurez en los dos puntos anteriores, que deja a las empresas de nuestro sector en un cierto grado de orfandad a la hora de buscar ayuda en modelos, técnicas o patrones de referencia. Por la relativa juventud del software en nuestra industria no hay un consenso acerca de cómo éste debe ser producido. El siguiente texto extraído del artículo “Criticism of software engineering” de wikipedia expone con acierto la situación actual:

En la ingeniería tradicional hay un claro consenso de cómo deben construirse las cosas, cuáles son los estándares que deben seguirse y qué riesgos deben tratarse: si un ingeniero no sigue estas prácticas y algo falla, puede ser demandado. Sin embargo no hay un consenso similar en la ingeniería del software. Cada uno promueve sus propios métodos, proclamando grandes beneficios en la productividad, que generalmente no respalda con evidencias científicas imparciales.

El problema en este momento no es la falta de estándares, modelos o técnicas, sino la abundancia de ellos, por lo que resulta aconsejable tomar un apunte del plano general para saber por dónde nos movemos.

Modelos y estándares de calidad La figura 4 es un mapa de situación simplificado con la foto de los principales marcos y modelos de procesos que pueden servir de referencia a las organizaciones de software; y las principales referencias de sus orígenes y evolución. Los procesos de fabricación de los años 50 hicieron necesaria la normalización de los procesos de producción para garantizar la

Page 271: Navegápolis 2010

Empresa y mercado 271

consistencia de los resultados sobre unos parámetros o requisitos previamente determinados. La norma que se considera como punto de arranque de los posteriores estándares, marcos y modelos que se han extendido a todas las industrias es la desarrollada por EE.UU. en 1959: “Quality Program Requirements” MIL-Q-9858, que, inicialmente diseñada para el ámbito militar, estableció un esquema auditable (a través de la norma de inspección MIL-I.45208) de los requisitos que los proveedores debían cumplir. El uso de esta norma se fue generalizando, pero de forma paralela diferentes países y organizaciones comenzaron a desarrollar las suyas propias. Así por ejemplo la OTAN en 1968 adoptó las especificaciones AQAP “Allied Quality Assurance Procedures”). El estándar británico BS5750, adoptado en el Reino Unido en 1979 fue el siguiente hito relevante en el camino de las normalizaciones, al lograr gran reconocimiento en varios países. Esta normativa fue en realidad la precursora de ISO 9000. Las normas y estándares que fueron surgiendo de los años 60 a los 90 dieron respuesta a las garantías de homogeneidad, calidad y predectibilidad que los entornos de fabricación, y especialmente el desarrollo de sistemas complejos requería al agrupar en proyectos la construcción de artefactos que imbricaban tecnologías e ingenierías diferentes: mecánica, aero-espacial, naval, atómica, etc. En estos sistemas se requería la integración, cada vez con mayor protagonismo, de una ingeniería que en base al conocimiento que había desplegado en esos años, no podía considerarse aún ni asentada ni consensuada: la ingeniería del software. Algunos de los fiascos que se produjeron en determinados sistemas por la introducción del software sin que éste pudiera dar garantías de resultados a la altura de ingenierías más maduras, son ya parte de la historia de nuestra profesión. Esbozar este marco histórico resulta necesario, porque es la causa de la actual sopa de letras capaz de marear al gestor más dispuesto con sólo ennumerarla: ISO 900-3, TicIT, ISO 12207, CMM-SW, ISO 15504, CMMI, ASD, XP, SCRUM, DSDM, PP, MSF… Tomando un poco de perspectiva (tan sólo 3 décadas), al software se le ha juntado la necesidad de encajar en marcos de calidad para ofrecer garantías de perfección, eficiencia y consistencia en los resultados; con la creación de su propia base de conocimientos técnicos para desarrollar y mantener software (requisitos, codificación, pruebas, diseño, etc.)

Page 272: Navegápolis 2010

Empresa y mercado 272

En este punto es interesante diferenciar entre marco o modelo de procesos y técnica o base de conocimiento técnico. La primera línea tiene como objetivo fijar qué es lo que hay que hacer para ofrecer garantías en los proyectos, y la segunda cómo debe realizarse. Un marco de procesos determinará, por ejemplo, la necesidad de gestionar adecuadamente las modificaciones de requisitos, o de realizar un diseño detallado antes de comenzar la codificación. El valor de los modelos de procesos radica en el conocimiento que aportan al señalar las actividades cuya omisión incrementa las posibilidades de fracaso en los proyectos. Sin embargo el marco de procesos no dirá, por ejemplo, que deba emplearse un sistema basado en documentos o en base de datos para la gestión de los requisitos; o si el diseño debe realizarse con diagramas IDEF o UML. Este es el campo de la técnica de la ingeniería del software. En la línea de los modelos de procesos (qué cosas hay que hacer) a partir de finales de los 80 se comenzaron a desarrollar marcos específicos para el software, para dar la cobertura necesaria a las particularidades de nuestro producto, donde las normas generales se quedaban cortas. En esta línea ISO 9000 desarrolló una norma específica para el software: ISO 9000-3, y la BSI (British Standards Institution) hizo lo propio desarrollando TickIT. En esta primera aparición de estándares surgieron también, aunque con menor repercusión: Trillium y Bootstrap. El primero desarrollado por la empresa Bell Canadá, que liberó sus derechos, haciéndolo de dominio público. Bootstrap es una metodología para la evaluación, medición y mejora de los procesos de software. Su desarrollo lo llevó a cabo una comisión del ESPRIT (European Strategic Program for Research). Sin embargo las dos líneas que surgieron a principios de los 90 y que continúan como referentes en la actualidad son. CMM, y las normalizaciones de ISO 12207 y 15504.

CMM

SEI (Software Engineering Institute), un auténtico peso pesado en la normalización de los procesos del software, desarrolló su línea de trabajo sobre el concepto de “madurez” de las organizaciones para producir software.

Page 273: Navegápolis 2010

Empresa y mercado 273

Por madurez se entiende la capacidad que tiene la organización para asegurar la calidad de sus proyectos (fecha, coste y funcionalidad), la homogeneidad (siempre y en todos sus proyectos) y la capacidad de aprendizaje de sus propia experiencia y su aplicación en la mejora continua. Como resultado de estas líneas de trabajo, en 1990 publicó el modelo de madurez de la capacidad para el desarrollo de software (CMM-SW), que tras más de una década de existencia ha demostrado que en muchas organizaciones ha resultado eficaz. Este modelo crea una escala de cinco niveles para determinar la madurez de una organización.

Nivel 1.- INICIAL Pertenecen a él las empresas que no basan el desarrollo en procesos definidos, y no aplican técnicas de gestión de proyectos. El modelo se refiere a entornos de producción caóticos con técnicas de programación heroica cuyos resultados no son predecibles y dependen exclusivamente de la valía de las personas.

Nivel 2.- REPETIBLE. Define a las organizaciones que aplican técnicas de gestión de proyectos, aunque no dispongan de procesos definidos.

Nivel 3.- DEFINIDO Pertenecen a él las organizaciones que disponen de procesos definidos con precisión y ejecutados de forma regular. Las empresas con este nivel de madurez examinan la experiencia de los proyectos que realizan y emplean las lecciones aprendidas para mejorar sus procesos.

Nivel 4.- GESTIONADO En el cuarto nivel de madurez se sitúan las organizaciones que han depurado el análisis de los proyectos realizados, hasta institucionalizarlo como procesos que miden cuantitativamente la capacidad de los procesos de desarrollo, de forma que pueden predecir de forma cuantificable los resultados, y evaluar las mejoras con mediciones objetivas.

Nivel 5.- OPTIMIZADO Las organizaciones con un nivel 5 de madurez tienen definidos, y practican de forma institucionalizada, procesos de mejora continua que se nutren con la información cuantificada de los procesos del nivel 4.

Page 274: Navegápolis 2010

Empresa y mercado 274

Tras el desarrollo del modelo SW-CMM, surgieron otros para la medición y mejora de la capacidad de los procesos, todos ellos centrados en áreas relacionadas con el foco original del SW-CMM: el desarrollo de software:

Systems Engineering Capability Maturity Model (SE-CMM)

Integrated Product Development Capability Maturity Model (IPD-CMM)

People Capability Maturity Model (P-CMM)

Software Acquisition Capability Maturity Model (SA-CMM) En 2000 el modelo SW-CMM se actualizó en otro que facilitaba su implantación de forma conjunta y simultánea con otros modelos (SE-CMM o IPD-CMM). Fue el nuevo modelo CMMI (Capability Maturity Model Integration). En la actualidad hay varios modelos CMMI, en función de las áreas que integran

CMMI-SE/SW/IPPD/SS (Systems Engineering, Software Engineering, Integrated Product and Process Development, Supplier Sourcing).

CMMI-SE/SW/IPPD (Systems Engineering, Software Engineering, Integrated Product and Process Development).

CMMI-SE/SE (Systems Engineering, Software Engineering) Además de la integración de varias disciplinas, los modelos CMMI introdujeron otra novedad que afectaba a su implantación: CMMI al igual que CMM tiene dos utilidades. Puede servir tanto como guía para la mejora en una organización, o como criterio para evaluar su nivel; pero mientras CMM centraba estas dos finalidades en la dimensión de la madurez de la organización, CMMI introduce una segunda dimensión, también válida para guiar las actividades de mejora y para evaluar a las organizaciones: la capacidad de los procesos. CMMI establece 6 niveles para determinar la capacidad de un proceso:

Nivel 0.- INCOMPLETO El proceso no se realiza.

Nivel 1.- REALIZADO Se lleva a cabo el proceso, consiguiendo transformar elementos de entrada identificados, en productos de salida.

Page 275: Navegápolis 2010

Empresa y mercado 275

Nivel 2.- GESTIONADO El proceso se ejecuta siempre de la misma manera, de una forma gestionada.

Nivel 3.- DEFINIDO El proceso está definido en la organización y se ejecuta siempre.

Nivel 4 CUANTIFICADAMENTE GESTIONADO La ejecución del proceso tiene institucionalizado en la organización un sistema de medición objetivo y cuantificable de su capacidad.

Nivel 5.- OPTIMIZADO El proceso, que se ejecuta siempre, está definido en la organización, se mide y está integrado en un plan, también institucionalizado, de mejora continua basada en las mediciones de los procesos.

De esta forma los modelos CMMI presentan 2 versiones:

Versión escalonada. Guía a la organización sobre las áreas de procesos que debe ir abordando, las prácticas que debe implantar y los objetivos que debe alcanzar para ir consiguiendo los sucesivos niveles de madurez.

Versión continua. Permite cierta libertad a la organización sobre las áreas de proceso que desea mejorar, y le orienta para ir elevando su nivel de capacidad.

Consecuentemente al evaluar a una organización se puede hacer sobre la dimensión de su madurez, estableciendo cuál es el nivel que ha alcanzado, o sobre la dimensión de la capacidad, reflejando cuál es el nivel de cada una de las áreas de proceso contempladas por el modelo.

Mientras SEI publicaba y comenzaba a definir su modelo CMM, ISO emprendía los otros dos proyectos que hoy forman los principales puntos de referencia en el ámbito de la calidad para nuestra industria: ISO 12207 e ISO 15504.

ISO/IEC 12207

Es el estándar internacional que ha determinado cuál es el ciclo de vida de un proyecto de software, y cuáles los procesos y tareas que intervienen en cada una de sus fases.

Page 276: Navegápolis 2010

Empresa y mercado 276

A grandes rasgos, 12207 concluyó considerando que el ciclo de vida de un sistema de software comienza en el momento que se concibe su idea o necesidad. Momento en el que ya es necesario comenzar a actuar de manera ortodoxa para describir el ámbito del problema, las soluciones posibles, etc. El ciclo de vida comprende también el desarrollo, mantenimiento y operación y no concluye hasta que el sistema deja de utilizarse y es definitivamente retirado.

SPICE – ISO/IEC STD. 15504.

En enero de 1993 la comisión ISO/IEC JTC1 aprobó un programa de trabajo para el desarrollo de un modelo que fuera la base de un futuro estándar internacional para la evaluación de los procesos del ciclo de vida del software.

Page 277: Navegápolis 2010

Empresa y mercado 277

Este trabajo recibió el nombre de proyecto SPICE (Software Process Improvement and Capability dEtermination), y en junio de 1995, con la publicación de su primer borrador, desde ISO fueron invitadas diferentes organizaciones para aplicarlo y valorar sus resultados. En 1998, pasada la fase de proyecto, y tras las primeras evaluaciones, el trabajo pasó a la fase de informe técnico con la denominación ISO/IEC TR 15504. La instrucción técnica consta de 9 apartados, recogidos en volúmenes independientes, que se han ido publicando como redacción definitiva del estándar internacional ISO/IEC 15504 durante el periodo 2003-2005. Aunque ISO comenzó con el proyecto SPICE algo más tarde que SEI con el modelo CMM, durante su evolución han ido convergiendo, y ambas instituciones vienen trabajando de forma conjunta desde 1998 para lograr la compatibilidad que finalmente han garantizado entre el modelo CMMI y el estándar 15504, de forma que la conformidad con uno de ellos implica la también conformidad con el otro. El estándar está recogido en 9 documentos.

1.- (informativo) Conceptos y guía de introducción. 2.- (normativo) Modelo de referencia de los procesos y de su capacidad. 3.- (normativo) Ejecución de las auditorías. 4.- (informativo) Guía para la realización de auditorías. 5.- (informativo) Modelo de asesoría e indicadores. 6.- (informativo) Guía de formación de consultores. 7.- (informativo) Guía para usar en los procesos de mejora. 8.- (informativo) Guía para determinar la capacidad de los procesos del proveedor. 9.- (normativo) Vocabulario.

ISO/IEC 15504, al igual que CMMI es un modelo para evaluar los procesos de la organización y determinar si resultan efectivos para conseguir los objetivos. También es un modelo para guiar las acciones de mejora de los procesos. 15504 tiene gran similitud con la representación continua de CMMI. Al igual que este último centra el foco en la capacidad de los procesos, y permite trabajar sólo con una parte de ellos en lugar de hacerlo con todos los de la organización. ISO 15504 agrupa los procesos de las organizaciones de software en cinco categorías:

Page 278: Navegápolis 2010

Empresa y mercado 278

Cliente – proveedor

Ingeniería

Soporte

Gestión

Organización Y para la medición de cada proceso define una escala de 6 niveles

0 Proceso incompleto

1 Proceso realizado

2 Proceso gestionado

3 Proceso establecido

4 Proceso predecible

5 Proceso optimizado. ISO 15504 y CMMI son los referentes de las metodologías formales. Para ambos el centro de su desarrollo son los procesos, no sólo para el desarrollo, mantenimiento y operación de los sistemas de software, sino también para mejorar la capacidad de los propios procesos y la madurez de las organizaciones.

Page 279: Navegápolis 2010

Empresa y mercado 279

Modelos nuevos sobre una profesión recién estrenada El uso de modelos de procesos y calidad para asegurar la eficiencia, aptitud y consistencia en los resultados, y para asentar pautas de mejora continua, es relativamente novedoso, y lo habitual es aplicar estos marcos sobre entornos de fabricación, con conocimientos profesionales ya maduros. El software, sin embargo, es una industria que trabaja con un conocimiento profesional escasamente asentado. Y a la aparición de marcos y modelos de calidad se suma el movimiento paralelo de propuestas de currículos profesionales. La profesionalización exige:

Disponer de una base de conocimiento, desarrollada con metodología científica, y contrastada con la experiencia.

Consenso y aceptación por la comunidad que ejerce la profesión.

Desarrollo de de currículos profesionales, que gracias al consenso resulten homogéneos sobre centros de formación, universidades y países diferentes.

Desarrollo de las organizaciones académicas y profesionales de autorregulación.

Con este esquema se podrá estar más o menos de acuerdo, pero es el que emplea la sociedad para dar el rango de profesión a los trabajos no regulados. Para cambiar el título de curandero por el de médico, el de sacamuelas por odontólogo, o el de alquimista por el de químico.

Page 280: Navegápolis 2010

Empresa y mercado 280

(Gary Ford y Norman Gibbs 1996)

En esta línea han estado trabajando un buen número de organizaciones profesionales, agrupados en el proyecto SWEBOK (Software Engineering Body Of Knowledge http://www.swebok.org) Su objetivo ha sido asentar de forma consensuada la base de conocimiento necesaria para el currículo de un ingeniero de software. Primer paso para lograr un entorno profesional, socialmente reconocido. El trabajo de este proyecto comenzó en 1998, y la publicación de la primera versión, consensuada por todos los participantes, se produjo en Febrero de 2004. Esto da una idea de lo tierna que está la profesión. O mejor dicho, de que se trata de una profesión no asentada. La heterodoxia: métodos ágiles Ya hemos visto que a la relativa novedad de gestión por procesos, en nuestra industria se suma como dificultad adicional el producirse de forma simultánea al asentamiento de la profesión. Y para conseguir el “más difícil todavía”, hay que contar con una tercera tendencia de normalización. O, quizá habría que llamarla de des-normalización:

Page 281: Navegápolis 2010

Empresa y mercado 281

Los métodos ágiles.

A finales de los 90, reputados profesionales con renombre y eco en diferentes foros técnicos, comenzaron a cuestionar las metodologías formales, que representadas por CMM e ISO 15504, y respaldadas por la autoridad y los medios de sus respectivas organizaciones, estaban configurando una ingeniería del software basada en los procesos. En marzo de 2001, 17 críticos de estos modelos, convocados por Kent Beck, que acababa de definir una nueva metodología denominada Extreme Programming, se reunieron en Salt Lake City para discutir sobre los modelos de desarrollo de software. En la reunión se acuñó el término “Métodos Ágiles” para definir a aquellos que estaban surgiendo como alternativa a las metodologías formales, a las que consideraban excesivamente “pesadas” y rígidas por su carácter normativo y fuerte dependencia de planificaciones detalladas, previas al desarrollo. Los integrantes de la reunión resumieron en cuatro postulados lo que ha quedado denominado como “Manifiesto Ágil”, que compendia el espíritu en el que se basan estos métodos:

Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: A los individuos y su interacción por encima de los procesos y las herramientas El software que funciona, por encima de la documentación exhaustiva. La colaboración con el cliente, por encima de la negociación contractual. La respuesta al cambio, por encima del seguimiento de un plan. Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.

Manifiesto ágil Los firmantes afirman que los puntos de su manifiesto se sustentan en 12 principios:

1. Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor.

2. Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se

Page 282: Navegápolis 2010

Empresa y mercado 282

doblegan al cambio como ventaja competitiva para el cliente.

3. Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves.

4. Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto.

5. Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea.

6. La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.

7. El software que funciona es la principal medida del progreso.

8. Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.

9. La atención continua a la excelencia técnica enaltece la agilidad.

10. La simplicidad como arte de maximizar la cantidad de trabajo que se hace, es esencial.

11. Las mejores arquitecturas, requisitos y diseños emergen de equipos que se auto-organizan.

12. En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.

El manifiesto ágil surgió con espíritu de respuesta desafiante y beligerante contra los métodos basados en procesos. Los propios integrantes del manifiesto se auto-califican como “anarquistas organizacionales”, y en estos años, desde uno y

Page 283: Navegápolis 2010

Empresa y mercado 283

otro lado se han lanzado argumentos punzantes buscando más la descalificación ajena que la justificación propia. Los principales métodos ágiles son

DSDM (Dynamic Systems Development Method)

Es la metodología más veterana de las auto-denominadas ágiles. Surgió en 1994 de los trabajos de Jennifer Stapleton, la actual directora del DSDM Consortium. DSDM es la metodología ágil más próxima a los métodos formales, de hecho la implantación de un modelo DSDM en una organización la lleva a alcanzar lo que CMM consideraría un nivel 2 de madurez. Sin embargo los aspectos que DSDM reprocha a CMM son:

Aunque es cierto que se ha desarrollado con éxito en algunas organizaciones, lo que funciona bien en unos entornos no tiene por qué servir para todos.

CMM no le da al diseño la importancia que debería tener.

CMM plantea un foco excesivo en los procesos, olvidando la importancia que en nuestra industria tiene el talento de las personas.

El tener procesos claramente definidos no es sinónimo de tener buenos procesos.

En común con los métodos ágiles, DSDM considera imprescindible una implicación y una relación estrecha con el cliente durante el desarrollo, así como la necesidad de trabajar con métodos de desarrollo incremental y entregas evolutivas. DSDM cubre los aspectos de gestión de proyectos, desarrollo de los sistemas, soporte y mantenimiento y se autodefine como un marco de trabajo para desarrollo rápido más que como un método específico para el desarrollo de sistemas.

Page 284: Navegápolis 2010

Empresa y mercado 284

Extreme Programming

Este es el método que más popularidad ha alcanzado entre las metodologías ágiles, y posiblemente sea también el más transgresor de la ortodoxia basada en procesos. Su creador, Kent Beck fue el alma mater del Manifiesto Ágil. Extreme Programming (XP) se irgue sobre la suposición de que es posible desarrollar software de gran calidad a pesar, o incluso como consecuencia del cambio continuo. Su principal asunción es que con un poco de planificación, un poco de codificación y unas pocas pruebas se puede decidir si se está siguiendo un camino acertado o equivocado, evitando así tener que echar marcha atrás demasiado tarde. Cuatro son los valores que lo inspiran: simplicidad, feedback, coraje y comunicación. XP no es un modelo de procesos ni un marco de trabajo, sino un conjunto de 12 prácticas que se complementan unas a otras y deben implementarse en un entorno de desarrollo cuya cultura se base en los cuatro valores citados: Comunicación XP pone en comunicación directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance día a día, y es posible ajustar la agenda y las funcionalidades de forma consecuente. Feedback rápido y continuo Una metodología basada en el desarrollo incremental de pequeñas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-información valioso para detectar los problemas o desviaciones. De esta forma fallos se localizan muy pronto. La planificación no puede evitar algunos errores, que sólo se evidencian al desarrollar el sistema. La retro-información es la herramienta que permite reajustar la agenda y los planes. Simplicidad La simplicidad consiste en desarrollar sólo el sistema que realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales. “Los costes y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro.” Con este principio de simplicidad, junto con la comunicación y el feedback resulta más fácil conocer las necesidades reales.

Page 285: Navegápolis 2010

Empresa y mercado 285

Coraje El coraje implica saber tomar decisiones difíciles. Reparar un error cuando se detecta. Mejorar el código siempre que tras el feedback y las sucesivas iteraciones se manifieste susceptible de mejora. Tratar rápidamente con el cliente los desajustes de agendas para decidir qué partes y cuándo se van a entregar. Las 12 prácticas que aplicadas sobre esta cultura conforman Extreme Programming son: PRÁCTICAS DE CODIFICACIÓN 1.- Simplicidad de código y de diseño para producir software fácil de modificar. 2.- Reingeniería continua para lograr que el código tenga un diseño óptimo. 3.- Desarrollar estándares de codificación, para comunicar ideas con claridad a través del código. 4.- Desarrollar un vocabulario común, para comunicar las ideas sobre el código con claridad. PRÁCTICAS DE DESARROLLO 1.- Adoptar un método de desarrollo basado en las pruebas para asegurar que el código se comporta según lo esperado. 2.- Programación por parejas, para incrementar el conocimiento, la experiencia y las ideas. 3.- Asumir la propiedad colectiva del código, para que todo el equipo sea responsable de él. 4.- Integración continua, para reducir el impacto de la incorporación de nuevas funcionalidades. PRÁCTICAS DE NEGOCIO 1.- Integración de un representante del cliente en el equipo, para encauzar las cuestiones de negocio del sistema de forma directa, sin retrasos o pérdidas por intermediación. 2.- Adoptar el juego de la planificación para centrar en la agenda el trabajo más importante. 3.- Entregas regulares y frecuentes para satisfacer la inversión del cliente. 4.- Ritmo de trabajo sostenible, para terminar la jornada cansado pero no agotado.

SCRUM

Page 286: Navegápolis 2010

Empresa y mercado 286

No es propiamente un método o metodología de desarrollo, e implantarlo como tal resulta insuficiente. Scrum define métodos de gestión y control para complementar la aplicación de otros métodos ágiles como XP que, centrados en prácticas de tipo técnico, carecen de ellas. Los principios de Scrum son:

Equipos autogestionados.

Una vez dimensionadas las tareas no es posible agregarles trabajo extra.

Reuniones diarias en las que los miembros del equipo se plantean 3 cuestiones:

¿Qué has hecho desde la última revisión?

¿Qué obstáculos te impiden cumplir la meta?

¿Qué vas a hacer antes de la próxima reunión?

Iteraciones de desarrollo de frecuencia inferior a un mes, al final de las cuales se presenta el resultado a los externos del equipo de desarrollo, y se realiza una planificación de la siguiente iteración, guiada por cliente.

OTROS MÉTODOS ÁGILES

Familia de métodos Crystal

La familia de metodologías Crystal ofrece diferentes métodos para seleccionar el más apropiado para cada proyecto. Crystal identifica con colores diferentes cada método, y su elección debe ser consecuencia del tamaño y criticidad del proyecto, de forma que los de mayor tamaño, o aquellos en los que la presencia de errores o desbordamiento de agendas implique consecuencias graves, deben adoptar metodologías más pesadas. Los métodos Crystal no prescriben prácticas concretas, y se pueden combinar con técnicas como XP.

ASD (Adaptative Software Development)

Método que como alternativa a los procedimientos formales, aborda el desarrollo de grandes sistemas con el uso de técnicas propias de las metodologías ágiles.

Page 287: Navegápolis 2010

Empresa y mercado 287

No se trata de una metodología, sino de la implantación de una cultura en la empresa, basada en la adaptabilidad.

PP (Pragmatic Programming)

Pragmatic Programming es la colección de 70 prácticas de programación, comunes a otros métodos ágiles, cuya aplicación resulta útil para solucionar los problemas cotidianos.

AM (Agile Modeling)

Agile Modeling es la presentación de un nuevo enfoque para realizar el modelado de sistemas,(diseño) y basado en los principios de los métodos ágiles remarca la conveniencia de reducir el volumen de la documentación.

ISD (Internet-Speed Development)

Es el más reciente de los métodos ágiles, surgido como respuesta para las situaciones que requieren ciclos de desarrollo muy breves con entregas rápidas. Se centra en el talento de las personas sobre los procesos. ISD es un entorno de gestión orientado al negocio.

FDD (Feature Driven Development)

Prescribe un proceso iterativo de 5 pasos, con iteraciones de dos semanas. El punto de referencia son las características que debe reunir el software, y se centra en las fases de diseño e implementación del sistema.

Page 288: Navegápolis 2010

Empresa y mercado 288

MÉTODOS DE PROPIEDAD COMERCIAL

MSF (Microsoft Solutions Framework)

MSF es la metodología empleada por Microsoft para el desarrollo de software. Hasta su versión 3 (principios de 2005) MSF se definía como un marco de desarrollo flexible para adaptarse a las necesidades de cada proyecto, en oposición a lo que sería una metodología prescriptiva; porque parte de la base de que no hay una estructura de procesos óptima para las necesidades de todos los entornos de desarrollo posibles. El marco MSF se asienta sobre unos Principios Fundamentales que definen la cultura del entorno de desarrollo:

Fomento de la comunicación abierta.

Trabajo en torno a una visión compartida.

Apoderar a los integrantes del equipo (“empowerment”)

Establecimiento de responsabilidades claras y compartidas.

Centrar el objetivo en la entrega de valor para el negocio.

Permanecer ágiles y esperar e cambio.

Invertir en calidad.

Aprender de la experiencia. Para la aplicación de estos principios en los procesos y en las personas, MSF define un Modelo de Equipo y un Modelo de Procesos. Sobre los Modelos, y trabajando con la cultura de sus Principios Fundamentales, las Disciplinas que establece para el desarrollo del software son:

Gestión de proyectos.

Gestión de riesgos.

Gestión de la mejora del talento. Si bien, MSF despliega la gestión de proyectos y la gestión de riesgos con algunas diferencias sobre las visiones clásicas de estas áreas.

Page 289: Navegápolis 2010

Empresa y mercado 289

El marco de desarrollo incluye también Conceptos Clave, Prácticas Contrastadas y Recomendaciones para la ejecución de las tareas concretas en el desarrollo de software. En 2005, el desarrollo del nuevo producto de Microsoft “Visual Studio 2005 Team System” ha generado la evolución de MSF hacia la nueva versión 4.0 con dos líneas paralelas:

Microsoft Solutions Framework (MSF) for Agile Software Development.

Microsoft Solutions Framework (MSF) for CMMI Process Improvement.

RUP (Rational Unified Process)

Es un proceso de Ingeniería del Software que proporciona una visión disciplinada para la asignación de tareas y responsabilidades en las organizaciones de desarrollo de software. RUP es un “modelo-producto” desarrollado y mantenido por Racional Software, integrado en su conjunto de herramientas de desarrollo, y distribuido por IBM. RUP integra un conjunto de “buenas prácticas” para el desarrollo de software en un marco de procesos válido para un rango amplio de tipos de proyectos y organizaciones. Las principales buenas prácticas cubiertas son:

Desarrollo iterativo.

Gestión de requisitos.

Uso de arquitecturas basadas en componentes.

Uso de técnicas de modelado visual.

Verificación continua de la calidad.

Gestión y control de cambios. En su visión estática, el modelo RUP está compuesto por:

Roles: analista de sistemas, diseñador, diseñador de pruebas, roles de gestión y roles de administración.

Actividades: RUP determina el trabajo de cada rol a través de actividades. Cada actividad del proyecto debe tener un propósito claro, y se asigna a un rol específico. Las actividades pueden tener duración de horas o de algunos días; y son elementos base de planificación y progreso.

Page 290: Navegápolis 2010

Empresa y mercado 290

Artefactos: Son los elementos de entrada y salida de las actividades. Son productos tangibles del proyecto. Las cosas que el proyecto produce o usa para componer el producto final (modelos, documentos, código, ejecutables…)

Disciplinas: son “contenedores” empleados para organizar las actividades del proceso. RUP comprende 6 disciplinas técnicas y 3 de soporte. Técnicas: modelado del negocio, requisitos, análisis y diseño, implementación, pruebas y desarrollo. Soprte: gestión de proyecto, gestión de configuración y cambio, y entorno.

Flujos de trabajo: son el “pegamento”de los roles, actividades, artefactos y disciplinas, y constituyen la secuencia de actividades que producen resultados visibles.

En su visión dinámica, la visión de la estructura del ciclo de vida RUP se basa en un desarrollo iterativo, jalonado por hitos para revisar el avance y planear la continuidad o los posibles cambios de rumbo. Cuatro son las fases que dividen el ciclo de vida de un proyecto RUP: 1.- Inicio. Es la fase de la idea, de la visión inicial de producto, su alcance. El esbozo de una arquitectura posible y las primeras estimaciones. Concluye con el “hito de objetivo”. 2.- Elaboración. Comprende la planificación de las actividades y del equipo necesario. La especificación de las necesidades y el diseño de la arquitectura. Termina con el “hito de Arquitectura”. 3.- Construcción. Desarrollo del producto hasta que se encuentra disponible para su entrega a los usuarios. Termina con el “hito del inicio de la capacidad operativa”. 4.- Transición. Traspaso del producto a los usuarios. Incluye: manufactura, envío, formación, asistencia y el mantenimiento hasta lograr la satisfacción de los usuarios. Termina con el “hito de entrega del producto”.

Page 291: Navegápolis 2010

Empresa y mercado 291

Métodos ortodoxos y métodos ágiles Se dice que hay dos formas de abordar los proyectos: 1.- Dedicar escaso tiempo a la preparación y planificación, e invertir la mayor parte del tiempo en el desarrollo, probando y rectificando hasta conseguir el resultado adecuado. 2.- Invertir mucho tiempo y esfuerzo en la preparación y planificación para conseguir que el desarrollo se ejecute en el menor tiempo y con los menores incidentes posibles. Aunque sin duda esta es una visión simplificada, refleja las diferencias entre los modelos ortodoxos, o basados en procesos, y las metodologías ágiles; así como las razones de su desencuentro. Los métodos formales (CMMI, ISO15504) abogan por el segundo modelo y basan el éxito del proyecto en la planificación y el rigor normativo en los procesos de su desarrollo. Hacen especial hincapié en la importancia de los requisitos para conocer con el mayor detalle el sistema antes de comenzar a construirlo, y en las prácticas formales de la gestión de proyectos, para trabajar sobre una planificación previa, y controlar su seguimiento. Para estos modelos, se alcanza mayor nivel de madurez, cuantas más actividades del ciclo de vida del sistema de software se realicen según los procesos previamente diseñados e implantados en la organización. Por otra parte, y con mayor o menor proximidad al extremo contrario, se encuentran las denominadas metodologías ágiles, que tienen como común denominador un modelo de desarrollo incremental para producir tempranamente pequeñas entregas en ciclos rápidos, y predisposición para el cambio y la adaptación continua; según sea la conformidad o no de lo producido, y las modificaciones propuestas por los usuarios. Aparte de esta base común, también comparten menor rigidez en los procesos, aunque las diferencias en este punto son significativas entre cada método. Considerar que hay dos formas de realizar los proyectos es una visión simplificada, pero refleja el hecho de que en la realidad, cada técnica se define en uno u otro bando, y con mayor o menor proximidad del extremo. Los métodos formales llevados hasta su máximo nivel de madurez se situarían en el extremo de la ortodoxia, (lado izquierdo de la fig.) si bien es cierto que las representaciones

Page 292: Navegápolis 2010

Empresa y mercado 292

continuas de estos modelos permiten adoptar sólo las prácticas para determinadas áreas de procesos, y llevarlos hasta el nivel de capacidad que se estime oportuno, por lo que un conocedor del modelo puede emplearlo como guía para realizar una implantación relativamente ágil, más o menos adecuada a las características de la organización.

Los métodos ágiles se sitúan más o menos cerca del extremo opuesto. Los más extremistas (quizá PP o XP) por la no utilización o incluso aversión a los procesos, se encuentran más en la categoría de prácticas de programación, o técnicas de trabajo (cómo hacer las cosas) que en la de modelos de procesos (qué cosas hay que hacer) La circunstancia más o menos marcada en cada caso de “oposición” entre métodos ágiles y métodos formales, puede inducir al error de considerar a todos ágiles como similares o equivalentes. En el lado opuesto sí que ocurre, y las similitudes entre CMMI e ISO 15504 son notables, pero con los ágiles ocurre sin embargo que los niveles de reconocimiento y rigor alcanzan diferencias notables entre ellos, así como la cobertura que llegan a alcanzar sobre determinadas áreas de procesos.

Page 293: Navegápolis 2010

Empresa y mercado 293

El oficio del gestor Con lo visto hasta ahora tenemos ya el mapa de situación. No es que sea importante conocerlo. Es necesario para no andar desorientados entre los árboles, y tener la visión del bosque en su conjunto. Ya solo queda trazar la ruta y guiar el camino. ¡Casi nada!. Pero nadie ha dicho que la gestión de entornos de desarrollo de software sea fácil. Basta con echar un vistazo a nuestro alrededor. El mayor o menor grado de éxito en la calidad y eficiencia en el desarrollo de software depende del equilibrio que se consiga al conjugar los siguientes factores:

Características de los proyectos de software gestionados.

Visión de la organización.

Cultura de la organización.

Diseño y gestión del equilibrio productivo personas-procesos-tecnología.

Características de los proyectos de software.

El concepto sistema de software es muy amplio, y tan sistema de software es el integrado en un teléfono celular, como el desarrollado en un proyecto Open Source por iniciativa del propio grupo de desarrolladores; o el diseñado para asistir el pilotaje de un avión comercial. En algunos casos se tratará de gestionar una normativa contable u otro negocio o entorno suficientemente conocido en el que un proceso formal de requisitos inicial puede capturar con bastante detalle todas las funcionalidades esperadas. En otros, la novedad o complejidad del entorno en el que se integrará el sistema, hacen difícil, si no imposible descubrir qué debe hacer el software si no es a través de prototipado o desarrollo evolutivo. El tamaño también importa. Un sistema puede requerir el esfuerzo de un programador durante un par de meses, o de un equipo de varias decenas de personas durante un par de años. Por las características del proyecto quizá la funcionalidad alcanzada en cada versión, así como la precisión en el

Page 294: Navegápolis 2010

Empresa y mercado 294

cumplimiento de las fechas puede ser poco trascendente o vital para el negocio del cliente. En este aspecto, la diferencia de criticidad entre el desarrollo de un sistema open source sin ánimo de lucro, o de un sistema de gestión para una empresa que depende de él para abrir su negocio, es muy diferente. El nivel de integridad del sistema, o daño que pueden producir los fallos del sistema, también determina el rigor de los procesos que deben aplicarse en su desarrollo. Un error en el aplicativo de una entidad bancaria puede suponer pérdidas económicas o de imagen que comprometan la continuidad de su negocio. Errores en otros sistemas pueden producir pérdidas humanas. La presencia de errores en la página web de un pequeño comercio tiene repercusiones de menor alcance.

Visión, misión y negocio de la organización.

Las preguntas relativas a la organización que ayudan a diseñar el aludido equilibrio son: ¿Para qué desarrolla software la organización? ¿Es una empresa con un producto definido que debe dar beneficios? ¿Es el departamento de sistemas de una entidad bancaria que centra su misión en la seguridad? ¿Es una asociación de ingenieros para el desarrollo de un proyecto open source? Para alcanzar su misión, ¿Qué papel juega la innovación y vanguardia tecnológica? ¿Se dedican a mantener operativos sistemas ya desarrollados? ¿Programan sistemas poco innovadores, sobre plataformas contrastadas, para negocios y entornos conocidos? ¿Apuesta por la innovación, implementación sobre dispositivos nuevos, o diseñan soluciones para entornos novedosos?

Cultura de la organización

¿Se trata de una organización con niveles jerárquicos y funciones claramente definidos? ¿Cuáles son los niveles de confianza, delegación, empowerment y responsabilidad? ¿Clima laboral, motivación?

Page 295: Navegápolis 2010

Empresa y mercado 295

Diseño y gestión del equilibrio productivo personas-procesos-tecnología

La estrategia productiva. ¿Qué tecnología emplea para el desarrollo? Equipos, red, sistemas de pruebas, plataformas operativas, plataformas de desarrollo, pruebas, herramientas CAD…? ¿Qué porcentaje o peso del conocimiento necesario para la ejecución de los proyectos lo garantizan la ejecución de los procesos, y cuánto las personas? ¿Son coherentes las políticas o procesos de formación, contratación, planes de carrera, diseño del modelo de procesos, calidad y mejora…? El éxito: ¿Gestión o azar?

“Para todo problema complejo hay siempre una solución simple, que es errónea”

George Bernard Shaw

Cuando se desconocen las variables que actúan sobre un sistema, y su influencia, se habla de que presenta un comportamiento aleatorio (“caótico”). Por definición, no es posible predecir cuáles serán los resultados al actuar sobre un entorno caótico. La acción externa modificará algunas variables, pero al no saber cuántas más están actuando, y cuál es su repercusión, no se pueden predecir los resultados. Cuantas más variables se conocen, éste se va tornando más predecible y menos caótico, como ha ido ocurriendo, por ejemplo, en las últimas décadas con la predicción meteorológica. La diferencia entre un sistema caótico y un sistema complejo es que en el primero son tantas las fuerzas que actúan que resulta materialmente imposible predecir su resultado (Ej: comportamiento de las bolas en un bombo). En sistemas complejos, aunque son varias las fuerzas, sí que resulta posible su conocimiento, o el conocimiento de las más relevantes, y actuar con probabilidades de certidumbre muy altas sobre las consecuencias. Desde este punto de vista, un entorno de desarrollo de software es un sistema complejo en el que se pueden combinar y poner en interacción múltiples elementos, y con diferentes pesos y formas de gestión (Véanse en el artículo los modelos y técnicas que pueden conjugarse, y los factores que apuntan las preguntas del apartado anterior).

Page 296: Navegápolis 2010

Empresa y mercado 296

Aunque sobre los sistemas complejos, a diferencia de los aleatorios, sí es posible actuar con factores de predecibilidad elevados, si desconocemos su ecuación de fuerzas, se presentan de comportamiento tan aleatorio como los sistemas caóticos. Para ser más exactos en esta apreciación, lo cierto es que un sistema complejo parece caótico, a quien desconoce cuáles son sus variables y su relación, pero esto no es muy frecuente que ocurra, ya que si alguien sabe que hay variables aprehensibles y que conociéndolas podrá actuar con mayor seguridad, no es normal que continúe jugando al azar. El hombre, por su naturaleza necesita seguridad, y si sabe que las reacciones de un sistema responden a un mecanismo más o menos complejo, no es normal que prefiera ignorarlo. Por eso el error más habitual consiste en actuar bajo el fenómeno de la “superstición”, tomando como referencia variables falsas, o creyendo que son tan sólo una o dos las fuerzas que deciden el comportamiento del sistema. De esta forma, al igual que el jugador de ruleta supersticioso se aferra a su camisa de la suerte, por la razón de que le dio un par de noches afortunadas, un gestor se puede aferrar a determinadas prácticas de gestión, porque una vez funcionaron con éxito, o porque el último libro de management las considera “mano de santo”. Por este camino también puede acabarse maldiciendo la ruleta, perdón, la gestión; cayendo en el escepticismo sobre los consultores, las teorías de management, de comportamiento organizacional, los modelos de calidad, etc. Porque claro, uno siempre hace las cosas bien. Por eso si los resultados salen mal el problema está fuera de él.

Page 297: Navegápolis 2010

Empresa y mercado 297

Conclusiones Para diseñar y gestionar entornos de producción eficientes se debe trabajar con pensamiento sistémico, comprendiendo que todos los factores implicados en la producción de software componen un sistema interrelacionado, imbricado y alineado con la misión de la organización. Lo contrario, y probablemente más habitual consiste en actuar desde una visión fáctica e inmediata, buscando relaciones lineales causa–efecto, sin apreciar la relación y armonía del sistema, que las integra y les da sentido (y que no se ciñe al área de desarrollo, sino a la organización en su conjunto). No se trata por tanto de conocer cuál es la mejor metodología para el diseño de bases de datos, cuál el mejor modelo de procesos o cuáles las mejores técnicas de gestión de recursos humanos. La multiplicidad de técnicas, modelos, herramientas, modos de gestión, es consecuencia de la diversidad de organizaciones y tipos de proyectos posibles. Evitar la gestión lineal El error habitual es trabajar con gestión lineal y a-sistémica, administrando soluciones sintomáticas para cada situación. La gestión lineal, carece de la perspectiva necesaria, y responde de forma azuzada a la presión del día a día. Sin esa perspectiva no se ve el sistema, y el marco de trabajo se presenta como un campo de batalla desordenado que requiere actuaciones en cada uno de los frentes que presenta. Si los proyectos se retrasan será preciso sugerir, animar o presionar a las personas (allá cada cual con el estilo de gestión que aplique) para que alarguen sus jornadas de trabajo, o restrinjan los tiempos de café… Si programamos con mayores costes que nuestra competencia, habrá que contener los salarios, o contratar más barato, o aplicar procesos de calidad para reducir los tiempos, o… (también aquí cada cual sintonizará mejor con unas u otras decisiones.). Etcétera.

Page 298: Navegápolis 2010

Empresa y mercado 298

Para cada necesidad se abre el botiquín, y se busca un apaciguador de síntomas. Las soluciones obvias no funcionan. En el mejor de los casos introducen mejoras en el corto plazo que terminarán por empeorar la situación. La presión del día a día ofrece dos atajos muy tentadores que se deben evitar:

Aplicar soluciones enfocadas en resultados en el corto plazo.

Obtener mediciones y datos que demuestren un buen comportamiento.

Con carácter general, las soluciones a corto, hipotecan el futuro. son sintomáticas, y generan resistencia, de forma que la próxima vez que se vuelva a generar un problema similar, el remedio sintomático tendrá menos eficacia. Cerrar rápido un proyecto, hará más duro su mantenimiento (sistema peor diseñado, mayor densidad de errores…). Presionar a los programadores para cumplir fechas es también una solución a corto, que no ofrece soluciones a largo. Si se mantiene la presión como una norma, generará desmotivación y degradación en la calidad de lo producido. Las mediciones sobre los procesos son una herramienta útil para comprender el funcionamiento general del sistema y trabajar en su mejora. Emplearlas como justificación ante instancias superiores, es también una búsqueda de la solución a corto, interesada en que las cosas pinten bien. De esta forma las organizaciones pueden llegar a agonizar con una apariencia de salud envidiable. Gestión sistémica La eficiencia es el resultado de la idoneidad y equilibrio de todos los componentes de la producción. ¿Cuál es el mejor modelo de procesos para el desarrollo de software? ¿La cultura de empresa más adecuada? ¿Las mejores técnicas de gestión de RR.HH:? ¿Las mejores plataformas de programación?

Page 299: Navegápolis 2010

Empresa y mercado 299

Para la gestión de las personas, los procesos y la tecnología, no hay métodos simples, absolutos con resultados inmediatos. Un modelo de procesos CMMI con nivel 5 de madurez puede garantizar resultados en línea con la misión de una gran empresa integradora de grandes sistemas críticos, pero resulta excesivamente pesado para una “Start-up” de diseño web. El modelo “bueno” no es Scrum, o CMMI o XP, sino el que mejor encaje en su sistema. Las técnicas empleadas, los modelos de calidad, la tecnología, la cultura de la empresa, la gestión de las personas… deben guardar coherencia, de forma que se potencien, y no se contrarresten. Un “know-how” adecuado, basado en el conocimiento tácito de las personas, compaginado con equipos desmotivados no es una buena combinación. Un método ágil puede resultar idóneo para el tamaño de equipos y de empresa, pero si sus procesos no cubren las facetas contractuales de la adquisición, generará problemas en la validación del producto. A modo de síntesis, las claves para conseguir organizaciones eficientes de desarrollo de software son:

Personalidad de la organización. Esta es la referencia final con la que deben alinearse y sincronizarse todas las variables que operan juntas para lograr los objetivos. Cuanto más nítida sea la visión, misión, estrategia, segmento y objetivos de la organización, con mayor atino y precisión se podrán imbricar los componentes del sistema y orientar la gestión de su funcionamiento.

Conocimiento de la propia empresa. Sus objetivos, debilidades y fortalezas. Relevancia del capital estructural y del capital humano. Cuál es su configuración actual y cuál la óptima para la personalidad de la organización. Este es el conocimiento que orientará el diseño y la gestión del sistema de desarrollo (en realidad de todos los subsistemas de la organización).

Page 300: Navegápolis 2010

Empresa y mercado 300

Conocimiento de la industria. Características del producto del negocio: el software. Las áreas de conocimiento implicadas en su desarrollo, las técnicas de construcción, los métodos y procesos posibles para su desarrollo y mantenimiento (ISO, CMM, Métodos Ágiles…) Es la información de referencia, con el conocimiento acumulado por nuestra industria. Su comprensión y visión general ayuda a seleccionar las prácticas más adecuadas para la organización, o da el conocimiento de causa necesario para el diseño de modelos híbridos propios.

Gestión sistémica. Guiar las decisiones de gestión desde la perspectiva general del sistema que compone la organización. Huir de las soluciones sintomáticas, y evaluar sus idoneidad más allá del corto plazo, y su coherencia con el sistema en su conjunto.

Revisión y adaptación. El mercado, el entorno tecnológico, la misma base de conocimiento de nuestra industria, están en continua evolución. Es necesaria una tarea de vigilancia del entorno para investigar, desarrollar e innovar, tanto en productos como en los propios procesos y formas de trabajo.

Modelos y prácticas de producción o de calidad hay muchos: EFQM, Six Sigma, CMMI, ISO 15504, ISO 9000, DSDM, MSF, XP, PP, etc. Teorías y técnicas para la gestión de las personas hay muchas: evaluaciones de desempeño, gestión por competencias, coaching, Maslow, Taylorismo, Herzberg, Mc Gregor, Vroom, Shein, etc. La tecnología ofrece múltiples herramientas CAD de ayuda en la ingeniería del software (Requisite Pro, Visio, Subversión, CVS, MSTS, Racional Rose, etc) así como plataformas de desarrollo, operativas, lenguajes, compiladores.... Aquí hay de todo, como en botica; pero con el mismo criterio que las medicinas, hay que considerar que aunque todos los remedios son buenos, ni todos sirven para todos, ni deben combinarse al azar. El conocimiento general de la naturaleza del software y del marco de nuestra industria son ingredientes necesarios tanto

Page 301: Navegápolis 2010

Empresa y mercado 301

para abordar el diseño de procesos con recursos propios, como para evaluar con acierto a una asesoría externa que pueda ofrecer una orientación objetiva; porque a la consultoría le ocurre lo que a nuestra profesión, que no está normalizada, y en el peor de los casos uno puede terminar con un curandero o un traumatólogo, cuando lo que necesita, a lo mejor es un alergólogo. Bibliografía JENNIFER STAPLETON, DSDM Business Focused Development, DSDM Consortium, 2003 KEN SCHWABER y MIKE BEEDLE, Agile Software Development with Scrum, Prentice Hall, 2002 JIM HIGHSMITH, Agile Project Management, Addison Wesley, 2004. KEN SCHABER, Agile Project Management with Scrum, Microsoft, 2004 GARY POLLICE, LIZ AUGUSTINE, CHRIS LOWE y JAS MADHUR, Software Development for Small Teams a RUP-Centric Approach, Addison Wesley, 2004 BARRY BOEHM y RICHARD TURNER, Balancing Agility and Discipline, Addison Wesley, 2004 GARY FORD y NORMAN GIBBS, Mature Profession of Software Engineering, SEI, 1996 ROBERT L. GLASS, Facts and Fallacies of Software Engineering, Addison Wesley, 2002 CARNEGIE-MELLON UNIVERSITY CMMI for Software Engineering, 1.1, 2002 IEEE COMPUTER SOCIETY Guide to the Software Engineering Body of Knowledge, 2004 DENNIS M. AHERN, AARON CLOUSE y RICHARD TURNER, CMMI Distilled: A Practical Introduction to Integrated Process Improvement, Addison Wesley, 2003

Page 302: Navegápolis 2010

Empresa y mercado 302

MARY BETH CHRISSIS, MIKE KONRAD y SANDY SHRUMI, CMMI Guidelines for Process Integration and Product, Addison Wesley, 2003 HAN VAN LOON, Process Assessment and ISO/IEC 15504 A Reference Book, Springer, 2004

Page 303: Navegápolis 2010

Empresa y mercado 303

Estrategias empresariales ágiles

23.02.2007

4 proyectos innovadores a los que no les ha ido muy mal: 1.- Google 1996 Comienza como proyecto de investigación Universidad (Larry Page y Sergey Brin) - Como empresa en Sept. 1998 en un garaje en Menlo Park (California) - En 2000 empieza a vender publicidad por palabras a 0.05$ el click, copiando la idea de goto.com 2- Skype 2002 Los autores del sistema P2P de ficheros Kazaa (Niklas Zennstrom y Janus Friis) idean un proyecto de telefonía IP sobre el concepto P2P - En Sep. 2002 Inversión de Capital Riesgo DraperInvestment Compani (cifra no pública) - Octubre 2005. Ebay compra Skype. 3.- YouTube Feb. 2005 3 empleados de PyPal publican un servicio con Flash para mostrar videos - Sobre la idea, Sequoia Capital invierte 3,5 millones de dólares y en abril de 2006 pone 8 millones más - Octubre 2006 Google anuncia su compra por 1.650$ millones 4.- Flickr Ludicorp desarrolla en 2002 un web de herramientas para su proyecto de juego masivo Neverending - La sala de chat llamada LickerLive incluía posibilidadde publicación en tiempo real de fotos - Los usuarios lo empezaron a emplear tanto, que el proyecto original de un juego masivo quedó desterrado y surgió un servicio para compartir fotos. Marzo 2005. Yahoo compra flickr

En los proyectos de este tipo el resultado obtenido se parecería a un hipotético plan de negocio que se hubiera trazado en el principio bastante menos que un huevo a una castaña. Son aventuras empresariales que no han llegado a su situación actual siguiendo un modelo de gestión predictiva que vela por el

Page 304: Navegápolis 2010

Empresa y mercado 304

cumplimiento del plan inicial; sino por conducirse un patrón ágil. Por avanzar en iteraciones cortas, tomar información constante del entorno inestable y rápido en el que crecen para adaptarse y adquirir valor de forma continua. Hace algunos años, empresas líderes de tecnología comenzaron a dar la espalda a la gestión predictiva, creando nuevas formas de desarrollo de proyectos. La agilidad no surgió desde los foros de teoría, sino desde la práctica en los entornos de trabajo que Nonaka y Takeuchi etiquetaron como "campos de scrum". Y desde ese recorrido de ingeniería inversa, desde la práctica hacia la teoría y de abajo arriba, la gestión de proyectos ha sido (o está siendo) la primera en considerar sus principios y su utilidad. Pero ¿y el denominado management?. Empresas líderes de tecnología se dieron cuenta hace unos años que dejando de lado las técnicas de gestión de proyectos predictiva y adoptando técnicas ágiles podían trabajar mucho más alineados con las nuevas características del entorno: inestabilidad y rapidez. Pero resulta que el desarrollo de productos y servicios es siempre parte de un sistema mayor. La gestión de proyectos se ha dado cuenta (o se está dando) de que necesita patrones ágiles , y ¿el management?. (uso el término inglés para diferenciar gestión empresarial de gestión de proyectos). Los desarrollos ágiles en sistemas de management tradicional chirrían. Hace poco tiempo evaluaba un posible proyecto para la empresa de inversión y venture-capital en la que trabajo, y la situación tenía su gracia: Los creativos, padres de la idea tenían muy asumida la actitud ágil para su desarrollo. Una visión muy clara del producto y un modelo iterativo e incremental, no sólo para adaptarse a los cambios durante el crecimiento, sino que los espera y los necesita como feedback continuo de lo que va haciendo para moldear cada paso siguiente, para re-definir, modificar y mejorar también de forma continua los indicadores que le informen del valor que va dando al producto. El capital por su parte pedía el plan de negocio tradicional y correcto para un desarrollo predictivo: desglose de

Page 305: Navegápolis 2010

Empresa y mercado 305

funcionalidades de ese producto visión, estimación del esfuerzo y el tiempo de salida. Indicadores de valor, cálculos de ROI, etc.

Por un lado la orientación de partir con incertidumbre y tomar durante el camino las rutas más valiosas, y por otra la partir con la planificación detallada de la ruta, fechas tiempos y costes de cada punto del recorrido (v. pág. 185: hay dos formas de viajar)

Page 306: Navegápolis 2010

Empresa y mercado 306

Indicador de la calidad técnica de una empresa de software

09.03.2007

Hay empresas con buena estrella que casi no tienen que gastar tiempo ni recursos para incorporar a nuevos programadores. Les basta con poner un anuncio y en un "plis-plas" ya han incorporado a la plantilla el nº de personas que necesitaban. A otras, con peor suerte, les cuesta sudor dar con los técnicos que necesitan. Se me ocurre proponer a consideración un indicador indirecto de la calidad técnica de una empresa de software: el coste de incorporación de personal.

Page 307: Navegápolis 2010

Empresa y mercado 307

Programadores que no están orientados a la rentabilidad

19.03.2007

El trabajo de consultoría diagnosticó, no sin dedicar muchas horas de trabajo, que la empresa de software no obtenía beneficios por la "falta de orientación a la rentabilidad de los trabajadores", especialmente de los programadores (?). ¡Claro! dijo el director general. Así como voy a dar resultados con los que poner contentos a los accionistas. ¡Los trabajadores pasan de la rentabilidad, y por su culpa lo tengo que pasar mal en los consejos de administración! Menos mal que hay consultores, y se puede demostrar que la culpa no es de uno; a ver si encima los socios la van a tomar conmigo: "Que lo ha dicho una consultoría, y de las buenas; qué de las buenas, de las mejores; vamos no hay más que ver lo que ha cobrado: es que los trabajadores no son rentables. La hora de programación media del mercado es de x€ y nosotros estamos un 20% por encima". No sé. Me puedo creer que en las tareas del tipo apretar tornillos, tirar de la rienda de las nóminas y predicar culturas de "echar horas" pueda ser una estrategia adecuada para dibujar sonrisas en los accionistas. También es cierto que algunos productos tienen factores de escala reducidos, y no pueden fabricarse una vez, y venderse infinitas; o que hay industrias en las que la innovación puede aportar valor diferencial, pero con un margen relativamente limitado. Pero en las empresas que se dedican al diseño y desarrollo de nuevos productos y trabajan con algo tan maleable y escalable como el software: salarios y costes laborales no son la misma cosa (Costes laborales, pág. 30); y un director general puede obtener rentabilidades astronómicas o pérdidas, en función de las decisiones estratégicas, de producto, innovación y marketing que él tome y gestione. Puede hacer muchas cosas, pero ninguna menos útil como tomar el mensaje del consejo de

Page 308: Navegápolis 2010

Empresa y mercado 308

administración: "señores hay que ser rentables", y pasarlo en cadena al siguiente de la jerarquía, con cara de niño enfadado.

Page 309: Navegápolis 2010

Empresa y mercado 309

Hubo un tiempo en el que la gestión de los procesos valía más que la gestión del talento

17.04.2007

Hubo un tiempo en el cual a los catálogos de productos bastaba con media docena de artículos, que se mantenían durante años. En esa época las empresas aprendieron que el cómo era la clave: cómo hacerlos con mejores costes y garantías de calidad. Época en la que aprendieron que eficiencia y calidad continua son las especialidades de los procesos; los grandes protagonistas de aquella película. Ahora los catálogos se han saturado de productos que no duran en sus páginas mas que algunos meses, y en ocasiones, antes de salir a la calle ya están desfasados. Y ahora, cuando hay que correr a toda velocidad para permanecer en el mismo sitio, la razón ya no es el cómo si no el qué. El éxito de las empresas que hacen "ipod's" o "wii's" no se debe a cómo los hacen, sino a qué hacen. Hubo un tiempo en el que la gestión de los procesos valía más que la gestión del talento.

Page 310: Navegápolis 2010

Empresa y mercado 310

Scrum en toda la empresa

06.05.2007

¿Por qué no aplicar Scrum en toda la empresa considerando a la organización en su conjunto, como un todo sistémicamente relacionado? ¿Por qué acomodar la empresa a la "forma" del modelo?: Sea la forma de Scrum o de DSDM o de CMMI. ¿Por qué no considerar a las formas como lo que son, y emplear los fondos de conocimiento que hay tras ellas para componer un modo de trabajo apropiado a las características de la empresa y de sus proyectos? Scrum puede "implantarse" (forma) o "institucionalizarse" (fondo); y proporciona mayores cotas de agilidad cuanto más ágil es la empresa en su conjunto. Poner un ScrumMaster en el departamento de programación de una empresa con visión y cultura apuntando en otra dirección, o sencillamente sin visión; con un área de RR.HH. no alineada hacia una gestión de personal ágil (gestión del conocimiento); con un departamento de marketing o de producto sin implicación en roles de propietario de producto; con áreas administrativas y comerciales trabajando sobre patrones de contratos de planificaciones cerradas... es una combinación peligrosa que suele producir empresas fragmentadas. Más que aplicar una "forma" para el área de desarrollo se trata de gestionar la empresa en su conjunto desde los principios de agilidad. Es más una tarea de "Scrum Manager" que de "Scrum Master". ¿Por qué no trabaja el departamento de marketing en un campo de scrum?. ¿Por qué los directivos de la empresa no tratan la estrategia de la organización en un campo de scrum?. ¿Por qué no es ágil toda la empresa? Las siguientes son las líneas directrices de esta visión de "gestión scrum" en cuyo desarrollo colaboro con Claudia (buena amiga y consultora de procesos de software) y que compartimos aquí con todos a los que os puedan resultar útiles.

Page 311: Navegápolis 2010

Empresa y mercado 311

El fondo de esta gestión scrum es la síntesis (pág. 98) de conocimiento producida por la resolución dialéctica de las iniciativas de procesos (CMMI, ISO, PMI) y de agilidad. De ésta toma el modelo de Campo de Scrum como entorno para el desarrollo de los proyectos. No emplea prácticas de áreas de procesos o patrones ágiles de forma cerrada. sobre la base de los entornos de trabajo definidos a finales de los 80 como Campos de Scrum, plantea principios que ayudan a la gestión para determinar la forma más apropiada a su organización y su proyecto.

Bases de la gestión Scrum:

"Campo de Scrum" como entorno de trabajo

Reconsideración del concepto de "personas" y "procesos".

Flexibilidad para determinar el grado de previsibilidad y valor óptimo para el proyecto, y las posibilidades de la organización.

Gestión sistémica. 1.- “Campo de Scrum” como entorno de trabajo. Campos de Scrum es el término acuñado por Nonaka y Takeuchi a finales de los 80 para definir nuevas formas de gestión en el desarrollo de productos.

Page 312: Navegápolis 2010

Empresa y mercado 312

En 1996 Jeff Sutherland y Ken Schwaber definieron un modelo de trabajo que aplica estos principios ágiles de Nonaka y Takeuchi en el desarrollo de software. Este modelo formal para software definido por Jeff Sutherland y Ken Schwaber marca un protocolo de trabajo para desarrollar software de forma iterativa e incremental, en un formato de “Campo de Scrum”: solapamiento de fases, único equipo multidisciplinar, auto-organización. Este es también el patrón base de Scrum Management, aunque añadiendo algunas consideraciones: 2.- Visión propia de los procesos y las personas Tanto la visión de procesos como la de agilidad se desarrollan sobre la premisa de tres elementos: personas - procesos y tecnología. Para los primeros, el valor de los resultados es consecuencia principalmente de los procesos empleados. Para los segundos, la variable más influyente en el valor del resultado son las personas. ¿Quien tiene razón la tesis (CMM, ISO 15504, PMI...) o la antítesis (XP, Scrum, DSDM...)?. ambos la tienen, y lo que su síntesis revela es que los procesos y las personas, que cada uno gestiona de forma diferente, encierran dos aspectos diferentes en cada caso, y no uno sólo. Para nosotros todo lo que se etiqueta como “procesos” no es la misma cosa. En algunos casos las personas ayudan al proceso, y en otros son los procesos los que ayudan a las personas.

Page 313: Navegápolis 2010

Empresa y mercado 313

En el primer caso el proceso es el protagonista, el que sabe cómo hacer el trabajo y la persona se integra en el sistema como instrumento: como operario de apoyo. En el segundo el artífice es la persona y el proceso una ayuda, una herramienta que simplifica aspectos rutinarios para que pueda lograr más eficiencia y no diluir el esfuerzo en rutinas mecánicas. La principal diferencia entre unos y otros es el tipo de conocimiento con el que trabajan. La clasificación de Nonaka y Takeuchi entre explícito (contenido en los procesos y la tecnología), y tácito (contenido en la persona). Otro elemento de producción necesario para desarrollar los productos o servicios son las personas, y la tensión entre los procesos y la agilidad revela que ambos tienen razón. Los primeros tienen razón al verlas como mano de obra para asistir a los procesos, y los segundos también al verlas como talento. El error es considerar cuál es el modelo de gestión adecuado para este elemento, porque no es uno, sino dos. Los procesos pueden ser procesos o rutinas. El valor que el sistema necesita de la persona puede ser trabajo o conocimiento. 3.- Flexibilidad entre agilidad y procesos Considerar que una persona puede intervenir en un entorno de producción como trabajo o como conocimiento; o que un un

Page 314: Navegápolis 2010

Empresa y mercado 314

procedimiento puede ser “proceso” o “rutina” es una simplificación en blanco y negro de una realidad en color. Son raros los sistemas que encierran todo el conocimiento sólo en procesos y tecnología, o sólo en las personas, y por eso mismo también son minoría los entornos de producción en los que puede encajar como solución de talla única la forma de un modelo de procesos o ágil "tal cual".

4.- Considera a la gestión con visión sistémica Las organizaciones son sistemas inter-relacionados e inter-dependientes. ¿Cuál es el mejor modelo de procesos para el desarrollo de software?. ¿La cultura de empresa más adecuada? ¿Las mejores técnicas de gestión de RR.HH:? ¿Las mejores plataformas de progrmación? ¿La mejor estrategia de marketing? Gestionar de forma independiente y aislada cada parcela produce tensiones y empresas fragmentadas. La implantación de un sistema de producción Scrum, Extreme Programming o CMMI no es una cuestión del responsable de programación ajena al resto de la empresa.

Page 315: Navegápolis 2010

Empresa y mercado 315

Las técnicas empleadas, los modelos de calidad, la tecnología, la cultura de la empresa, la gestión de las personas… deben ser coherentes, de forma que se potencien, y no se contrarresten. Un “know-how” adecuado, basado en el conocimiento tácito de las personas, compaginado con equipos desmotivados o implantado en organizaciones verticales no es una buena combinación. Un método ágil puede resultar idóneo para el tamaño de equipos y de empresa, pero si sus procesos no cubren las facetas contractuales de la adquisición, generará problemas en la validación del producto. A modo de síntesis, algunas claves para conseguir organizaciones eficientes de desarrollo de software son:

- Personalidad de la organización. El primer punto de atención es conocer la visión y misión de la empresa y el tipo de proyectos que realiza. Esta es la principal referencia con la que deben alinearse y sincronizarse todas las Cuanto más nítida sea la visión, misión, estrategia segmento de mercado y objetivos de la organización, con mayor atino y precisión se podrán combinar los componentes del sistema y orientar la gestión de su funcionamiento.

- Conocimiento de la organización. Sus objetivos, debilidades y fortalezas. Relevancia del capital estructural y del capital humano para el tipo de proyectos que realiza, y valores actuales de cada uno.

Page 316: Navegápolis 2010

Empresa y mercado 316

- Conocimiento y visión objetiva de modelos de procesos y prácticas de la industria del software :

ISO, CMMI, Métodos ágiles...

- Gestión sistémica. Huir de soluciones de "receta" basadas en aplicar formas o protocolos de procesos. Trascender al fondo de cada modelo, diseñar acciones estratégicas para la organización evaluando su idoneidad más allá del corto plazo y su coherencia con la organización en su conjunto.

- Revisión y adaptación. Análisis continuo de los propios métodos y vigilancia del entorno para investigar, desarrollar e innovar tanto en productos como en los propios procesos y formas de trabajo.

Page 317: Navegápolis 2010

Empresa y mercado 317

Los buenos directivos también son difíciles de encontrar

14.05.2007

El 30% de los directivos de nuestras empresas no tienen ni la energía ni la concentración necesaria para desepeñar su trabajo. Se limitan a cumplir las tareas rutinarias: asisten a reuniones, escriben memorándums, hacen llamadas telefónicas... Pero no toman iniciativa para nada ni elevan el nivel de actuación, ni se ocupan de la estrategia. Siempre lo dejan para mañana. El 20% son personas que aunque sí disponen de capacidad de concentración, no tienen la energía para trabajar. Se suelen sentir "quemados", tienden a estar rodeados de sentimientos de ansiedad, y reaccionan echándose atrás y cumpliendo el mínimo exigible. Un porcentaje elevado, el 40% tiene energía para trabajar, pero tienen poca concentración. Son los continuamente distraidos. Por la presión de su trabajo, estos directivos sienten la imperiosa necesidad de hacer algo, lo que sea; por lo que pueden ser tan peligrosos como un elefante en una cacharería.

Page 318: Navegápolis 2010

Empresa y mercado 318

Sólo el 10% de los directivos aportan trabajo y motivación en su trabajo. A estas conclusiones llegan Heike Bruch y Sumantra Ghoshal tras diez años de colaboración y análisis del comportamiento de directivos ocupados en empresas como Sony, LG Electronics o Lufthansa, y que exponen en su artículo: "Beware the Busy

Manager " (Bruch & Ghoshal, 2002) en el que, sin abusar del derecho de cita, dicen: "Si escuchamos a los directivos, nos dirán que el recurso que menos tienen es tiempo. Dedican cada minuto de su tiempo a considerar problemas estratégicos, a reducir costes, a pensar en enfoques creativos para los nuevos mercados en ganarle la competencia a la competencia... ... piensan que están prestando atención a cuestiones urgentes, pero en realidad simplemente están dando vueltas... ...Lo que descubrimos sobre el comportamiento directivo asusta: el 90 por ciento de ellos desperdician el tiempo en todo tipo de actividades ineficaces. En otras palabras, apenas el 10 por ciento de los directivos dedican su tiempo a trabajar de forma reflexiva". Pero esto no quiere decir que el porcentaje de directivos con niveles altos de eficiencia sea el 10%, porque este estudio deja fuera el tercer factor (v. ¿Listo, cumplidor o motivado?, pág. 39): el nivel de capacitación. De esos diez de cada cien que tienen niveles altos de trabajo y motivación, ¿cuántos también tienen niveles altos de capacitación?.

Page 319: Navegápolis 2010

Empresa y mercado 319

Scrum management: de modelo de negocio a modelo de valor

04.06.2007

¿Que cuál es el modelo de negocio?. No, no hay modelo de negocio. Es muy pronto para definirlo. No trabajamos con un modelo de negocio, sino con un modelo de valor. En cierto modo a la estrategia de negocio le ocurre lo que a la gestión de proyectos. Nos hemos acostumbrado a un modelo predictivo: 1.- Defino el producto. 2.- Hago un plan de proyecto (de negocio en este caso) 3.- Gestiono su cumplimiento. Cuando el entorno es rápido e incierto, los planes no sirven, y la capacidad de cambio continuo es necesaria y bienvenida para no quedarnos atrás. Una estrategia de "Scrum management" trabaja sobre un modelo de valor (no de negocio), alumbrándolo con cortas: con detalle sobre el trabajo inmediato (próxima iteración), y manteniendo en el backlog la visión a medio y largo en constante revisión, análisis y contraste continuo con la evolución del entorno.

Page 320: Navegápolis 2010

Empresa y mercado 320

Factor de escala y agilidad

02.09.2007

Algunos productos tienen factores de escala escasos: aumentar el número de unidades realizadas, supone incrementos de proporciones similares en el coste de fabricación. El software tiene un factor de escala prácticamente infinito: cuesta lo mismo producir uno que mil. Si mi tratador de textos, o mi solución de correo, o… es lo mejor del mercado, venderé, cien, mil o diez mil veces más programas, con la misma inversión de desarrollo; algo que sin duda no le ocurre, por ejemplo, a una empresa de construcción, o a una joyería. Cómo afecta esta característica a la ratio coste de prototipado / valor del producto. Si el producto necesita el máximo valor posible, un modelo de plan y requisitos cerrados, para hacerlo bien a la primera, y evitar costes de modificaciones; puede ser un ahorro miope. El feedback continuo, los requisitos siembre abiertos, la apertura al cambio, y la inyección de valor continuo durante todo el desarrollo es una gran inversión.

Page 321: Navegápolis 2010

Empresa y mercado 321

Lo mejor de CMMI y Scrum

19.09.2007

La tesis (ISO 12207, 15504, CMMI…) ha identificado y definido las cosas QUE hay que hacer. La antítesis (XP, Scrum, FDD...) ha mostrado formas de trabajar que funcionan bien: CÓMO hacer determinados "qués". Posiblemente la síntesis , la moraleja de ambos sea cuestionar los "POR QUÉs"

¿Qué hacer para que los proyectos de software salgan bien? LA TESIS: "Bueno..., tenga en cuenta que no sólo se trata de programar de forma adecuada. Hay que hacer de forma adecuada otras muchas tareas que tienen lugar desde que se le ocurre la idea de hacer algo, hasta que finalmente lo deja de usar." Esto es lo que dice ISO con su estándar internacional ISO/IEC 12207 : Las cosas QUE intervienen en el desarrollo de un proyecto de software. QUÉ tareas tiene que hacer el cliente al adquirir el sistema (5.1 Acquisition), QUÉ tareas debe hacer el suminstrador para responder a la adsuisición (5.2 Suply), QUÉ tareas para desarrollar el sistema (5.3 Development) etc. ISO 12207, o CMMI o ISO 15504 son modelos. Los modelos dicen el QUÉ hay qué hacer, pero no CÓMO. Los modelos le dicen: hay que hacer un contrato, hay que mirar las opciones del mercado, hay que hacer requisitos, plan de proyecto, análisis, codificar, probar, etc... Ni CMMI ni ISO prescriben CÓMO hacer la gestión de la configuración, la planificación del proyecto o la gestión de los requisitos. CMMI dice: hágalo como usted quiera, siempre y cuando alcance el fin del área de proceso que venga al caso. O sea, siempre y cuando usted tenga control de las versiones, sepa cuál es el plan de proyecto, o los requisitos de lo que debe hacer. Que usa gráficos de Gantt, o post-it en pizarras… allá usted. Que si documentos Word con el estándar de requisitos de IEEE 830, o historias de usuario... Usted sabrá. Usted lo hará bien, si consigue el objetivo del área de proceso. Bueno, otra cosa será si quiere que

Page 322: Navegápolis 2010

Empresa y mercado 322

yo lo certifique, porque entonces me lo tendrá que demostrar, y eso le complicará un poco la vida, pero... bueno, allá usted. LA ANTÍTESIS: "Bueno... tiene que hacer las cosas de esta manera: ponga a los programadores por parejas, desarrolle trozos pequeños en 2 ó 4 semanas cada uno. Haga una reunión de una jornada antes de empezar a programar cada trozo, y organícela en dos partes: en la primera cierre los requisitos con todo el equipo, en la segunda... Todos los días el equipo debe reunirse durante 5 minutos y responder a tres preguntas..." Este es el tipo de respuesta de la antítesis: de los modelos ágiles, que en rigor no serían "modelos" sino "prácticas", porque no dicen QUÉ hay que hacer, sino CÓMO hay que hacer. Y posiblemente la síntesis está en el PORQUÉ: ¿Por qué la descripción del sistema o ConOps con el estándar IEEE 1362 ? o, ¿por qué en un Product Backlog?.

LA SÍNTESIS: La talla única no resulta válida, y las prácticas más indicadas para unos, pueden resultar bien demasiado pesadas, bien insuficientes para otros. Los responsables de la gestión en cada empresa adoptan las decisiones para cada área de proceso sobre el conocimiento del grado y formas que necesita su empresa en tres áreas:

Equilibrio agilidad - procesos

Formas y modos de institucionalización.

Page 323: Navegápolis 2010

Empresa y mercado 323

Formas y modos de ingeniería de procesos. Y este conocimiento es consecuencia del análisis del tipo de trabajo, y de las características de la organización.

Además de determinar un nivel de equilibrio entre agilidad y procesos, adecuado al tipo de trabajo que se realiza, hay otros dos factores importantes en el diseño y gestión del marco de trabajo de la empresa: la institucionalización y la ingeniería de procesos. Los modelos para la mejora de procesos como CMMI tienen una fortaleza importante, que a la vez es debilidad de las prácticas ágiles: se trata de las prácticas genéricas, que están presentes en todas las áreas de procesos para que en todas se consiga:

"Institucionalizar" las formas de trabajo

Implantar prácticas de ingeniería de procesos. Tal y como lo define CMMI en el glosario, institucionalizar las prácticas de trabajo es incrustarlas en la cultura corporativa de la empresa de manera que se realicen de forma rutinaria. La institucionalización se refiere a las ventajas de documentar los procedimientos que emplea la empresa, y disponerlos de forma accesible a todos los interesados; a la necesidad de formar al personal para que las conozca y sepa emplearlas en el trabajo.

Page 324: Navegápolis 2010

Empresa y mercado 324

Claro que CMMI se refiere a la institucionalización de sus prácticas, pero lo cierto es que resulta útil tanto para los procesos como para las rutinas de trabajo ágiles. Los criterios de rigor de documentación, comunicación, formación y ámbito dependen de las características de la organización y no de agilidad o procesos. Para un pequeño grupo de emprendedores, que desarrollan en una "start-up"un innovador producto de software, aplicar procesos pesados para la institucionalización, les aporta más problemas que ventajas. Una gran empresa, o una pequeña que quiere asentar principios para dar el salto: de personas que saben programar a empresa que sabe programar, debe incluir procesos para explicitar e institucionalizar su saber hacer, independientemente de que se trate de procesos o de agilildad. Y, en segundo lugar, las prácticas de ingeniería de procesos, son las relacionadas con la medición y mejora de las propias prácticas y procesos empleados en el trabajo. Igual que para la institucionalización, es irrelevante que se trate de agilidad o de procesos. Las características de la organización determinarán para cada área "por qué" resulta conveniente o no, emplear modelos tipo PDCA , IDEAL , las métricas, los criterios y las formas apropiadas

Page 325: Navegápolis 2010

Empresa y mercado 325

Culturas tóxicas para la agilidad

23.09.2007

Algunas empresas deben a los procesos y la tecnología su "saber hacer": las máquinas y los procedimientos se encargan de elaborar los productos con el menor número de humanos posible, y que aquellos sean de buena calidad, a pesar de estos. En ellas la cultura de la empresa no es especialmente relevante, porque a los procedimientos y a las máquinas les da igual como sea; y como de las personas sólo interesa que las atiendan siguiendo los procedimientos, basta con que no genere huelgas o sabotajes. Otras, sin embargo, deben su "saber hacer" a las personas. En ellas las máquinas y los procedimientos ayudan a los humanos, y no al revés, y como las personas son complicadas, resulta que el talento, aunque lo tengan, no lo pueden desarrollar si no están motivados. En estas empresas la cultura es una variable muy relevante, porque las culturas tóxicas atrofian o espantan al talento.

Page 326: Navegápolis 2010

Empresa y mercado 326

Resulta muy visual y acertada la simplificación de las culturas de empresa posibles del artículo What Holds the Modern Company Toghether? (Rob & Gareth, 1996) . Desde su perspectiva, éstas son el resultado de la mezcla de dos dimensiones: sociabilidad y solidaridad. Tomando a la sociabilidad como el grado de relación emocional y no insturmental (que no es un simple medio de satisfacer las propias necesidades) que existe entre las personas. Las relaciones de amistad son relaciones de sociabilidad elevada. Y tomando por solidaridad a la actitud del equipo en el que prima el enfoque estratégico, la reacción contra la amenaza de los competidores y la intolerancia al bajo rendimiento. La combinación ideal, sin duda es la cultura comunal, que combina dosis elevadas de ambas; porque aunque podría parecer que con dosis elevadas de sociabilidad bastaría, o incluso sería mejor, porque habría mejor "rollito". Pero la sociabilidad alta, con ausencia de solidaridad tiene inconvenientes, porque el predominio de la amistad puede tolerar rendimientos bajos. Cuando el nivel de sociabilidad es mucho mayor que el de solidaridad, el trabajo se resuelve con el mejor "compromiso" no con la mejor "solución"; y también es frecuente el desarrollo de camarillas y redes informales que burlan y pueden socavar la institucionalización de procedimientos en la empresa.

Page 327: Navegápolis 2010

Empresa y mercado 327

"Estamos poniendo al descubierto mejores métodos para desarrollar software, haciendo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: A los individuos y su interacción, por encima de los procesos y las herramientas." Manifiesto Ágil , 2001.

Page 328: Navegápolis 2010

Empresa y mercado 328

Las tres responsabilidades (mejor que roles) para Scrum

16.10.2007

El grado de funcionamiento de Scrum en la organización depende directamente de estas tres condiciones:

Características del entorno (organización y proyecto) adecuadas para desarrollo ágil.

Conocimiento de la metodología de trabajo en todas las personas de la organización y las implicadas del cliente.

Asignación de responsabilidades:

Del producto.

Del desarrollo.

Del funcionamiento de Scrum.

Responsabilidad del producto: El propietario del producto En el proyecto hay una persona, y sólo una, conocedora del entorno de negocio del cliente y de la visión del producto. Representa a todos los interesados en el producto final y es el responsable del Product Backlog. Se le suele denominar "propietario del producto" y es el responsable de obtener el resultado de mayor valor posible para los usuarios o clientes. Es responsable de la financiación necesaria para el proyecto, de decidir cómo debe ser el resultado final, del lanzamiento y del retorno de la inversión. En desarrollos internos puede ser el product manager, o responsable de marketing, o… quien asume este rol. En desarrollos para clientes externos lo más aconsejable es que sea el responsable del proceso de adquisición del cliente.

Responsabilidad del desarrollo: El equipo Todo el equipo de desarrollo, incluido el propietario del producto conoce la metodología Scrum, y son los auténticos responsables del resultado. Es un equipo multidisciplinar que cubre todas las habilidades necesarias para generar el resultado.

Page 329: Navegápolis 2010

Empresa y mercado 329

Se auto-gestiona y auto-organiza, y dispone de atribuciones suficientes en la organización para tomar decisiones sobre cómo realizar su trabajo.

Responsabilidad del funcionamiento de Scrum La organización debe garantizar el funcionamiento de los procesos y metodologías que emplea, y en este aspecto Scrum no es una excepción. En el modelo de Scrum definido por Jeff Sutherland, esta responsabilidad se garantiza integrando en el equipo una persona con el rol de ScrumMaster. Considerando que las realidades de unas y otras empresas pueden ser muy diferentes, y que siempre que sea posible es mejor optar por adaptar las prácticas de trabajo a la empresa, y no al revés, en ocasiones puede resultar más aconsejable:

Que en lugar de una persona con la función de "ScrumMaster", sean las personas y puestos más adecuados en cada organización los que reciban la formación adecuada y asuman las funciones correspondientes para cubrir esta responsabilidad.

Que al compromiso de funcionamiento del proceso se sume también la dirección de la empresa, con el conocimiento de gestión y desarrollo ágil; y facilitando los recursos necesarios.

Page 330: Navegápolis 2010

Empresa y mercado 330

¿Qué tal resultará la implantación de una metodología ágil?

05.11.2007

Esta podría ser una lista de comprobación con los principales factores que condicionan los resultados de la gestión ágil de proyectos. Desde luego tenerlos todos es complicado, pero

¿quién dijo que la gestión ágil fuera fácil?

ADQUISICIÓN El propietario del producto tiene definida la visión de lo

que necesita.

El propietario del producto está comprometido y se implica con el equipo.

El propietario del producto conoce los principios del desarrollo ágil.

De forma previa, o incluido en el primer sprint, se realiza un análisis de adquisición.

El modelo de adquisición del cliente permite un patrón de desarrollo ágil

La prioridad para el negocio del cliente es el valor innovador, por encima del plan de un producto cerrado.

SUMINISTRO

La forma contractual es adecuada para un patrón de desarrollo iterativo e incremental.

El equipo dispone de personas expertas en las áreas de conocimiento necesarias para desarrollar el producto o servicio.

El propietario del producto monitoriza la información de retro-alimentación (entorno de negocio, feedback de las reuniones Scrum, etc.)

El responsable de la coordinación del equipo conoce y tiene experiencia en desarrollo ágil.

Page 331: Navegápolis 2010

Empresa y mercado 331

DESARROLLO El equipo conoce el modelo de desarrollo Scrum.

El equipo tiene experiencia en el desarrollo con Scrum.

El equipo tiene experiencia en la estimación de tareas.

El equipo tiene experiencia en la tecnología y plataforma tecnológica con la que va a trabajar.

El nivel técnico del equipo es alto.

Se trata de un equipo cooperativo y cohesionado.

Se realizan de forma institucionalizada las rutinas organizativas de Scrum.

SOPORTE El equipo dispone de un medio adecuado para dar

soporte al product backlog.

El equipo de dispone de un medio adecuado para dar soporte al sprint backlog y a la monitorización de la evolución del sprint.

El propietario del producto dispone de un medio de previsión y monitorización de la evolución del producto.

ORGANIZACIONALES El equipo dispone de las infraestructuras adecuadas:

espacios de reuniones, equipos y herramientas de desarrollo

La organización considera a la selección e incorporación de personas como un proceso clave para la calidad de sus resultados.

La organización considera a la formación de las personas como un proceso clave para la calidad de sus resultados.

La dirección de la empresa conoce los principios de desarrollo ágil, y está comprometida en s

Page 332: Navegápolis 2010

Empresa y mercado 332

Scrum: ¿de remedio a enfermedad?

29.01.2008

Esta es la comparación que Jason Gorman hace entre la propagación de los virus y los consultores de Scrum. Jason es un consultor inglés, beligerante y sarcástico con quienes, con mayor o menor conocimiento de los principios de la agilidad, dogmatizan anclados en ella.

Se me ocurren tres posibles razones en el fondo esta crítica. 1.- En la espiral de conocimiento, de tendencia pendular, ¿es una muestra de tensión para no pararnos en la agilidad y evolucionar hacia la síntesis? ¿La crítica está cambiando por tanto el objetivo, de los dogmáticos de la ingeniería, a los dogmáticos de la agilidad?. 2.- ¿Es una crítica a los oportunistas, o a la agilidad del todo a 100? 3.- Jason ofrece y publicita sus propios servicios de consultoría. ¿Es una estrategia de marketing para sus servicios de asesoría y formación, basada en troll y descalificación de otros consultores?

Page 333: Navegápolis 2010

Empresa y mercado 333

Puede ser una o varias de estas las razones, vaya usted a saber en qué proporciones.

Page 334: Navegápolis 2010

Empresa y mercado 334

¿Las empresas deben enorgullecerse de su madurez?

19.03.2009

Dos textos en los que se habla de la madurez de las empresas: CMMI y El Principio de Peter. El primero la vende como admirable, y sin embargo el segundo la anatematiza. Para CMMI, menos mal que las jóvenes empresas alocadas, a través del aprendizaje de su modelo, adoptan procesos-adolescentes, que con el tiempo, tras sucesivos ciclos IDEAL(1), desarrollan la capacidad que dará a la empresa la deseable madurez: Llegará a ser sabia, y tendrá respuestas predecibles y de calidad. Laurence J. Peter, en su famoso libro del que todos conocemos aquello de que "las personas en las empresas ascienden hasta alcanzar su nivel de incompetencia", habla también de cómo las organizaciones se van haciendo maduras: De cómo se van oxidando, perdiendo flexibilidad, y acumulando grasa: "se van sobrecargando de incompetentes que no pueden realizar su trabajo, no pueden ser ascendidos, pero no pueden ser excluidos ... cualquier empresa caerá cuando su jerarquía alcance un intolerable estado de madurez". "La eficiencia de una jerarquía es inversamente proporcional a su cociente de madurez, CM

La madurez en las empresas, ¿actúa como en los seres vivos?. ¿El lote de la madurez y la sensatez, incluye también oxidación y esclerosis?. Las que, ignorando sus achaques, "juegan" a la agilidad, ¿son frustrados carrozas con síndrome de Peter Pan? ¿Y las que envejecen sin madurar? Las empresas adolescentes que se "calzan" un CMMI, ¿son niños vistiendo de etiqueta?. ¿Para las primeras son más aconsejables los negocios estables y seguros, y para las segundas los rápidos y de mayor riesgo?.

Page 335: Navegápolis 2010

Empresa y mercado 335

Las organizaciones pueden conseguir la eterna juventud "institucionalizando" medias periódicas de liposucción, ejercicio y elmininación de toxinas? ¿serían así eternamente maduras?. ¿Estas pregunas tienen sentido? (1)IDEAL: modelo de mejora continua de procesos de CMMI

Page 336: Navegápolis 2010

Empresa y mercado 336

¿Cuál es la personalidad de tu empresa?

19.03.2008

Todos somos únicos, y diferentes a los demás. Dice una teoría sicológica (1) que la personalidad es el resultado que produce en nosotros la mezcla de un conjunto de factores (afectotimia, inteligencia, ego, sumisión...) que cada uno combinamos en nuestro propio espectrograma. Y con las empresas de soft me parece que pasa como con las personas: que cada una es diferente. Que de unas te puedes fiar más que de otras y que una cosa son las apariencias y otra la realidad. Por eso las primeras impresiones pueden terminar fiasco, y tras los vaqueros y el aspecto de descuidado gurú puede haber menos talento del que se aparenta, o también puede ser que el lustre de trajes y diplomas no sea el reflejo del fondo, sino la tapa que lo oculta. Se me ocurre que igual que en los individuos, en las ermpresas la "personalidad" debe ser resultado de combinar múltiples factores, cada uno en su propio grado. Un sistema sin duda caótico, tanto por el número de éstos, como por los muchos grados posibles; pero supongo que la personalidad empresarial no será ajena al principio de pareto, y que aunque puedan ser muchos los factores influyentes, sólo unos pocos trazan los rasgos relevantes. Me atrevo a apuntar cuatro como "factores primarios de la

personalidad conductual de las empresas" 1.- Tecnosofía 2.- Gestión 3.- Marketing 4.- Identidad Y parafraseando a los cuestionarios factoriales de personalidad de R.B. Cattell la exposición de cada uno podría ser algo así:

Page 337: Navegápolis 2010

Empresa y mercado 337

FACTOR A: TECNOSOFÍA

Empresa tecnósofa Empresa tecnoignorante

En la empresa tecnósofa el personal con capacidad de decisión está al tanto, comprende y gusta de la vanguardia tecnológica de su sector. Su principal preocupación es el avance, el nivel y la formación continua de las personas para evitar el desfase.

Las personas clave de las empresas tecnoignorantes creen que conceptos básicos como "criptografía asimétrica", o vanguardistas como "cloud computing" no son cosa de la que ellos deban estar al tanto. Que se trata de asuntos de programadores, no de gestores.

FACTOR B: MANAGEMENT

Management alto Management bajo

Las empresas con capacidad de gestión algo están guiadas por gestores competentes

Las empresas con capacidad de gestión baja están guiadas por patanes

FACTOR C: MARKETING

Mercadotecnia alta Mercadotecnia baja

Las empresas con buena capacidad mercadotecnica tienen personal comercial capaz de atraer la atención y confianza de los clientes.

En las empresas con baja capacidad de mercadotecnia, el personal comercial no logra atraer ni la atención ni la confianza de los clientes.

Page 338: Navegápolis 2010

Empresa y mercado 338

FACTOR D: ORIENTACIÓN

Empresa orientada Empresa desorientada

Las empresas "orientadas" tienen una visión nítidamente definida. Tienen definido su producto, conocen el mercado y disponen de una estrategia.

Las empresas desorientadas carecen de visión. Venden todo lo que se les pone por delante, sin una estrategia de producto clara.

A partir de aquí las combinaciones y los grados son muchos: desde las personalidades desequilibradas de los chalanes de burras viejas, los técnicos torpes en marketing, los consultores de grandes formas y fondos simples, o los desorientados que disparan a todo lo que supone facturación; hasta las más equilibradas en sus componentes; en ocasiones con potenciales mínimos, y en las más escasas, sobresalientes.

Page 339: Navegápolis 2010

Empresa y mercado 339

5 niveles de agilidad

14.05.2008

B. Crosby (Crosby, 1996) definió la Quality Management Maturity

Grid" (QMMG) para determinar el grado de desarrollo y asentamiento de los procesos de una organización en un rango de cinco escalones que denominó: 1.- Incertidumbre 2.- Despertar 3.- Aclaración 4.- Sabiduría 5.- Certeza Es el concepto que tomó CMM / CMMI para definir sus cinco niveles de madurez, y que empleado para representar, no la dimensión de la organización en madurez de procesos, sino la dimensión en agilidad se podría esbozar como algo así:

1.- Inicial (o Incertidumbre)(1)

Page 340: Navegápolis 2010

Empresa y mercado 340

No es posible establecer garantías de agilidad porque ni de forma institucionalizada, ni a través de pilotos experimentales se llevan a cabo prácticas ágiles en la organización 2.- Gestionada (o Despertar) Surgido de abajo hacia arriba, o gestionado desde arriba hacia abajo, hay algún grupo o experiencia piloto aprendiendo y probando prácticas ágiles. 3.- Definida (o Aclaración) La organización aplica prácticas ágiles en el desarrollo de sus productos o servicios de forma "institucionalizada" y "asumida en la cultura": esto es, los principios ágiles forman parte de la cultura de la organización, y las prácticas son conocidas y realizadas de forma homogénea por todas las personas 4.- Gestionada cuantitativamente (o Sabiduría) La organización mide y analiza las prácticas ágiles en un sistema institucionalizado de adecuación y flexibilización de las prácticas ágiles a sus propias circunstancias de identidad. 5.- Optimizada (o certeza) La agilidad se aplica en todas las áreas y dimensiones de la empresa de forma personalizada y guiada por la revisión continua del modelo. Como en la aplicación para calidad o para procesos de software, esta sería la trayectoria natural para mejorar en la organización la dimensión de madurez, aunque no conozco a nadie que pudiera estár más allá del nivel 3, por lo que 4 y 5 son puras elucubraciones sobre el hipotético nirvana de una organización ágil. (1) según denominación original de B. Crosby o denominación adaptada por CMMI

Page 341: Navegápolis 2010

Empresa y mercado 341

Gestión de blanco y negro

27.07.2008

Dos estereotipos: uno pontifica el comportamiento de los jefes, y otro, el de los trabajadores: Dos son los tipos de jefes: los orientados a resultados, y los orientados a personas. A los primeros se les etiqueta de autoritarios, y a los segundos de democráticos. Con los primeros salen ganando las empresas, y con los segundos, las personas. Dos son los comportamientos de los trabajadores: X o Y. Los trabajadores con comportamiento X estigmatizan al trabajo como la obligación a la que hay que acudir todos los días; mientras que los de comportamiento Y lo viven como un modo de realización personal. Y un dogma que cuenta con numerosa parroquia tanto entre empresarios (orientados a resultados) como entre trabajadores (mayormente escorados hacia comportamientos X): Los procesos. El marco por el que la calidad del resultado depende de éstos, y no de las personas. Por el que no hacen falta buenos cocineros para cocinar buenas hamburguesas, o buenos mecánicos para fabricar buenos coches. A los empresarios orientados a los resultados les gusta eso de que el conocimiento, el saber hacer, sea parte del capital estructural de su empresa, y no del capital humano: poder tener una o veinte factorías, emplear personas poco cualificadas y rotarlas como les plazca; y que independientemente de esto, los coches, las hamburguesas, o lo que fabriquen salgan siempre bien. ¡Gran invento, sin duda que los procesos sean los responsables del producto! . Los empleados X también son buenos parroquianos de este dogma, porque ven trabajos simples, cómodos, con una buena definición de lo que hay que hacer. Perfectos para fichar todos los días sin complicaciones. Pero hacer las cosas siempre de la misma manera produce algunos efectos secundarios, y uno, importante si se trata de empresas de conocimiento: inhibe el talento y refuerza la

Page 342: Navegápolis 2010

Empresa y mercado 342

resistencia al cambio, de modo que se reduce la fertilización del conocimiento y la creatividad. A lo mejor no tiene mucha relación, pero al escribir esto me acuerdo de algunos párrafos inquietantes del libro "Elogio del imbécil" del periodista italiano Pino Aprile: "La extremada subdivisión de las tareas es la vía de salvación de las estructuras sociales porque, a base de desmenuzarlas, se llegará al punto en que, a cualquier nivel, se exija a los individuos atenerse a unos comportamientos y reglas tan simples que cualquiera estará capacitado para observarlos" "Los animales que escapan a nuestra poda cerebral en general son considerados "malos" y sufren el exterminio. Como el lobo, que está en vías de extinción...." los animales domesticados "piensan menos" que sus semejantes salvajes." "Cuando un ejemplar de nuestra especie particularmente inteligente pone su talento al servicio de la comunidad, la hace más estúpida, produce imbecilidad, porque los demás se limitan a copiarlo, a explotar sus intuiciones imitándolas servilmente, y no se seinten impulsados a ejercitar sus propias facultades mentales". Pino Aprile "Elogio del imbécil" (Aprile, 2002) Es posible que gestionar con simplificaciones binarias de o blanco o negro, resultados o personas, X o Y, procesos o personas, no componga visiones realistas de la gama de colores de la realidad, y termine atrofiando las partes del sistema (personas - procesos - tecnología) que no emplea. ¿Sólo son posibles los jefes en blanco y negro? ¿Los que hacen ganar a la empresa o a las personas? ¿Los creyentes o de procesos o de agilidad, o de CMMI o de XP...? Relacionado: Visión propia de procesos y personas - flexibilidad entre agilida y procesos: en el artículo "Scrum en toda la empresa" (pág 310)

Page 343: Navegápolis 2010

Empresa y mercado 343

Empresas con visión

28.08.2008

Qué risa al acordarme con unos amigos, de la cara del Director General cuando le preguntaron por la visión de su empresa, y se vio en el brete de definirla. ¿Visión?. ¡Vaya cosas tienen estos consultores encorbatados!, debió pensar. ¡Pues qué visión vamos a tener: ganar dinero! Se trataba de la "empresa de informática" especialista en disparar a todo lo que se mueve. Igual daba que se hablara de telefonía IP, seguridad, modificar un programa de contabilidad en Visual Basic, hacer una página web o una animación tridimensional... "Somos profesionales, especializados en dar las mejores soluciones a nuestros clientes". Vamos, que si usted tiene dinero, siéntase como en su casa, que ahora mismo firmamos el contrato: le haremos lo que usted quiera y en el tiempo que necesite. Nada menos que un año estuvo la plana mayor de la empresa buscando musa para la frase lapidaria, capaz de cautivar a cualquier cliente; que transmitiera aplomo al afirmar que su visión era ser muy buenos y hacerlo todo muy bien. Recordando la anécdota, me ha entrado el gusanillo de echar un vistazo a "visiones" de empresas, y gracias a la magia de Internet para esto de buscar información, aquí hay algunas perlas similares... que quizá sean de verdad empresas con visión muy clara y profesionales excelentes, pero es que diciendo estas cosas... uno no sabe que pensar:

Ser los mejores en conseguir el éxito a través de las personas

Aportar valor a trabajadores y a empresas clientes a

través de un servicio de gran calidad que satisfaga sus necesidades y supere sus expectativas, que nos sientan

muy cerca Ser una empresa reconocida por nuestra excelencia en los

negocios que participemos

Page 344: Navegápolis 2010

Empresa y mercado 344

Satisfacer las necesidades del cliente, brindando

soluciones integrales y presencia en sus mercados, con alta capacidad, profesionalismo y un fuerte compromiso

de proporcionar los más altos estándares de calidad junto a una atención personalizada.

Queremos ser LOS profesionales en los que confian LOS

clientes, que nuestras soluciones sean LA referencia en el mercado, disfrutando, creciendo y mejorando día a día.

Page 345: Navegápolis 2010

Empresa y mercado 345

La teoría de gestión no sirve para los proyectos importantes

27.07.2008

El conocimiento de gestión, es para lo poco importante. Para "las canicas y la arena", que diría Claudia (1). Me ha dejado pensando lo que me acaba de decir Juancho, de las dos actividades principales de los gestores: medir y decidir. "Las cosas realmente importantes de la vida, ni se pueden elegir, ni se pueden medir". (1) MAYONESA Y CAFÉ Cuando las cosas en la vida parecen demasiado, Cuando 24 horas al día no son suficientes... Recuerda el frasco de mayonesa y el café. Un profesor delante de su clase de Filosofía, sin decir palabra, tomo un frasco grande y vacío de mayonesa y procedió a llenarlo con pelotas de golf. Luego le preguntó a sus estudiantes si el frasco estaba lleno. Los estudiantes Estuvieron de acuerdo en decir que sí. Así que el profesor tomo una caja llena de canicas y la vació dentro del frasco. Las canicas llenaron los espacios vacíos entre las pelotas de golf. El profesor volvió a preguntar a los estudiantes si el frasco estaba lleno, ellos volvieron a decir que sí. Luego...el profesor tomo una caja con arena y la vació dentro del frasco. Por supuesto, la arena lleno todos los espacios vacíos, así que el profesor pregunto nuevamente si el frasco estaba lleno. En esta ocasión los estudiantes respondieron Con un 'sí' unánime. El profesor enseguida agrego 2 tazas de café Al contenido del frasco y efectivamente llenó Todos los espacios vacíos entre la arena. Los estudiantes reían en esta ocasión. Cuando la risa se apagaba, el profesor dijo: 'Quiero que se den cuenta que este frasco representa la vida, las pelotas de golf son las cosas Importantes, como la espiritualidad,

Page 346: Navegápolis 2010

Empresa y mercado 346

la familia, los hijos, la salud, Los amigos, todo lo que te apasiona. Son cosas, que aún si todo lo demás lo perdiéramos y solo éstas quedaran, nuestras vidas aún estarían llenas. Las canicas son Las otras cosas que importan, como el trabajo, la casa, el auto, etc. La arena es todo Lo demás, las pequeñas cosas. Si ponemos la arena primero en el frasco, no habría espacio para las canicas ni para las pelotas de golf. Lo mismo ocurre con la vida. Si gastamos todo nuestro tiempo y energía en las cosas pequeñas, nunca tendremos lugar para las cosas realmente importantes. Presta atención a las cosas que son cruciales Para tu felicidad. Cuida tu relacion con Dios, juega con tus hijos, tómate tiempo para asistir al doctor, ve con tu pareja a cenar, practica tu deporte o afición favorita. Siempre habrá tiempo para limpiar la casa y reparar la llave del agua. Ocúpate de las pelotas de golf primero, de las cosas que realmente importan. Establece tus prioridades, el resto es solo arena...' Uno de los estudiantes levantó la mano y pregunto que representaba el café. El profesor sonrió y dijo: 'Qué bueno que lo preguntas... Sólo es para demostrarles, que no importa cuán ocupada tu vida pueda parecer, siempre hay lugar para un par de tazas de café con un amigo.' Gracias Claudia.

Page 347: Navegápolis 2010

Empresa y mercado 347

Los tres errores más frecuentes de las empresas de programación

10.03.2009

Confundir la materia prima por el producto, pedir creatividad a la producción basada en procesos y considerar a las prácticas ágiles como procesos, son los peores consejeros para la gestión de empresas de software. 1.- Tomar la materia prima como el producto. Creer que somos empresas que "hacemos software" como si fuera el "producto" que todas hacemos nos lleva a busccar cual es "EL" modelo de trabajo más adecuado para construirlo. 2.- Aplicar principios de producción basados en procesos. Cuando el conocimiento se puede "explicitar" en máquinas y procesos el resultado es tan atractivo que resulta tentador aplicarlo para todo: basta con operarios. En el triángulo: personas-procesos-tecnología, los responsables del resultado son los procesos y la tecnología. Las personas intervienen para ayudando o supervisando al proceso y las máquinas: como dice CMMI y en general el principio de calidad de Jurán: la calidad del resultado depende de la calidad de los procesos empleados. Yo ni sé ni cocinar, ni tornear piezas (por ejemplo) pero con una formación básica soy capaz de fabricar buenos productos con un torno de control numérico, o en la cocina de un Telepizza. 3.- Considerar que las prácticas ágiles son procesos. Extreme Programming, Scrum, TDD... No tienen el nivel de "proceso" y se quedan en "rutinas" de trabajo. Son buenas prácticas para emplear en los sistemas donde el conocimiento lo aportan las personas. Por ver al software como producto y no como materia prima, no caemos en la cuenta de que con él se pueden fabricar productos: a) Relativamente procedimentables tipo "software factory" como puede ser integrando, configurando o manteniendo sistemas "tipo". b) Soluciones con niveles de criticidad altos que necesitan "procesos" de calidad en las áreas de verificación y validación.

Page 348: Navegápolis 2010

Empresa y mercado 348

c) Soluciones innovadoras, o de problemas difusamente definidos, o para entornos en evolución rápida y continua. Las combinaciones de estos tres mitos, en estados más o menos puros son la principal causa de entornos de trabajo ineficaces, al dotar a "operarios" con rutinas ágiles, o lastrar con herramientas, que en realidad son procesos pesados, a "diseñadores". Una idea que apunta Scrum Manager6, sintetizando el conocimiento de los procesos y la agilidad, es modificar el triángulo de elementos de producción clásico:

Cambiando "proceso" por "procedimiento" y diferenciando en éste dos dimensiones posibles: proceso (contenedor de conocimiento explícito) y rutina o práctica de trabajo (ayuda para mejorar la eficiencia de la persona que es la contenedora de conocimiento tácito).

La realidad de que el elemento "persona" aporta dos dimensiones: trabajo y talento.

6 http://www.scrummanager.net

Page 349: Navegápolis 2010

Empresa y mercado 349

La agilidad necesita responsabili-dades en toda la empresa

07.06.2009

Hacer de una empresa un campo de scrum implica a toda la organización, no sólo a los programadores, o a la gestión de proyectos. Las organizaciones son realidades sistémicas, interrelacionadas. Olvidemos, o desaprendamos (y si no lo conoces, mejor que mejor) eso de que scrum funciona con tres roles: propietario de producto, scrum master y equipo. El grado de éxito de la implantación ágil en la empresa no depende tanto de implantar unos roles, sino de asignar con solvencia las responsabilidades necesarias en la organización para que se desarrolle la agilidad; y las que se deben cubrir de forma coordinada y alineada con la visión de la organización pertenecen a tres categorías clave:

Responsabilidades Scrum Management De management o gerencia.

Page 350: Navegápolis 2010

Empresa y mercado 350

Alineación y equilibrio sistémico de la organización

Coherencia del modelo

Medios y formación De procesos

Configuración de scrum

Mejora continua

Garantía de funcionamiento de Scrum en cada proyecto

De producción

Gestión del producto

Auto-organización

Uso de prácticas tecnológicas ágiles

Responsabilidades Scrum Management En la organización estas responsabilidades deben estar asignadas a personas profesionalmente capaces y con recursos suficientes para desempeñarlas.

Page 351: Navegápolis 2010

Empresa y mercado 351

Además de las responsabilidades de un product manager implicado en el equipo como product owner, un gestor de proyecto y equipo ágil como scrum master y un equipo auto-organizado, también se debe cubrir el uso de prácticas y técnicas ágiles (TDD, Integración continua, refactorización...),el conocimiento y compromiso con su implantación por parte de la dirección de la empresa, la dotación de los recursos y la formación necesaria. La alineación estratégina de las diferentes áreas (comercial, recursos humanos, producción, calidad o procesos...) la gestión de la cultura de la organización basada en el trabajo en equipo y gestión del talento, etc.

Que las diferentes áreas de la empresa se encuentren comunicadas y alineadas con una visión común, coherente con un modelo de trabajo ágil, disponga de medios para el diseño e implantación de una cultura ágil adecuada a la empresa, mejora continua del modelo y formación a las personas, son responsabilidades de la organización. Desde la perspectiva de implantación de scrum desde el management global de la organización, resulta más eficiente adaptar los principios ágiles a la realidad de cada organización, de forma que lo relevante no es adoptar roles cerrados: Product Owner o Scrum Master, sino cubrir adecuadamente las responsabilidades que permiten desarrollar los principios de la agilidad.

Page 352: Navegápolis 2010

Empresa y mercado 352

Page 353: Navegápolis 2010

Índice 353

Trabajos citados Ambler, S. W. (2003). Agile database techniques: effective strategies for the agile software developer. Wiley. Ambler, S. W. (2002). Agile modeling: effective practices for eXtreme programming and the unified process. Michigan: J. Wiley. Ambler, S. W. (15 de 08 de 2009). Ambysoft. Recuperado el 15 de 08 de 2009, de http://www.ambysoft.com/certification/scam.html Ambler, S. W. (2006). Refactoring databases: evolutionary database design. Michigan: Addison Wesley. Ambler, S. W. (2004). Tho object primer: agile model-driven development with UML 2.0. Cambridge University Press. Aprile, P. (2002). Elogio del imbécil. Temas de hoy. Beck, K. (2000). Extreme Programming Explained. Addison-Wesley. Beck, K. (17 de 6 de 2003). IBM. Recuperado el 1 de 07 de 2005, de Working smarter, not harder: An interview with Kent Beck: http://www-128.ibm.com/developerworks/java/library/j-beck/ Beck, K., Beedle, M., Bennekum, A. v., Cockburn, A., Cunningham, W., Fowler, M., y otros. (2001). Agile Manifesto. Recuperado el 2005, de http://www.agilemanifesto.org Bernstein, L., & C.M., Y. (2005). Trustworthy Systems Through Quantitative Software Engineering. New Jersey: Wiley. Bruch, H., & Ghoshal, S. (2002). Beware The Busy Manager. Harvard Business Review . Carrison, D., & Walsh, R. (2004). Semper Fi. AMACOM. Chinanews.cn. (15 de 03 de 2007). Chinanews. Recuperado el 18 de 03 de 2007, de http://www.chinanews.cn/news/2005/2007-03-15/34231.html Cichelli, S. (5 de 30 de 2008). Girl Writes Code. Recuperado el 8 de 6 de 2008, de Agile Open Space: On Certifications: http://www.invisible-city.com/sharon/2008/05/agile-open-space-on-certifications.html CMMI Models, Modules, and Reports. (s.f.). Obtenido de http://www.sei.cmu.edu/cmmi/models Cockburn, A. (2004). Crystal Clear. Addison-Wesley. Coens, T. (2002). Abolishing Performance Appraisals: Why They Backfire and What to Do Instead. Berrett-Koehler Publishers. Crosby, P. B. (1996). Quality is Free. McGraw-Hill. DeMarco, T. (1982). Controlling software projects: management, measurement & estimation. Michigan: Yourdon Press.

Page 354: Navegápolis 2010

Índice 354

DeMarco, T. (1987). Peopleware. New York: Dorset House Pub. DeMarco, T. (1987). Peopleware: productive projects and teams. Michigan: Dorset House Pub. Duncan, G. (21 de Junio de 2008). Are you "really" using Scrum". Recuperado el 29 de Junio de 2008, de Greg's Cool of the Day: http://coolthingoftheday.blogspot.com/2008/06/are-you-really-using-scrum.html Eades, K. M. (2003). The New Solution Selling. Mc Graw Hill Professional. Freedman, D. H. (2001). Corps Business. HarperCollins Publishers. Gilb, K. (2007). Evolutionary Project Management & Product Development. www.gilb.com. Glazer, H., Dalton, J., Anderson, D., Konrad, M., & Shrum, S. (2008). CMMI or Agile: Why Not Embrace Both! Software Engineering Institute. Gorman, J. (28 de 01 de 2008). parlez uml/blog. Recuperado el 29 de 01 de 2008, de http://parlezuml.com/blog/?postid=566 Grove, A. S. (1995). High output management. Vintage. Humphrey, W. S., Pomeroy-Huff, M., Mullaney, J., Cannon, R., & Sebern, M. (2005). The Personal Software Process (PSP). Software Engineering Institute. Hunt, A., & Thomas, D. (1999). The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley. Ikujiro, N., & Takeuchi, H. (1986). The New New Product Development Game. Harvard Business Review . Iturbe-Ormaetxe, J. (13 de 01 de 2006). Consultoría artesana en la red. Recuperado el 04 de 01 de 2007, de http://artesaniaenred.blogspot.com/2006/01/idea-radical-no-hay-direccin-de.html Kaner, C., Bach, J., & Pettichord, B. (2001). Lessons Learned in Software Testing. Wiley. Kniberg, H. (15 de 04 de 2009). Crisp - Kanban vs Scrum. Recuperado el 15 de 04 de 2009, de http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf Kohn, A. (1999). Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes. Houghton Mifflin Co. Palacio, J. (2007). Flexibilidad con Scrum. lulu.com. Peter, L. J. (1969). El principio de Peter. Peter, L. J. (1969). The Peter Principle. William Morrow. Phillips Brooks, F. (1975). The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley. Poppendieck, M., Poppendieck, T., & Poppendieck, T. D. (2006). Implementing Lean Software Development. Addison-Wesley.

Page 355: Navegápolis 2010

Índice 355

Poppendieck, T. (2003). Lean Software Development. Addison-Wesley. Rob, G., & Gareth, J. (1996). What Holds the Modern Company Together? Harvard Business Review . Rosanas Martí, J. M. (2003). Cómo destrozar la propia empresa y creerse maravilloso. Granica. Ruhnow, A. (13 de Agosto de 2007). Agile2007. Recuperado el 08 de 2007, de http://www.agile2007.org/index.php?page=sub/&id=671 Schwaber, K. (2004). Agile project management with Scrum. Microsoft Press. Schwaber, K., & Beedle, M. (2001). Agile Software Development with Scrum. Prentice Hall. Sprenger, R. K. (2002). El Mito de la Motivación. Cómo escapar de un callejón sin salida. Díaz de Santos. Takeuchi, H., & Nonaka, I. (2004). Hitotsubashi on Knowledge Management. Singapore: John Wiley & Sons. Webber, A. M. (2005). Danger: Toxic Company. Recuperado el 01 de 05 de 2005, de Fast Company: http://www.fastcompany.com/magazine/19/toxic.html Webber, A. M. (18 de 12 de 2007). Fast Company. Recuperado el 29 de 01 de 2009, de http://www.fastcompany.com/magazine/19/toxic.html

Page 356: Navegápolis 2010
Page 357: Navegápolis 2010

Índice 9 bloques, 209 adquisición, 89, 178, 241,

250 Agile Modeling, 287 agilidad, 63, 94, 113, 180,

253, 280, 339 contratos, 172 crítica, 69, 103, 146, 150,

156, 347 estrategia de producto,

303, 309, 319 manifiesto ágil, 81 métricas, 85, 115, 195 requisitos, 94, 196, 209 síntesis, 321

agilidad - disciplina enfrentamiento, 69, 100,

253 síntesis, 98, 108

agilidad – disciplina síntesis, 118

ASD, 286 AUP, 131, 134 autogestión, 62 Bootstrap, 99 Burn Up, 214, 227 campo de scrum, 148 CDT, 131, 134 CMM, 272 CMMI, 69, 73, 110, 131,

134, 143, 161, 253, 274, 321 crítica, 74, 87, 92, 96 formación, 38, 104

CMMI-ACQ, 89 conocimiento, 159 ConOps, 214 contrato, 172 coste laboral, 30, 307 crisis del software, 99 Crystal, 131, 135, 286 diseño, 167

documentación, 82 DSDM, 135, 283 eficiencia, 25, 29, 34, 182,

307 empresa, 253

calidad, 306 cultura, 16, 23, 31, 35,

106, 114, 234, 249, 294, 325

ética, 240 finalidad, 236, 249 gestión, 247, 259, 268,

293, 310, 347 personalidad, 336

Enterprise Unified Process, 131, 136

equipo, 62 EssUp, 131 EssUP, 136 estimación, 115, 176, 192,

195 evaluación de desempeño,

24, 31 Evo, 131, 137 eXtreme Programming, 284 Extreme Programming, 131,

137 factor de escala, 320 FDD, 131, 138 Feature Driven

Development, 287 formación

crítica, 38, 104, 108 fundamentalismo, 127 gestión

lineal, 297 personas, 24, 35, 39, 41,

42, 43, 48, 54, 58 sistémica, 298, 315

gestión de proyectos, 106, 180, 207 ágil, 185, 188

Page 358: Navegápolis 2010

predictiva, 176, 185 gestión sistémica, 310 gestores, 317

incompetencia, 234, 239 gráfico burn-down, 193 gráfico burn-up, 205 incentivos, 25 ingeniería de procesos, 323 ingeniería del software, 152 innovación, 93 Internet-Speed

Development, 287 intolerancia, 60 ISO 12207, 73, 90, 275,

321 ISO 15504, 73, 99, 131,

276, 321 crítica, 96

ISO15504, 138 ISO9000-3, 99 ITIL, 131, 139 kanban, 148 Kanban, 216 Lean Software

Development, 131, 139 liderazgo, 64, 65 madurez, 334 Métrica 3, 72 métricas, 85, 182, 219 Microsoft Solutions

Framework, 288 Milgram, experimento de,

36 MoProSoft, 101 motivación, 15, 19, 40, 53,

318 destructores, 16

MSF, 131, 139 open source, 254, 256, 258 Open UP, 131 OpenUP, 140 personas, 312

carácter, 41, 56 valor, 27, 40, 43, 48, 79,

80, 82, 92, 120, 122, 265

PMBOK, 131, 140 Pragmatic Programming,

287 presupuesto, 165, 178 Prince, 131, 141 Prince2, 131, 141 procedimientos, 120, 313 procesos, 63, 96, 122, 262,

270 crítica, 74, 77 madurez, 110

product backlog, 196 Profesionalidad, 27 PSP, 182 requisitos, 189, 196, 214 reunión de planificación del

sprint, 200 RUP, 289 rutinas, 120 scrum, 285

crítica, 332 implantación, 330 origen, 76 roles, 329, 349

Scrum, 128, 131, 141 Scrum Manager, 131, 142 ScrumMaster

formación, 38, 105, 156 selección de personal, 48 software

características, 166 software podrido, 168 SPICE, 99, 276 sprint backlog, 192 SWEBOK, 100 talento, 33, 40, 41, 42, 63

como materia prima, 79 TDD, 131, 142 tiempo, 219 tiempo ideal, 219 Unified Process, 131, 142 venta, 178, 246 visión, 94

empresa, 343

Page 359: Navegápolis 2010