5 trucos sencillos para ralentizar el desarrollo de software

Alex Serriere
|
|
July 16, 2018
|
4
Min Read
5 trucos sencillos para ralentizar el desarrollo de software

En un entorno de equipo, encontrar oportunidades para que todos colaboren simultáneamente puede ser difícil, especialmente para los equipos remotos. Nuestras sesiones semanales de programación en equipo surgieron del deseo de reunir a todos en la misma sala y avanzar en algunos de los problemas interesantes, desafiantes y a menudo nuevos que enfrentamos en nuestros proyectos. Las sesiones de programación en equipo brindan la oportunidad de acelerar el aprendizaje y las habilidades generales de programación de todo nuestro equipo de I+D.

Con la programación en equipo, o "mob programming", ponemos a prueba las capacidades colectivas de resolución de problemas de nuestro grupo y animamos a los compañeros a mostrar sus entornos de desarrollo y conjuntos de habilidades únicos. Con un miembro del equipo al volante y el grupo actuando como navegadores colectivos, hemos ampliado nuestro dominio de herramientas, aprendido nuevos lenguajes de programación y emprendido proyectos completamente nuevos que solo son posibles combinando nuestras fuerzas de programación.

El principal compromiso de la programación en equipo es sacrificar velocidad por una mayor transferencia de conocimientos. El valor a largo plazo de mejorar colectivamente las habilidades de todos en el equipo supera el costo del tiempo adicional dedicado a completar un proyecto. La programación en equipo puede no ser la forma más rápida de construir un programa o avanzar en una tarea determinada, pero sin duda es una forma muy rápida de aprender.

Al revisar el código, ves los resultados del trabajo de alguien y a veces incluso puedes hacerte una idea de su proceso de pensamiento. Lo que no ves es cómo llegaron a esa solución. No ves sus preguntas o su búsqueda de respuestas, la lectura de documentación, etc. Al aprender un nuevo lenguaje, por ejemplo, el proceso de aprendizaje puede ser muy útil de observar, porque ves, de primera mano, los términos de búsqueda utilizados y dónde encontrar los recursos útiles.

team coding

Hemos descubierto que estos 5 principios encarnan la programación en equipo:

1. No seas el único que escribe el software.

La programación en equipo trata sobre el aspecto de "equipo". Cuando TEECOMlabs realiza una sesión de mob programming, el conductor está en el teclado escribiendo el código y el grupo proporciona instrucciones, orientación y soluciones. La regla es: el conductor no tiene permitido iniciar ninguna acción, solo el grupo. Para el grupo, esto significa que comunicar ideas con claridad y de una manera fácilmente comprensible para el conductor es fundamental. Tener que comunicar una idea verbalmente a menudo ilumina desafíos de una manera que ir directamente de tu cerebro al código no lo hace.

2. Fomenta la experimentación fuera de tu zona de confort.

‍Hay un viejo dicho: "Si eres el más inteligente de la sala, estás en la sala equivocada". Cuando programas en un contexto grupal, habrá cosas que entenderás y otras con las que no estarás familiarizado. Es posible que te desafíen a aprender un lenguaje que no conoces, trabajar en un editor de texto desconocido o escribir con un estilo de codificación diferente. La clave es permanecer abierto a esos nuevos desafíos y no evitarlos. Al absorber nuevas habilidades, podrás contribuir más a tu equipo con el tiempo.

3. La "programación en equipo" trata más sobre el "pensamiento en equipo", que luego se captura en código.

‍Gran parte del beneficio de la programación en equipo proviene de la discusión sobre la programación, no de la programación en sí. Puedes distribuir el conocimiento colectivo a través de reuniones, publicaciones de blog o presentaciones, pero la programación en equipo obliga a tu equipo a entrar y salir de las cabezas de los demás en tiempo real. El "pensamiento en equipo" expone a todos a diferentes formas de abordar el mismo problema y permite el descubrimiento de soluciones únicas.

4. El progreso objetivo requiere un trabajo en equipo real.

‍A diferencia de otros ejercicios colaborativos, como escribir, dibujar o hacer lluvia de ideas, el desarrollo de software incorpora una medida objetiva de funcionalidad. El compilador, el intérprete o el tiempo de ejecución pueden ser jueces severos del trabajo del grupo. Esta dimensión añadida hace que la programación en equipo se parezca más a los ejercicios estereotipados de formación de equipos, donde un grupo combina sus esfuerzos para superar una carrera de obstáculos. Ese árbitro imparcial sirve como punto focal para la energía del equipo y fuerza una colaboración real.

5. Depende de los demás.

‍Como ingenieros de software, solemos estar formados para trabajar en los problemas de forma interna e intentar generar una propuesta válida antes de pedir ayuda a los demás. Con el enfoque de programación en grupo (mob coding), este paradigma cambia: la solución y el código en sí son creados por un colectivo, no por un individuo. En lugar de tener que pensar por tu cuenta cómo implementar una función o una librería, puedes consultar al grupo. Si te encuentras con un problema que no puedes resolver solo, plantéalo como una pregunta. Es muy probable que otros tengan la misma duda.

La perspectiva del CEO

Uno de los retos más importantes a los que se enfrentan las organizaciones es cómo elevar continuamente el nivel de competencias de su personal de una manera atractiva, colaborativa y eficaz. Las sesiones de programación en equipo permiten a los participantes debatir sobre cómo estructurar soluciones adecuadas a los problemas, explorar alternativas y entender por qué el equipo prefiere una solución sobre otra, todo ello mientras se genera un trabajo valioso. Por lo general, todo el grupo encuentra valor en el ejercicio, ya sea aprendiendo algo nuevo o reforzando la confianza en un enfoque específico. Las relaciones entre los miembros del equipo se fortalecen, las barreras de comunicación se eliminan y el equipo funciona con mayor eficacia.

El proceso de programación en equipo puede aplicarse a otros grupos organizativos, no solo en el ámbito de la programación. Por ejemplo, TEECOM ha utilizado sesiones de ingeniería en equipo para desarrollar soluciones creativas a retos de ingeniería complejos. El personal nuevo y el veterano trabajan juntos para resolver problemas comunes y, a menudo, son los nuevos miembros quienes generan soluciones más creativas que terminan siendo la solución definitiva al problema.