Prácticas de Desarrollo de Software
Para garantizar la calidad, la eficiencia y la coherencia en nuestros proyectos, en 23people adoptamos un conjunto de prácticas de desarrollo que nos ayudan a mantenernos fieles a nuestros principios de simplicidad y alinearnos con nuestros objetivos de negocio:
-
Control de versiones y flujo de trabajo de ramas (Git)
- Empleamos Git para el control de versiones, promoviendo un flujo de trabajo ordenado (por ejemplo, GitFlow o GitHub Flow) que asegure la separación y organización correcta de funcionalidades.
- Esto permite a los equipos colaborar de manera efectiva, evitar conflictos y mantener un historial claro de cambios.
-
Revisiones de código (Code Reviews)
- Todas las propuestas de cambio o adiciones de funcionalidad deben pasar por una revisión de código.
- Este proceso fomenta la retroalimentación constructiva, la detección temprana de errores y la difusión de buenas prácticas entre los miembros del equipo.
-
Testing automatizado
- Mantenemos una cobertura adecuada de pruebas en varios niveles (unitarias, de integración y de extremo a extremo).
- Las pruebas automatizadas garantizan la calidad del software y simplifican la detección de regresiones antes de desplegar a producción.
-
Integración y Entrega Continua (CI/CD)
- Implementamos pipelines de CI/CD para automatizar la compilación, la ejecución de pruebas y el despliegue del software en cada commit o fusión de código.
- Esta práctica reduce el tiempo de entrega y ayuda a identificar problemas rápidamente.
-
Pair/Mob Programming (colaboración en tiempo real)
- Fomentamos la programación en pareja o en grupo para resolver problemas complejos de manera colaborativa.
- Permite compartir conocimiento, mejorar la calidad del código y reforzar la cohesión del equipo.
-
Monitoreo y Observabilidad
- Utilizamos herramientas de registro (logging) y monitoreo para tener visibilidad sobre el rendimiento y el estado de las aplicaciones en producción.
- Permite identificar y resolver incidentes de forma proactiva, asegurando la estabilidad y disponibilidad de los servicios.
-
Documentación ligera y actualizada
- Mantenemos documentación concisa y al día que describa la arquitectura, las decisiones técnicas y los flujos de trabajo críticos.
- La documentación sirve como referencia para los equipos en todas las etapas del proyecto, sin añadir complejidad innecesaria.
-
Automatización de entornos
- Apostamos por la contenedorización (con Docker, por ejemplo) y la infraestructura como código (IaC) para asegurar la reproducibilidad y la consistencia en todos los entornos.
- Esto facilita la escalabilidad y la rápida configuración de entornos de desarrollo, pruebas y producción.
Cada una de estas prácticas se integra de manera natural con nuestra filosofía de simplificación y con la metodología Kanban, alineándose con la visión de desarrollar software escalable, mantenible y centrado en la resolución de necesidades reales.