walmart research paper
writing a narrative
best professional resume writer australia
excuses for homework
homework helping websites
dissertation on training effectiveness
help me term papers
how to write up your dissertation findings
essay my favourite customs and traditions in kazakhstan
digital library dissertation thesis
for writers of term papers theses
essay you cannot buy a friend with money
australia university assignments for sale
master thesis on human resource
law research paper writing service
conflict resolution write cv for phd
pharmacy school entrance essay
homework help hennepin county library
help me with my term paper
robert frost essay
order of operations homework 5th grade
dissertation philosophie conscience et inconscient
best cv writing service london club
resume to get into grad school
essay writer magic
dissertation in long distance learning
resume writers minnesota
distributor cover letter
epiphany essay
computer phd thesis
how to write an apa style thesis
ghostwriting service page
dissertation literature review layout
resume preparation services seattle
uk custom essay writing
college essay about issue of importance
how to write a good application essay paper
how to write an admission essay response
help writing a critique paper
resume of a technical writer
buying term papers review
linux persuasive speech
how to write research methodology for a dissertation
francis bacon essay writer
how to write a essay paper
homework help engineering
dissertation case study analysis
resume cleaning service owner
argument essay conclusion
thesis writing service uk
walsh school of foreign service essay
homework help out
how to start an essay with a quote
a site to buy argumentative essays
writing a good abstract for dissertation
brief sales cover letter
assignment help online
economics assignments
what to write a research paper on
professionally writing college admissions essay good
master thesis coordinator rsm
professional resume writing services hyderabad
master thesis on working capital management
best college application essays ever very
guide to thesis writing
dissertation report biotechnology
medical supplies sales resume
phd thesis ukm
dissertation for psychology phd
cover letter for airline customer service rep
write a thesis for me
martin luther king research paper
sales manager resume food industry
how to cite an essay in mla
help with high school science homework
aaa pro write resume services
virginia tech application essay online login
dissertation funding for international students
writing a project proposal
economics admission essay
entry level sales professional resume
dissertation methodology secondary data
dissertation abstracts full text
help on dissertation mergers and acquisitions
apa term paper
correction dissertation philosophie terminale s
dissertation games
how to write an application essay really quickly
literary analysis essay outline
romeo and juliet research paper
where to buy resume maker professional
essay conclusion about love
top 10 research paper writing service
resume professional summary customer service
doctoral thesis international relations
essay services ltd
best resume writing services in nyc yelp
chronicle of higher education black studies dissertation
argumentative essay on abortion
customs entry writer resume
admission papers for sale 11
customer service overview resume
dissertation geographie bac
writing for money online
phd dissertation thesis statement
art dissertation forum
black history month essays
resume writing pharma sales
buy a legit essay
where to buy psychology research paper
organic solar cells phd thesis
buy a essay on line
thesis statement about executive order 9066
routledge publishing phd thesis
writing a good college admissions essay dummies
dissertation of the year
dynamics homework help
how to write good college admission essay
figurative language essay
customise paper report in foxpro 9 0
thesis vs project masters
college essay admission help
doctoral thesis research project
resume writers technical
dissertation honey zip
community service persuasive essay
pay for dissertation economics
college level papers
cheap writing courses
research paper about community service
ingles sale paper
rest web services resume
military service in resume
apa research papers
aaa 1 paralegal resume office services
professional resume service austin tx
do my assigments
dissertation timetables
civil rights research paper
argumentative essay sentence starters
narrative essay about myself
administrative support customer service resume
master thesis on technical analysis
help with data analysis for dissertation
essay about nature
writing service proposal
dao dissertation
cover letter to judge proposed order
how to write conclusion for essay
writing a successful college application essay 100
welcome homework help and answers slader
online resume writing service jobs
three parts of an essay
have someone write your paper
dissertation geographie capes
where can i buy papers online
resume makeover service
doctor pharmacy resume
tudor homework helper kids
dissertation sur la longevit de la 3eme republique
resume writing services biz
purchase homework manager brownstone
phd thesis plant physiology
essay about helpful persons
homework help in wakefield rhodo island
dissertation services uk search
how to write a college admission essay video
thesis on service quality in hospitals
best buy resume application a job
office services supervisor cover letter
help with graphic design resume
art education funding dissertation
ariba buyer resume
power quality phd thesis
business plan professional writers
prepositional phrase homework help
best cv writing service yahoo
can music help homework
project dissertation
resume list education in what order
custom presentation
five paragraph essay powerpoint
math writing assignment
fear acquisition association learning model mineka
reviews of research paper writing services
college application essay writing nyc
aide a la dissertation
professional resume services online 365

