Ingeniería de Requisitos en Las Metodologías Agiles

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Ingeniería de requisitos en las metodologías agiles

José Pérez, 2021

Abstract. En la década de los 90 las metodologías ágiles no eran tenidas en


cuenta en el ámbito académico, sino hasta que empezó a existir un gran
incremento en el uso de esta metodología en la gestión y desarrollo de proyectos
por las industrias del software debido a la gran facilidad de adaptabilidad que
proporciona. Aunque inicialmente una ingeniería de requisitos (IR) no parecía
ser muy compatible con la metodología ágil por el tiempo y esfuerzo que este
último implica, con el paso de tiempo se ha observado algunos cambios y
tendencias en todo lo referente a la IR por lo que en este articulo nos enfocamos
a la IR siguiendo un enfoque ágil que contribuye a disminuir el tiempo y aumentar
la satisfacción del cliente.

Palabras claves: Ingeniería de requisitos, metodología ágil

1. Introducción

Para iniciar, se puede definir la Ingeniería de Requisitos como una disciplina de la


Ingeniería de Software que consiste en el uso sistemático y repetitivo de técnicas para
cubrir actividades de Levantamiento, Análisis y Gestión de un conjunto de
requerimientos para software que sean de calidad y atiendan a los objetivos de negocio
[1]. Si bien las actividades de elicitación, documentación y verificación de
requerimientos permiten conocer la realidad de una organización los cambios contantes
de estos requerimientos hacen que el desarrollo de un proyecto sea más complejo, por
lo que se sigue investigando sobre los métodos, técnicas y estrategias que posibiliten
crear una visión holística que contraste los métodos formales de la IR con las
metodologías ágiles.
En este artículo se presenta brevemente una guía desarrollada para la Ingeniería de
Requisitos siguiendo un enfoque ágil que contribuye a disminuir el tiempo y a aumentar
la satisfacción del cliente con la incorporación de técnicas de usabilidad desde los
inicios del desarrollo. Analizamos las metodologías ágiles más utilizadas enfocándose
en la etapa de gestión de requerimientos dentro del ciclo de vida del software. El resto
del articulo está organizado en secciones donde en la segunda sección se hace referencia
a algunas metodologías agiles para poder comprender algunas técnicas de la ingeniería
de requisitos en la metodología ágil en la sección tres. En la sección cuatro se hace
referencia al estado actual de lo relacionado a la ingeniería de requisitos en la
metodología ágil. Por último, en la sección cinco, se hace mención a una propuesta de
uso combinado de algunas metodologías agiles.

1
2. Metodologías Agiles

Hoy día existe una diversidad de metodologías agiles trabajadas y reconocidas, sin
embargo, se planteo dar un breve comentario de las siguientes:

2.1. Kanban

Si bien Kanban no es un método para el desarrollo de software, sino para la gestión


de proyectos, poco a poco se ha ido adaptando a los proyectos de esta industria. Esta
metodología de gestión, tiene como base fundamental los principios de Lean, y presenta
su practicidad en el uso de tarjetas para modelar actividades, las que se usan
comúnmente para identificar necesidades de material en la cadena de producción
Kanban sugiere sistemas de producción altamente efectivos, regidos por algunos
principios — que reflejan que su origen viene de Lean— y que, dependiendo el autor,
pueden variar, pero, aun así, mantienen la esencia

2.2. Scrum

Considerado como el método ágil más popular, Scrum es un framework iterativo e


incremental para proyectos y productos o desarrollo de aplicaciones que se desarrolla
en ciclos de trabajo llamados Sprints [2] . Considerando que no es un proceso o técnica
para construir productos; sino un marco de trabajo dentro del cual se pueden emplear
varias técnicas y procesos se puede observar que consta de 3 elementos fundamentales
para su desarrollo, el Scrum Team, los Eventos de Scrum, y los Artefactos de Scrum.
Está indicado para proyectos en entornos complejos, donde se necesitan rápidos
resultados y los requerimientos son altamente cambiantes o poco definidos
La Ilustración 1 se encarga de contextualizar al usuario del como trasciende el
proceso de desarrollo con una metodología ágil como esta

