Una cabeza es buena y dos son mejores, o empareje la programación en acción


Conductor y navegador en acción (versión norcoreana de la metodología)

De un traductor: Hoy estamos publicando un artículo para usted por Andrew Sprul , especialista en ciencia de datos. Habla sobre los beneficios de emparejar programadores en el mismo proyecto.

A menudo escucho a la gente decir que trabajan mejor solos. Entiendo que algunas ideas y métodos que son adecuados para una persona no lo son para otra. Sin embargo, el dicho "Una cabeza es buena y dos es mejor" está cerca de mí. Debajo del corte hay dos videos que muestran qué tan bien pueden trabajar dos personas en una sola tarea. Esto es solo armonía, tanto literal como figurativamente.

Skillbox recomienda: un curso práctico de dos años, "Soy un desarrollador web PRO" .

Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".



Aquí está el segundo video (el autor prohibió la inclusión en recursos de terceros, pero definitivamente vale la pena echarle un vistazo).

La música no es el único área donde la colaboración entre dos personas puede beneficiar un proyecto común. Hay muchos más, como Michael P. Farrell, profesor de sociología de la Universidad de Buffalo, menciona en su libro Collaborative Circles: Friendship Dynamics and Creative Work. En particular, él cree que muchas grandes ideas aparecieron en personas que trabajaban en parejas: podrían ser científicos, artistas, escritores.

En pintura, son Monet y Renoir, en escritura - Tolkien y Lewis, en ciencia - Creek y Watson ... Puedes enumerar por mucho tiempo. Además, aproximadamente la mitad de los premios Nobel en la categoría "Fisiología y Medicina" son equipos de dos personas.

Bueno, en nuestro tiempo, la "programación de pares", que Wikipedia describe como metodología ágil para el desarrollo de software, que consiste en dos programadores que trabajan en la misma estación de trabajo, ofrece excelentes resultados. Uno de ellos, el conductor, escribe el código, el segundo, el observador, monitorea el proceso y lee cada línea que se escribe. Los programadores a menudo cambian roles.

Esta técnica no está relacionada con el trabajo sobre el modelo de "profesor-alumno", estamos hablando del trabajo conjunto de dos especialistas iguales. Uno de ellos puede tener más experiencia, pero funcionan de la misma manera, los derechos son iguales. En general, la idea es que dos personas encuentren una solución más rápido que una.

Inicialmente, puede ser difícil para una pareja trabajar sin problemas, y de hecho, tal flujo de trabajo parecerá ridículo para muchos. Pero aquí, como en otros lugares, se necesita experiencia. Con el tiempo, el trabajo mejora y el proceso avanza sin problemas, casi sin problemas.



Repito, en la programación de pares hay dos roles: controlador y navegador. La tarea principal de la primera es seguir los detalles del código, implementar ideas y convertirlas en líneas de código. El conductor y el navegador deben discutir ideas y problemas.

El navegador presta atención a cada línea escrita, y esta atención no está dispersa, ya que no necesita escribir texto. El objetivo principal del navegador es transmitir ideas claras al conductor. El navegador debe dar al conductor instrucciones con un cierto nivel de abstracción para que pueda implementarlas de la manera más eficiente posible.



Si un conductor tiene una idea, entonces el navegador y el conductor pueden cambiar de roles. Esto ayuda a los socios a trabajar sincrónicamente. Compartir ideas es similar a una lluvia de ideas, pero este es un proceso más eficiente, además de que la tasa de error se reduce (como se muestra en el diagrama anterior).

Puedo aconsejar a especialistas que trabajan en parejas que interrumpan a veces y se hagan preguntas. Esto ayuda a pensar en una dirección, entenderse y trabajar eficientemente.

Programación de pares y flujo de trabajo




Al estudiar la cuestión de la programación de pares, descubrí que hay varias estrategias para ese trabajo. Algunas de las opciones se pueden encontrar aquí . Una de las estrategias más interesantes se llama Ping Pong Sparring. Funciona de la siguiente manera:
  • El programador A escribe una nueva prueba y ve que no funciona.
  • El programador B agrega el código que se necesita para pasar la prueba.
  • El programador B escribe una nueva prueba y ve que no funciona.
  • El programador A agrega el código que se necesita para pasar la prueba.
  • Regresa

Sí, no parece un flujo de trabajo ideal, pero no sabremos cuán efectivo es hasta que lo intentemos.

Recientemente, un compañero de clase me enteró de que Atom tiene un paquete de teletipo que permite a los desarrolladores trabajar juntos en tiempo real, lo que les da a sus colegas acceso a su escritorio. Esto es incluso mejor que simplemente sentarse juntos en la misma estación de trabajo, ya que le permite estar en condiciones más cómodas y menos distraídas.

Y no olvide: los roles que debe cambiar a lo largo del día. Sin embargo, no puede usar el temporizador, ya que interferirá con el flujo de trabajo. Mucha gente piensa que debe cambiar los roles dentro de un intervalo de 30 minutos. Pero todo es subjetivo aquí.

El período de adaptación durante la transición de la programación de singles a parejas es similar a comer pimiento picante. La primera vez que todo está mal, no te gusta. Pero cuanto más a menudo comas pimienta, más pronto te comenzará a gustar.

En conclusión, lo dicho


Una vez que escuché la frase: “Para que la idea se realice en una figura, es necesario que pase por las manos de otra persona. Este tipo de programación es comunicación y colaboración ". Me parece que la comunicación y la cooperación son los dos componentes del trabajo exitoso.

Yo mismo soy más productivo cuando trabajo en conjunto con alguien. Mi experiencia como músico sugiere que tocar en un conjunto es mejor que ser un artista solista. Esto no es porque sea dependiente de otra persona, sino que mi confianza en el éxito aumenta cuando veo que el trabajo general es más efectivo. Ahora tengo un mejor navegador que un controlador, pero estoy mejorando gradualmente. Espero que este artículo ayude a tus proyectos futuros.

Skillbox recomienda:

Source: https://habr.com/ru/post/es436442/


All Articles