Programación de a pares: preguntas frecuentes y conclusiones

pregunta-y-lapiz

En esta serie de artículos de James Shore ya vimos de qué trata la programación de a pares (una de las técnicas de Extreme Programming más conocidas y debatidas), la relación entre los roles de conductor y navegante, y un conjunto de consejos útiles al momento de aplicar esta técnica.

En este artículo final James Shore responde varias preguntas que suelen surgir al momento de querer implementar la Programación de a Pares, terminando con una conclusión y alternativas para probar.

¿No es una pérdida de tiempo que dos personas hagan el trabajo de una?

En la programación de a pares, dos personas en realidad no están haciendo el trabajo de una. Aunque sólo se use un teclado, la programación es mucho más que eso. Como dijo Ward Cunningham, "si no piensan con cuidado, podrían terminar creyendo que la programación es sólo escribir sentencias en un lenguaje de programación". En la programación de a pares, una persona está programando y la otra está pensando por adelantado, anticipando problemas y ocupándose de la estrategia.

¿Cómo puedo convencer a mi equipo u organización para que prueban la programación de a pares?

Pidan permiso para probarlo como un experimento. Aparten un mes en el cual todos puedan trabajar de a pares en código de producción. Asegúrense de practicarlo el mes entero, ya que la programación de a pares suele ser más difícil e incómoda en las primeras semanas.

¿Hay que trabajar en parejas todo el tiempo?

[inset side="right" title="No se repitan"]Si se aburren estando de a pares, piensen cómo hacer que el diseño sea menos repetitivo.[/inset]

Esta es una decisión que todo el equipo debería tomar. Antes de decidir, intenten programar en parejas para todo el código productivo (todo lo que se necesite mantener) durante un mes. Quizás lo disfruten más de lo esperado.

Sin importar de la regla, igualmente pueden producir código que no necesitan mantener. Estos casos podrían beneficiarse de un análisis individual.

Algunas tareas de producción son repetitivas y no necesitan de la capacidad extra de pensamiento que nos brinda una pareja. Antes de abandonar la programación de a pares para estos casos, debería considerarse porqué el diseño necesita de tanta repetición. Podría ser un indicativo de fallas en el diseño. Usen el tiempo extra del navegante para pensar en cómo mejorar el diseño; compartan la discusión con todo el equipo.

¿Cómo puedo concentrarme con alguien que me habla?

El navegante no debería tener mucho problema para estar varios pasos por delante del conductor. Si tuviera problemas, le debe pedir al conductor que piense en voz alta para poder entender su razonamiento.

Sin embargo, a veces al conductor podría resultarle difícil concentrarse. Hay que contarle al navegante - podría tener alguna sugerencia que ayude a superar el bloqueo. En otros casos, el conductor podría necesitar un tiempito de silencio para pensar el problema.

[inset side="right" title="Pasos pequeños"]Si te cuesta concentrarte, probá avanzando de a pasos pequeños.[/inset]

Si te encontrás seguido en esta situación, quizás sea porque estás avanzando de a pasos demasiado grandes. Usá el Desarrollo Guiado por Pruebas (TDD) para tomar pasos pequeños. Confía en el navegante para que realice el seguimiento de lo que todavía falta hacer, y enfocate en unas pocas líneas de código que se necesitan para hacer pasar la siguiente prueba.

