Un equipo ágil realizó el análisis, la redacción y el refinamiento de los requisitos para un sistema de Britânia
Cliente
Área
Problema Resumido
Solución Resumida
Resultados
El equipo de Visionnaire se encargó de todos los aspectos involucrados en
el análisis y el refinamiento de requisitos, como identificación, documentación y validación de
las necesidades y expectativas respecto a un sistema en desarrollo. Así, todos los requisitos relevantes se abordaron
y entendieron por todos los involucrados antes de la etapa de desarrollo en sí.
El extenso trabajo resultó en un documento detallado de visión del
sistema, así como en un documento de requisitos de negocio, donde se recopilaron, analizaron y definieron las necesidades
de la recopilación de requisitos para Britânia, más específicamente para el equipo de Recursos
Humanos de la empresa.
En resumen, Visionnaire proporcionó a Britânia un aumento de la productividad
y una reducción de costos a través de un equipo altamente especializado en desarrollo de software enfocado en
la entrega con procesos ágiles y en la nube, así como el uso de Scrum y Sprints semanales.
Tecnologías
Visionnaire ha usado durante mucho tiempo (y aún usa para muchos clientes)
el Proceso Unificado, siguiendo los conceptos de gestión de proyectos del PMI PMBok, más recientemente adaptados
a los procesos ágiles y Scrum.
En los últimos años, la filosofía de desarrollo ágil
basada en Scrum ha ganado terreno en todo el mundo, y Visionnaire ha estado implementando esta filosofía de
desarrollo ágil en sus procesos. En la mayoría de los casos, siendo una fábrica de software y adaptándose
a los procesos de desarrollo de nuestros clientes, no se usa Scrum, pero lo recomendamos cuando es posible.
Para el análisis y diseño de sistemas, utilizamos toda la filosofía
UML (Lenguaje Unificado de Modelado) del OMG (Object Management Group), utilizando tanto herramientas de código
abierto como herramientas de IBM/Rational (Visionnaire es socio de desarrollo de IBM y tiene todas las herramientas).
Como software de control de versiones y gestión de configuración,
utilizamos plataformas basadas en Git como Atlassian Bitbucket, GitHub o GitLab. Para proyectos Scrum, utilizamos Atlassian
Jira integrado con Git (usando Sourcetree, GitKraken o línea de comandos) para la gestión de configuración,
planificación y gestión de proyectos.
Para la documentación, utilizamos Atlassian Confluence. Para otras actividades
del proceso de desarrollo, utilizamos Atlassian Wiki. Para tareas/actividades administrativas, utilizamos Trello y Jira. Utilizamos
herramientas de comunicación como Slack en todas las áreas.
Para la creación de prototipos, utilizamos Balsamiq y Mockflow (además
de herramientas de prototipos en algunos IDEs como Xcode para sistemas Apple). Como IDEs (Entornos de Desarrollo Integrados),
utilizamos Eclipse, Visual Studio, Visual Studio Code, Sublime Text, Xcode, entre otros.
Para la monitorización de sistemas en centros de datos y la gestión
del Ciclo de Vida de las Aplicaciones (ALM), utilizamos New Relic. Para los centros de datos en sistemas desarrollados por
Visionnaire para clientes, utilizamos AWS (Amazon Web Services), Google Cloud, Azure, Weblink, Emmex y nuestros servidores
(eligiendo la solución más adecuada para cada caso). Especialmente cuando utilizamos plataformas avanzadas en
la nube como AWS de Amazon, Visionnaire aprovecha las ventajas de la plataforma, como el desarrollo de sistemas en arquitectura
de microservicios (filosofía Serverless), bases de datos distribuidas e integración de sistemas a través
de API REST. AWS es una de las mejores plataformas disponibles para este propósito, proporcionando balanceo de carga
para microservicios, bases de datos poderosas como Redshift y Aurora, y la capacidad de ejecutar código sin aprovisionar
ni gestionar servidores con AWS Lambda. La Plataforma de Google Cloud también es muy utilizada para algunos clientes.
Para clientes más avanzados en conceptos de CI y CD (Integración Continua
y Entrega Continua), utilizamos GitLab y amplia automatización de procesos a través de scripts YAML, con un
uso intensivo de micro virtualización con Docker y Kubernetes.
Sin embargo, es importante enfatizar que en todos los casos priorizamos la adaptación
a las necesidades y herramientas de nuestros clientes, ya que somos una fábrica de software con casi tres décadas
de historia.
Problema Detallado
A principios de 2020, Britânia estaba desarrollando una plataforma de gestión
de rendimiento y necesitaba consultoría para análisis, redacción y refinamiento de los requisitos de
software para el proyecto. El análisis, redacción y el refinamiento de los requisitos son etapas cruciales en
el desarrollo de sistemas de software, fundamentales para el éxito de un proyecto de software, asegurando que el producto
final sea funcional, de alta calidad y esté alineado con las expectativas de las partes interesadas.
El análisis de requisitos implica identificar, documentar y validar las necesidades
y expectativas de las partes interesadas respecto al sistema que se va a desarrollar. Esta etapa asegura que todos los requisitos
relevantes se entiendan y cualquier ambigüedad o inconsistencia se resuelva antes de proceder a las fases de diseño
e implementación.
El refinamiento de requisitos, por otro lado, es el proceso de detallar y especificar
más los requisitos identificados durante el análisis. Esto puede incluir descomponer requisitos generales en
otros más específicos, definir criterios de aceptación claros y priorizar requisitos según su
importancia e impacto en el proyecto. El refinamiento es un proceso iterativo que puede continuar a lo largo del ciclo de
vida del desarrollo, adaptándose a los cambios en las necesidades de las partes interesadas y las condiciones del negocio.
La importancia de estas etapas radica en varios factores, incluidos:
- Reducción de riesgos: el análisis y refinamiento de requisitos ayudan a identificar problemas potenciales y conflictos tempranamente en el proceso de desarrollo, reduciendo el riesgo de retrabajo y expectativas de usuarios no cumplidas;
- Claridad y comunicación: estos procesos promueven una mejor comunicación entre las partes interesadas y el equipo de desarrollo, asegurando que todos tengan un entendimiento común de los objetivos y funcionalidades del sistema;
- Eficiencia en el desarrollo: los requisitos bien definidos facilitan la creación de un diseño más preciso y una implementación eficiente, ya que los desarrolladores tienen pautas claras a seguir;
- Calidad del producto: un sistema desarrollado con base en requisitos bien analizados y refinados tiende a estar más alineado con las necesidades reales de los usuarios, resultando en una mayor satisfacción y mejor usabilidad.
Solución Detallada
Siguiendo las mejores prácticas de Silicon Valley, Visionnaire ofrece:
- Equipo especializado en desarrollo de software para satisfacer las demandas de talento profesional de los clientes;
- Proceso ágil y basado en la nube enfocado en la entrega;
- Uso de Scrum y Sprints semanales o quincenales para acelerar los proyectos;
- Integración de Desarrollo (Dev) y Operaciones (Ops), entregando una solución DevOps completa a nuestros clientes;
- Uso de herramientas en la nube 100% digitales para el seguimiento de proyectos;
- Uso de tecnología de software moderna como Arquitectura de Microservicios, Virtualización, Integración Continua y Entrega Continua;
- Más de 28 años de experiencia en el desarrollo y entrega de proyectos exitosos con tecnologías modernas;
- Todo esto permitiendo un aumento de la productividad y reducción de costos en los proyectos de los clientes.
Visionnaire rápidamente nombró
un equipo ágil para este proyecto, un equipo multifuncional que trabajó colaborativamente para satisfacer las
necesidades de Britânia. En los equipos ágiles de Visionnaire, cada equipo incluye miembros con diversas habilidades,
permitiéndoles manejar todos los aspectos del proceso de desarrollo de software, desde la planificación hasta
el despliegue.
El equipo de Visionnaire tuvo contacto frecuente
con los empleados de Britânia, incluyendo reuniones presenciales con los usuarios del sistema en desarrollo, lo cual
fue crucial para llevar a cabo un análisis exhaustivo y producir un documento comprensivo y detallado.
Este proyecto tenía un alcance híbrido,
un enfoque equilibrado que combina lo mejor de los métodos tradicionales y ágiles, promoviendo tanto la previsibilidad
y control, como la flexibilidad y adaptabilidad. Se combinaron conceptos de enfoques tradicionales y ágiles para la
definición y gestión del alcance del proyecto, aprovechando los beneficios de ambas metodologías para
satisfacer mejor las necesidades específicas de un proyecto.
Así, siguiendo un enfoque de alcance
cerrado, se realizó una planificación detallada inicial para definir las principales funcionalidades y requisitos
del sistema, proporcionando una visión clara de los objetivos y expectativas del proyecto desde el principio. Al mismo
tiempo, siguiendo conceptos de enfoques ágiles, el proyecto inicial incorporó ciclos de desarrollo cortos e
iterativos (Sprints) para que partes del alcance se ajustaran a medida que avanzaba el proyecto, permitiendo la adaptación
a los cambios en las necesidades del cliente y nuevos descubrimientos técnicos.
El alcance híbrido también permitió
entregas incrementales de funcionalidades, proporcionando retroalimentación continua de las partes interesadas y permitiendo
ajustes rápidos. Combinó prácticas estrictas de control de cambios con la flexibilidad ágil, asegurando
que los cambios de alcance se gestionaran de manera estructurada sin comprometer la adaptabilidad.
Folleto
Presentación