2
Ilustración 1Metodologia Ágil - SCRUM

2.3. XP, Extreme Programming

Otra de las metodologías es Extreme Programming (XP), que al igual que Scrum es
una de las más reconocidas a nivel mundial y más que todo es dado a apuntarle a
mejorar los desarrollos de software en el ámbito de la calidad de producto y de mejorar
la capacidad de apoyar al cliente atendiendo las necesidades cambiantes de los mismos.
Dentro de esta metodología las iteraciones son denominadas timeboxing y por el
contrario de Scrum, en esta metodología es factible y permisible que el usuario brinde
nuevos requisitos a ser adoptados [3].
Al igual que la metodología Scrum, tiene una serie de características que a grandes
rasgos pueden verse similares pues ambas apuntan a tener presente valores como la
simplicidad, comunicación, feedback, respeto entre otros, pues son demasiado
importantes a la hora de tener un buen desarrollo y desempeño del proyecto. Su
principal característica es que se enfoca más en la adaptabilidad que en lo que se
denomina previsibilidad como puede verse en la Ilustración 2.

3
Ilustración 2 Metodología XP

2.4. Design Thinking

Es un método para generar ideas innovadoras que centra su eficacia en entender y


dar solución a las necesidades reales de los usuarios. Proviene de la forma en la que
trabajan los diseñadores de producto [4]. Este enfoque invita al cliente a tener un rol
más activo en el diseño del producto o servicio donde, para identificar de forma clara y
precisa sus necesidades concretas. Por ello, este metodo se centra en el proceso de
diseño, más que en el producto final, e integra conocimientos técnicos del diseño, las
ciencias sociales, la empresa y la Ingeniería.

3. Técnicas de ingeniería de requisitos en las metodologías agiles

Para el éxito en el desarrollo de los proyectos existen ciertas técnicas que se adaptan
a los métodos agiles como veremos a continuación [3]

• Entrevistas. Es la principal y más utilizada dentro de las metodologías de


desarrollo ágil, pues brinda un gran acercamiento con los clientes/usuarios para
obtener la información suficiente que servirá de base o soporte para lograr los
objetivos trazados y brindarle una satisfacción al mismo, de tal manera que se

4
pueda llegar a un grado de entendimiento del problema que reduzca las inferencias
o malinterpretaciones del negocio por parte del equipo de desarrollo.

• Priorización. En este método se implementan primero las características más


relevantes que posee el sistema, en ciertas etapas puede ser dinámico el esquema
de priorización dado que en algunos momentos pueden surgir cambios que serán
tenidos en cuenta en la lista de requisitos inicial pero que como en ese inicio deben
sufrir un esquema de priorización para estructurar de nuevo el esquema de trabajo
a partir del momento de la inclusión de los nuevos requisitos al sistema.

• Reuniones de Análisis. Se usa en algunas de las metodologías ágiles a lo largo de


todo el proceso de desarrollo del producto, es decir que es transversal a este último
generando una retroalimentación constante de lo que se va trabajando, técnica la
cual consiste en sostener reuniones que permitirán realizar análisis de elementos
que hayan surgido en la etapa que transcurre, cada una de estas reuniones se
documentan con el fin de que puedan servir de apoyo en reuniones posteriores,
también de algún modo sirven para involucrar a todas las personas implicadas en
el desarrollo proyecto.

• Modelado. Se utilizan con el fin de comunicar o darle a conocer de manera


desagregadas a cada una de las partes del sistema que se va a desarrollar, y caso
contrario a como pasa en las metodologías tradicionales estos elementos no llegan
a formar parte de la documentación formal del proyecto ya que son de uso
especifico o de momento.
• Documentación. Llevar a cabo un proceso de documentación en cada una de las
fases como es llevada en las metodologías tradicionales, son muy rigurosas y
compleja y hasta inviable de acuerdo a los principios que se encuentran plasmados
en lo que se denomina el Manifiesto Ágil por lo que se recomienda, o en algunos
casos, es generar la documentación a través de los requisitos (Documento de
Requisitos), en cuanto al tema de la extensibilidad se deja a consideración de cada
uno de los integrantes del equipo de desarrollo o en su defecto del equipo en
general, adicional a esto se tiene conocimiento que esta documentación no es muy
detallado dado que se encuentra trabajando una metodología ágil.

• Validación. En las reuniones programadas, en las cuales se realice revisión y


aceptación, se analizan los objetivos y los plazos trazados para ver la grafica de
cumplimiento con respecto al cronograma pactado inicialmente. Es una técnica en
la cual se le brinda la oportunidad al usuario de que tenga una gran participación
en todo el proceso de validación del producto software en desarrollo, y el cual
permitirá de alguna manera tener un retorno a la inversión más inmediato de lo
pensado, y es por tanto una técnica basada en un esquema de simulación y pruebas
de manera automatizadas.

• Gestión. Dentro de cualquier proyecto, independientemente que sea de tecnología


o no, se debe llevar a cabo una gestión que no debe estar enfocada solo a lo que
conciernen los cambios al desarrollo del sistema sino también en ir llevando de la

5
mano a cada uno de los integrantes del equipo de desarrollo o personas que estén
involucradas, que afecten el buen desarrollo del mismo o en su defecto que se vean
afectadas por cualquier cambio que allí surja, y es algo que en los proyectos de
desarrollo de software se tiene en cuenta cuando se está trabajando con una
metodología tradicional, pues allí se le brinda una gran importancia a la
documentación y en caso de afectar el cronograma se podrá ajustar. Esto es algo
que no puede suceder en las metodologías ágiles, por eso en estas últimas la gestión
se realiza apoyándose en lo que se denominan tarjetas (Historias de Usuarios),
backlog o listas de características (esto dependiendo del nombramiento en cada
una de las metodologías).

4. Estado actual de la ingeniería de requisitos en la metodología ágil

A pesar de los beneficios que brindan las metodologías ágiles, su proceso de


adopción implica grandes retos y, según la literatura revisada, también se han
presentado varios problemas. En el caso del desarrollo de software se debe tener mayor
cuidado en las etapas iniciales del proyecto, fundamentalmente durante la IR.

De acuerdo a Dubakow, se pueden destacar algunos problemas por citar [5]:


1. iniciar con una herramienta o un proceso en lugar de conocer bien la
metodología ágil seleccionada
2. aplicar las prácticas sólo en actividades de desarrollo
3. usarla sin considerar además las técnicas
4. no solicitar información del cliente, siendo necesario para la afinación del
producto
5. errores en la especificación de requerimientos que conllevan a no contar con
objetivos claros.

En este sentido se han identificado un conjunto de elementos a suplir en el desarrollo


de nuevas propuestas para la IR entre los que se destacan:
• La falta de información como inhibidor principal de la innovación
organizacional
• Errores en la planificación adecuada de las actividades de la IR
• No contar con objetivos claros
• Falta de entrenamiento para aprender nuevos métodos y técnicas
• Falta de medición para evidenciar el éxito de la adopción de las técnicas
empleadas
• No priorizar conflictos de requerimientos de usuario
• Deficiencias en el control y seguimiento.

Como se puede apreciar, el proceso de adopción de una metodología de desarrollo


de software y fundamentalmente durante la ingeniería de requisitos está sujeto a una
serie de factores que influyen en los resultados obtenidos e inciden en el éxito o fracaso
de los proyectos de software [6].

6
5. Combinación de metodologías

En su trabajo articulo “ingeniería de requerimientos bajo un enfoque ágil integrando


técnicas de usabilidad” [7], los autores proponen el uso combinado de metodologías
ágiles y activas como SCRUM, Kanban y Design Thinking. Mediante esta interrelación
de actividades se ha logrado plantear la propuesta de solución que facilita la realización
de la IR mediante las iteraciones de SCRUM, el prototipado del Design Thinking y el
control y seguimiento a través de Kanban.

