El poder de los pares

Rate this content
Bookmark

Los equipos de ingeniería a menudo enfrentan desafíos difíciles con recursos limitados. Si el trabajo requiere 1 ingeniero, asignamos uno al trabajo. Si requiere 2, dividimos los temas en partes accionables y los asignamos a individuos.


Pero hay varios beneficios de hacer las cosas en pares: ayuda a detectar errores y bugs, permite una mejor comunicación y colaboración entre los miembros del equipo y también puede llevar a un código más eficiente y de mayor calidad, ya que los ingenieros pueden desafiar las suposiciones de sus compañeros y sugerir enfoques alternativos.

This talk has been presented at TechLead Conference 2023, check out the latest edition of this Tech Conference.

FAQ

La programación en pareja es una técnica de desarrollo de software donde dos desarrolladores trabajan juntos en una misma estación de trabajo, compartiendo un teclado y un mouse. Uno de ellos, el conductor, escribe el código mientras el otro, el navegador, revisa el código e indica mejoras.

Los beneficios de la programación en pareja incluyen una mayor calidad del código, reducción de errores, oportunidades de aprendizaje mutuo y mejor moral del equipo. También ayuda en la revisión de código más ágil y en el aumento del conocimiento colectivo sobre el producto.

Los desafíos incluyen el costo percibido en términos de eficiencia de recursos, la dificultad de encontrar socios compatibles, la resistencia al cambio por parte de algunos desarrolladores y la necesidad de una comunicación efectiva. Gestionar estas dificultades es crucial para el éxito de la programación en pareja.

Aunque la programación en pareja puede parecer menos rentable inicialmente, puede mejorar la productividad al reducir los errores y fallos, facilitar revisiones de código más rápidas y aumentar el conocimiento general del equipo sobre el proyecto, lo que a largo plazo puede compensar los costos iniciales.

Para abordar los desafíos de la programación en pareja, es útil proporcionar capacitación y apoyo, involucrar a los miembros del equipo en la toma de decisiones, y empezar con sesiones cortas y enfocadas. Rotar los roles y establecer una comunicación clara son prácticas recomendadas.

La programación en pareja es ideal para abordar tareas complejas, integrar nuevos miembros al equipo, compartir conocimientos y habilidades, y para desarrolladores que desean obtener nuevas perspectivas o ideas sobre un problema.

Octave Raimbault
Octave Raimbault
21 min
09 Mar, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La programación en pareja es una técnica colaborativa de desarrollo de software en la que dos desarrolladores trabajan juntos en una estación de trabajo. Ofrece beneficios como un mantenimiento de código más fácil, revisiones de código más rápidas y una menor probabilidad de errores. Implementar la programación en pareja implica encontrar socios compatibles, establecer metas y establecer protocolos de comunicación claros. Para abordar los desafíos, brindar capacitación y apoyo, involucrar a los miembros del equipo en la toma de decisiones y seleccionar cuidadosamente a los socios. La programación en pareja puede ayudar a lograr objetivos como la colaboración, el crecimiento del conocimiento, la estabilidad del código y el mantenimiento.
Available in English: The Power of Pairs

1. Introducción a la Programación en Pareja

Short description:

Hola, y bienvenidos al Poder de los Pares, una charla sobre programación en pareja. La programación en pareja es una técnica colaborativa de desarrollo de software donde dos desarrolladores trabajan juntos en una estación de trabajo compartiendo un teclado y un mouse. Los dos desarrolladores que participan en la programación en pareja son socios iguales, cada uno con sus propias responsabilidades.

Hola, y bienvenidos al Poder de los Pares, una charla sobre programación en pareja. Mi nombre es Octave y soy un ingeniero de software en Datadog. He sido ingeniero de software durante los últimos ocho años y esta presentación se basa tanto en mi experiencia personal como en algunos artículos e investigaciones disponibles en línea.

Comencemos con una breve introducción para aquellos que aún no están familiarizados con la programación en pareja. La programación en pareja es una técnica colaborativa de desarrollo de software donde dos desarrolladores trabajan juntos en una estación de trabajo compartiendo un teclado y un mouse. Los dos desarrolladores trabajan juntos para completar una tarea, como implementar una función, solucionar un error o escribir pruebas. Un desarrollador, el conductor, es responsable de escribir el código, mientras que el otro desarrollador, el navegador, revisa el código, brinda comentarios y sugiere mejoras. Los dos desarrolladores que participan en la programación en pareja son socios iguales, cada uno con sus propias responsabilidades. Es similar al equipo de un coche de rally, donde el conductor maniobra el coche con precisión, mientras que su compañero se enfoca en el mapa y le avisa sobre giros y otras especificidades de la carretera. Los dos roles se complementan entre sí y son igualmente importantes.

2. Beneficios y Desafíos de la Programación en Pareja

Short description:

Veamos ahora algunos argumentos convincentes sobre por qué podrías estar interesado en la programación en pareja en tus hábitos de equipo, así como también los contraargumentos. Hay muchas ventajas en la programación en pareja y estas variarán según las especificidades de tu organización. Sin embargo, aquí están algunos de los beneficios más comunes y buscados de la programación en pareja. Al revisar minuciosamente el código y construirlo combinando el conocimiento de dos ingenieros, es probable que sea más fácil de mantener y menos propenso a causar errores y fallos.

Veamos ahora algunos argumentos convincentes sobre por qué podrías estar interesado en la programación en pareja en tus hábitos de equipo, así como también los contraargumentos. Hay muchas ventajas en la programación en pareja y estas variarán según las especificidades de tu organización. Sin embargo, aquí están algunos de los beneficios más comunes y buscados de la programación en pareja.

Al revisar minuciosamente el código y construirlo combinando el conocimiento de dos ingenieros, es probable que sea más fácil de mantener y menos propenso a causar errores y fallos. A medida que los desarrolladores pasan más tiempo compartiendo pensamientos y prácticas, así como presenciando las prácticas de sus compañeros de equipo, brindan oportunidades de crecimiento mutuo. Puede tener un impacto muy positivo en la moral, ya que los compañeros de equipo pasan más tiempo juntos y se unen a través de actividades profesionales. Puede implicar que un individuo intervenga en una parte del producto de la cual no es responsable, lo que le brinda la oportunidad de hacer preguntas y aprender al respecto. Por último, al analizar de manera integral la productividad, la programación en pareja tendrá frecuentemente un impacto positivo, y hablaremos de eso nuevamente más adelante en la presentación.

También existen desventajas y desafíos. Estos pueden tener un impacto importante en el resultado de tus sesiones de programación en pareja. El primer y, con mucho, el argumento más frecuente es que la programación en pareja no es rentable en términos de costos. Un estudio realizado por dos investigadores de Microsoft indica que había considerable escepticismo sobre si tener dos personas trabajando en una tarea es un buen uso de los recursos. Y más adelante, también se menciona que la aceptación de los gerentes también fue un desafío, con uno de los gerentes diciendo: si tengo opción, puedo contratar a un programador estrella en lugar de dos programadores que necesitan programar en pareja. Esto es algo de lo que hablaremos nuevamente más adelante en esta presentación, ya que puede ser discutible y hay diferentes cifras para analizar. Otro problema es encontrar socios que trabajen bien juntos. Los miembros del equipo pueden tener diferentes estilos de trabajo, preferencias, personalidades y culturas, lo que puede dificultar encontrar un socio compatible. La resistencia al cambio es otra. Algunos desarrolladores pueden resistirse al cambio a la programación en pareja y preferir trabajar solos. Esto puede ser un desafío significativo, especialmente si los miembros del equipo no están acostumbrados a colaborar estrechamente con otros. Por ejemplo, pueden sentir que están siendo observados o microgestionados cuando están en el asiento del conductor. Por último, la comunicación efectiva es crucial para la programación en pareja, por lo que también puede ser un desafío, especialmente si los miembros del equipo tienen diferentes estilos o preferencias de comunicación. Personalmente, he tenido experiencia con equipos multiculturales donde a veces aumenta el riesgo de no comunicarse correctamente, ya que es posible que no sean sensibles a las mismas palabras, significados y actitudes que la otra parte. Estos desafíos son argumentos válidos y más adelante en esta charla mencionaremos formas de abordarlos y tratar de mitigar su impacto.

Para agregar algo de contexto y cifras prácticas, aquí hay algunos comentarios recopilados en un estudio realizado en Microsoft en 2007. Estos son los 5 argumentos más mencionados a favor y en contra de la programación en pareja, con una puntuación que representa con qué frecuencia se mencionaron estos argumentos en el estudio. Este es, por supuesto, un solo estudio y otros pueden tener clasificaciones y elementos diferentes, pero creo que este te da una representación bastante precisa de cómo se sienten los desarrolladores en general acerca de la programación en pareja. Quiero dedicar un tiempo y abordar el argumento del costo. Como vimos que es, con mucho, la mayor preocupación. Primero, digamos que muy a menudo no se pasa un ciclo completo de desarrollo en una situación de programación en pareja.

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.
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.
Comunicación Efectiva para Ingenieros
TechLead Conference 2023TechLead Conference 2023
36 min
Comunicación Efectiva para Ingenieros
Top Content
Today's Talk covers the four building blocks of communication: people, message, context, and effective listening. It emphasizes the importance of considering the perspective of others and tailoring messages to the recipient. The Talk discusses different types and channels of communication, and the need to align them with the intended message. It also highlights the significance of soft skills in communication and provides techniques for effective communication and assessing soft skills in tech interviews. Cross-cultural communication and the impact of bluntness are explored as well.

Workshops on related topic

De Ingeniero a Líder: Un Masterclass para Líderes Tecnológicos Primerizos
TechLead Conference 2024TechLead Conference 2024
144 min
De Ingeniero a Líder: Un Masterclass para Líderes Tecnológicos Primerizos
Workshop
Andrew Murphy
Andrew Murphy
Transicionar de un rol de contribuidor individual a una posición de liderazgo, especialmente en la industria tecnológica de ritmo acelerado, es enormemente desafiante. La mayoría de los nuevos líderes no reciben ningún tipo de capacitación en los primeros 10 años de sus nuevas responsabilidades.Nuestro completo masterclass está diseñado para ayudar a los nuevos y emergentes líderes tecnológicos a comprender sus nuevos roles y adquirir las habilidades para convertirse en líderes seguros, felices y efectivos.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
Una Guía para Desarrolladores sobre Cómo Comunicar, Convencer y Colaborar Efectivamente con los Stakeholders
Es una historia tan antigua como el tiempo: la colaboración entre desarrolladores y stakeholders de negocios ha sido durante mucho tiempo un desafío, con una falta de comunicación clara que a menudo deja a ambas partes frustradas. Los mejores desarrolladores pueden comprender profundamente las necesidades de sus contrapartes de negocios, comunicar efectivamente la estrategia técnica sin perder a la audiencia no técnica y convencer al negocio de tomar las decisiones correctas. Trabajando en una consultoría, he fallado y tenido éxito en arquitectar y “vender” visiones técnicas, aprendiendo muchas lecciones en el camino.Ya sea que trabajes en una empresa de productos, seas consultor/freelancer, o quieras aventurarte más allá de ser solo un desarrollador, la capacidad de convencer y comunicar claramente con los stakeholders puede diferenciarte en la industria tecnológica. Esto se vuelve aún más importante con el auge de GenAI y el mercado de desarrolladores cada vez más competitivo, ya que la resolución de problemas y la comunicación efectiva son clave para posicionarte.En esta masterclass, compartiré ejemplos del mundo real, tanto buenos como malos, y te guiaré a través de poner la teoría en práctica mediante dojos.
Cómo Diseñar una Carrera Sostenible como Freelancer/Contratista
Node Congress 2022Node Congress 2022
39 min
Cómo Diseñar una Carrera Sostenible como Freelancer/Contratista
WorkshopFree
Shane Ketterman
Alexander Weekes
2 authors
¿Listo para comenzar tu carrera como freelancer o recién estás comenzando en tu viaje como freelance? Estás en el lugar correcto. Aprende los trucos del oficio de los freelancers más experimentados de la industria.
El movimiento de talento independiente es el futuro del trabajo. Si estás considerando dejar el empleo a tiempo completo para una carrera como freelancer, ahora es el momento de encontrar tu espacio exitoso en la fuerza laboral de talento independiente. Hoy en día, más personas trabajan como freelancers que nunca antes, y el mercado de freelancers contribuye con $1.2 billones a la economía de los Estados Unidos. Algunos de los roles más demandados para freelancers en este momento son desarrolladores senior con experiencia profesional en React, Python, Blockchain, QA y Node.js.
Este masterclass te ayudará a diseñar una carrera como freelancer/contratista sostenible y rentable a tiempo completo (o parcial). Te proporcionaremos herramientas, consejos, mejores prácticas y te ayudaremos a evitar errores comunes.
Diseñando una Carrera de Freelance Sostenible
React Advanced 2021React Advanced 2021
145 min
Diseñando una Carrera de Freelance Sostenible
WorkshopFree
Alexander Weekes
Rodrigo Donini
2 authors
¿Te gustaría perseguir tus pasiones y tener más control sobre tu carrera? ¿Te gustaría tener flexibilidad de horario y ubicación y variedad de proyectos? ¿Te gustaría tener la estabilidad de trabajar a tiempo completo y recibir un pago constante? Miles de empresas han adoptado el trabajo remoto y se dan cuenta de que tienen acceso a un grupo de talentos global. Esto es ventajoso para cualquier persona que haya considerado o esté considerando trabajar como freelance.>> Envía tu interés en convertirte en un ingeniero freelance con Toptal y recibir una llamada de un especialista en adquisición de talento <<

El trabajo freelance ya no es una elección de carrera inestable.

Este masterclass te ayudará a diseñar una carrera de freelance a tiempo completo (o parcial) sostenible y rentable. Te daremos herramientas, consejos, mejores prácticas y te ayudaremos a evitar errores comunes.
Tabla de contenidos

Módulo 1: Desmitificando los mitos comunes sobre el trabajo freelance
Módulo 2: ¿Cómo se ve el trabajo freelance en 2021 y más allá?
Módulo 3: Elecciones freelance y qué buscar (y qué evitar)
Módulo 4: Beneficios del trabajo freelance desde la perspectiva de un freelancer + estudio de caso
DESCANSO
Módulo 6: Cómo comenzar a trabajar como freelance (experiencia, currículum, preparación)
Módulo 7: Caminos comunes hacia el trabajo freelance a tiempo completo
Módulo 8: Aspectos esenciales: establecer tu tarifa y conseguir trabajo
Módulo 9: Próximos pasos: establecer contactos con colegas, mejorar tus habilidades, cambiar el mundo
Módulo 10: Preguntas y respuestas con freelancers
Fuera de la sartén, al fuego: Guía para gerentes sobre cómo ayudar a los nuevos desarrolladores a prosperar
TechLead Conference 2024TechLead Conference 2024
35 min
Fuera de la sartén, al fuego: Guía para gerentes sobre cómo ayudar a los nuevos desarrolladores a prosperar
Workshop
Andrew Coleburn
Andrew Coleburn
Integrarse a un nuevo proyecto puede ser difícil, sin importar tu experiencia y antecedentes. Pero puede ser especialmente desafiante para los nuevos desarrolladores recién salidos de la escuela o de un bootcamp de programación. Basándose en su experiencia personal como graduado de un bootcamp y consultor de JavaScript, esta charla discutirá consejos y estrategias para que los gerentes ayuden a los nuevos desarrolladores de sus equipos a familiarizarse con un código desconocido, para que puedan tener un impacto más rápido y efectivo.