Video Summary and Transcription
La charla analiza la relación entre la complejidad y la colaboración en el desarrollo de software. Destaca que la colaboración no siempre es la respuesta para resolver problemas y que la comunicación es crucial en el desarrollo de software. Se introduce el concepto de inteligencia colectiva, que describe la capacidad de un grupo para desempeñarse bien juntos en tareas. El estudio mencionado en la charla muestra que la inteligencia colectiva es transferible entre tareas, y los jugadores habilidosos se basan en señales no verbales y en la comprensión del software. La falta de comprensión puede llevar a dificultades en el rendimiento y la implementación del equipo.
1. Introducción a la Complejidad y Colaboración
Hola, mi nombre es Jessica y soy una defensora del desarrollo con LaunchDarkly. Somos una plataforma de gestión de funciones que te ayuda a controlar tu software al separar el proceso de implementación de la liberación. Hoy vamos a hablar sobre cómo las órdenes de magnitud se escalan con la complejidad. La colaboración no siempre es la respuesta para resolver problemas. El desarrollo de software se encuentra entre tareas que se pueden dividir y aquellas que no se pueden. La comunicación es un aspecto crucial del desarrollo de software, y agregar más personas a una tarea puede hacerla más tardía. La inteligencia colectiva es un concepto que describe la capacidad de un grupo para desempeñarse bien juntos en una variedad de tareas. Un estudio basado en League of Legends mostró que los equipos virtuales con habilidades emparejadas pueden superar a aquellos con un conocimiento profundo entre ellos.
Somos una plataforma de gestión de funciones que te ayuda a controlar tu software al separar el proceso de implementación de la liberación.
Hoy vamos a hablar sobre cómo las órdenes de magnitud se escalan con la complejidad. Entonces, cuando algo sale mal, ¿cuál es tu primer instinto? ¿Pides ayuda? Se te perdonaría si piensas que la colaboración es la respuesta a tus problemas aquí. Porque entre los dos dichos de que un problema compartido es un problema dividido a la mitad y dos cabezas son mejores que una. Es comprensible que pienses que agregar otra persona a la mezcla puede mejorar tus posibilidades de llegar a una solución más rápido. Pero esto no siempre es el caso.
Si has jugado videojuegos, es posible que recuerdes que en Age of Empires 2, la mejor manera de construir una estructura rápidamente es asignar tantos aldeanos como sea posible a la tarea. Cuando se trata de infraestructura digital que existe fuera de los juegos de video o los propios juegos de video, tenemos que tener en cuenta algunas diferencias clave. Ahora, en el mes mítico, una colección de ensayos sobre la artesanía del desarrollo de software. Discutimos la idea de que el número de personas y la cantidad de tiempo requeridos para hacer algo no son realmente intercambiables como productos básicos. Esto solo es cierto cuando una tarea se puede dividir entre muchos trabajadores sin comunicación entre ellos. Pero cuando una tarea no se puede dividir debido a su estructura o complejidad, el esfuerzo adicional no tiene impacto en el cronograma real.
Ahora, el desarrollo de software se encuentra entre estas dos categorías. Se puede dividir, pero se requiere comunicación entre cada sub-tarea. Y en estas situaciones, el mejor resultado posible no se acerca a un intercambio equitativo entre personas y horas. Ahora hay algunas corrientes de pensamiento sobre cómo se distribuye la carga cognitiva en torno a la comunicación al menos. Pero se acepta ampliamente que la intercomunicación, hablar entre sí, es donde se encuentra la mayoría del trabajo. Ahora, si cada parte de la tarea en la que estás trabajando necesita ser coordinada por separado, la sección de trabajo, aumenta a un nivel casi exponencial. Ahora, tres personas requerirán tres veces más interacción que dos personas haciendo la misma pieza de trabajo exacta. Las cosas solo se complican cuando se juntan las reuniones de grupo. Este cronograma proyectado realmente muestra que agregar personas tarde al software solo hace que sea más tarde.
Ahora, para abordar esto, hablemos del concepto de inteligencia colectiva. Los investigadores describen la inteligencia colectiva como la capacidad de un grupo para poder desempeñarse bien en una amplia variedad de tareas, y hacerlo juntos. A pesar de la evidencia y utilidad de la inteligencia colectiva como un índice de competencia a nivel de grupo, la inteligencia colectiva como tema es bastante nuevo como concepto. Pero un estudio que buscó descubrir dónde ocurre la magia con la inteligencia colectiva se basó en League of Legends. Utilizaron el juego de arena de batalla en línea masivo como un método de testing para determinar si los equipos virtuales emparejados en función de sus habilidades podrían superar a aquellos que tenían un conocimiento profundo entre sí. Y ¿qué tiene que ver League con el trabajo? Bueno, los equipos virtuales son muy comunes en estos días. Sabes, los juegos de arena de batalla en línea masivos se caracterizan por su intensidad, su necesidad de tomar decisiones rápidas y su competitividad, lo cual suena bastante familiar para muchas operaciones comerciales. Creo que reconocería algunas de esas características sin duda.
2. Inteligencia Colectiva y Comprender el Software
El estudio encontró que la inteligencia colectiva es en gran medida transferible entre tareas. La comunicación verbal no equivale a una alta inteligencia colectiva. Los jugadores habilidosos tienden a pasar menos tiempo comunicándose y confían en señales no verbales. Comprender el software y utilizar métricas que todos entiendan son cruciales para el rendimiento del equipo y la implementación. La falta de comprensión puede generar desconfianza en las pruebas y dificultades para restablecer los servicios.
Entonces, ¿qué encontró el estudio? Descubrieron que al investigar la medida de la inteligencia colectiva, los investigadores encontraron que la capacidad del grupo para desempeñarse bien en una tarea era en gran medida transferible, lo que significa que si podían hacer una cosa bien, probablemente podrían hacer varias cosas bien. Pero notaron que la comunicación verbal no equivale a un alto nivel de inteligencia colectiva. De hecho, los investigadores encontraron que las personas hablaban menos y usaban menos palabras al comunicarse entre sí cuando lograban ese sentido de inteligencia colectiva y, por lo tanto, un alto rendimiento.
Una de las primeras observaciones de los estudios fue que los jugadores más habilidosos tendían a pasar menos tiempo comunicándose por preferencia. Sabes, son buenos en el juego y ahí es donde quieren pasar su tiempo y minimizan el cambio de contexto e involuntariamente se involucran en señales no verbales. Nuestra habilidad en la comunicación mencionada mucho en este estudio es el reconocimiento no expresado de la posición de los demás. Y lo más importante, conduce a acciones para la actividad común.
En el contexto de una empresa, esto es evidencia para abogar por medidas de observabilidad, optar por la automatización, pero lo más importante, utilizar métricas que todos entiendan genuinamente. Si no entendemos el software que estamos probando, es probable que restrinjamos la cantidad de veces que implementamos. Y como cualquiera que haya leído Accelerate o siga un informe de estado de DevOps sabe, optimizar el rendimiento del equipo se puede lograr mediante el seguimiento de estas cuatro métricas clave. Si el software con el que estamos trabajando no encaja perfectamente en nuestras mentes, estas métricas tendrán un valor casi finito. No podremos superar esa capa intermedia y acceder a esa capa de equipos de élite de la que hablan muchos informes de estado de DevOps. Si no entendemos lo que estamos construyendo, es probable que desconfiemos de nuestras pruebas. ¿Por qué pasó eso? Esa es una pregunta muy comprensible y común que nos hacemos a nosotros mismos cuando estamos atrapados en un editor de código. Nuestra confianza en la implementación disminuirá si no sabemos lo que estamos haciendo. Si no entendemos los servicios que estamos construyendo o con los que estamos trabajando, no podremos restablecerlos rápidamente y se caerán. Entonces, en esencia, si minimizas un alcance, puedes maximizar el impacto de en lo que estás trabajando. Muchas gracias y nos vemos en la sesión de preguntas y respuestas.
Comments