Tales of Agile Adoption
This is a space for us to post and discuss common pitfalls, problems and stories about Agile methodologies implementation and adoption. Yes we also will write about solutions, recommendations and more...
Friday, May 25, 2018
"Tirar Código"
Entre los años 1999 y 2000 me inicie en el mundo del desarrollo de software. Desde esos años vengo escuchando la frase “tirar código”. La misma hace referencia al acto de escribir código fuente o “programar”. No tengo claro de dónde viene la frase, ya que en el idioma Ingles (lingua franca de la Ingeniería de Software), se utilizan las frases “to code”, “to write code”, las cuales podrían traducirse como “codificar” (programar) y “escribir código”.
“Tirar código” es una frase común entre profesionales de distintas edades, se la he escuchado a personas nacidas en los 60 y llegando hasta el 2000. Un día, reflexionando sobre temas de calidad del software y mejores prácticas, me llego a la mente la frase y de pronto sonó inapropiada. En la República Dominicana cuando algo o alguien es “tirado” (adjetivo) tiene una connotación negativa: descuidado. “Pedro trabaja todo tirado”, o su versión más coloquial “Pedro trabaja to’ tira’o”, significa “Pedro es poco profesional o descuidado, no pone atención en los detalles”.
Anoche mientras le hacia la observación, repetida en muchos círculos, a un grupo de estudiantes universitarios de que cambien la frase “tirar código” por “escribir código”; me puse a pensar sobre cuales podrían ser los orígenes de la frase. Realmente me da mucha curiosidad el saber
¿Cómo pasamos de “to code / to write code” a “tirar código”?
Si alguien tiene, o cree tener, la respuesta o una idea favor escribir en los comentarios.
Labels:
calidad-codigo,
codigo,
es_do,
profesionalismo,
tirar,
tirar codigo
Sunday, October 29, 2017
Software: How do you know when it is Green, Ripe, or Rotten?
Labels:
buy,
en_us,
how to,
how to buy software,
software selection
Monday, August 21, 2017
¿Por qué los equipos de Scrum tienen un tamaño limitado?
Visto desde distintos ángulos podemos ver diferentes explicaciones para la recomendación. Primero vemos cual es la recomendación (tomada de The Scrum Guide v2016, p6. Development Team Size):
El espíritu de la “regla”"Optimal Development Team size is small enough to remain nimble and large enough to complete significant work within a Sprint."
El límite inferior: 3
"Fewer than three Development Team members decrease interaction and results in smaller productivity gains."
Tamaño mínimo de un equipo de Scrum |
El límite superior: 9
“Having more than nine members requires too much coordination.”
Tamaño máximo de un equipo de Scrum |
Integrantes: solo los ejecutores
"The Product Owner and Scrum Master roles are not included in this count unless they are also executing the work of the Sprint Backlog."
Así que, tendremos equipos con un mínimo de cinco (5) integrantes y un máximo de once (11). Debemos recordar que el equipo de Scrum se compone del Equipo de Desarrollo, el Scrum Master y el Product Owner. En este cálculo asumimos que el Scrum Master y el Product Owner no son ejecutores (no toman trabajo dentro del sprint backlog).
En este artículo nos enfocaremos en el tema de los canales de comunicación. Para saber cuántos canales de comunicación tendremos en un equipo se utiliza la formula CM = ( n * (n - 1) ) / 2, donde n es la cantidad de integrantes del equipo. Volviendo a nuestros límites tenemos que:
- Inferior n=5: CM = 10 dado por (5 * 4 ) / 2
- Superior n=11: CM = 55 dado por (11 * 10) / 2
Es decir, que en un equipo de Scrum pudiéramos tener que manejar entre 10 y 55 canales de comunicación a lo interno del equipo. A esto súmele la interacción con entes externos. Recordemos también que se recomienda que el área principal de trabajo para un equipo de Scrum sea un espacio compartido por todos los miembros (colocación), esto entre otras cosas para aumentar la comunicación osmótica. En otras palabras, se busca que la comunicación sea abierta y que permee, y haya un máximo grado de sincronización entre los miembros.
Se busca que los miembros escuchen la mayor cantidad de información posible, aun esta no esté dirigida directamente a ellos. Dependiendo de la cultura del equipo esto puede suponer un alto grado de interrupciones a las labores individuales de cada miembro ya que fácilmente se puede romper su concentración cuando necesitan concentrarse en alguna tarea.
La cantidad de canales de comunicación también dificulta la labor del Scrum Master. Este deberá poder gestionar impedimentos, mejorar la dinámica del equipo, llevar una bitácora mental de las distintas interacciones entre los miembros y sus oportunidades de mejora.
En un equipo muy grande, la duración de las ceremonias tendría que extenderse para darle tiempo a cada miembro a tener una participación de calidad. Tomando el daily como ejemplo tenemos que cada miembro del equipo puede hablar hasta 1min:40secs en un equipo de 9 (máximo). A medida que la cantidad de miembros crece este tiempo se irá reduciendo.
Un tema que puede ser analizado por su propio peso y que se relaciona con los canales de comunicación son los medios utilizados. Yo y mis compañeros de equipo utilizamos mayormente la comunicación oral, cara a cara, pero también utilizamos canales electrónicos como Slack. Imagine ahora que además de tener 55 canales de comunicación posibles “cara a cara” ahora también podemos hacer lo mismo en Slack. Podemos tener también grupos cerrados donde se manejen temas que pudieran interesar a todo el equipo.
En resumen, la cantidad de miembros del equipo impacta de manera directa y positiva la cantidad de canales de comunicación totales. Con el aumento de los canales de comunicación vienen muchas complicaciones en cuanto a la autogestión de un equipo. Esta no es la razón única o principal para mantener un tamaño limitado sobre los equipos agiles, pero definitivamente es un factor de peso considerable.
Como ilustración aquí se presentan la cantidad de canales para equipos de dos a cinco personas.
Canales de comunicación: equipos de 2 a 5 integrantes |
Subscribe to:
Posts (Atom)