04/12/2013

Pair programming: mejorando el proceso de desarrollo

Pair programming: mejorando el proceso de desarrollo

Las metodologías ágiles hacen más rápido el proceso de desarrollo de software y permiten obtener resultados adecuados a entornos en cambio permanente. Una de sus técnicas es pair programming, en la cual dos programadores trabajan simultáneamente en el mismo código. Uno de ellos es el driver, que codifica, mientras que el otro es el observer, que se encarga de revisar cada línea que el otro escribe.

Es ideal aplicar pair programming en tareas pequeñas, que puedan completarse en menos de una hora. El driver debe programar con cierta velocidad, mientras que el observer debe limitarse a realizar sugerencias cuando nota algún defecto, pero sin «dictar» código. Cada períodos cortos puede ser necesario que el driver le informe al observer lo que está haciendo, para que no se pierda la sincronización entre los dos. Es ideal intercambiar roles cada media hora.

¿Cuáles son los beneficios de este enfoque?

  • Mayor disciplina. La presencia del observer impide que el driver se distraiga de sus tareas y lo obliga a hacer las cosas bien.
  • Mayor motivación. La programación en pares es más disfrutable que la programación en solitario, siendo una importante motivación para el equipo de trabajo.
  • Mayor productividad a largo plazo. De acuerdo con un estudio, pair programming aumenta en un 15% el tiempo de desarrollo, pero a cambio brinda más calidad en el diseño, reduce los defectos y mejora la comunicación entre los miembros del equipo.
  • Mejor aprendizaje. El driver puede ser acompañado por un observer más experimentado que él, o viceversa. Incluso es probable que tengan un nivel de habilidad similar en distintos campos. Como resultado, al menos uno de los dos aprenderá de la mejor manera: viendo a un experto trabajar.
  • Reducción de riesgos. Como el código estará sometido a una revisión constante, se reducirá el riesgo de cometer errores que nos alejen de la solución deseada.

A pesar de sus beneficios, hay quienes piensan que el pair programming no puede ser aplicado a lo largo de toda la jornada: el programador puede necesitar tiempo para pensar a solas. Por eso, es conveniente alternar pair programming con enfoques en solitario.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce