Rol del Arquitecto Software
Enviado por Randy Alemán • 10 de Febrero de 2019 • Ensayo • 3.774 Palabras (16 Páginas) • 137 Visitas
El ROL DEL ARQUITECTO DE SOFTWARE EN EL SEGUIMIENTO DE UN PROYECTO ÁGIL
Resumen— El contenido de este artículo analiza y expone la importancia del rol del arquitecto de software dentro del marco de un desarrollo con metodología ágil. Para esto se analiza la problemática de la entidad A, la cual carece de una figura con un conocimiento global de la arquitectura de los sistemas a lo interno de los equipos de desarrollo, provocando una serie de afectaciones en los proyectos de software. Ante esto se presenta una propuesta para darle un giro al rol que tiene el arquitecto de software dentro de la organización, con el objetivo de mejorar los resultados del ciclo de vida del de desarrollo de software y así cumplir con las expectativas de los interesados. Este artículo busca brindar una guía de acción para las empresas u organizaciones que viven situaciones similares.
Palabras claves—Arquitecto, SCRUM, Software, CAFFEA, mantenibilidad, calidad, reutilización, cascada, ágil
Abstract— The content of this article analyzes and exposes the importance of the role of the software architect in the developments that use agile methodologies. For this, we analyze the problem of entity A, which lacks a figure with a global knowledge of the organizational architecture within the development teams, causing a series of negative effects on software projects. Therefore, a proposal is presented to change the role of the software architect within the entity, with the aim of improving the results of the software development life cycle and thus meet the expectations of the stakeholders. This article attempts to provide an action guide for companies or organizations that live similar situations.
Keywords—Architect, SCRUM, Software, CAFFEA, maintainability, quality, reuse, waterfall, agile.
- Introducción
- Contexto
Hoy en día las empresas están inmersas en un ambiente altamente competitivo, por lo que realizar ajustes efectivos de manera rápida para satisfacer la demanda de los clientes, cumplir con los cambios regulatorios y adaptarse a las tecnologías de vanguardia, es clave para el éxito y permanencia de las compañías [1]. Es por esto que en los últimos años muchas entidades han optado por incluir los principios del manifiesto ágil en sus operaciones diarias. De manera más específica, una gran cantidad de empresas que implementan soluciones de software, han optado por utilizar metodologías ágiles para ejecutar las etapas del ciclo de vida de desarrollo de software (SDLC), ya sea de manera completa o parcial [2].
La organización financiera que por efectos de confidencialidad denominaremos “entidad A”, no es ajena a la situación descrita. Esta entidad hace uso de una metodología híbrida para ejecutar sus proyectos de software. Específicamente para las etapas de planificación, análisis y diseño hace uso de una metodología cascada, y para las fases de implementación, pruebas y mantenimiento utilizan la metodología ágil SCRUM.
- Metodología de desarrollo Cascada:
La metodología cascada ordena rígidamente las etapas del ciclo de vida de desarrollo de software, de tal manera que el inicio de una etapa debe esperar a la finalización de la etapa anterior [3]. También es conocido como el modelo clásico, el modelo tradicional o el modelo lineal secuencial. En la figura 1 se ilustran las etapas clásicas de la metodología.
Metodología de desarrollo SCRUM:[pic 1]
SCRUM es una de las metodologías más utilizadas para la ejecución de proyectos de desarrollo de software. Se basa en los principios del manifestó ágil [4]. Por esto es que entre sus principales características está la entrega valor de manera temprana, la aceptación de cambios durante la ejecución del proyecto, y la transparencia, la cual se ofrece mediante gráficas y métricas que muestran el trabajo que se está realizando, el avance del mismo en tiempo real, y la velocidad del equipo. SCRUM hace uso de sprints, los cuales son los bloques básicos para la construcción de incrementos de producto. Entre los principales roles que participan en esta metodología están el Product Owner, el Scrum Master y el Scrum Team. En la figura 2 se ilustra la metología.[pic 2]
- La metodología de desarrollo híbrida utilizada por la entidad A:
- Roles:
Comité de gestión de cambios: se encarga de aprobar o rechazar las solicitudes del comité continuo de cambios.
Comité continúo de cambios (CCC): propone al comité de gestión de cambios (proceso de gestión de cambios) las modificaciones o nuevas funcionalidades que se requiere se desarrollen para el departamento.
Arquitecto: apoya al comité continuo de cambios para presentar las modificaciones o nuevas funcionalidades al comité de gestión de cambios. Vela porque lo que será desarrollado cumpla con los lineamientos de arquitectura de la entidad.
Product owner: aclara las dudas de funcionalidad al scrum team y se encarga de aprobar/rechazar los incrementos de producto. Forma parte del comité continuo de cambios.
Scrum master: ayuda a resolver los impedimentos del scrum team y convoca a los participantes para que participen en las reuniones. Es el líder técnico del scrum team.
Scrum team: se encargan de diseñar, desarrollar, probar y liberar los incrementos de producto.
- Actividades:
Formulación del requerimiento: el comité continuo de cambios junto al arquitecto generan la propuesta de cambio o nueva funcionalidad.
Proceso de gestión de cambios: se reciben las solicitudes de los comités continuos de cambio para analizarlas y aprobarlas o rechazarlas. Cuando una solicitud es aprobada, ingresa al product backlog del departamento encargado del desarrollo.
Sprint planning: se estima el esfuerzo de las historias de usuario y se definen cuáles de estas van a formar parte del sprint.
Sprint: se diseña, desarrolla, prueba y libera las tareas que ingresaron al sprint backlog.
Daily standup: cada miembro del scrum team indica que hizo el día anterior, en qué va trabajar y si tiene impedimentos.
Review: el product owner revisa el resultado del trabajo realizado durante el sprint. Después de esto aprueba o solicita mejoras sobre el incremento.
Retrospective: el scrum team junto al scrum master analizan qué se está haciendo bien, qué se puede mejorar, y qué se debe evitar hacer, con el fin de tener mejora continua en el equipo.
- Ejecución:
En la figura 3 se ilustra la metodología que utiliza la Entidad A donde se utiliza una mescla entre una metodología secuencial (cascada) y la metodología SCRUM.
- Problemática
La ausencia del arquitecto de software en las etapas posteriores a la formulación del requerimiento y el proceso de gestión de cambios de la metodología híbrida en la entidad A, provoca que se no se cumpla con las expectativas de los interesados.
...