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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.