¿Cuál es la mejor manera de dividir un proyecto de desarrollo web basado en Rails entre dos desarrolladores?

La pregunta se refiere a dividir el trabajo entre los desarrolladores. Pero dividir el trabajo entre desarrolladores no es muy diferente a dividir el trabajo entre dos compañeros de trabajo. La parte difícil es comunicar qué trabajo se necesita, quién es responsable y cómo saber cuándo está completo.

Estos son algunos procesos de ayuda, muchos de los cuales se han sugerido en otras respuestas:

  1. Acuerde las especificaciones del proyecto antes de comenzar el trabajo. Todos los interesados ​​deben estar en la misma página con respecto al proyecto y qué trabajo debe realizarse antes de comenzar a trabajar.
  2. Divide el trabajo. A veces el trabajo se divide entre front-end y back-end. Otras veces por escenarios de usuario. Otras veces por pruebas y código. Otras veces por programación en pareja. Haga que sus desarrolladores discutan su experiencia, su fortaleza, su estilo de trabajo y sus intereses. Luego tome una decisión sobre cómo dividir el trabajo.
  3. Código de registro a menudo. Trabajar con el último código reduce los errores invisibles. Los registros frecuentes de código también minimizan los conflictos de código. El uso de una buena herramienta de versiones de software (Git, SVN, etc.) también facilita el seguimiento de quién, cuándo y cómo se cometen los errores.
  4. Prueba a fondo y con frecuencia. Apunte a una cobertura de prueba del 100% del código. Además, cree un flujo de trabajo que active la ejecución de pruebas antes de que se registre el código. Las pruebas deben ser cómo se juzga la finalización del proyecto.
  5. Mantenga reuniones de pie una vez por semana. Cada miembro debe compartir brevemente lo que está trabajando y espera lograr durante la semana. Cualquier miembro cuyo trabajo se superponga puede hablar por separado para coordinar su trabajo.

Ha habido muchas respuestas que sugieren usar TDD, sin embargo, puedo simpatizar con aquellos que desean evitar ese enfoque.

Si desea evitar la TDD y aún trabajar codo con codo, se trata de comunicación. Consulte regularmente a su codesarrollador para sincronizarse con lo que está trabajando. Si tiene un problema que no tiene una solución obvia, pregúnteles al respecto. Divida el trabajo en características que estén más separadas (para evitar la superposición) y analice cómo se creará la solución antes de comenzar a codificar. Por supuesto, usa git, todo es poderoso.

Desea evitar tanto como sea posible escribir el mismo código dos veces o escribir uno sobre el otro. Dividir el trabajo de manera efectiva puede ayudar, pero mantenerse mutuamente informados sobre lo que está haciendo y cómo lo está haciendo es realmente la mejor solución.

La creación de un equipo de ingeniería es un ejemplo clásico de la ley de rendimientos decrecientes. No espere que 2 ingenieros realicen el doble del trabajo que 1 ingeniero puede hacer, pero con la comunicación y el flujo de trabajo correctos, puede realizar una gran cantidad de trabajo de alta calidad.

La respuesta retórica es: “no hay una” mejor “forma de dividir el trabajo entre desarrolladores”. Los buenos desarrolladores se comunican a menudo, y deben decidir entre sí en qué trabajarán cada uno. Teniendo una idea clara de lo que hay que hacer, cuándo, deberían poder dividir el trabajo entre ellos. El contexto es importante, por lo tanto, no busque recetas. La comunicación es clave y eso significa que el código es fácilmente accesible para ambos en un repositorio compartido.