evaluandoHace dos décadas la medicina suprimía de la dieta de las personas con problemas de colesterol los alimentos grasos, incluidos pescado azul o aceite de oliva.

Con frecuencia las soluciones simples crean mitos que por simplicidad lógica de su razonamiento resultan fáciles de aprehender y difíciles de cuestionar: "Si el enfermo presenta exceso de grasa en sangre, reduzcamos la ingesta de grasa".

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


Esta afirmación no caen bien en las empresas con directores de "recursos humanos" que aplican evaluaciones de desempeño. 
Estamos de acuerdo en el objetivo de lograr un sistema de beneficio muto "organización <-> personas", en el que éstas se trabajan motivadas y en continua mejora profesional, de forma que la organización también mejora su eficiencia y la calidad de los resultados.
Estamos de acuerdo en que el exceso de grasa en sangre es malo.
La cuestión es: ¿Las evaluaciones de desempeño ayudan o perjudican?.

A ver si eso de que las evaluaciones de desempeño sirven va a ser un mito, porque lo cierto es que no hay muchas pruebas objetivas de sus bondades.
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
Tom Coens y Mary Jenkins, "Abolishing Performance Appraisals"

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
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 donde emplear las evaluaciones de desempeño como medio de motivación (v. ¿Motivar a los programadores para que programen?) es un error.


Las evaluaciones por escrito deben proporcionar efectivamente una documentación objetiva e imparcial, necesaria o útil en las decisiones disciplinarias o en los despidos
Tom Coens y Mary Jenkins, "Abolishing Performance Appraisals"


Las evaluaciones de desempeño 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 una buena práctica para conseguir equipos motivados y comprometidos?.

Cafe y tilaQue la industria de la consultoría pretenda vender las bondades de aplicar CMMI y agilidad a la vez es como si la industria del café y la de la tila quisieran vender el potencial "sinérgico" de sus productos:  tomar café y tila a la vez... Una misma infusión, saludable y útil para todo el mundo: lo mismo para  somnolientos, que para insomnes.
 
Estoy convencido de que no es posible aplicar en un proyecto desarrollo ágil con CMMI (o con otros modelos de procesos). Para los modelos de procesos el know-how responsable del resultado está en el conocimiento explicitado en los procesos y la tecnología, mientras que para la agilidad está en el conocimiento tácito de las personas. El afán de mezclarlos responde a los intereses de los consultores que lo recomiendan, que al de sus asesorados.
Tambien estoy convencido de que una cosa es la síntesis de ambos conocimientos (porque entre ellos son tésis y antítesis) y otra cosa muy diferente es pretender la suma de los dos.
 
Y como 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 fe, es aconsejable conocer y analizar opiniones diferentes. Al hacerlo te das cuenta muchas veces de lo despistado que andas, y otras te reafirmas en lo despistados que andan otros (por no pensar que su intención es desinformar).
 
En este intento de las consultoras de vender de todo se llega a falsifiar la historia para adecuarla al razonamiento que se quiere sostener, como ocurre en el informe panfleto de SEI "CMMI or Agile, Why not Embrace Both!: 
 
que esto de las metodologías ágiles tiene muy poco de vanguardista.  Que en realidad y aunque no lo supiéramos nadie (sólo ellos) la agilidad  que ahora hace furor, es un modelo de ingeniería más viejo que la tos, con nada menos que 75 años (¡8 años antes de que que se construyera  Eniac!) y que se llama IIDD (Iterative and Incremental Design and Development). Que el Ministerio de Defensa Americano DoD (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. Y 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 (1) y que todas las que vayan surgiendo luego serán posteriores a 2008)
 
Viendo que SEI recurre a la estrategia pueril de inventar lo que sea para "vender" la excelencia de su modelo, en lugar de convencerme de ella, refuerza más la sospecha de que su objetivo es cada vez menos la mejora del negocio de las empresas de software, y más la del suyo propio de consultoría.
 
Todo el rigor del informe panfleto, cuyo título podría despertar la ilusión de algún argumento interesante, se reduce a:
 
kanbanUn tablero kanban es una herramienta para mostrar la situación de trabajos previstos y los que están en curso. La gestión ágil y el desarrollo evolutivo de proyectos TIC usan tableros kanban  para gestionar visualmente un flujo de tareas continuo, sin atascos ni tiempos muertos (o al menos para intentarlo ;-)
 
En foros de gestión ágil,  compañeros habituales del término kanban son: lean y wip, ambos como "claves" para su funcionamiento. También es muy frecuente la relación con  la filosofía "start-up" y su concepto de "mínimo producto viable" por el que los clientes o los gestores de producto deben priorizar los trabajos que necesitan para, con los recursos de que disponen, desarrollar el mayor valor de producto en el menor tiempo.
 
A modo de mapa de situación de las relaciones entre kanban, lean, WIP, priorización de tareas y la teoría de gestión de colas, he preparado esta infografía con la que actualizar los apuntes de Ingeniería del Software, ahora que me vuelve a invitar CESTE a retomar las clases.
 
La comparto aquí para todos los que os pueda servir.
 
Kanban, claves para la mejora del flujo
 

 

Safe Creative #1312089540117

 

criticasSon muchas las críticas que argumentan que la ingeniería del software se asienta sobre bases y conceptos erróneos. En algunas se afirma incluso que el desarrollo de software no se sujeta a los principios científicos y rigurosos, propios de las ingenierías.

Este artículo es una versión modificada del publicado en wikipedia "Criticism of software engineering" , y recoge la relación de críticas más frecuentes hacia la ingeniería del software; acompañadas de sus correspondientes reflexiones.
El espíritu de muchas de ellas es común a otras actividades humanas.

Gestión de las expectativas

crítica
La ingeniería del software considera transcendental para el éxito de sus proyectos, satisfacer las expectativas del cliente relativas al resultado y a las fechas de entrega. Por esta razón se parece más a la sicología o al marketing, y no a una ingeniería tradicional con regulación legal de responsabilidades por incumplimiento de intereses generales para la sociedad o para sus clientes.

Respuesta
Todas las profesiones e ingenierías gestionan expectativas. De hecho el concepto de responsabilidad frente a intereses generales de la sociedad implica la satisfacción de las expectativas de quienes en mayor o menor medida resultan implicados por los proyectos de ingeniería.

Requisitos deficientes

Crítica
La mayoría de los proyectos de ingeniería del software tienen requisitos incompletos o inconsistentes. Unas veces se debe a la poca experiencia de los clientes para especificar requisitos. Otras a que no saben bien qué es lo que necesitan y se limitan a decir "Lo sabré cuando lo vea". Incluso los clientes que conocen qué es exactamente lo que quieren encuentran difícil expresarlo en forma de requisitos.
Además de estas dificultades suele ser normal que los clientes esperen más de lo que han expresado, o que los documentos de requisitos describan aplicaciones sin una solución práctica informatizable.

Respuesta
El nivel de certidumbre que se puede obtener de la visión final de un sistema al comenzar su construcción varía en función de sus características: sistemas novedosos sin antecedentes similares previos, sistemas para integrarse en dispositivos de hardware, sistemas para realizar operaciones en negocios veteranos y conocidos o novedosos y sin experiencia previa por parte de los clientes, etc.

Optar por evitar todos los proyectos con requisitos deficientes o difíciles, o por aplicar siempre técnicas de prototipado y desarrollo ágil, o sus contrarias de no comenzar a trabajar hasta tener definido el sistema no son soluciones válidas.
La aplicación de metodologías de ingeniería de requisitos preventiva, o de desarrollo ágil reactivo debe decidirse según las características de cada proyecto.

DispararEste artículo es una traducción autorizada del post "I Killed The Scrum Master (And Why He Had It Coming) de Daniel Markham publicado el pasado jueves, 24 de octubre en Tiny Giant Books, y al que desde aquí agradezco el permiso y la disposición para publicarlo en Navegápolis.

Por qué maté al Scrum Master

Ayer me preguntaba un cliente cómo podía mejorar un equipo que ya estaba trabajando muy bien. No lo tuve que pensar dos veces, vi la respuesta inmediatamente:

"Desazte del ScrumMaster"

¿Por qué?. ¿Lo estaba haciendo mal el ScrumMaster?. No. Su ScrumMaster es muy bueno. 
¿Se está confundiendo al SM con uin gestor de proyectos?. Quizá un poco, pero no más de lo habitual.

Tras haber visto decenas o cientos de equipos intentando lograr niveles altos de scrum y agilidad, sigo viendo una cosa: a una persona especial que sólo se ocupa de las tareas del ScrumMaster. Es como si tuviéramos en el equipo a alguien que sólo trabaja con bases de datos, o a una persona encargada sólo del interfaz de usuario. Es algo que simplemente no encaja en un equipo autónomo. Peor aún, es algo que genera una barrera entre los desarrolladores y el resto de la organización.
No era un rol destinado a producir eso, pero lo hace.

Siempre he pensado que el papel del SM debe rotar entre los miembros del equipo, y cuantos más equipos scrum conozco, más me reafirmo.
Veo que está surgiendo una industria en torno a "ser un líder de su equipo" y lo que está transmitiendo es claro: el SM es un líder, un perro pastor, un facilitador del que se espera un don de gentes especial.

En otras palabras, el ScrumMaster es sólo la versión del siglo 21 del gestor del proyecto.

introvertidoJung descubrió que las diferencias de personalidad entre las personas pueden clasificarse en patrones que afloran en la infancia se modelan durante la vida.
Partiendo de la obra de Jung "Tipos psicológicos", Katharine Briggs y su hija Isabel Briggs Myers dedicaron 30 años al estudio de la personalidad y al desarrollo de un método para la clasificación y medición de los diferentes patrones.
El resultado es el indicador de tipos Myers-Briggs (MBTI), uno de los modelos de clasificación y medición de la personalidad más utilizados.
Este indicador clasifica la personalidad según cuatro dimensiones básicas, con grados distintos según el nivel en cada una:

mbti1


Combinando los ocho caracteres resultantes de estas cuatro escalas, se generan 16 posibles tipos psicológicos de personalidad:

mbti2


En cada uno de los 16 tipos, las diferencias de grado en cada factor multiplica las combinaciones posibles. 

Estas son las cuatro dicotomías básicas que definen el tipo de estrategia conductual al que tiende cada persona:

E-I Grado de vivencia hacia el exterior (E) o hacia el interior (I) de la persona
S-N Grado de atención que la persona presta a la realidad que ve y toca (S) y a la intuición (N)
T-S En qué grado basa las decisiones en el pensamiento (T) o en los sentimientos (F)
J-P En qué grado el estilo de vida tiende hacia el análisis y el juicio (J) o hacia la percepción (P)



Sin duda esta es una visión tan genérica del modelo MBTI, que con toda razón cualquier sicólogo la tacharía de simplista, pero nos sirve de marco para situar los datos que ofrece Steve Mc Conell en su libro "Professional Software Development" donde recoge (capítulo Orphans Preferred) el resultado de dos estudios exhaustivos realizados por Rob Thomsett y Michael L. Lyons al mostrar que mientras que el 6% de la población se casifica en el tipo ISTJ (Introvertido, Sensorial, Racional, Calificador) entre los programadores el porcentaje llega a alcanzar el 40%. 

Parece ser cierto que los programadores son más introvertidos que el resto de las personas. La media general es del 25%, mientras que entre los programadores el porcentaje pasa del 50% llegando hasta el 75%. 
También hay una diferencia muy marcada en el factor "Racional - Emocional", particularmente importante por la gran influencia que tiene en el estilo de toma de decisiones. Entre el 80 y el 90% de los desarrolladores predomina la componente sensorial sobre la intuición, mientras que en la media de la población es del 50%. 

La diferencia entre la personalidad habitual de los programadores y la de sus jefes puede ayudar para explicar algunos de los motivos de la falta o dificultad de comunicación  entre ellos, y el que los jefes intenten motivar a los programadores en la misma forma que a ellos les gustaría.  
A los programadores les motiva participar en las planificaciones y trabajar sobre agendas que conocen y tienen una base lógica y razonada. Las fechas y compromisos cuya planificación y lógica desconocen y consideran irreal, no funcionan como "retos ilusionanes para su carrera", sino como desmotivadores. 

A los programadores, en general, les preocupa menos la responsabilidad o el reconocimiento y más los estímulos técnicos, la autonomía, la posibilidad de aprender, usar nuevas técnicas, participar en la planificación y el respeto a sus vidas privadas.

prototipoEs difícil hoy pensar en un nuevo producto o servicio que no incorpore software para su funcionamiento, o para servicios colaterales, de marketing u otros. Así por ejemplo, son habituales los productos que tienen una app. asociada.

Los clientes de estos nuevos proyectos de software son cada vez más exigentes en términos de personalización, captura de las necesidades del usuario, innovación del producto, lanzamiento rápido al mercado e incorporación continua y rápida de cambios.

El marco de desarrollo ágil Scrum, en su configuración estándar da respuesta a las necesidades de lanzamiento rápido e incremento continuo centrándose en el ámbito del software, pero presta un nivel de atención somero al área de requisitos.

Para productos donde diseño y concepto son foco de atención primordial para el cliente, y para los que se requiere por parte de todo el equipo conocimiento y comprensión profunda  del dominio del problema, usar el marco "pelado" de Scrum, sin personalizar se queda corto.

Para personalizarlo en una configuración más apropiada a los productos y servicios de requisitos complejos o críticos en diseño y concepto,  la Universidad St. Gallen, a instancias de SAP y con la colaboración del departamento de Ingeniería de Sistemas de Hasso-Plattner-Institut  ha desarrollado la propuesta "Jumpstarting Scrum with Design Thinking"  

scrum dt


Como apunta el título del estudio, el refuerzo al marco estándar de Scrum en el área de atención a las necesidades del cliente, lo aporta la incorporación de la estrategia ágil de requisitos "Design Thinking", que en los últimos años se está consolidnado como metodología eficaz para concebir productos innovadores y que resulta especialmente apropiada en marcos ágiles por su concepto de evolución iterativa y centrada en el usuario. Es la aproximación empleada por empresas como Google, Microsoft o SAP (1)

En esta página han publicado la información y el documento técnico(2) en el que lo explican:Jumpstarting Scrum with Design Thinking.(3)