Para una mejor comprensión, se agrupan las actividades a realizar en tres procesos
fundamentales basado en mejores prácticas como muestra la Ilustración 3

Ilustración 3 Mejora Continua

A continuación, serán descriptos los procesos propuestos integrando diferentes


técnicas de usabilidad:
Definir y Priorizar tareas: En este proceso mediante entrevistas con el cliente se
describen sus necesidades que luego son transformadas en requerimientos de software.
Es importante en esta etapa identificar elementos propios del entorno, así como
características de los usuarios potenciales del software a desarrollar. Estos elementos
contribuirán a ejecutar satisfactoriamente el proceso siguiente. En resumen, se propone
identificar las necesidades del usuario y comprender el problema (Entender), los cuales
serán transformados en requerimientos
Diseño y Prototipado: Se puede aseverar que este es uno de los procesos más
importantes, ya que luego de contar con la lista de los requerimientos, éstos se deben
comenzar a diseñar. La etapa de diseño es una etapa que se compone de varias
actividades importantes. En primer lugar, es necesario clasificar los requerimientos
identificados, así como otorgarles un grado de prioridad como parte de su proceso de
evaluación para luego definirlo en bocetos los cuales serán transformados con el uso de
herramientas que facilitan el proceso de prototipado

7
Control y Seguimiento: En este proceso se desarrolla un tablero de Kanban. Este
tablero se compone inicialmente de todos los elementos que se quieren revisar o
evaluar. Dentro de estos tenemos Pendiente, donde se ubica la lista de actividades
definidas a realizar en la etapa inicial y a la cual se desea trazar. Se agregan tarjetas de
cada necesidad y se establecen listas de chequeo para garantizar su cumplimiento.
Posteriormente aparece otro tablero llamado Haciendo que contiene las actividades en
las que se estén trabajando en el momento, donde los involucrados van pasando sus
tarjetas cuando lo consideren listas.

6. Conclusiones

La elaboración de este articulo permitió valorar la importancia y necesidad de


integración de las herramientas mencionadas en el desarrollo de software ágil para una
implantación exitosa y por sobre todo con los usuarios finales satisfechos.
A partir de los elementos estudiados se pudo obtener una guía para la Ingeniería de
Requerimientos que integra técnicas de usabilidad siguiendo un enfoque ágil. Entre los
elementos fundamentales que la guía incluye se encuentran la definición de cada uno
de los procesos a realizar, así como una propuesta de tecnologías y técnicas de
usabilidad a emplear para alcanzar mejores resultados.

Referencias

[1] G. S. Simões, “CIO Peru,” https://cioperu.pe/articulo/25881/la-ingenieria-de-


requerimientos-en-el-contexto-agil/, May 23, 2018.
[2] K. S. J. Sutherland, “The scrum papers: Nut, bolts, and origins of an Agile
framework,” 2011.
[3] D. A. Jhoao Gonzalez, “eafit,”
https://repository.eafit.edu.co/bitstream/handle/10784/1614/Jhoao_Gonzalez
_Diego_Anduquia_2012.pdf;jsessionid=33FF1B42B6FBA2C29145E065D7D
4DD5D?sequence=3, 2012.
[4] DINNGO, “Design Thinking,”
https://www.designthinking.es/inicio/index.php, Nov. 21, 2020.
[5] M. Dubakow, “10 Most Common Mistakes in Agile Adoption,”
http://www.targetprocess.com/blog/2010/10/10-most-common-mistakes-in-
agileadoption-part-i.html, 2010.
[6] R. J.-R. C. H. S. J. and C. G.-G. J. López-Martínez, Problems in the adoption
of Agile-Scrum methodologies: A systematic literature review. 2016.
[7] MSc. C. L. V. MSc. Juan Carlos Mejias Cruz, “INGENIERÍA DE
REQUERIMIENTOS BAJO UN ENFOQUE ÁGIL INTEGRANDO
TÉCNICAS DE USABILIDAD,” Feb. 2020.

También podría gustarte