miércoles, 14 de octubre de 2020

Resumen de la implementación de una metodología ágil

Se propone una metodología llamada AgEnD que del Ingles Agile Enhanced Development significa Desarrollo Mejorado por Agilidad. En este resumen se hace un recuento por la descripción de esta metodología.

Roles definidos

En el uso de las metodologías ágiles es muy importante definir los roles de todas las personas que intervienen en el proyecto. Los roles son los que aglutinan todas las actividades realizadas de las personas que están incluidas en el desarrollo del software pero también a todas aquellas que se vean afectados por el proyecto.

Los roles en los equipos ágiles no son exclusivamente llevados a cabo por una sola persona como los desarrolladores, por otro lado hay personas que realizan diferentes roles por ejemplo arquitecto/Escritor técnico. El rol del líder lo realiza una sola persona y dirige los recursos según sus aptitudes en cada iteración.

Patrocinante (Executive Sponsor)

Actividades:  tiene a su cargo el soporte gerencial del proyecto; es el encargado de proveer, comunicar y mantener actualizada la Visión del proyecto; provee el presupuesto para la viabilidad económica del desarrollo; es responsable por la consecución del proyecto del lado del cliente. 

Importancia del rol: es esencial para el éxito del mismo, ya que un software que no tiene aceptación dentro de la organización que lo financia jamás llegará a ser construido en tiempo, forma y con
consentimiento de los usuarios, no siendo utilizado eventualmente si se concreta el proyecto.

Líder del Proyecto (Project Manager)

Actividades:  está a su cargo la planificación del proyecto a lo largo de todo el ciclo de vida,  asignar recursos y delegar responsabilidades en el equipo ágil, incluida la planificación en detalle de cada iteración. Es el responsable de un trabajo en equipo eficiente, monitorea el progreso y establece estrategias y metas.

Importancia del rol: es el líder de proyecto y representa la cara visible del equipo de desarrollo, es el nexo existente entre la gerencia y el equipo de desarrollo.

Experto en el Dominio (Domain Expert)

Actividades: Es la persona que tiene el conocimiento del negocio y la encargada de brindar asesoría contribuyendo al modelado del sistema que llevan a cabo los Analistas durante la ingeniería de requerimientos. Participará junto con los Testers en la definición del contenido de las pruebas funcionales a ser
realizadas; será el responsable de la aprobación de las pruebas de aceptación por cada release entregado. 

Importancia del rol: el Experto en el Dominio permite al Equipo de Desarrollo aprender sobre el negocio para el cual está siendo construida la aplicación; son encargados de resolver cualquier cuestión relacionada con la funcionalidad de la aplicación junto con los Analistas.

Destrezas:  el Experto en el Dominio deberá conocer en detalle el negocio para prestar respuesta a cualquier duda que pueda surgir del mismo. En general será un miembro de la empresa Cliente. 

Coordinador (Mentor)

Actividades: tiene a su cargo la supervisión del proceso, y cualquier actividad orientada al mejoramiento del mismo. Durante las primeras etapas de utilización de AgEnD supervisará la implementación del proceso. 

Importancia del rol: en las metodologías ágiles este rol permite reforzar la adherencia al proceso en aquellos momentos en que el tiempo apremia y se suele caer en el modelo Codificar y Probar

Destrezas:  el Experto en el Dominio deberá conocer en detalle el negocio para prestar respuesta a cualquier duda que pueda surgir del mismo.

Analista (Functional Analyst)

Actividades: tiene a su cargo el relevamiento, mediante el cual se obtienen los requerimientos de la aplicación a ser construidos en cada iteración; realiza la especificación de los requerimientos; prepara el
documento de Visión.

Importancia del rol:  el aprendizaje del dominio de la aplicación y de los requerimientos que deberá tener la misma son claves para el éxito del proyecto y la aceptación del mismo por parte del usuario.

Destrezas: el Analista deberá tener amplio conocimiento de técnicas de relevamiento, así como aptitudes sociales que le permitan vencer el “Síndrome del Usuario y el Desarrollador”.

Arquitecto (Architect)

Actividades: tiene a su cargo la definición de la arquitectura que guiará el desarrollo, y de la continua refinación de la misma en cada iteración; deberá construir cualquier prototipo necesario para probar aspectos riesgosos desde el punto de vista técnico en el proyecto; definirá los lineamientos generales del diseño y la implementación. 

Importancia del rol: el arquitecto puede ser considerado como el Experto en la parte técnica del
desarrollo y debe mantener a todo el equipo en conocimiento de los lineamientos fundamentales de la construcción.

Destrezas: el Arquitecto deberá tener una buena formación técnica, contar con experiencia en las herramientas y técnicas utilizadas; aptitudes comunicacionales son deseadas para que la arquitectura sea comunicada a todos los miembros del equipo.

Programador o Desarrollador (Designer - Programmer) 

Actividades: tiene a su cargo la codificación de los componentes a desarrollar en la iteración; debe crear y ejecutar los tests unitarios realizados sobre el código desarrollado; es responsable de las clases que
ha desarrollado debiendo documentarlas, actualizarlas ante cambios y mantenerlas bajo el control de configuración de las mismas mediante la herramienta de SCM utilizada. 

Importancia del rol: el Programador es la persona que tiene los materiales y lleva a cabo la implementación de los casos de uso en el lenguaje de programación elegido; como en general, es el paradigma de objetos el que está imponiéndose en la industria de IS/IT, el Programador definirá las clases y métodos que realicen los correspondientes casos de uso.

Destrezas: el Analista deberá tener amplio conocimiento de las herramientas de desarrollo, del lenguaje de programación, de los aspectos técnicos involucrados. 

Tester


Actividades: tiene a su cargo la generación de pruebas funcionales a partir de los requerimientos extraídos por los Analistas. 

Importancia del rol: crea, ejecuta, analiza y mantiene el conjunto de pruebas automatizadas y manuales que son utilizados.

Destrezas: el Tester deberá tener amplio conocimiento de técnicas de testing, deberá conocer a fondo la aplicación que testeará. Asimismo, deberá tener conocimientos de programación para trabajar con las
pruebas automatizadas.

Administrador del Conocimiento (Knowledge Manager)

Actividades: tiene a su cargo la captura, refinamiento, empaquetamiento, y transferencia del conocimiento, ya sea tácito o explícito, en la organización. 

Importancia del rol: Su importancia consiste en la capacidad del equipo de desarrollo de aprender de la experiencia que éste y que otros equipos dentro de la organización generan a diario durante el transcurso de los proyectos. Mediante esta disciplina se logra el reuso de dicho conocimiento.

Destrezas: el Administrador del Conocimiento debe poseer aptitudes en comunicación para poder capturar el conocimiento de aquellas personas que lo generan. 





Referencia:

Hernan, Schenone. (2004). Diseño de una metodología ágil de desarrollo de software. Facultad de Ingeniería. Universidad de Buenos Aires. 



No hay comentarios.:

Publicar un comentario