¿Cómo se organizan los ingenieros de software cuando trabajan en equipo? ¿Funcionan individualmente y luego comparan el código o qué sucede exactamente?

Realmente depende En el primer proyecto en el que trabajé, trabajamos en parejas. La forma en que dividimos el trabajo que nos asignaron dependía de cada par. Sobre todo trabajamos en cosas separadas pero nos mantenemos en contacto constante entre nosotros. Mi segundo proyecto fue mucho más orgánico, por así decirlo. Éramos un equipo de entre 2 y 4 programadores (fue un proyecto de 3 años y tuvimos un número variado). Cada uno tenía nuestras propias tareas, pero había una superposición tremenda en lo que estábamos haciendo. Siempre nos aseguramos de no duplicar esfuerzos, pero hubo muchas veces que trabajamos en los mismos sistemas e incluso en los mismos archivos. Mi proyecto actual me tiene haciendo correcciones de errores para un programa diferente. Trabajo solo pero mis soluciones son verificadas por otra persona.

Todo esto pasa por alto la característica central que realmente hace que todo esto sea posible, el software de control de versiones. Su pregunta parece indicar que en realidad está buscando el conocimiento de cómo se cuida el código entre varias personas en lugar de solo cómo se organizan las personas. Básicamente, cada uno de nosotros tiene una copia de trabajo de todo el proyecto. Luego trabajamos en lo que sea que estemos trabajando y revisamos la pieza a medida que avanzamos. Todos nos aseguramos de estar al día con los cambios de todos. Si dos personas han alterado el mismo archivo, alguien debe fusionarse y asegurarse de que no hayan realizado cambios incompatibles.

En todos los casos, la comunicación constante es clave.

En mi equipo, trabajamos individualmente, seleccionando las tareas del tablero de tareas, pero otra unidad de trabajo es revisada por otra persona antes de ser registrada. Si está siguiendo el ritmo correcto, debe hacer una o dos revisiones al día que duren cinco a diez minutos Y, por supuesto, hacer lo mismo para los demás.