Etiqueta: administración de proyectos

  • El Tamaño del Equipo Scrum

    El Tamaño del Equipo Scrum

    Mucho se ha hablado sobre el tamaño del equipo Scrum, Agile y casi cada cliente, jefe y colaborador con los que he trabajado hacen esta pregunta en algún momento ¿cuántas personas incluimos en los equipos?. La Guía Scrum ofrece muy poco luz al respecto, sugiriendo 10 o menos miembros por equipo en su última actualización, pero sin darnos contexto o razones para estos números.

    El Tamaño del Equipo Scrum no es Sólo un Número

    La verdad es que no existe un número universalmente correcto para asegurar un óptimo rendimiento en un equipo, pero sí sabemos que un equipo Scrum debe considerar ciertos factores que debería incluir, más allá de lo números:

    • Equipo multifuncional. Habilidades y capacidades suficientes para construir el producto,
    • Miembros dedicados al equipo. Miembros dedicados a uno, y sólo un, equipo,
    • Miembros estables. Membresía consistente y de largo plazo dentro del equipo[1],
    • Diversidad de pensamiento. Un suficientemente amplio rango de actitudes, creencias, generos y patrones de pensamiento[2].

    Ahora bien, los puntos anteriores ya por sí mismos representan reto para algunas organizaciones, pero al menos gozan de un consenso importante, sin embargo, no son las únicos. Una vez que el equipo está formado, hay otros factores importantes que deben atacar los equipos de alto rendimiento, entre otros se pueden mencionar:

    • Seguridad psicológica. Ambiente seguro para compartir ideas y tomar riesgos[3].
    • Comunicación igualitaria. El miembro más expresivo no debería comunicar más del doble de información que el más callado[4].
    • Mente abierta y disponibilidad para aprender[5].
    • Visión compartida. Todos conocen y acuerdan objetivos[6].
    • Roles claros. Todos conocen sus responsabilidades y las espectativas de su labor[7].
    • Asesoramiento externo (coaching). En Scrum esto lo lleva a cabo el Scrum Master[8].

    ¿Y todo esto que tiene que ver con el tamaño de los equipos? Bueno, estos factores no viven aislados en el vacío y sólo porque yo lo digo, así que exploremos la evidencia para que juntos descubramos que es lo más importante para su equipo. Después de todo, no hay una respuesta universal 🙂

    Muchos Números por Todos Lados

    Cuando hablamos del tamaño de los equipos a los adentros de varias organizaciones, el tema parece mucho más controversial y poco acotado por decir lo menos. En el peor de los casos, los líderez encargados de asignación de personal responden armando equipos guiados por supuestos e incluso en función del agobio causado por fechas y presupuestos poco realistas y de horizontes inadecuados, perjudicando así al rendimiento de equipos y la misma organización a mediano y largo plazo.

    En lo días tempranos del agilismo, los textos XP y Scrum sugerían que el tamaño óptimo de miembros era 7±2, aplicando el número de George A. Miller, posteriormente se ajustó a 6±3, hoy en dia el número sugeridos es 10 o menos de acuerdo con la Guía Scrum.

    El sustento original para la postura de siete personas, más o menos dos (7±2), proviene de una investigación de psicología muy nombrada del psicólogo investigador George A. Miller publicada en los años 50s, donde según los resultados de este estudio, hay límites en la cantidad de información que podemos procesar y retener en nuestras cabezas.

    Más recientemente en 2010, Nelson Cowan afirmó que Miller era demasiado ambicioso y que el límite ideal era solo de cuatro y no de de siete[9].

    También, Ikujiro Nonaka y Hirotaka Takeuchi estaban formulando el tamaño ideal del equipo después de realizar investigaciones y crear nuevos productos en compañías de tecnología como Fuji-Xerox, Canon, Honda, Epson, Brother, 3M y Hewlett-Packard[10] .

    Muchos otros citan ejemplos históricos que se remontan al ejército romano, que utilizaba pequeñas unidades militares de alrededor de 8 personas. Otros observan a los bonobos, uno de los parientes genéticos más cercanos a los humanos, a menudo divididos en grupos de 6 a 7 para buscar alimento durante un día. Ambos admiten convenientemente el número 7±2, pero dado que ninguno de los ejemplos se trata de equipos que realizan trabajo de conocimiento, la relevancia de esto para el agilismo es limitada.

    Como puede ver el tema ya tiene tiempo discutiéndose y puede ser algo confuso, pero gracias a ello tenemos algunas pistas, pero vale la pena tener más fuentes que nos ayuden a sustentar nuestra desición.

    ¿Qué Pasa a las Relaciones Cuando los Equipos Crecen?

    A los adentros de un equipo, cada individuo tendrá conexión con otro individuo creando con ello un relación única; entre más grande el equipo, más relaciones. La ecuación que describe esto es N(N-1)/2; pero ¿qué significa esto? y ¿cómo puede ayudarnos? para averiguarlo recordemos problemas de matémáticas de escuela y convirtámoslo en algo que podamos usar en la vida real.

    La ecuación anterior nos dice cuántas relaciones diferentes existirán dentro de un equipo de cierto tamaño, siendo N = el número de personas en el equipo. Entonces, en el primer gráfico ejemplo de un equipo de 5 personas, donde N=5 tenemos 10 relaciones: 10 combinaciones diferentes de miembros del equipo que se relacionan con otros miembros del mismo equipo.

    En el segundo ejemplo, donde N=7, tiene 21 relaciones y en donde N=9 en el tercer gráfico tienen 36 relaciones. Cada par de personas representa una relación, y esa relación define la forma en que colaboran. Los equipos de alto rendimiento, por su naturaleza, deben tener relaciones sólidas entre cada uno de los miembros del equipo para colaborar de manera efectiva.

    Saber esto es importantes para usted y su equipo, porque es cierto que cada nueva persona agrega algo de productividad individual al equipo, pero también aumenta los gastos generales de comunicación en forma de un número de relaciones que crece exponencialmente. Para aumentar un equipo de 5 a 7 personas, hay que duplicar con creces el número de relaciones. Para pasar de 7 a 9, no se duplica del todo, pero el salto sigue siendo grande.

    ¿Qué tan costoso es mantener estas relaciones? Como anécdota, después de haber estudiado las interacciones de los miembros de varios de mis equipos, puedo decir que en equipos de 7 u 8 personas, cada día se dedican más de 90 minutos por persona a interactuar con otros miembros del equipo[11]. Esto excluye el tiempo dedicado a técnicas como pair programming. Parte de la interacción es hablar sobre el trabajo, pero también se dedica a socializar. Esto es bueno e importante porque es la combinación de trabajo y socialización lo que desarrolla la resiliencia y la capacidad de un equipo para manejar los desafíos de manera efectiva.

    Una regla general sugiere que las personas suelen tener de 3½ a 5 horas de tiempo productivo en el trabajo cada día. A medida que un equipo crece, perdemos productividad o, más a menudo, comenzamos a retraernos socialmente en lugar de sacrificar tiempo productivo para interactuar con nuestros compañeros porque los costos de comunicación para cada miembro del equipo se están volviendo demasiado altos. Necesitamos relaciones sólidas para convertirnos en un equipo de alto rendimiento pero, a medida que crece el tamaño del grupo, comenzamos a evitar las interacciones que construyen esas relaciones.

    Por lo tanto, la cantidad de relaciones entre los miembros del equipo y la inversión de tiempo que requieren deben ser un factor considerado al elegir el tamaño del equipo porque influirá en la productividad.

    Más Personas Hacen el Trabajo Más Ligero… Pero Solo Hasta Cierto Punto

    Lo que todos quieren creer es que si vamos de 1 persona a 2 personas, o de 2 personas a 4 personas, obtendremos el doble de trabajo realizado, incluso altos directivos de organizaciones transnacionales me lo han planteado. Pero incluso así, intuitivamente sabemos que esto no es verdad, pero ¿por qué?

    En 1967 se presentó por primera vez la Ley de Amdahl, que para los que no sean ingenieros en sistemas o electrónica, trata de estimar cuanta ganancia de velocidad se puede obtener ejecutando tareas de computo corriédolas en partes de manera paralela. Esto significa que a veces hay programas de cómputo que son viables de trabajarse por múltiples procesadores al mismo tiempo (ej. procesamiento paralelo), pero otras partes deben ser atendidas una por una (ej. programación serial).

    La fórmula que se deriva de la Ley de Amdahl pude parecer intimidante, pero es mucho más simple de lo que parece:

    Esta imagen plantea trabajo realizado por un procesador el cual le toma 5 unidades de tiempo para completar.

    Si tomamos las 5 unidades de trabajo y aplicamos 3 procesadores a las partes que se pueden hacer concurrentemente (en paralelo), no se necesitan 1 y 2/3 unidades de tiempo (5 dividido por 3) para completarse. En cambio, se necesitan 3 unidades porque 2 de las unidades de trabajo solo pueden ser realizadas por un procesador (serie). Ciertamente es una mejora en el tiempo, pero no tanto como cabría esperar al primer vistazo.

    El trabajo en equipos funciona de manera muy similar. De hecho, si con convertimos todo a un gráfico podemos darnos idea de que tan eficiente puede ser el incremento en miembros de un equipo:

    Enfoquémonos por ahora en la línea del 80% (la azul, en la parte superior) del gráfico. Seamos optimistas (y poco realistas) y supongamos que el 80% del trabajo se puede hacer trabajando en paralelo. Esto sugiere que cuanta más gente lo haga, más rápido se terminará, ¿cierto? Ah, pero espera. Si pasamos de 1 persona a 2 personas, no hacemos el doble de trabajo. Para obtener una mejora de 2 veces el trabajo completado, en realidad necesitamos 3 personas. 7 personas sólo crean una mejora de 3.2 veces sobre 1 persona. Para hacer 4 veces más trabajo del que hace 1 persona, ¡necesitaríamos 16 personas!

    ¿Qué sucede si se puede hacer incluso menos trabajo al mismo tiempo (paralelo)? ¿Qué pasa si el 50% del trabajo debe hacerse en serie (línea verde en el gráfico)? Luego, con 9 personas, todavía tenemos solo una aceleración de 1.8 veces.

    ¿Cual es la solución? No hay una solución fácil, pero hay cosas que puede hacer para mitigar el efecto de la Ley de Amdahl:

    • Haga que la mayor parte del trabajo posible se pueda hacer en paralelo. Esto puede significar aumentar las habilidades cruzadas y la colaboración.
    • Reduzca las dependencias entre equipos, para que no haya cuellos de botella ni retrasos.
    • Aumente la velocidad del proceso de trabajo en general mejorando la calidad y las prácticas.

    La velocidad no proviene de enviar a más personas al trabajo y formar equipos más grandes. Se trata de construir un equipo de alto rendimiento que tenga un tamaño óptimo para la eficacia, la comunicación y la calidad.

    Evidencia respaldada por investigaciones

    American Sociological Association

    La American Sociological Association publicó un estudio de Hackman JR, Vidmar NJ llamado “Effects of size and task type on group performance and member reactions.” algó así como “Efectos del tamaño y el tipo de tarea en el desempeño del grupo y las reacciones de sus miembros[12].

    En este estudio, hicieron que los participantes completaran una serie de tareas: una combinación de producción (escritura), discusión y resolución de problemas. Los participantes se colocaron en diferentes grupos de 2 a 7. Después de completar cada tarea, se les hizo una serie de preguntas a los voluntarios, incluidas dos que se muestran en este gráfico: “¿su grupo era demasiado pequeño?”, “¿su grupo era demasiado grande?”. Como puede ver en el gráfico, los grupos de alrededor de 4-5 de tamaño parecían tener la reacción menos negativa. El número frecuentemente tocado es 4.6. Los participantes eran estudiantes universitarios, las tareas tenían una carga cognitiva pero no estaban relacionadas con tennología, desarrollo, etc., y los grupos no estuvieron juntos el tiempo suficiente para que se formara un verdadero “sentido de equipo”. No obstante, es un dato interesante.

    Por aquellos días Hackman escribió el libro Leading Teams, su regla general para el tamaño del equipo era 6[13].

    Social and Developmental Psychology Researcher Jennifer S. Mueller

    La Psicóloga-Invetigadora Jennifer S. Mueller académica, autora y colaboradora de varias investigaciones fue citada en el artículo “Is Your Team Too Big? Too Small? What’s the Right Number?:”

    Si las empresas están lidiando con tareas de coordinación y problemas de motivación, y usted pregunta: “¿Cuál es el tamaño de su equipo y cuál es el óptimo?”, eso corresponde a un equipo de seis. “Más allá de los cinco, comienzas a ver una disminución de la motivación”, dice Mueller. “Después de la quinta persona, buscas camarillas. ¿Y el número de personas que hablan en un momento dado? Eso es más difícil de manejar en un grupo de cinco o más”.

    De Los creadores de Scrum…ni más ni menos

    A partir de los estudios de George A. Miller, y trabajos posteriores, lo creadores de Scrum Jeff Sutherland y Ken Schwaber mostraron los siguientes niveles de productividad basados ​​en su propia investigación sobre el tamaño del equipo:

    Equipo AgileProductividadEquipo NO AgileProductividad
    < 7 miembros300 / 400 %< 7 miembros100% max
    > 7 miembros400 %> 7 miembros< 90%

    Y agregaron:

    Un pequeño equipo de tres a cuatro personas puede ser muy autónomo cuando sigue pautas, tiene un enfoque bien definido, y todos están físicamente en el mismo espacio. Su trabajo es a menudo consistente, responsable, alineado y bien dirigido, y la comunicación es fluida. Las cosas son relativamente fáciles cuando solo hay unas pocas personas en el equipo. Los problemas parecen aumentar junto con el número de miembros del equipo.

    Ley de Brooks y Lawrence Putnam

    El mítico Frederick Brooks al cual se le debe la famosa “La Ley de Brooks” establece que “agregar mano de obra a un proyecto de software tardío lo hace incluso más tardío”. Esto es debido a la curva de aprendezaje, es decir, debe capacitar a cada persona nueva en el producto o tecnología, y debe aprender todo el conocimiento no técnico relacionado, incluidas las estrategias comerciales que aborda el producto o el software [14].

    Según importantes estudios realizados por investigadores de renombre como Lawrence Putnam:

    MiembrosEsfuerzo
    < 9 miembros25% menos esfuerzo
    > 9 miembros25% más esfuerzo

    Con un Equipo Agile:

    MiembrosProductividad
    125% más
    5125% más
    9225% más

    En resumen, si tenemos un equipo óptimo, podemos llegar a tener una productividad del 300 al 400%.

    Datos duros de Putman y Mayers

    Más allá de nuestras opiniones personales, las de los clientes, jefes, miembros del equipo, también tenemos estadísticas objetivas. Putnam y Myers examinaron datos de 491 proyectos de software en una gran corporación como publicaron en su aritículo “Familiar Metric Management: Small is Beautiful Once Again“. Estos fueron proyectos con 35,000 – 90,000 líneas fuente de código. Dividieron los proyectos en grupos que llamaron buckets según la cantidad de personas involucradas en el proyecto: 1.5-3, 3-5, 5-7, 9-11 y 15-20. En promedio, los grupos más pequeños (3-5, 5-7) tardaron mucho menos tiempo (11.9 y 11.6 meses, respectivamente) que los grupos más grandes (17.1 y 16.29 meses) para completar proyectos de tamaño similar.

    Cuando multiplicas el número de miembros del equipo por el número de meses, obtienes un gráfico que es aún más impactante:

    Un equipo de 9 a 11 personas tardó entre 2.5 y 3.5 veces más tiempo que los equipos de 5 a 7 y de 3 a 5 para completar proyectos de un tamaño similar. Eso sugiere que los equipos de más de siete en este conjunto de datos eran solo una forma de gastar dinero más rápido debido al aumento del tamaño del equipo pero con rendimiento neto reducido.

    Evidencia de proyectos Agile

    Larry Maccherone, en su trabajo a través de Rally, Tasktop y AgileCraft expuestos en “Impact of Agile Quantified” a finales del 2014″, ha ayudado a construir grandes conjuntos de datos sobre prácticas en equipos Agile . Sus datos muestran:

    Según los datos de Larry, parecería que los equipos de 1-3 son más productivos pero tienen menor calidad. Los equipos de 3-5 son marginalmente más productivos que los de 5-9, aunque aún pueden tener una calidad ligeramente inferior: la diferencia es pequeña. Las notas de Larry sugieren que piensa que todo el rango de 3 a 9 está bien[16]. La razón de la menor calidad en los equipos más pequeños no es evidente. ¿Quizás por falta de estabilidad? ¿Falta de diversidad de pensamiento y experiencia? ¿Funcionalidad cruzada reducida? No podemos saberlo, pero merece consideración.

    Mi Experiencia

    Cuando los clientes, jefes, etc., me preguntan qué tamaño deberían tener los equipos Scrum, no tengo una respuesta “correcta”. Pero trato de compartir los datos anteriores, mis opiniones personales y sugerencias basadas en años de experiencia. Y no les mentiré, hay organizaciones donde los malos hábitos está tan arraigados que cuesta trabajo permear de manera práctica esa información (no la escuchan, lo toman suficientemente en cuenta, etc.). Pero sin lugar a dudas procuro que mis sugerencia se basen en la evidencia, en la lógica simple y el sentido común.

    Por ejemplo, los equipos más grandes pasan más tiempo formándose, más tiempo normalizándose y, por lo tanto, más tiempo para alcanzar un alto rendimiento. ¿Por qué? Porque hay más relaciones que negociar. Como vimos antes, en un equipo de 5, hay 10 relaciones que deben formarse, un equipo de 7 tiene 21 relaciones, y así sucesivamente. Más relaciones toman más tiempo para construir y establecer la confianza, por lo que debe tenerse en cuenta a la hora de decidir el tamaño del equipo.

    Suponiendo que todo lo demás sea igual (las habilidades necesarias para realizar el trabajo, la diversidad de pensamiento, etc.), la evidencia existente respalda la idea de que los equipos de 4 a 6 funcionan bien en la mayoría de las situaciones. Toman menos tiempo para formarse y son tan productivos como los equipos más grandes. Además, los equipos de 5-7 normalmente pueden combinar habilidades lo suficiente como para cubrir la pérdida de un miembro del equipo.

    Personalmente, solo elegiría un equipo de 8 si otras presiones, como la amplitud de habilidades requerida, lo obligaran a suceder. No recomiendo equipos de más miembros, porque los gastos generales superan el valor de la persona adicional.

    Con equipos de 10 o más, recomiendo dividirse en 2 equipos. Mi propia experiencia y la de otros colegas agilistas con experiencia en escalamiento: los equipos separados de 4 y 5 hacen más que su numeroso equipo original.

    Con equipos de 9 o más, recomiendo dividirse en 2 equipos. Mi propia experiencia refleja la de otros agilistas utilizando Scrum: los equipos separados de 4 y 5 hacen más que su gran equipo original.

    ¿Por qué no 3 o menos? Porque daría como resultado muy poca diversidad de pensamiento y probablemente sería muy difícil encontrar 3 personas con suficientes habilidades para hacer el trabajo en un proyecto complejo. También habrá muy poca colaboración, lo que se correlaciona con la reducción en la calidad que muestra la Figura n.º 2 (datos de “Impact of Agile Quantified”). Y no olvide los problemas obvios de energía 2 contra 1 que pueden hacer que el viaje sea más desafiante para un miembro del equipo.

    Todo el enfoque se ha centrado en la cantidad de personas en el equipo, pero la pregunta más importante debería ser esta: ¿tiene el equipo la capacidad de llegar a “Done” o “Terminado” al final de cada Sprint? Si no es así, querrá volver a examinar y reconfigurar para lograr un tamaño de equipo más efectivo y hacer muy probablemente un re-análisis al desglose de trabajo en requerimientos, historias de usario o similares.


    [1] “The Impact of Lean and Agile Quantified” – Larry Maccherone demostró que miembros dedicados a un sólo equipo duplicaron la productividad y los equipos estables (sin rotación) mejoraron la productividad en un 60%. https://www.infoq.com/presentations/agile-quantify

    [2] Wilkinson, David. Group decision-making. Lo que dice la última investigación. The Oxford Review, Diciembre 2019

    [3] “What Google Learned From Its Quest to Build the Perfect Team”: https://www.nytimes.com/2016/02/28/magazine/what-google-learned-from-its-quest-to-build-the-perfect-team.html

    [4] “The New Science of Building Great Teams” – Alex “Sandy” Pentland https://hbr.org/2012/04/the-new-science-of-building-great-teams/ar/pr y también “Evidence for a Collective Intelligence Factor in the Performance of Human Groups

    [5] The Wisdom of Teams: Creating the High-Performance Organization – Jon Katzenbach and Douglas Smith – indica que las habilidades potenciales son tan importantes como las habilidades que la gente tiene actualmente para predecir efectividad.

    [6] [7] [8] Wilkinson, David. Group decision-making. Lo que dice la última investigación, The Oxford Review, Diciembre 2019

    [9] “The Magical Mystery Four: How Is Working Memory Capacity Limited, and Why?” – Nelson Cowan – https://www.psychologicalscience.org/journals/cd/19_1_inpress/Cowan_final.pdf?q=the-recall-of-information-from-working-memory

    [10] Knowledge management https://en.wikipedia.org/wiki/Knowledge_management

    [11] Estas son observaciones informales que cualquiera puede hacer, pero una de las investigaciones más conocidas la hizo la revista inglesa Nature Human Behavior en 2017.

    [12] Stable reference: https://www.jstor.org/stable/2786271

    [13] Familiar Metric Management – Small is Beautiful-Once Again – Lawrence H. Putnam y Ware Myers https://hbswk.hbs.edu/archive/2996.html

    [14] The Mythical Man-Month: Essays on Software Engineering – Frederick Brooks https://en.wikipedia.org/wiki/The_Mythical_Man-Month

    Enlaces de interés:

    El Enfoque Agile De La Planeacion
    Planeación, Cono de Incertidumbre y Estimaciones en IT
    ¿Qué Certificación Elegir como Scrum Master

    Estos son alguno libros recomendables para saber más:

    2 Comments
  • Sin Usuarios

    Without users (User Proxies)

    Without Users (User Proxies)

    Ideally, when we pretend to develop a software, we need to talk with one or more real users who are part of the customer team. But, the reality has the bad habit of punching Dilbert and us right in the nose and continuously we found our selves in one of two situations:

    1. We have as primary contacts, people who pretend to guess how a final user wants the software behaves when only the real user actually knows it, and yet we have limited or no access at all to them.
    2. The product is so innovating that we actually don’t have a real user in advance.

    Unfortunately, very often is difficult to get the users that we need. For example, we could be developing a product with user all over the country, but we can’t bring one (or more) of them with us, to write requirements or user stories. Or maybe we could be writing software that will be used inside our company, but somebody says that we can’t talk directly with the users.

    When we can’t get as many users as we’d like us to represent the different perspectives to the product, we have to resort to people or intermediary resources, also known as user proxies, who maybe are not users, but we need to include them in the project in order to represent the users and so deal with the two mentioned situations.

    Warning

    What I going say in rest of this post can be controversial and is subject to my personal experience but is also based on publications (that I always put at the end). This time I will focus on what characterizes each type of user proxy.

    The user proxies selection can be critical to achieving the success of a project. The experience, motivations and possible agenda of a proxy must be considered. A user proxy involved in sales will have a completely different perspective from a domain expert’s. It’s important to be aware of these differences, that is why I’ll try to provide a synthesis of what characterizes some of them.

    Proxies:

    Final users supervisors

    When we try to create internal use applications is common that middle management to be reluctant about to give full access to final users for a variety of reasons, so is very likely that you as a requirements engineer, business analyst, product owner, etc., end up dealing with supervisors and managers of the users on what you’re interested in.

    We must be very careful when we dealing with those proxies, especially in public institutions that are very bureaucratic, because this they tend to fall in bad practices that try to minimize, dissimulate or hide during their process and operations.

    On other occasions, the users’ supervisors intercede and want to represent the role of a user because they think they know more than the real users. But usually, the managers or supervisors have different usage pattern. You should be skilled enough to “turn around” that proxy and reach the final users as much as you can without offending the supervisor. In the section, What to do without users (or almost)? you can read what to do in those cases.

    Development managers, development supervisors, development directors, development leaders and similar

    This type of proxy is one the worst options unless you are writing software specifically for this type of user. Even when the intentions of this type of user sometimes are good, it’s likely this type of leader has his/her own interests and prioritize in a different way the requirements or user stories than a final user would.

    This happens because this role tends to accelerate the introduction of new technologies, or in the worst case scenario, when there is too much technical debt or a disorganized operation, s/he will try to reduce her/his workload at the slightest opportunity.

    Finally, the development managers usually don’t have experience as final users of the solution that is being built and they aren’t domain experts of interest. If a development supervisor es a real final user then you can consider him an appropriate domain expert, otherwise I advise you to avoid using her/him as a proxy if possible.

    People involved in sales

    The danger of use people involved in sales as proxies is that they usually tend to want to close a sale quickly and no matter what, which leads to a distorted vision about how a product should be built.

    If the person in sales, lost the last sale due the lack of a specific characteristic, you can be sure that those people in sales instantly will include as a high priority requirement that characteristic or functionality. Another common situation is people in sales, according to the potential sale earning or commission tends to promise too much even with a small knowledge about other domains, with short-term benefit vision.

    A company that places too much emphasis on lost sales or short-term profits may lose track of its vision and long-term strategies.

    However, the people in sales can be a great conduct to reach final users and we should use them in that way. Ask to them introduce you to customers, join them in sales visits, in sales shows and promotion events, learn about how the products or services of your organization are exhibited and then talk to the users.

    Domain experts

    The domain experts are those who give us what we call experts’ domain and can be very important due to the knowledge that they have in the field of our product. Of course, some domains are more complex than others.

     

    The domain experts can be great resources, but their usefulness is very dependent on whether they are current users or former users of the type of solution that we are creating. Knowing this we must be aware that this kind of proxies can make us create products aimed to their domain level, and if we are not careful we could end creating a too much complex software for the real users level.

    Marketing groups

    People or groups focused on marketing tend to focus more on the market or in niches themselves, rather than on individual users, so the result is that they concentrate more on quantities of functionalities than on the quality of them.

    But do not dismiss our marketing friends, in many cases, they can provide us with valuable high-level information that can help us to establish relative priorities, but we shouldn’t expect a detailed vision for our requirements or user stories.

    Former users

    A former user can be a great proxy if their experience is recent. However, as with other proxies, we must be careful and consider that the objectives and incentives of our proxy are aligned with those of the current final user.

    Customers

    Customers are the ones who make the purchasing decision; they aren’t necessarily final users of the product. It’s important to consider the wishes of your customers because they, not your users, are the ones who sign the check to buy the solution unless of course, the final users and the clients are the same people.

    The features of a product like this should be enough so that the end users do not shout too loudly; but they must also be those that attract the customer who makes the purchasing decision.

    Trainers and technical support

    Trainers and technical support personnel may seem like logical options to use as user proxies. They spend their days talking to real users, so they must surely know what the users themselves want, right? Well, unfortunately, if you use a trainer as your user proxy, you will end up with a system, that is, easy to train.

    Similarly, if you use someone from technical support, you will end up with a system that is very compatible and easy for supporting. For example, someone from technical support can assign a low priority to advanced features that he anticipates will increase support work.

    While ease of training and compatibility are good objectives, it’s most likely that they aren’t what a true final user would prioritize.

    System analysts and business analysts

    Many business analysts and systems analysts make good user proxies because they have a foot in the world of technology and the other one in the processes and operation domain. An analyst who can balance this background and who strives to talk to real users is often an excellent proxy user.

    A problem that some analysts present is that they prefer to think about a detected problem instead of research about it to solve it. Another problem that I’ve encountered occasionally is they tend to spend too much time on project’s upfront tasks.

    What to do without users (or almost)?

    When access to users is limited

    When the team needs it to work with a proxy, it’s important to be very quick and establish with the sponsors, the proxy and management with sufficient authority, the fact that it’s necessary to establish a small “advanced post” group formed by real users, in order to evaluate any initiative, theory or assumption, and achieve validated knowledge as soon as possible.

    Be efficient and transparent by scheduling constant meetings of maximum established duration and at a constant pace to facilitate meetings and minimize external obstacles, making it clear from the beginning that the objective is to identify, write and prioritize user stories or requirements.

    If there are really no users available

    When a user is not really available and must use a user proxy, a valuable technique is using more than one user proxy. This helps to reduce the likelihood of building a system that only satisfies one person’s needs. When you use more than one user proxy, make sure use different types of proxy. For example, combine a domain expert with someone from marketing instead of using two domain experts.

    If you are developing software that competes with other commercial products, you can use the competitive products as a source of some user stories or requirements. What features of the products of the competition are mentioned in the reviews? What features are discussed in the online newsgroups? Are the features discussed because they are too complex to use or because they are very useful?

     

    Another technique that you can use when you’re working with a user proxy instead of real users, is releasing the product as soon as possible. Even whether you call it preliminary version, beta, early, etc., try to put it in the hand of the users as soon as possible and identify inconsistencies between the user proxy thoughts and the actual real users, so you also get validated knowledge. Even better, once the software is in the hand of one or more of the first users, you now have a communications path to these real users and can use that to talk with them about upcoming features.

    Can you do it your self?

    When you can’t find or access to a real user, don’t fall into the trap of thinking you know the users’ mind and you don’t need or you can ignore a user proxy. Even if each type of user proxy has some kind of inconvenience that makes her/him less desirable than a real user, most developers have even more deficiencies to pretend to be a real user.

    In general, developers don’t have marketing knowledge that allows them to understand the features’ relative value, they don’t have the same amount of contact with the customer as the salespeople, they are not domain experts, etc.

    Do you know another type of user? Do you have a different opinion about the proxies presented here?

    *Sorry about my English, I’m not natural speaker :p. Don’t be grumpy and help me to improve 😀

    Other links of interest:

    Agile’s Origins and Values
    The Agile Team Approach

    If you want to know more, these are some recommended books:

    Any help is welcome to help us keeping this effort alive! PayPal Account BTC (Bech32): bc1qx6f8nczr5ram6d57svlnsfmk5mhu6lsr9q7mxw BTC: 1DDcWbphm1bKMvWruotNKLSM8ypVaHg5Nv ETH: 0x58D137fb142D946bCD815f0ded0fa3b3fE5AB3BF

    No Comment
  • Sin Usuarios

    Sin Usuarios (Proxies de Usuario)

    El ideal y la realidad

    Idealmente, cuando se pretende desarrollar un software, debemos conversar con uno o más usuarios reales que forman parte del equipo de un cliente. Pero, la realidad tiene la mala costumbre de golpearnos a nostros y a Dilbert justo en la nariz y continuamente nos podemos encontrar en una de dos situaciones:

    1. Tenemos como contactos primarios a personas que pretenden adivinar cómo un usuario final quiere que se comporte el software, cuando solo un usuario real lo sabe, y aun así tenemos acceso limitado a ellos o ningún acceso a ellos.
    2. El producto es muy innovador y no tenemos un usuario real existente de antemano.

    Desafortunadamente, a menudo es difícil obtener los usuarios que necesitamos. Por ejemplo, podríamos estar desarrollando un producto con usuarios en todo el país, pero no podemos traer uno (o más) de ellos con nosotros para escribir requerimientos o historias de usuario (user stories). O podríamos escribir software que se utilizará dentro de nuestra empresa, pero alguien nos dice que no podemos hablar con los usuarios.

    Cuando no podemos obtener tantos usuarios como desearíamos para representar las diferentes perspectivas del producto, tenemos que recurrir a personas o recursos intermediarios, también conocidos como proxies de los usuarios o user proxies, que pueden no ser usuarios, pero que debemos incluir en el proyecto para ayudar a representar a los usuarios y así lidiar con las dos situaciones mencionadas.

    Advertencia

    Lo que diré a continuación en el resto de esta entrada puede ser polémico y está sujeto a mi experiencia personal pero también en base a publicaciones (que siempre pongo al final). En esta ocasión me enfocaré en aquello que caracteriza a cada tipo de proxy de usuario.

    La selección de proxies de usuario puede ser crítica para lograr el éxito de un proyecto. La experiencia, motivos y posible agenda de los proxies de usuario debe considerarse. Un proxy de usuario involucrado en ventas tendrá una perspectiva completamente diferente a la de un experto de dominio. Es importante estar al tanto de estas diferencias, por lo que trataré de proporcionar una síntesis de lo que caracteriza a algunos.

    Proxies:

    Supervisores de usuarios finales

    Cuando se intentan crear aplicaciones de uso interno es común que los mandos medios se muestren reacios a dar un acceso completo a los usuarios finales por una variedad de razones, por lo que es muy probable que usted como ingeniero de requerimientos, analista de negocios, product owner, etc., termine lidiando con supervisores o gerentes de los usuarios de su interés.

    Hay que tener mucho cuidado cuando debemos tratar con estos proxies sobre todo en instituciones públicas muy burocratizadas, porque estas tienden a caer en malas prácticas que intentan minimizar, disimular u ocultar durante sus procesos y operación.

    En otras ocasiones los supervisores de usuario interceden y quieren representar el rol de usuario porque creen que saben más que los usuarios reales.  Pero usualmente los gerentes o supervisores tienen patrones de uso diferentes a los usuarios. Usted deberá ser lo suficientemente hábil para “dar la vuelta” a este proxy y llegar tanto como sea posible a los usuarios finales sin ofender al supervisor. En la sección ¿Que hacer sin usuarios (o casi)? puede ver que hacer casos así.

    Gerentes de desarrollo, supervisor de desarrollo, directores de desarrollo, líderes de desarrollo y similares

    Este tipo de proxy es uno de las peores opciones, a menos que usted esté escribiendo software específicamente para este tipo de usuario. Incluso cuando las intenciones de este tipo de proxy a veces sean buenas, lo más probable es que este tipo de líder tenga sus propios intereses y priorice de manera diferente, los requerimientos o historias de usuario, a como lo haría un usuario final.

    Esto sucede porque este rol tiende a querer acelerar la introducción de nuevas tecnologías, o en el peor de los casos, cuando se tiene mucha deuda técnica o una operación desorganizada, tratará de disminuir su carga de trabajo a la menor oportunidad.

    Finalmente, los encargados de desarrollo no suelen tener experiencia como usuarios finales de la solución que se está construyendo y no son expertos del dominio de interés. Si un encargado de desarrollo es realmente un usuario final entonces considérelo un experto de dominio apropiado, de lo contrario le aconsejo evitar en lo posible usarlo como proxy.

    Involucrados en ventas

    El peligro de utilizar a personas involucradas en ventas como proxies, está en que estas usualmente tienden a querer cerrar una venta rápido y a como dé lugar, lo cual lleva a una visión distorsionada acerca de cómo un producto debe ser construido.

    Si la persona en ventas, perdió la última venta por la carencia de una característica específica tenga por seguro que esa personas de ventas incluirá instantáneamente como requerimiento de alta prioridad a esa característica o funcionalidad. Otra situación común es que las persona en ventas, de acuerdo a la utilidad y comisión potencial de una venta específica, tienden a prometer demasiado incluso con poco conocimiento de otros dominios, con una visión de beneficio a corto plazo.

    Una compañía que pone demasiado énfasis en ventas perdidas o por beneficios a corto plazo puede perder la pista de su visión y estrategias de largo plazo.

    Sin embargo, las personas en ventas, pueden ser un gran conducto para llegar a usuarios finales y hay que usarlos de esa manera. Pídales que lo presenten con los clientes, acompáñelos a visitas de venta, a los shows y ferias de promoción, aprenda acerca de cómo se exhiben los productos o servicios de su organización y entonces hable con los usuarios.

    Expertos de dominio

    Los expertos de dominio, son aquellos que nos dan lo que llamamos la opinión de expertos, y pueden ser sumamente importantes debido al conocimiento que poseen en el área de nuestra aplicación. Desde luego algunos dominios son más complejos que otros.

     

    Los expertos de dominio pueden ser grandes recursos, pero su utilidad es muy dependiente de si son usuarios actuales o antiguos usuarios del tipo de solución que estamos creando. Sabiendo esto hay que estar conscientes que este tipo de proxies nos pueden hacer crear aplicaciones dirigidas a su nivel de dominio, y si no se tiene cuidado podríamos caer en crear un software demasiado complejo para el nivel de nuestros usuarios reales.

    Grupos de mercadeos (marketing)

    Las personas o grupos enfocadas al mercadeo tienden a concentrarse más en el mercado o en nichos en si, más que en usuarios individuales, por lo que el resultado es que se concentran más en cantidades de funcionalidades que en la calidad de las mismas.

    Pero no descartemos a nuestros amigos de marketing, en muchos casos nos pueden proveer de valiosa información de alto nivel que nos puede ayudar sobre todo a establecer prioridades relativas, pero no esperemos una visión detallada para nuestros requerimientos o historias de usuario.

    Antiguos usuarios

    Un antiguo usuario puede ser un gran proxy si su experiencia es reciente. Sin embargo, como sucede con otros proxies, hay que tener cuidado y considerar que los objetivos e incentivos de nuestro proxy se alineen con los del usuario final.

    Clientes

    Los clientes son los que toman la decisión de compra; ellos no son necesariamente usuarios finales del software. Es importante considerar los deseos de sus clientes porque ellos, no sus usuarios, son los que firman el cheque para comprar la solución, a menos que por supuesto, los usuarios finales y los clientes sean las mismas personas.

    Las características de un producto como este deben ser suficientes para que los usuarios finales no griten demasiado fuerte; pero también deben ser aquellas que atraen al cliente que toma la decisión de compra.

    Capacitadores y soporte técnico

    Los capacitadores y el personal de soporte técnico pueden parecer opciones lógicas para utilizar como proxies de usuario. Pasan sus días hablando con verdaderos usuarios, por lo que seguramente deben saber lo que quieren los usuarios mismos ¿correcto?. Bueno, desafortunadamente si usa un capacitador como su proxy de usuario, terminará con un sistema, eso es sí, fácil de capacitar.

    Del mismo modo, si utiliza a alguien de soporte técnico, terminará con un sistema que es muy compatible y fácil de soportar. Por ejemplo, alguien de soporte técnico puede dar baja prioridad a las funciones avanzadas que él anticipa que aumentarán el trabajo de  soporte.

    Si bien la facilidad de capacitación y la compatibilidad son buenos objetivos, lo más probable es que no sean lo que un usuario final verdadero priorizaría.

    Analistas de sistemas y analistas de negocio

    Muchos analistas de negocios y sistemas hacen buenos proxies de usuario porque tienen un pie en el mundo de la tecnología y un pie en el dominio de los procesos y la operación. Un analista que puede equilibrar estos antecedentes y que se esfuerza en hablar con los usuarios reales suele ser un excelente usuario proxy.

    Un problema que presenta algunos analistas es que prefieren pensar en un problema detectado en lugar de investigarlo para solucionarlo. Otro problema que he encontrado ocasionalmente es que tienden a pasar demasiado tiempo en las actividades de antemano de un proyecto.

    ¿Que hacer sin usuarios (o casi)?

    Si el acceso a los usuarios es limitado

    Cuando es necesario que el equipo trabaje con un proxy es importante ser muy rápido y establecer con los patrocinadores, el proxy y gerencia con suficiente autoridad, el hecho de que se requiere establecer un grupo pequeño “de avanzada” formado por usuarios reales, con el fin de evaluar cualquier iniciativas, teorías o suposiciones, y lograr conocimiento validado los más pronto posible.

    Sea eficiente y transparente programando reuniones constantes de duración máxima establecida y a ritmo constante para facilitar las reuniones y minimizar los obstáculos externos, dejando muy claro desde el inicio que el objetivo es identificar, escribir y priorizar historias de usuario y requerimientos.

    Si realmente no hay usuarios disponibles

    Cuando realmente no hay un usuario disponible y debe recurrir a un proxy de usuario, una técnica valiosa es usar más de un proxy de usuario. Esto ayuda a reducir la probabilidad de construir un sistema que satisfaga solamente las necesidades de una persona. Cuando use más de un proxy de usuario, asegúrese de usar diferentes tipos de proxy. Por ejemplo, combine un experto de dominio con alguien de marketing en lugar de usar dos expertos de dominio.

    Si está desarrollando un software que compita con otros productos comerciales, puede usar los productos de la competencia como fuente de algunas historias de usuario o requerimientos. ¿Qué características de los productos de la competencia se mencionan en las reseñas? ¿Qué características se discuten en los grupos de noticias en línea? ¿Se discuten las características porque son demasiado complejas de usar o porque son muy útiles?

     

    Otra técnica que puede usar cuando trabaja con un proxy de usuario en lugar de usuarios reales, es lanzar el producto lo antes posible. Incluso si la versión se llama preliminar, beta, temprana, etc., trate de ponerla en manos de los usuarios lo más pronto posible e identificar inconsistencias entre lo pensando por su proxy de usuario y sus usuarios reales, así también obtendrá conocimiento validado. Incluso mejor, una vez que el software está en manos de uno o más de los primeros usuarios, usted ahora tiene una ruta de comunicación para esos usuarios reales y puede usar eso para hablar con ellos sobre las próximas funciones.

    ¿Puede hacerlo usted mismo?

    Cuando no puede encontrar o acceder a un usuario real, evite caer en la trampa de pensar que conoce las mentes de sus usuarios y no necesita o puede ignorar a un proxy de usuario. Si bien cada tipo de proxy de usuario tiene algún tipo de inconveniente que lo hace menos deseable que un usuario real, la mayoría de los desarrolladores presentan aún más deficiencias para pretender ser un usuario real.

    En general, los desarrolladores no tienen conocimiento de marketing que les permita comprender el valor relativo de las características, no tienen la misma cantidad de contacto con el cliente que los vendedores, no son expertos en el dominio, etc.

    ¿Conoce otro tipo de usuario?¿Tiene una opinión diferente de los proxies que se presentaron aquí?

    Otros enlaces de interés:

    El Origen Y Los Valores De Agile
    El Enfoque del Equipo Agile
    Planeación, Cono de Incertidumbre y Estimaciones en IT

    Si quire saber más estos son algunos libros recomendables:

    No Comment
  • Cono de Incertidumbre Dilbert

    Planeación, Cono de Incertidumbre y Estimaciones en IT

     

    El propósito de Planear

    Constantemente les digo a mis amigos y compañeros de trabajo que las ideas no son lo mismo que la planeación. Recuerde la última vez que comenzó algo que, por diversas razones, nunca terminó, o aquella ocasión que dijo mis “planes” son…, pero en la realidad nunca realizó verdaderas acciones para concretar esos “planes” o bien simplemente sigue posponiéndolos. La principal diferencia entre ideas y planes radica básicamente en que las ideas son algo vago, aspiracional y deseable; mientras que la verdadera planificación lleva más allá las ideas y establece objetivos junto con pasos previstos a seguir que finalmente ayudan a elaborar estimaciones, tomar decisiones e incluso perfeccionar o cambiar el plan.

    De la misma forma que sucede en la vida, en la industria del software y de las IT en general, las estimaciones y las planificaciones son de suma importancia para lograr el éxito de cualquier proyecto. Los planes son una guía que nos indica en donde invertir nuestro tiempo, dinero y esfuerzo. Si estimamos que un proyecto nos tomará un mes en realizar y a cambio nos generará un millón de dólares, entonces quizá decidamos realizar ese proyecto. Sin embargo si el mismo proyecto nos genera ese millón de dólares en 15 años, entonces quizá sea mejor rechazarlo. Los planes nos ayudan a pensar por adelantado y a saber si estamos progresando como esperamos entre otras cosas. Sin planes estamos expuestos a cualquier cantidad de problemas.

    En mi experiencia como desarrollador y project manager los equipos tienden a dos extremos: No hacen ningún plan en lo absoluto o se esfuerzan tanto en un plan que se convences a si mismos de que ese plan es correcto siempre. Los que no planean simplemente no pueden contestar a la preguntas más elementales, como ¿y cuando terminan? o ¿estará listo antes del fin de año?. Los que planean demasiado invierten tanto tiempo en su plan que caen en supuestos que no pueden confirmar, su inseguridad crece más y comienzan a creer que incluso planeando más lograrán estimaciones más precisas aunque esto en realidad no ocurra. Si usted se siente identificado con alguno de los escenario anteriores, a su favor puedo decir que planear no es fácil.

    Pero que los planes fallan y que planear es complicado no es noticia. Al inicio de un proyecto muchas cosas pueden ser desconocidas, como por ejemplo los detalles específicos de los requerimientos, la naturaleza de la tecnología, detalles de la solución, el plan mismo del proyecto, miembros del equipo, contexto del negocio entre muchas otras cosas. Pero entonces ¿cómo lidiamos con estas adivinanzas? ¿cómo lidiamos con la incertidumbre?.

    El Cono

    Estas preguntas representan un problema que ya es bastante viejo. En 1981, Barry Boehm dibujó lo que más tarde en 1998 Steve McConnell llamó el Cono de Incertidumbre. El cono muestra que en un proyecto secuencial o en “cascada” que está en etapa de factibilidad normalmente daremos una estimación que está lejos de la realidad, en un rango de entre un 25% y un 400%. Esto es por ejemplo, que un proyecto de 40 semanas tomará entre 10 y 160 semanas. Para cuando se termine de obtener requerimientos nuestra estimación aun estará desfasada entre un -33% y un 50% . Para este punto nuestro proyecto de 40 semanas tomará entre 27 y 60 semanas. Imagine que pasa con esos proyectos que nunca tienen claros sus requerimientos.

     

    ¿Cómo lidiar con el Cono?

    Buffering (margen de error)

    Esto es utilizar un un porcentaje de tiempo y/o recursos para amortiguar el efecto de riesgos que se materializan. Hay que tener cuidado, una reacción común es meter el doble o el triple de tiempo a la estimación de un proyecto, esto NO es buffering, esto es hacer padding (acolchonar) lo cual NO ES una buena práctica. Dar un número demasiado grande, hará que los patrocinadores o clientes se resistan y no aprueban su proyecto. Deles un número demasiado bajo y usted correrá el riesgo de quedarse sin tiempo y dinero. Esto se vuelve doblemente arriesgado cuando usted está utilizando contratos fijos para su propuesta, donde hay aún más presión para mantener los costos bajos.

    Es importante que haga uso de datos históricos para comparar su proyecto actual con otros proyecto concluidos y obtenga números razonables y justificables para margen de error o buffering. Incluya procesos de postmortem o lecciones aprendidas al terminar cada proyecto, para así sustentar sus cifras de buffering en le futuro.

     

     

    Estimar en rangos

    Algo que me gusta de los enfoques ágiles para gestión de proyectos es ser honesto desde el principio y nunca utilizar cifras cerradas, sino ser transparentes y siempre usar rangos, sobre todo en proyectos que buscan innovar e intentar cosas nuevas donde existe mucha incertidumbre. Esto es por ejemplo:

    Mira. No sabemos cuánto tiempo se va llevar esto, sin embargo la siguiente es nuestra mejor apuesta basados en la información que tenemos hasta ahora. Pero si podemos llevar a cabo un par de iteraciones, podemos desarrollar algo, evaluar cuanto nos lleva y entonces tener una mucho mejor ideas de que tan grande es esto.

    Además presente la mejor estimación al momento como un rango. Esto puede ayudar a los patrocinadores del proyecto a decidir cual es el monto de riesgo que están dispuestos a aceptar.

     

     

     

    Estimación relativa

    Han existido diversas investigaciones acerca de como hacer estimaciones de esfuerzo y se ha descubierto que las personas somos buenas estimando el tamaño de algo comparándolo con un referente (Software Development_Effort Estimation) . Por ejemplo, Alguien no puede decirle cuantos metros de alto mide el edificio en el que vive, pero sí puede decirle que es aproximadamente el doble de aquel otro. Usted puede aplicar este principio a los proyectos también

     

     

    Nota. Las aproximaciones ágiles utilizan interesante conceptos como Story Points e Ideal Days para hacer estimaciones relativas.

    Recursos incrementales

    Esta práctica se debería aplicar más a menudo o por lo menos más inteligentemente, esto es asignar recursos de manera periódica de tal manera que no se tenga que pedir una gran bolsa de dinero al inicio del proyecto.

    No es raro encontrar proyectos donde los patrocinadores proporcionan pagos por fases, sin embargo, aveces se cae en crear fases demasiado grandes o que no son periódicas. El objetivo es financiar regularmente en periodos cortos de tiempo que llamamos iteraciones y con ello hacer revisión del progreso.  Al final de cada iteración ese el momento donde tenemos la oportunidad para revaluar si vamos por el camino correcto y reportar números más precisos para la actualización de estimaciones con base en el conocimiento adquirido durante el tiempo transcurrido.

     

    Esto no es una medida infalible, aún puede estimar mal. Pero sin duda es bueno obtener un financiamiento inicial que permite construir algo al equipo y ver cuánto tiempo tarda completando este avance, mientras que simultánemente aprende más acerca de lo que hay que lograr, de tal manera que se aprovecha esta experiencia para reducir la varianza de ese número inicial estimado.

    ¿Por qué sucede todo esto?

    Es indudable que siempre hay presión del sector financiero de las organizaciones para hacer estimaciones para todo un proyecto o para todo un año, aunque estas prácticas al final salgan contraproducentes 😀

    Lo mejor que puede hacer es permear este conocimiento en su organización, y recordar y comunicar constantemente que el objetivo de estimar no es adivinar el futuro, sino determinar si los objetivos del proyecto son realistas o incluso posibles.

    Algunos enlaces de interés:

    The Cone of Uncertainty

    Cone_of_Uncertainty

    El Enfoque Agile De La Planeacion

    Parte de la lista de temas para este post y la idea del gráfico con el solecito 🙂 fueron parcialmente basadas en artículos de agilenutshell.com

    Estos son alguno libros recomendables para saber más:

    No Comment
  • Scrum Master Certification / Certificación Scrum Master

    ¿Que certificación elegir como Scrum Master?

     
     

    Scrum Master Certification / Certificación Scrum Master

    Sobre esta entrada

    Desde hace ya varios años me interesé en desarrollo Ágil de software y he venido utilizando el marco de trabajo para el desarrollo de productos Scrum en varios proyectos, pero hace unos tres años decidí comenzar a formalizar este conocimiento empezando por ser un Scrum Master certificado. Cuando comenté esto con amigos y conocidos me sorprendió que muchos de ellos me comenzaron a preguntar al respecto con muchas dudas y confusiones.

    Para intentar arrojar un poco de luz, me meteré en un terreno un tanto acalorado dentro de la comunidad Scrum, compartiendo mi experiencia mientras trataré de contestar varias de las primeras preguntas que vienen a la mente cuando le interesa convertirse en un Scrum Master certificado. Cabe aclarar que nadie me ha pagado por ninguna opinión o por escribir esta entrada (ya quisiera…).

    ¿Por qué obtener una certificación como Scrum Master?

    Yo era un desarrollador que se vio envuelto con Agile y Scrum hace ya algunos años (más por emergencia que por buen juicio) con el fin de lograr concretar proyectos que estaban al borde del colapso. Poco a poco y aún con muchos contratiempos pero proponiendo buenas prácticas a la gerencia y con un rol activo, los equipos de los cuales formé parte logramos salir exitósamente de varios atolladeros, pero la verdad es que nunca sentí la necesidad de obtener ninguna validación formal para esos conocimientos. Eventualmente el destino, el tiempo y varios compañeros desarrolladores empujaron para que tomara un rol más activo del lado de la gestión de proyectos, pero encontré que varios clientes y empleadores me estaban pidiendo habilidades certificadas en Scrum y/o Project Management (¡insensatos!).

    Alrededor del 2013 mientras analizaba el mercado laboral comencé a notar que cada vez mas vacantes, para directores de proyecto e incluso desarrolladores, solicitaban conocimientos de Scrum. Considerando que muchas veces en el pasado las gerencias, los directores e incluso project managers me preguntaban con que se comía Scrum, observé que las cosas estaban cambiando de manera notable.

    Entonces, el mensaje fue claro. Si quería tener una mejor oportunidad de encontrar trabajos interesantes (y razonablemente pagados) había que certificar mis conocimientos, en este caso convertime en un Scrum Master certificado. Pero eso fue la parte fácil; pasé un buen rato investigando cuales eran mis opciones. En el resto de esta entrada condenso lo que aprendí respecto a las certificaciones Scrum bajo el rol de Scrum Master.

    Certificaciones Scrum Master

    Lo primero es aclarar que hay varias organizaciones que ofrecen certificaciones como Scrum Master, las que se muestran como las más conocidas son:

    Esta entrada solo aborda estas cuatro certificaciones, pero hay otras que quizá quiera considerar (más las que se sumen):

    • PMI_ACP. Project Management Institute Agile Certified Practitioner ofrecida por el Project Management Institute.
    • ICAgile Certifications. Certificaciones ofrecidas por el International Consortium for Agile.

    *Tenga en cuenta que todas la cifras presentadas son válidas a la fecha de publicación de esta entrada y pueden cambiar sin previo aviso.

    Certified Scrum Master (CSM) de Scrum Alliance

    certified scrum master

    Esta es la certificación más conocida de todas y la más longeva. La Scrum Alliance fue fundada por uno de los dos creadores de Scrum, Ken Schwaber junto con otros de los pesos pesados del mundo Agile y Scrum como Esther Derby y Mike Cohn.

    Sin embargo, han existido muchas críticas hacia esta certificación debido a que aunque es la certificación más ámpliamente reconocida, es de conocimiento abierto el que todas las certificaciones emitidas antes del 2012 no requerían evaluación alguna, siendo el único requerimiento asistir a un curso oficial de la Scrum Alliance. Como respuesta la Scrum Alliance ha cambiado el proceso de certificación a los siguientes pasos obligatorios:

    1. Familiarizarse con los conceptos básicos de Scrum.
    2. Asistir al curso CSM oficial.
    3. Obtener el certificado que comprueba la finalización del curso CSM y aprobar la evaluación con una puntuación mínima de *69% (aun considerado un porcentaje bajo por algunos practicantes).

    Los cursos solo pueden ser enseñados por los Certified Scrum Trainers, pero al no estar homologados, parece ser que la calidad de cada curso está sujeto a las habilidades, experiencia y materiales que cada instructor puede ofrecer de manera independiente.

    El costo del curso que incluye la evaluación cambia su costo de región en región, pero oscila entre los $850 USD y los $1300 USD. Para mantener la certificación CSM válida, esta debe ser renovada cada dos años a un costo de *$100 USD, pero la Scrum Alliance también presentó las Scrum Education Units, que se pueden utilizar para renovar sus certificaciones. Del mismo modo, para aquellos que tienen certificaciones del PMI, estos cursos también proporcionan PDUs.

    Update 2018: La Scrum Alliance integró nuevas certificaciones a su oferta, incluyendo una más como Scrum Master. Siguiendo una estrategia similar a la Scrum.org se ha añadido otra certficacion llamada Advanced Certified ScrumMaster (A-CSM) la cual tiene como requisitos:

    1. Asistir a un curso obligatorio para A-CSM.
    2. Completar con éxito el trabajo previo o posterior al curso que el instructor pueda considerar necesario para completar los objetivos de aprendizaje.
    3. Validar al menos un año de experiencia laboral específica para el rol de Scrum Master (en los últimos cinco años). Este punto es importante porque deben haber pasado por lo menos 12 meses desde que obtuvo su certificación como CSM antes de poder obtener una como A-CSM.
    4. Mantener una certificación activa como Scrum Master certificado con Scrum Alliance (CSM).

    El costo del curso y el derecho a evaluación para la certificación como A-CSM también puede variar dependiento de la región, pero de acuerdo a lo que investigamos, esto está alrededor de los $2500 USD.

    Professional Scrum Master (PSM) de Scrum.org

    La Scrum Alliance y Ken Schwaber tuvieron una separación en el 2009 y ello llevó a que este último fundara una nueva organización llamada Scrum.org, donde se ofrece un curso y certificaciones para PSM entre otras. Después de la certificación de la Scrum Alliance estas son las certificaciones Scrum Master más difundidas cobrando cada vez más reconocimiento en la industria. Algo diferente en la Scrum.org es que no es una una si no tres certificaciones las que se pueden obtener como Scrum Master, la PSM I y la PSM II y la PSM III.

    Es importante mencionar, que al día de hoy gran parte de la comunidad Scrum señala a estas certificaciones como las más difíciles de obtener, debido a que tanto la PSM I, la PSM II y la PSM III requieren evaluaciones con puntuaciones mínimas del *85% ya que incluyen preguntas de dificultad alta que se deben contestar en un tiempo corto, siendo requerido conseguir la PSM I para obtener la PSM II y estas dos para aspirarar a la PSM III. En diversas fuentes se reporta que hay un relativo alto índice de personas que aun con experiencia en Scrum  u otras certificaciones fallan estas evaluaciones.

    A pesar de lo intimidante que puede sonar lo anterior, un punto alentador es que ninguna de estas evaluaciones requieren que el postulante asista obligatoriamente a algún curso, por lo que en teoría estas certificaciones pueden ser logradas con el apropiado tiempo de estudio y revisión, además de que las certificaciones no requieren ser renovadas.

    El costo de la evaluación PSM I es de $150 USD, para la PSM II es de $250 USD  y para la PSM III es de $500 USD, con derecho a un un solo intento.

    El curso opcional Professional Scrum Master que ofrece la Scrum.org solo puede ser impartido por los Professional Scrum Trainers, quienes tienen materiales homologados. Los costos de los cursos parecen ir entre $1295 y $1995 USD en Estados Unidos, no he encontrado cursos oficiales en México o Latinoamérica.

    Al igual que sucede con la Scrum Alliance, los poseedores de certificaciones del PMI pueden obtener PDUs por el curso PSM.

    PSM I Exam Simulator: Con el fin de ayudar a los que deseen esta certificación, en internet80 nos hemos dado a la terea de elaborar un simulador de esta prueba completametne gratuito. El simulador esta en fase de pruebas pero ya esta disponible para todos. Es necesario que conozca lo suficiente del idioma Inglés ya que la evaluación oficial sólo esta disponible en este idioma. Evalúe su conocimiento sobre el marco de trabajo Scrum ahora aqui: PSM I Exam Simulator 1

    Scrum Master Certified (SMC) de SCRUMstudy

    La certificación SCM basa su evaluación en la guía SBOK la cual tiene una aproximación por procesos (similar al PMBOK del PMI) y a lo que llama principios y aspectos, es decir, todo es bajo el contexto de la interpretación que hacen los autores de la guía SBOK sobre el marco Scrum, lo cual ha ocasionado que esta organización tenga serias diferencias con muchos practicantes y fundadores de Scrum que incluso tomaron parte en la creación del manifiesto Agile y por lo tanto con gran parte de la comunidad Scrum; aunque por otro lado ha logrado cierto grado de aceptación por parte de la industria.

    Un punto en contra de esta certificación, que eventualmente puede ser importante para algunos, es que los marcos de escalamiento más populares como SAFe, LeS o Nexus están basados en la Scrum Guide y no reconocen al SBOK. Esto puede ser importante ya que siendo SAFe el marco de escalamiento más influyente hasta ahora, y si usted desea obtener una certificación como SAFe Advanced Scrum Master, la Scaled Agile NO considera relevante la certificacione de la SCRUMStudy.

    Update 2017: La organización Scaled Agile Framework quien provee SAFe, ahora ofrece su propia certificación como Scrum Master, llamada  SAFe Scrum Master (SSM), no confundir con su certificación SAFe Advanced Scrum Master, esta última ya NO coloca como pre-requisito las certificaciones CSM ni PSM, pero si las coloca como altamente sugeridas para tomar su curso de certificación.

    La puntuación mínima en su respectiva evaluación para obtener esta certificación es del *95%, aunque en mi investigación he obtenido testimonios y comentarios mixtos sobre su dificultad, no tienen prerequisitos aunque se debe estudiar fuertemente su SBOK ya que aparentemente el examen ataca más la perspectiva de esta guía que la visión de los creadores de Scrum en la Scrum Guide .

    El costo de la evaluación es de *$450 USD con 3 intentos y requiere 40 unidades de re-certificación cada 3 años (estas unidades se obtienen por diferentes actividades).

    Según mi investigación, el curso SMC está homologado y solo puede ser proporcionado por los SCRUMstudy Certified Trainers que se basan mayormente en la guía SBOK, los costos están alrededor de $450 USD variando un poco entre regiones y partners. Los testimonios que obtuve fueron bastante mixtos, obtuve buenos comentarios de los materiales ofrecidos, pero una cosa que me señalaron varias veces es que cuando los capacitadores se enfrentan a preguntas y/o escenarios fuera del contexto de la guía SBOK, estos instructores batallan mucho para resolver dudas de manera contundente. SCRUMstudy tiene varios partners en México y Latinoamérica que ofrecen sus cursos.

    También se ofrecen PDUs por el curso SMC.

    Update 2018:  SCRUMstudy ha seguido la misma estrategia que inicio Scrum.org y que su vez siguió Scrum Alliance. Ahora esta organización ofrece una certificación como Scrum Master avanzado a la cual llama Expert Scrum Master Certified (ESMC), y sus requisito son:

    1. Tener tres años de experiencia en la gestión de proyectos Scrum / Agile.
    2. Estar certificado con las certificaciones SMC, SAMC y SPOC.
    3. Debe enviar un ensayo de 500 palabras donde escriba sobre dos proyectos Scrum / Agile.
    4. La página oficicial señala que también puede asistir a una capacitación presencial ESMC de 2 días, proporcionada desde luego por SCRUMstudy, sin embargo no señala claramente si esto es obligatorio, sustituye o facilita alguno de los requerimiento previos.

    El costo del examen para obtener esta certificación al momento de esta publicación de de $800 USD los cuales pueden variar dependiendo de la región. También se tendrán que obtener 60 RCUs cada 3 años para mantener la certificación.

    SAFe Scrum Master de Scaled Agile Framework

    Agregué esta certificación en 2018 porque surgió a fines de 2016 (meses después de la primera publicación de esta emtrada), no se confunda con la certificación SAFe Advanced Scrum Master. SAFe se enfoca en la implementación de modelos Agile de organizaciones grandes y hoy en día es el marco de escalamiento más popular, pero no es el único (hay otros como Nexus, LeSS, DaD y otros). Pero vamos a dar un paso a la vez, porque he descubierto que esta certificación ha generado cierta confusión.

    Anteriormente la Scaled Agile sólo ofrecía la SAFe Advanced Scrum Master la cual está dedicada totalmente al enfoque de este framework de escalamiento Scrum, y dentro de sus prerequisitos se requería tener certificaciones CSM o PSM:

    Requitments SAFe 4 0 Advanced Scrum Master 2016
    Requitments SAFe 4 0 Advanced Scrum Master 2016 (scaledagile.com)

    Ahora ofrece su propia certificación “básica” la cual ataca el enfoque Scrum de la Scrum Guide pero también introduce de manera temprana la aproximación de su marco de escalamiento SAFe, esta es la SAFe Scrum Master. Los pre-requisitos para esta certificación son conocer el enfoque Agile, conocer los marcos Scrum, Kanban y XP y a su vez tener experiencia de primera mano en el proceso de desarrollo de software y hardware, y desde luego tomar obligatoriametne el curso para SAFe Scrum Master.

    De acuerdo a los testimonios que he obtenido, los contenidos de este curso están homologados y son abundantes, no encontré nada acerca de las calificaciones de los instructores que imparten los cursos, pero aparentemente tanto los instructores como el examen están totalmente orientados a los contenidos proporcionados durante el mismo. El primer intento para su examen de certificación está incluido en los costos del curso (el cual varía entre paises y regiones), cada intento adicional cuesta *$50 USD, el examen es vía web (no tengo claro si se puede accesar a el desde cualquier sitio), para aprobar requiere contestar *33 de 45 respuestas correctas (73% de aciertos).

    Algo bueno es que hasta hace solo unos tres años usted tenía que viajar a los Estados Unidos para tomar los cursos y examenes de SAFe, pero ahora estos se ofrecen en varios paises de todos los continentes, lo cual habla de la popularidad de este modelo de escalamiento. Tenga en cuentas que si obtiene la certificación debe renovarla *cada año a un costo de $100 USD (lo cual es plazo corto comparado con el resto de las certificaciones).

    Este curso afrece PDUs para los poseedores de certificaciones del PMI y SEUs para aquellos con certificaciones de la Scrum Alliance.

    Resumen

    1. La certificación del Certified Scrum Master (CSM) es más ámpliamente conocida que la Professional Scrum Master (PSM) y la Scrum Master Certified (SMC).
    2. Los costos de entrenamiento para PSM son (en promedio) más altos que los de CSM y SMC y no están disponibles en todo los países. Los costos de CSM suelen ser más altos que los de SMC.
    3. Los costos de adquirir y mantener la certificación CSM son mayores a las de SMC y PSM, siendo esta última la más económica ya que no se requiere pagar por mantener la certificación.
    4. El valor de la certificación CSM es muy cuestionado sobre todo si se emitió antes del 2012 (se otorgaba sin evaluación).
    5. Los materiales y la calidad de los cursos para CSM pueden variar mucho al no estar homologados.
    6. Los materiales proporcionados para PSM y SMC en sus capacitaciones están homologados (y según varios testimonios suelen ser buenos).
    7. La certificación SMC se basa en la prácticas descritas en su SBOK y no necesariamente en lo descrito en la Scrum Guide (texto de los creadores de Scrum).
    8. El valor de la certificación SMC es cuestionada por muchos miembros y organizaciones de peso en la comunidad Scrum.
    9. El marco de escalamiento más popular al momento (SAFe) sugiere fuertemente las certificaiones SAFe Scrum Master (SSM), Certified Scrum Master (CSM) y a la Professional Scrum Master (PSM) para obtener varias de sus certificaciones incluyendo la SAFe Avanced Scrum Master (SASM).
    10. SAFe ofrece la certificación SAFe Scrum Master (SSM) la cual está orientada a Scrum y su escalamiento en organizaciones grandes, pero no es el único modelo de escalamiento y no todas las organizaciones tienen o piensan usar esta aproximación.
    11. La certificación SAFe Scrum Master (SSM) debe ser renovada cada año por un costo, el cual es un plazo muy corto comparado con el resto de las certificaciones.

    *Cifras correctas al tiempo de la publicación de esta entrada. Pueden cambiar sin previo aviso.

    Algunos enlaces de interés:

    Simulador 1 para Examen PSM I 

    El Origen Y Los Valores De Agile

    El Enfoque del Equipo Agile

    El Enfoque De La Planificación Agile

    Algunos libros que pueden ser de su interés:

    30 Comments