La programación en parejas es, básicamente, una técnica de desarrollo de software en auge en la que dos individuos trabajan en un mismo bloque de código. Los programadores se encargan de una de las dos partes: el conductor y el navegante.
El conductor en el proceso es responsable de redactar diligentemente el código, mientras que el trabajo del navegante es revisar y se concentra en el plan de acción.
Hay numerosos estudios que describen las enormes ventajas de un mayor rendimiento y productividad y un producto seguro y sólido. Sin embargo, la opinión difiere significativamente de un individuo a otro.
Es una llamada fría para persuadir a algunos funcionarios de que asignen los limitados recursos de programación a esta técnica, específicamente porque puede ser vista como un mal uso de recursos preciosos en primer lugar.
Lo cierto es que la técnica de programación por parejas puede llevar un 15% más de tiempo, pero produce un 15% menos de defectos
El propósito de este artículo es proporcionar una guía básica de programación en parejas, además de destacar las ventajas y los retos que los desarrolladores deben superar con esta técnica. ¿Emocionado? ¡Vamos a explorar!
Programación por parejas
Para recordar, la programación por parejas se introdujo por primera vez como un elemento integral de la técnica de desarrollo de software de programación extrema. Concebida por Kent Beck en los años 90, la programación extrema es un conjunto de normas de software que ayuda al equipo de desarrolladores a crear un gran software.
Hace hincapié en el intercambio de información, la claridad, la respuesta, la determinación y la consideración, todo lo cual apunta finalmente a un conocimiento decisivo de la programación en parejas.
"Programen en parejas: Manténganse mutuamente en la tarea. Realicen una lluvia de ideas para mejorar el sistema. Aclarar las ideas. Tomen la iniciativa cuando su compañero está atascado, reduciendo así la frustración. Tomen la responsabilidad mutuamente de las prácticas del equipo." Kent Beck
¿Cómo funciona?
Como se ha mencionado anteriormente, la programación en pareja incluye a dos individuos (desarrolladores) trabajando en un mismo sistema, uno tecleando y el otro navegando u observando.
Generalmente, el responsable de teclear se conoce como el "Conductor", mientras que el otro, llamado "Navegador", revisa y repasa continuamente lo que se está codificando o tecleando. Durante todo el tiempo que pasan juntos, el dúo se mantiene invariablemente en contacto, lo que permite al otro compañero participar y ayudar a perfilar la dirección del código.
El objetivo es compartir la carga de trabajo entre ambos participantes para mantener el flujo de desarrollo constante y también para ayudar a difundir el conocimiento en el equipo. El conductor y el revisor deben interactuar constantemente entre sí, ya que ello aumentará los conocimientos y la eficacia de ambos miembros.
En conclusión, el concepto no consiste únicamente en juntar a dos desarrolladores y darles instrucciones para que se vuelvan locos. En los últimos años, los profesionales han ideado metodologías para utilizarlas en diversas circunstancias. A través de la experiencia y la práctica adecuada, estas personas han superado y pulido estos procedimientos.
Quiero más
Por supuesto! gracias al apoyo que se ha conseguido por todos ustedes (comentando, suscribiéndote y compartiendo) se agregaron nuevos videos, en esta ocasión iniciamos el curso de testing en angular, curso de node, curso mongo y s
Técnicas de programación por parejas
Funciones del conductor-navegante
En general, la programación por parejas se ha popularizado a través de la técnica del conductor-navegante. Lo ideal es que ambos miembros del equipo intercambien sus funciones para obtener mejores resultados.
En este estilo de programación en pareja, el navegante pierde instantáneamente su interés. Eso es posiblemente porque la persona encargada de teclear no está comunicando, o quizás el revisor no quiere molestarle. Muchas veces he observado que cuando el conductor dice "un momento, tengo una idea" y sigue trabajando, el navegante revisa sus cuentas sociales o hace otras tareas irrelevantes.
Pues bien, para llevar a cabo eficazmente este estilo de programación en pareja, la comunicación es lo que marca la diferencia. Lamentablemente, este nivel de interacción no es inevitablemente inherente a un par nuevo. Debido a esta poderosa especificación de comunicación, suelo considerar este tipo como una forma más transitoria de hacer programación en parejas e instruyo a los principiantes para que se mantengan alejados de ella.
Técnicas de maridaje fuertes y tradicionales
El emparejamiento de estilo fuerte es el enfoque en el que el conductor no hace nada que no le haya indicado el revisor. Como explica Llewellyn, "para que una idea pase de tu cabeza al ordenador debe pasar por las manos de otra persona".
Cada vez que el conductor requiera lanzar la idea, debe entregar el sistema a su compañero y luego realizar el control desde la posición de observador. Este enfoque involucra completamente al observador.
El enfoque tradicional, en cambio, requiere que el navegante pida al sistema que le dé su aportación o ponga en práctica su idea.
Emparejamiento de ping-pong
Otro patrón de programación por parejas que los desarrolladores emplean con frecuencia es el emparejamiento ping pong.
En este enfoque, el conductor redacta una prueba de comportamiento y pide al revisor que la aplique. Una vez aplicado, el navegante toma su turno y el nuevo conductor anota la siguiente prueba para que el nuevo navegante la aplique.
El problema es que sacar tiempo para refactorizar el código y hacer las pruebas es el mayor reto de este patrón. De hecho, a veces invierto más tiempo en la refactorización de las pruebas que en la codificación.
Implementar una característica puede ser complicado y hará que las pruebas sean también complejas. Es más sencillo llevar a cabo un impulso progresivo en el que se apliquen las propiedades, pero también hay que prestar atención a la simplicidad del código para que se pueda mantener sin esfuerzo a largo plazo. Una idea similar se aplica también a la parte de las pruebas.
En resumen, el emparejamiento de Ping-Pong ayuda a los profesionales a vigilar tanto la codificación como los elementos de prueba. Además, también ayuda a los individuos a hacer TDD de manera eficiente.
Conclusión
¿La programación en parejas es para todos?
La respuesta no es sencilla. Todos somos diferentes, así que definitivamente el resultado variará. La programación en parejas funciona de maravilla para algunos, mientras que los resultados son inversos para los demás.
Aunque esta técnica debería aumentar la consolidación del esfuerzo de ambos, puede que no siempre sea así. Ten en cuenta que no todos los proyectos son adecuados para la programación en pareja. La idea funciona específicamente en los proyectos complicados en los que un solo experimentado o un equipo de principiantes puede encargarse de la tarea. En esta situación, establecer un combo senior-junior puede ser un gran paso para perfeccionar las habilidades y la competencia del junior.