Órdenes y Magnitud

Rate this content
Bookmark

Las órdenes de magnitud importan. Las cosas no aumentan en un orden de uno cada vez. Organizar a las personas en un grupo requiere la difusión de información y su interpretación y, lo más importante, su distribución. El trabajo remoto y la colaboración asincrónica se han convertido en la norma, lo que significa que los equipos distribuidos han llevado consigo sus silos de conocimiento. El impacto de esto ha agravado cualquier problema de habilidades que experimenten las organizaciones, convirtiéndolo en un problema de distribución de habilidades, aumentando la importancia de una buena documentación y procesos de interacción transparentes. En esta sesión, repasaremos los fundamentos de la ingeniería de requisitos, analizando cómo las órdenes de magnitud aumentan junto con la expansión del alcance y los requisitos adicionales. Por último, discutiremos cómo puedes aplicar elementos del pensamiento de plataforma a tus proyectos diarios.

This talk has been presented at Node Congress 2022, check out the latest edition of this JavaScript Conference.

FAQ

Es una plataforma que ayuda a controlar el software separando el proceso de implementación de la liberación, facilitando la gestión y optimización de las funciones y tareas relacionadas.

La escala de órdenes de magnitud influye en cómo se maneja la complejidad en la gestión de software, indicando que las tareas altamente complejas no siempre se benefician de la adición de más recursos o personas, debido a la necesidad de comunicación y coordinación entre sub-tareas.

La inteligencia colectiva se refiere a la capacidad de un grupo para desempeñarse bien en diversas tareas. Un alto nivel de inteligencia colectiva implica que el grupo puede realizar varias tareas con eficacia, pero no necesariamente se correlaciona directamente con la cantidad de comunicación verbal entre sus miembros.

Los videojuegos como League of Legends, que requieren toma de decisiones rápida y trabajo en equipo, sirven como analogías para entender cómo los equipos virtuales pueden funcionar eficazmente en ambientes empresariales intensos y competitivos, destacando la importancia de la coordinación y la estrategia colectiva.

Los estudios sugieren que equipos con alta inteligencia colectiva tienden a comunicarse de manera más eficiente, usando menos palabras y enfocándose en señales no verbales, lo que facilita un rendimiento superior en las tareas asignadas.

Optimizar el rendimiento del equipo de desarrollo de software se puede lograr mediante el seguimiento de métricas clave, comprendiendo profundamente el software en uso, y asegurando que todos los miembros del equipo entiendan estas métricas y la función del software.

Jessica Cregg
Jessica Cregg
7 min
18 Feb, 2022

Comments

Sign in or register to post your comment.
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.
Available in English: Orders & Magnitude

1. Introducción a la Complejidad y Colaboración

Short description:

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

Short description:

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.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Impacto: Creciendo como Ingeniero
React Summit 2022React Summit 2022
27 min
Impacto: Creciendo como Ingeniero
Top Content
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
Sobre convertirse en un Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
Sobre convertirse en un Tech Lead
Top Content
The role of a Tech Lead involves shaping the roadmap, helping the team be more effective, and working on important projects. Lessons learned include encouraging idea sharing, avoiding taking on all the work, and focusing on delegation. Tech Leads focus on the outcome, involve the team in decision-making, and make plans based on how different pieces will interact. The role of a Tech Lead is to focus on engineering and guide the team in figuring out how the whole system should fit together. Architecting can become problematic when it loses touch with the coding part, resulting in implementation issues.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
Principios para Escalar el Desarrollo de Aplicaciones Frontend
React Summit 2023React Summit 2023
26 min
Principios para Escalar el Desarrollo de Aplicaciones Frontend
Top Content
This Talk discusses scaling front-end applications through principles such as tearing down barriers, sharing code in a monorepo, and making it easy to delete code. It also emphasizes incremental migration, embracing lack of knowledge, and eliminating systematic complexity. The Talk highlights the use of automation in code migration and the importance of removing barriers to enable smoother code migration.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
This Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.

Workshops on related topic

Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio
Construye y Despliega un Backend con Fastify y Platformatic
JSNation 2023JSNation 2023
104 min
Construye y Despliega un Backend con Fastify y Platformatic
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente APIs GraphQL y REST con un esfuerzo mínimo. La mejor parte es que también te permite aprovechar todo el potencial de Node.js y Fastify cuando lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y complementos adicionales. En el masterclass, cubriremos tanto nuestros módulos de código abierto como nuestra oferta en la nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/).
En este masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la nube de Platformatic.
Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
WorkshopFree
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
0 a Auth en una Hora Usando NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 a Auth en una Hora Usando NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend de Node.JS + frontend de React) para autenticar usuarios con OAuth (inicio de sesión social) y contraseñas de un solo uso (correo electrónico), incluyendo:- Autenticación de usuario - Administrar interacciones de usuario, devolver JWT de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión para solicitudes de cliente posteriores, validar / actualizar sesiones
Al final del masterclass, también tocaremos otro enfoque para la autenticación de código utilizando Flujos Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.
Tabla de contenidos- Una breve introducción a los conceptos básicos de autenticación- Codificación- Por qué importa la autenticación sin contraseña
Requisitos previos- IDE de tu elección- Node 18 o superior
GraphQL: De Cero a Héroe en 3 horas
React Summit 2022React Summit 2022
164 min
GraphQL: De Cero a Héroe en 3 horas
Workshop
Pawel Sawicki
Pawel Sawicki
Cómo construir una aplicación GraphQL fullstack (Postgres + NestJs + React) en el menor tiempo posible.
Todos los comienzos son difíciles. Incluso más difícil que elegir la tecnología es desarrollar una arquitectura adecuada. Especialmente cuando se trata de GraphQL.
En este masterclass, obtendrás una variedad de mejores prácticas que normalmente tendrías que trabajar en varios proyectos, todo en solo tres horas.
Siempre has querido participar en un hackathon para poner algo en funcionamiento en el menor tiempo posible, entonces participa activamente en este masterclass y únete a los procesos de pensamiento del instructor.
Dominando Node.js Test Runner
TestJS Summit 2023TestJS Summit 2023
78 min
Dominando Node.js Test Runner
Workshop
Marco Ippolito
Marco Ippolito
Node.js test runner es moderno, rápido y no requiere bibliotecas adicionales, pero entenderlo y usarlo bien puede ser complicado. Aprenderás a utilizar Node.js test runner a su máximo potencial. Te mostraremos cómo se compara con otras herramientas, cómo configurarlo y cómo ejecutar tus pruebas de manera efectiva. Durante la masterclass, haremos ejercicios para ayudarte a sentirte cómodo con el filtrado, el uso de afirmaciones nativas, la ejecución de pruebas en paralelo, el uso de CLI y más. También hablaremos sobre trabajar con TypeScript, hacer informes personalizados y la cobertura de código.