Los equipos pequeños (de 2 a 5 desarrolladores) tienen un superpoder: la comunicación rápida. Todos saben lo que hacen los demás. La arquitectura de software para estos equipos debe mejorar esta agilidad y no crear burocracia.
Si tienes un equipo pequeño, copiar la arquitectura de Google es un suicidio. Necesita una arquitectura que le permita ofrecer valor con pocas personas.
Sin servidor (el mejor amigo de los equipos pequeños)
Serverless (AWS Lambda, Google Cloud Functions) es la arquitectura definitiva para equipos pequeños.
- Mantenimiento cero: No hay servidor que actualizar ni sistema operativo que parchear.
- Costo por Uso: Si nadie lo usa en las primeras horas de la mañana, pagas cero.
- Escala Infinita: Si 1 millón de personas acceden a ella, la nube aumenta en 1 millón de funciones.
Su equipo se concentra al 100% en escribir la función ("solicitud de guardado") y al 0% en mantener el servidor en funcionamiento.
Automatización extrema (CI/CD)
Con pocas personas, no es posible que un "QA" (probador) manual haga clic en todo antes de la implementación.
- Implementar canalización: cada confirmación en la rama
maindebe pasar a producción automáticamente después de pasar las pruebas. - Pruebas automatizadas: escriba pruebas de integración (que prueben el funcionamiento de la API) en lugar de centrarse demasiado en pruebas unitarias microscópicas. Pruebe lo que le importa al usuario.
Documentación "Viva" (Código que se explica por sí mismo)
Los equipos pequeños odian escribir documentación en Word (que queda obsoleto en 1 semana).
- OpenAPI (Swagger): utilice herramientas que generen documentación API a partir del código.
- Sugerencias de escritura: use TypeScript (si es JS) o escritura en Python. Esto sirve como documentación de "lo que esta función espera recibir".
Evite el "síndrome del aquí inventado"
No escriba su propio sistema de autenticación. No escriba su propio marco CSS.
- Utilice Auth0 o Firebase Auth.
- Utilice Tailwind o Bootstrap.
- Utilice bibliotecas estándar.
El código más escalable es el código que no tuvo que escribir (y no necesita mantener).
Conclusión
La arquitectura para equipos pequeños se trata de apalancamiento. Utilice la palanca de la nube, la palanca de código abierto y la palanca de automatización para hacer el trabajo de 50 ingenieros con solo 5. Mantenga la complejidad incidental (infraestructura) al mínimo.
Lea también
- Arquitectura de software escalable: mejores prácticas para el escalado
- Arquitectura de software escalable: mejores prácticas para empresas emergentes
- Arquitectura de software escalable: cómo construir sistemas que crezcan
- Microservicios en Aplicaciones: Arquitectura Distribuida para Móviles
- Monolith vs Microservices: Qué arquitectura elegir
- Arquitectura de aplicaciones: mejores prácticas para empresas
