agile - online - ¿Qué tan popular es la programación de pares?
pair programming online (13)
¿Qué tan popular en el mundo (sé que la comunidad stackoverflow proviene de diferentes partes del mundo) es la programación de pares? ¿Alguna vez has trabajado, estás trabajando o vas a trabajar para una empresa que programa el par?
¿Cuál es su opinión sobre el asunto?
Gday,
He usado programación de pares en varios contextos. Todos los cuales son comerciales por cierto.
Aprendí mucho trabajando con personas con más experiencia.
Las actitudes de las personas involucradas afectan fuertemente la efectividad de la programación de pares. No hay forma de que funcione si estás tratando de aparear con un agresivo tipo de persona que "Sé todo y no sabes nada".
Para una buena discusión sobre los diferentes tipos de programación de pares, eche un vistazo al libro de Laurie Williams y Robert Kessler " Pair Programming Illuminated ".
Este libro es también una excelente fuente de información sobre la economía de la programación de pares.
aclamaciones,
Robar
He hecho un par de programación (principalmente profesional) y soy un gran admirador del método. La programación de pares es excelente para los nuevos empleados; De esa forma, entrarán en el estándar de codificación y hábitos de la compañía muy rápido, conocerán muy bien a su colega y el colega de esta persona también aprenderá cosas nuevas. Como lo mencionó Vagnerr, el mayor problema en la programación profesional de parejas es lograr que la administración esté de tu lado.
Ocasionalmente emparejamos programación en nuestro equipo. Tiende a ser muy productivo y termina con una gran cantidad de código de alta calidad, ya sea que haya sido escrito de nuevo o refactorizado a partir del código anterior.
También tenemos ciertas piezas de código de misión crítica que requieren programación de pares o revisiones de códigos, para tratar de evitar errores en la lógica que pueden aparecer fácilmente cuando se trabaja solo con una base de código compleja.
Además, cuando se contratan nuevos desarrolladores, los emparejamos con un desarrollador experimentado durante la primera semana aproximadamente para aprender las reglas y ver cómo algunos cambios de código reales afectan a diferentes partes del sistema. Esto ha demostrado ser una muy buena forma de hacer que la gente acelere rápidamente.
En general, creo que la programación de pares es excelente, especialmente cuando se aplica en situaciones específicas, como el código complejo, la educación del desarrollador y la exploración de características. Dicho esto, solo lo hacemos probablemente durante el 5-10% de nuestro tiempo y también tenemos mucho tiempo productivo en solitario. Su experiencia puede ser diferente.
Tengo un par programado tanto comercialmente como en la universidad. Puede ser muy eficaz para mantener la tarea y, en general, mejora la calidad del código más que la productividad debido a que "No, de esa manera es una mierda". argumentos que tienes. El mayor problema puede ser convencer a la alta gerencia de que es una buena idea, ya que tienden a verlo como una reducción a la mitad de sus cifras de utilización.
He tenido una experiencia negativa con la programación de pares. Necesita programadores de experiencia similar para que valga la pena. Pones lo mejor con lo peor y lo peor permitirá escribir todo el código con poca o ninguna entrada. Pones lo mejor juntos y lo peor juntos y lo mejor seguirá produciendo código de alta calidad, pero lo peor producirá mierda, pero solo un 50% menos (ya que solo hay dos puliendo el turd).
Actualmente trabaja con una empresa que usa mucha programación de pares
Creo que la programación de Pair es genial porque me ha mejorado como desarrollador de las siguientes maneras:
Tengo que conocer mejor el IDE para poder trabajar más rápido y más inteligente (¡gran amor por la solución rápida de eclipse!)
Me detuvo haciendo cosas estúpidas
Podría ponerse al día rápidamente en la base de código masiva muy rápidamente
Al comenzar un nuevo trabajo, conoces a todas las personas con las que trabajas
Han sido mentores de programadores Junior que transmiten de manera efectiva mi sabiduría [sic!]
Aumentar el conocimiento del idioma
Mejorar las habilidades de programación
Continúa la investigación sobre la programación de pares a lo largo del tiempo. Inicialmente, los informes parecían respaldar la noción de que era una ventaja neta de productividad para el proyecto en ciertos casos, pero estudios a mayor escala y más recientes indican que es una pérdida neta en la productividad general en promedio para las actividades de codificación en particular.
Si lo piensas, tiene sentido. Las actividades de programación de pares tienen que ser dos veces más eficientes durante el ciclo de vida solo para llegar al punto de equilibrio con la duplicación de horas hombre involucradas. Mi punto de vista sería solo encontrar mejores ingenieros y practicar las formas normales de tutoría para desarrollar ingenieros menos capacitados. En mi opinión, obtienes mucho más beneficio por unidad de tiempo.
La entrada de Wikipedia para programación de pares hace referencia a algunas de las investigaciones a las que aludo anteriormente.
Mi experiencia es que la programación de pares realmente ayuda a mejorar la calidad.
Pero, y esto es muy importante: al menos uno de los programadores debe tener buen ojo para la calidad y comprende valores ágiles. De lo contrario, existe un gran riesgo de que las dos personas refuercen solo sus prácticas negativas (es decir, hacks rápidos, etc.) entre sí en lugar de aprender buenas prácticas.
He trabajado en ambas instancias en las que emparejamos fuertemente las que programamos, en las que lo hicimos ocasionalmente y en las que se despreciaba.
Diría que me sentí más productivo cuando lo hicimos a tiempo completo. Esto, creo, es porque fomenta un alto grado de colaboración con el equipo. Sin embargo, también era importante que intercambiáramos pares de manera regular, una o dos veces al día. Aquí hay algunas fotos de la configuración en un lugar anterior:
http://www.cornetdesign.com/images/carfax
La implementación de la programación de pares, sin embargo, significa que ha superado varios elementos en la lista de Cinco disfunciones de un equipo , principalmente la confianza y la comunicación. También es útil poder entrar en un flujo, utilizamos la programación de Ping-Pong, uno escribiría una prueba de falla, la otra haría que pasara y escribiría la próxima prueba de falla, con los dos participando en la refactorización cuando necesitáramos .
Puede ser un poco aterrador para las personas que están acostumbradas a tener lo suyo, pero la colaboración que permite es realmente sorprendente.
Lo hice hace más de 30 años, cuando escribía protocolos RDSI para una empresa de telecomunicaciones (no se llamaba "programación de pares" entonces, pero nuestro gerente de proyecto nos llamó "gemelos de Unix." Como fuimos contratados como consultores, el departamento de TI al principio, los gerentes se mostraron escépticos, pero luego les gustó la idea y la mantuvieron funcionando por un tiempo, incluso después de que nos fuéramos (como me dijeron los chicos que se hicieron cargo de nuestro código).
Todavía lo uso hoy (sin embargo, no para el código del kernel C)
PD: Recuerdo un momento en el que enfermé y tuve que quedarme en la cama durante una semana más o menos. Cuando reapareció, mi amigo me sincronizó en un informe de 10 minutos, diciéndome lo que hizo y por qué, y luego continuamos como de costumbre. No hubo una interrupción real mientras yo estaba fuera, ya que ambos pudimos respaldar el otro (la estadística de error subió un poco durante esa semana)
Ya no soy un desarrollador, pero recuerdo muy bien cómo era, cuando desarrollé el código.
Sí, la Programación en pareja con un socio excelente es EL método para mejorar su conocimiento. Puede intentar leer libros o estudiar artículos en la web, pero en realidad con la programación de pares se llega directamente a los temas difíciles.
Pero esto trae también los inconvenientes. Con la programación de pares no puedes esconderte. Se hace obvio lo que puedes o no puedes hacer. Algunos desarrolladores desarrollan cierta mística en torno a sus habilidades. Pueden hablar muy fácilmente, lo que es teóricamente importante para escribir un buen código, pero de manera práctica son malos. Para esas personas, la programación de pares puede ser difícil. Pierden reputación.
La otra cosa es ... la programación de pares requiere comunicación. Algunas personas adoran ponerse los auriculares, encender su música y hacer la codificación. Esta es su forma favorita de codificar. Cuanto menos tengan que hablar, mejor. Así que esta podría ser también una razón por la cual algunos de ellos descuidan la programación de pares.
La programación de par ayuda mucho a entender el dominio / proyecto / arquitectura para el empleado recién unido. Ayuda a reducir el tiempo de desarrollo total (por ejemplo, el front-end y el desarrollador respaldado trabajan juntos en Agile) y, por lo tanto, aumenta la productividad. Mientras se hace la revisión del código con el otro desarrollador / arquitectura, también ayuda a aprender algo nuevo en términos de implementar nuevos patrones de diseño y seguir el formato de codificación estándar. Para mí, la programación de pares siempre funciona.
1) QA no abrirá más defectos (código sin defectos) 2) Podría ponerse al día rápidamente en una base de códigos masiva muy rápidamente 3) Mejorar las habilidades de programación 4) Aumentar el conocimiento del dominio mientras se hace la programación de pares.
Esta respuesta enumera la programación de pares como una forma de enseñar a los programadores junior cómo escribir pruebas y convertirse en mejores programadores.
Creo que la programación de pares es una excelente manera para que ambos desarrolladores se conviertan en mejores programadores.