Si estás trabajando en una tecnología que no comprendés por completo, considerá tomarte unos minutos para trabajar en una solución de prueba. Vos y tu compañero pueden investigar esto juntos o por separado.

¿Qué pasa si hay una cantidad impar de programadores?

Un programador solitario puede realizar varias tareas productivas que no involucran al código de producción. Puede investigar tecnologías nuevas, o aprender alguna tecnología que usa el equipo. Puede trabajar en pareja con el cliente o con un tester para revisar los cambios recientes, pulir la aplicación, o hacer pruebas exploratorias.

También, un programador solitario podría desear pasar parte del tiempo en hacer una revisión del diseño global - tanto sea para mejorar su entendimiento, como para aportar ideas que mejoren ciertas áreas problemáticas. Si hay un refactor grande que está parcialmente completo, el equipo podría autorizar a un programador meticuloso a que termine este refactor.

Si el equipo es pequeño, se podría quedar sin tareas "solitarias" que sean útiles. En ese caso, consideren relajar la regla del "sólo el código productivo en parejas", o agreguen un programador nuevo.

Somos un equipo de dos (o tres) personas. ¿Deberíamos trabajar en parejas todo el tiempo?

Hasta el programador más paciente va a querer explotar si está trabajando en pareja con la misma persona todo el día, todos los días. Usen su criterio sobre cuándo trabajar en parejas y cuando no hacerlo. Si se sienten bien pero su pareja está de mal humor, no insistan; tan sólo digan que ustedes están cansados y tómense un descanso.

Estamos tan concentrados en el trabajo que nos olvidamos de rotar las parejas. ¿Cómo podemos fomentar una rotación más frecuente?

Una forma es recordar que se puede rotar cuando nos sentimos frustrados o bloqueados. De hecho, ese es el momento perfecto para cambiar de pareja y tener una perspectiva nueva.

Algunos equipos usan timers y alarmas para rotar las parejas a intervalos estrictos. Belshee realizó investigaciones donde los resultados muestran resultados interesantes al rotar cada nueve minutos. Aunque esta puede ser una buena forma para adquirir el hábito de rotar parejas, asegurate que todos quieren intentarlo.

¿Cómo podemos hacer programación de a pares de forma remota?

Se puede usar un teléfono con auricular y alguna herramienta para compartir el escritorio como VNC o NetMeeting para trabajar remotamente. Hay equipos que usan estaciones de trabajo individual con sesiones de pantalla compartidas y aplicaciones VoIP.

En general suele ser un pobre sustituto para la pareja en persona. Los equipos XP se suelen sentar juntos, así que la programación en parejas remota no se necesita.

Resultados

Cuando se realiza bien la programación en parejas, encontraremos que nos enfocamos y concentramos intensamente en el código y en el trabajo con nuestro compañero. Experimentamos menos interrupciones y distracciones. Cuando hay una interrupción, una persona se encarga del problema mientras que la otra continua pensando. Después, se vuelve al flujo de trabajo inmediatamente. Al final del día te sentís cansado y satisfecho. Se disfruta la concentración intensa y la camaradería de trabajar con compañeros de equipo.

El equipo completo disfruta construir código de más calidad. La deuda técnica disminuye. El conocimiento fluye rápidamente en el equipo, aumentando el nivel de competencia de todos y ayudando a que los nuevos miembros puedan integrarse sin problemas.

Contraindicaciones

La programación de a pares necesita de un espacio de trabajo cómodo (lean Cómo armar una oficina para hacer Programación de a Pares). La mayoría de los cubículos de oficina no sirven. Si tu espacio de trabajo no permite que las parejas se sienten lado a lado, elegí entre cambiar el espacio de trabajo o no hacer programación de a pares.

De manera similar, si el equipo no se sienta junto, la programación de a pares podría no funcionar. Aunque se puede hacer remotamente, no resulta tan bueno como en persona.

Otro motivo para evitar las parejas puede ser la resistencia de los programadores. El trabajo en parejas es un cambio enorme para los hábitos de trabajo de algunas personas, y se puede encontrar resistencia. En ese caso se les puede pedir que lo prueben por un par de meses antes de tomar una decisión. Si todavía se resisten, quizás sea mejor evitar las parejas en vez de forzarlas.

Alternativas

La programación en parejas es una herramienta muy poderosa. Reduce la cantidad de defectos, mejora la calidad del diseño, comparte el conocimiento en el equipo, apoya la auto-disciplina, y disminuye las distracciones; todo esto sin sacrificar la productividad. Si no podés hacer programación de a pares, necesitás alternativas.

Las inspecciones formales de código pueden ayudar a disminuir los defectos, mejorar la calidad y apoyar la auto-disciplina. Sin embargo, los programadores suelen tener problemas en incluir inspecciones en su planificación, incluso aunque estén a favor. Al trabajar en parejas esto ocurre de forma consistente, y brinda un feedback mucho más rápido que las inspecciones planificadas. Si vas a usar inspecciones en lugar de trabajar en parejas, va a ser necesario pensar algún mecanismo de apoyo para que ocurran con regularidad.

Las inspecciones por si mismas no ayudan a compartir el conocimiento de una manera tan completa como lo requiere la Propiedad Colectiva de Código. Si no podés hacer programación de a pares, vas a tener que considerar evitar la Propiedad Colectiva de Código, al menos al principio.

Si igualmente querés mantener la Propiedad Colectiva de Código, vas a necesitar algún mecanismo alternativo para compartir el conocimiento y el estado del código. Se pueden formar grupos de estudio regulares en donde los programadores se reunen diariamente por media hora para revisar y discutir el diseño.

No conozco ninguna otra herramienta que ayude a disminuir las distracciones tan bien como la programación de a pares. Sin embargo, tiendo a distraerme con más frecuencia cuando estoy cansado. En ausencia de una pareja, podemos poner más énfasis en el Trabajo Energizante.

Aprender más

Pair Programming Illuminated [Williams] analiza en profundidad la programación de a pares.

"The Costs and Benefits of Pair Programming" [Cockburn & Williams] informa sobre el estudio inicial de Laurie Williams sobre la programación de a pares.

"Promiscuous Pairing and Beginner's Mind: Embrace Inexperience" [Belshee] es una mirada atrapante sobre los beneficios de rotar parejas a intervalos de tiempo estrictos.

"Adventures in Promiscuous Pairing: Seeking Beginner's Mind" [Lacey] explora los costos y desafios de rotaciones constantes de parejas. Es de lectura obligatoria si van a probar el enfoque de Belshee.

Peer Reviews in Software: A Practical Guide [Wiegers] discute las inspecciones formales y las revisiones de pares.

Traducido de The art of agile development: Pair Programming, por James Shore.
Compartir
  • Diana

    La implementación de programación por pares se dividen tareas ó los dos programadores se sientan en un mismo computador??<br /><br />Gracias por su información

Deja tus comentarios

Post comment as a guest

0

El nuevo Dos Ideas.

Nuevo logo, nuevo buscador, nueva portada, podcast mensual... ¡y muchas novedades más!

Más novedades en Dos Ideas

Los Comentarios.

Packers and movers
Packers and Movers Mumbai @ http://localpackers.in/packers-and-movers-in-mumbai.html
Packers and Mo...
cheap assignment
nfs is the speediest system filesystem there is yet nfs does not appear to work extremely well on Wi...
relocateurhome.in
For More info Have A Look on Url:
movers and packers hyderabad
packers and movers in bangalore
...
clinica del sueño
Muy buen post. La empatía es inherente al ser humano, solo hay que reforzarla.

clinica del sueño
parul verma
Hello gentleman I am parul verma independent Mumbai escort in Mumbai city. I am hot and saxy indepe...
Richard L. Ellis
Eye Shadow Sticks, Creams, Gels, Pencils, Pressed Powders? Whats the Difference? best essay and essa...

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw