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.

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
Convertirse en un ingeniero web no es fácil, pero hay toneladas de recursos disponibles para ayudarte en tu viaje. ¿Pero a dónde vas desde allí? ¿Qué haces para seguir creciendo y para seguir expandiendo el valor que aportas a tu empresa? En esta charla, examinaremos los diferentes tipos de impacto que puedes tener como ingeniero web. Analizaremos lo que significa asumir proyectos más grandes y complejos, y cómo escalar a ti mismo y hacer crecer la comunidad a tu alrededor. Al impulsar nuestro propio desarrollo, todos podemos aumentar nuestro impacto, y en esta charla, discutiremos cómo hacerlo.
Sobre convertirse en un Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
Sobre convertirse en un Tech Lead
Top Content
Ser un Tech Lead suena como mucho trabajo. Y no del tipo de codificación divertida tampoco. ¿Por qué querrías eso? ¿Cómo se siente cuando lo consigues?En esta charla, Swizec explica por qué dio el paso hacia el liderazgo técnico, cómo cambiaron sus prioridades y por qué significa que está haciendo más ingeniería que nunca. Un mundo completamente nuevo donde escribir código es la parte fácil.
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
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

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
Después de pasar más de una década en Google, y ahora como el CTO de Vercel, Malte Ubl no es ajeno a ser responsable de la infraestructura de software de un equipo. Sin embargo, estar a cargo de definir cómo las personas escriben software, y a su vez, construir la infraestructura que están utilizando para escribir dicho software, presenta desafíos significativos. Esta presentación de Malte Ubl revelará los principios guía para liderar una gran infraestructura de software.
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
Afrontémoslo: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de Frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica. En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.
Comunicación Efectiva para Ingenieros
TechLead Conference 2023TechLead Conference 2023
36 min
Comunicación Efectiva para Ingenieros
Top Content
Tus habilidades de comunicación afectan tus perspectivas de carrera, el valor que aportas a tu empresa y la probabilidad de tu promoción. Esta sesión te ayuda a comunicarte mejor en una variedad de situaciones profesionales, incluyendo reuniones, mensajes de correo electrónico, propuestas y presentaciones.

Workshops on related topic

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 Conference 2021React Advanced Conference 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