Para lograr el éxito de un equipo de desarrolladores, el trabajo colaborativo es necesario, y es que al comenzar una carrera en el área TI, es posible que seas parte de un equipo de otros desarrolladores, tanto junior como senior, y se espera que agregues valor desde el primer día.
Mediante la retroalimentación constante sobre tu código, es posible que mejores de manera constante y aprendas algo nuevo todos los días. Sin embargo, para lograr esto se requiere de un conjunto de habilidades particulares.
Convertirse en un miembro productivo del equipo es algo que sólo puede aprender colocándose dentro de un proyecto grupal real, pasando por el proceso de prueba y error, mientras te encuentras en un entorno de apoyo. Esto significa que tendrás que programar un proyecto junto con otras personas, que están tan comprometidas como tu para que el proyecto sea un éxito.
Algunas de estas habilidades que son:
- Deberás lidiar con el proceso de las revisiones del código
Cuando trabajas por tu cuenta, eres el único responsable de la calidad del código. Eso significa que si tomas atajos descuidados o escribes un código de baja calidad, serás la única persona que tendrá que pagar el precio. Cuando se trabaja como parte de un equipo técnico, es responsabilidad de todo el equipo asegurarse de que sólo se acepte en el proyecto código de alta calidad, bien probado y sin errores.
Los mejores equipos requieren revisiones constantes antes de que los cambios de código se acepten en un proyecto, para garantizar la calidad. Las revisiones de código ocurren cuando otro miembro del equipo, que no participó en la redacción del código, revisa las adiciones y cambios de código propuestos línea por línea, y busca cosas que podrían causar problemas inesperados.
Debido a que las revisiones de código ocurren con frecuencia, GitHub viene con características avanzadas que permiten a los equipos realizar revisiones de código fácilmente.
Solicitar una revisión del código antes de que se acepte un nuevo código en la rama principal se conoce como emitir una solicitud de extracción, y los mejores equipos técnicos no permiten que ningún código ingrese a su proyecto sin pasar por este proceso de solicitud de extracción.
En este proceso, presenta los cambios de código propuestos y permite que otros desarrolladores examinen esos cambios.
- Aprenda a dividir los problemas grandes en pequeños
Cada miembro del equipo funciona como un multiplicador de la cantidad de código que el equipo puede producir. Para obtener las recompensas de tener muchas personas contribuyendo al mismo proyecto, las tareas grandes deben dividirse en pequeñas tareas en las que se pueda trabajar en paralelo.
La mayoría de los proyectos, incluso en el mundo profesional, nunca se completarán por completo, ya que siempre hay características adicionales que se pueden agregar a cualquier aplicación existente. No es raro que una acumulación de productos, una lista de funciones que se desean pero que aún no se hayan creado, tome una estimación de un año o más en completarse.
- El conocimiento de Tester es clave
Esto se debe a que los proyectos pueden acumular una gran cantidad de código, pensar en 10 mil líneas o más y puede complicarse rápidamente. Con tanto código, no se puede esperar que alguien que no haya trabajado directamente con una sección particular de la aplicación antes conozca todos los matices de cómo funciona la aplicación.
Al testear evitas que otros miembros del equipo rompan inadvertidamente la aplicación de formas que no sean capaces de predecir mientras se está creando el software.
Es bastante normal que todo el conjunto de pruebas tarde más de 10 a 20 minutos en ejecutar un proyecto complejo. Los desarrolladores suelen utilizar herramientas de «integración continua» para ayudarles a ejecutar sus pruebas. Esas herramientas de integración continua ejecutan automáticamente sus pruebas para cada solicitud de extracción y ayudan a evitar que los miembros acepten pruebas rotas en el código.
- Resolver conflictos y cultivar una buena comunicación
Los conflictos de fusión ocurren cuando dos miembros del equipo intentan hacer cambios contradictorios o conflictivos. Una buena comunicación como equipo puede ayudar a prevenir conflictos, pero a veces simplemente ocurren como resultado de la creación de software como parte de un equipo técnico.
- Utilizar reuniones para compartir conocimientos
Dado que la comunicación entre los miembros del equipo técnico es fundamental, la mayoría de los equipos tendrán reuniones frecuentes, conocidas coloquialmente como «stand-ups«.
Durante la reunión, se solicitará a los miembros del equipo técnico que actualicen rápidamente a otros miembros del equipo con los siguientes detalles:
- ¿En qué trabajaste desde la reunión anterior?
- ¿En qué vas a trabajar entre ahora y la próxima reunión?
Al hacer que cada miembro hable durante un minuto sobre lo que trabaja, otros miembros del equipo, que a menudo saben más sobre las áreas problemáticas potenciales de una función específica, pueden evitar que un miembro del equipo caiga en el error.
Las reuniones de pie están diseñadas para durar entre 10 y 15 minutos, y todos los miembros del equipo deben estar de pie mientras dure la reunión. Estar de pie durante el proceso de la reunión tiende a acelerar la reunión y enfoca a las personas en los temas más importantes.
- Usar la programación por pares para proporcionar comentarios constructivos
A veces, cuando trabajas en proyectos, te encontrarás con problemas intensamente complicados. Otras veces, te encontrará trabajando en tareas más sencillas. Cuando eres responsable de las tareas que te cuesta completar, es increíblemente valioso tener otro miembro del equipo con quien trabajar.
Este proceso de colaboración entre tu y otro compañero de equipo, para abordar problemas de codificación difíciles, se conoce como programación por pares. Durante las sesiones de programación en pareja, un miembro del equipo se sentará detrás del teclado, escribirá el código y “conducirá” la sesión. La otra persona se sentará detrás de la persona y observará el proceso de codificación y proporcionará comentarios en tiempo real.
Adquirir habilidades para liderar el código que se está escribiendo y brindar retroalimentación en tiempo real de manera productiva es una habilidad importante que debes dominar. Al empezar, puede resultar intimidante codificar delante de otras personas, sabiendo que te darán comentarios mientras programas.
- Aprender a trabajar en un entorno en constante evolución
Uno de los mayores desafíos a los que hay que acostumbrarse cuando se trabaja como parte de un equipo técnico es sentirse cómodo trabajando en un entorno donde muchas personas escriben código complicado y no se abruman con el proceso.
Al crear funciones en equipo, y muchas líneas de código cambian rápidamente todos los días, es importante mantenerse enfocado en la tarea que se le ha asignado. Aunque el código evoluciona constantemente a su alrededor, debe confiar en su equipo y en el proceso.
Dado que el código cambia continuamente, es importante actualizar con frecuencia el código con el que está trabajando y asegurarse de que está trabajando con el código más reciente. Este proceso se conoce como «extraer» el código que contribuyeron otros miembros del equipo, y adquirir el hábito de extraerlo varias veces al día evitará trabajar en un código que no esté actualizado.
Aprender a colaborar, comunicarse y utilizar las herramientas adecuadas es increíblemente importante cuando se crean proyectos como parte de un equipo técnico. Dicho esto, no todas las experiencias de proyectos grupales se crean por igual.
En el mundo real, trabajar en equipo no siempre es fácil y todo el mundo lo sabe. Lo importante es cómo se resuelven los desafíos que surgen mientras se trabaja en equipo.
imagen: @ipopba