Si quisiera crear un sitio como Quora, ¿cómo gestionaría mis desarrolladores front-end y back-end por separado y de manera eficiente?

Sus desarrolladores se dividirían en aproximadamente cuatro grupos diferentes, aunque algunos de ellos podrían ser parte de dos o más grupos. Aún así, necesitará cuatro equipos, dos más que los equipos comunes de front-end / back-end.

Empecemos con esos dos, sin embargo. Tendría desarrolladores front-end que serán los que hagan que las cosas se vean bien dentro del navegador. Son expertos en JavaScript, CSS y HTML y pueden diseñar todas las páginas y desarrollar toda la lógica de front-end para su sitio. Y solo deberían trabajar en esta parte. Ellos controlan el Look & Feel.

Los desarrolladores de back-end están trabajando en el lado del servidor de su sitio. Son los que usan PHP, ASPnet o cualquier otra solución de servidor que tenga para conectar la lógica empresarial de su sitio al front-end que crean los desarrolladores de front-end. Básicamente, obtienen una página HTML con estilos y scripts adicionales y tienen que asegurarse de que se cree de alguna manera dinámica, al tiempo que conservan el estilo y la lógica. Básicamente, controlan lo que hace el sitio y lo que regresa a los visitantes. Ellos controlan las operaciones.

Pero mencioné la lógica de negocios y deberían estar en manos de los desarrolladores de la capa de negocios. Podrías considerarlos desarrolladores de back-end, ¡pero están muy atrás! No saben nada sobre HTML, CSS o cualquier solución que se use en el servidor. Todo lo que saben es cómo hacer bibliotecas de código que contendrán toda la lógica empresarial. Código que se prueba a través de pruebas unitarias y no al abrir una página web. Básicamente, crean la lógica pero no las operaciones.

Por último, necesitará almacenar datos y eso requiere desarrolladores de bases de datos. Necesitará expertos en modelado de datos que también puedan crear varios scripts SQL para todo tipo de propósitos. Incluso si su código no utiliza procedimientos almacenados, estos tipos deben poder extraer información de la base de datos a través de consultas SQL simples. Crean y mantienen el almacenamiento de datos.

Si tiene desarrolladores completos, entonces tiene desarrolladores que pueden hacer básicamente todo lo anterior. Lo cual está bien, a menos que esté trabajando en un sitio más complejo como Quora. Para sitios más grandes, necesitará especialistas que se hayan centrado principalmente en una parte en lugar de la pila completa. Un desarrollador de stack completo sería más práctico en una posición de gestión, vigilando a todos los equipos, ya que debería comprender todos los problemas técnicos que pueden tener los diversos equipos. Puede juzgar cuando dos equipos tienen problemas de comunicación a través de una API o interfaz específica.

Por lo tanto, necesitará especialistas de los cuatro grupos y un administrador / desarrollador de pila completa. Con aproximadamente 3 personas por equipo más usted mismo, tendría un total de 14 personas involucradas. Si usa métodos ágiles, asegúrese de que cada equipo tenga un stand-up diario y que el administrador de stack completo sea parte de cada stand-up para que sepa lo que está sucediendo. El desarrollador de stack completo no debería estar desarrollando sino gestionando, verificando cosas, resolviendo los problemas de los cuatro equipos que no pueden resolver por sí mismos.

Cada equipo operaría solo e informaría solo al desarrollador de stack completo. Él toma la decisión, junto con usted y otros gerentes.

Separar a los desarrolladores front-end y back-end debería ser realmente fácil, incluso deseable.

Simplemente desea tener la interfaz entre los dos, lo que implica principalmente especificar las API. Finalmente, puede usar algunos apéndices API (digamos archivos JSON planos) y pedirle a su desarrollador front-end que los consuma y que los desarrolladores back-end proporcionen lo mismo.