Está en la página 1de 12

Trazabilidad Ágil

Paula Izaurralde, Natalia Andriano


Universidad Tecnológica Nacional, Facultad Regional Córdoba

Abstract a la obtención (elicitation en inglés) y


El presente trabajo resume el esfuerzo de gestión de cambios de requerimientos [2],
investigación desarrollado en la primera etapa
dentro del marco de la tesis de maestría “Modelo
que no han podido ser abordados por los
Adaptable de Trazabilidad de Requerimientos de procesos de desarrollo tradicionales, surgen
Software en Entornos Ágiles de gran escala”, el las metodologías ágiles dando lugar a la
cual tiene por objetivo revisar las prácticas de creatividad y sensibilidad frente a
ingeniería de software para el desarrollo de condiciones cambiantes enfatizando la
requerimientos, con foco en el proceso de
especificación de los mismos. Se plantea como
participación del cliente y la rápida reacción
objetivo determinar los principales atributos y a los cambios de requerimientos y entregas
características que debe cumplir un requerimiento, continuas del producto [3].
revisando la bibliografía existente sobre técnicas de
especificación de requerimientos de software en Las metodologías ágiles se basan en la
Scrum e identificando las características de un buen
requerimiento según IEEE. Por último, se analiza el
premisa de que en las fases iniciales de un
uso y la importancia de la trazabilidad de los proyecto, los requerimientos deben
requerimientos en proyectos de desarrollo de explorarse en un alto nivel de abstracción
software que adoptan métodos ágiles, para evaluar [4]. El objetivo de esta primera etapa
si la implementación de dicho criterio de calidad es consiste en comprender el alcance del
útil o no. En particular se concluye que las historias
de usuario son requerimientos de software, ya que
proyecto, identificar los objetivos, construir
expresan el problema que el sistema o producto una visión de desarrollo común y
software debe resolver y se descubre que el modelo determinar los requerimientos iniciales [5].
INVEST para la definición de historias de usuario Los dueños del producto mantienen una
no contempla algunos de los atributos de calidad lista de requerimientos de software
planteados por la IEEE, más precisamente los
criterios de completitud y trazabilidad.
priorizada de acuerdo al valor de negocio
que cada una de ellas provee. De esta lista
Palabras Clave: trazabilidad, requerimientos, se toman los principales ítems para el
agiles, historias de usuarios, Scrum, Modelo desarrollo de cada iteración. Los
INVEST, IEEE requerimientos son analizados con mayor
detalle a medida que van siendo
1. Introducción
implementados en las iteraciones [4].
Por mucho tiempo se ha pensado que la
captura de los requerimientos es una fase
Para lograr verificar que dichos
temprana de los proyectos de desarrollo de
requerimientos son realmente
software, que una vez completada sienta las
implementados surge como un atributo de
bases a partir de las cuales se lleva a cabo el
calidad [6] la trazabilidad de los
desarrollo del mismo [1]. La realidad ha
requerimientos de software. Trazabilidad se
demostrado que los clientes rara vez
refiere a la habilidad de poder describir y
conocen sus propias necesidades con
seguir la vida de un requerimiento en ambas
suficiente profundidad como para definirlas
direcciones, es decir, desde su origen y
a priori, ya que durante la vida del proyecto,
especificación, hasta su implementación y
las necesidades y prioridades de los clientes
uso, como así también durante su constante
cambian [1]. En este marco y en respuesta a
refinamiento [7]. Permite determinar que
los desafíos presentados por el desarrollo de
todos los requerimientos han sido
productos de software modernos en relación
completamente desarrollados, abarca la
relación con otros artefactos de trabajo. Es atributos y características de un buen
utilizada fundamentalmente cuando es requerimiento y 2) Explorar y obtener
preciso evaluar el impacto de los cambios conocimiento teórico sobre buenas prácticas
en las actividades del proyecto o en los de gestión de requerimientos desde modelos
artefactos de trabajo [8]. más tradicionales a modelos más “ágiles”.
En este contexto la gestión de
La trazabilidad es una práctica de ingeniería requerimientos se limita tan sólo al
que se propone de forma independiente al desarrollo y manutención de la trazabilidad
proceso o metodología de desarrollo [9]. de los mismos.
Por lo tanto, los métodos agiles no están
exentos a mantener la trazabilidad de los Se debe destacar que el primer objetivo de
requerimientos de software [10]. Sin investigación fue presentado como trabajo
embargo, existen opiniones encontradas de especialidad [13].
respecto a la importancia de la trazabilidad
de los requerimientos en las metodologías El trabajo será elaborado en diferentes
ágiles. Por un lado Scott W. Ambler [4] secciones. La sección de Elementos de
sostiene que los beneficios de poseer una Trabajo y Metodología define cuáles son
matriz de trazabilidad hacen más sencillo el los pasos llevados a cabo durante la
análisis del impacto de un cambio de investigación y presenta los conceptos
requerimiento; pero también considera que sobre los que se basó dicho análisis; la
poseer una o más personas familiarizadas sección Resultados y discusiones presentan
con el sistema generan el mismo efecto, y los descubrimientos de la investigación y
resulta más fácil y económico solicitar a los hallazgos realizados por varios autores.
estos expertos que estimen el impacto del Por último, se desarrollarán las
cambio. Las matrices de trazabilidad han conclusiones del trabajo y detallarán los
sido sobrevaloradas, dado que los costos de pasos a seguir en las próximas etapas de
mantenerlas, aún cuando se utilizan investigación.
herramientas específicas a tal fin, superan
por mucho a los beneficios [4]. Por otro 2. Elementos del Trabajo y metodología
lado, existen quienes creen [11] que es más Para poder dar comienzo a dicho análisis,
preciso determinar los costos y el tiempo como primer paso fue preciso determinar
que llevará implementar un cambio cuando cómo se especifican los requerimientos en
se posee una trazabilidad completa en vez metodologías ágiles como Scrum [14] y qué
de contar con un ingeniero o un características deben poseer dichas
programador familiarizado con todas las especificaciones para cumplir con las
áreas afectadas por el mismo. características de un buen requerimiento
según la IEEE [6].
El presente trabajo muestra los resultados
de la investigación realizada durante la 2.1 Requerimientos y especificación
primera etapa del plan de tesis de Maestría Para ello se tomaron como base los
en Ingeniería en Sistemas de Información, siguientes conceptos. Requerimiento es
“Modelo Adaptable de Trazabilidad de [15]:
Requerimientos de Software en Entornos (1) Una condición o capacidad
Ágiles de gran escala” UTN-FRC. Dicha requerida por un usuario para resolver un
etapa presenta 2 objetivos bien problema o alcanzar un objetivo.
diferenciados: 1) Explorar y obtener (2) Una condición o capacidad que debe
conocimiento acerca de diferentes formas ser poseída por un sistema o componente de
en las que pueden encontrarse especificados un sistema para satisfacer un contrato, un
los requerimientos de software en entornos estándar, una especificación u otro tipo de
ágiles mediante la identificación de los documento formalmente impuesto.
(3) Una representación documentada de la perspectiva de la persona que desea dicha
una condición o capacidad según 1 y 2. funcionalidad, usualmente un usuario [19].

La especificación de requerimientos es el Poseen las siguientes características: una


paso en donde los resultados de la descripción escrita que será utilizada para
identificación de los requerimientos se planificar y posteriormente disgregar los
“retratan” [16]. El proceso de detalles con el dueño del producto, las
especificación tiene por objetivo obtener conversaciones propiamente dichas con el
documentación no ambigua y completa de dueño del producto y las pruebas que han
los requerimientos de software. Los de determinar si las historias están
beneficios de la especificación de los finalizadas o no [20]. Generalmente se las
requerimientos de software se describen a escribe en post-its (notas), y se las dispone
continuación [6]: en una pared o una mesa para facilitar de
• Establecer una base de acuerdo entre los este modo la planificación y discusiones
clientes y los proveedores acerca de lo que que se llevan a cabo durante la misma. La
el software debe hacer. parte más importante de las historias de
• Reducir el esfuerzo de desarrollo: Dado usuario es la conversación que se genera en
que se especifican y validan previo al torno a las mismas. Estas notas representan
desarrollo. los requerimientos del cliente y típicamente
• Servir de base para estimar costos y se las escribe como se muestra en la
calendario. siguiente figura:
• Sentar las bases a partir de las cuales se
pueden efectuar actividades de verificación
y validación.
• Facilitar la transferencia de los Como <Tipo de Usuario>,
requerimientos de software a otros
necesito <algún objetivo>
interesados.
• Servir de base para elaborar mejoras para poder <alguna razón>
posteriores al producto.

La especificación de los requerimientos de


software es el proceso de grabado o el
registro de los requerimientos en una o más
Figura 1: Historia de Usuario.
formas, incluyendo el lenguaje natural y
formal, representaciones simbólicas o
Uno de los beneficios de las Historias de
gráficas [17].
Usuario es que pueden ser escritas en
diferentes niveles de detalle. Es posible
Una característica importante sobre la
escribir historias que cubren múltiples
especificación de los requerimientos de
funcionalidades. Estas historias más
software es que debe ser escrita por uno o
grandes son llamadas Épicas y dado que
más representantes del proveedor, uno o
típicamente no pueden ser finalizadas en
más representantes del cliente o por ambos
una iteración, se las divide en múltiples
[18].
Historias de Usuario [21].
Desde el punto de vista de las metodologías
En la actualidad, los requerimientos de
ágiles, las Historias de Usuario se focalizan
software pueden encontrarse especificados
en establecer conversaciones acerca de las
tanto en libros de requerimientos [2], como
necesidades de los clientes. Son
así también en historias de usuario, épicas,
descripciones cortas y simples de las
escenarios de prueba como el Desarrollo
funcionalidades del sistema, narradas desde
Guiado por Pruebas o TDD (por sus siglas
en inglés Test Driven Development) [22] y
el Desarrollo Guiado por Comportamiento El objetivo es crear un proceso en el cual se
o BDD (por sus siglas en inglés Behavior definan, revisen, organicen y comuniquen
Driven Development), entre otros [24]. los requerimientos. El proceso comienza
identificando y construyendo una pila de
2.2 Las historias de usuario en el proceso requerimientos. Esta pila es una lista de
de desarrollo de requerimientos elementos que deben definirse en orden
Las Historias de Usuario son escritas a lo para poder alimentar la pila del producto.
largo de todo el proyecto de desarrollo.
Usualmente al comenzar un proyecto se El objetivo final puede ser una lista de
lleva a cabo un workshop donde participan historias de usuario, requerimientos
todos los miembros del equipo, con el fin funcionales, etc. El equipo de
de crear un product backlog1 que describa requerimientos decide, basado en las
las funcionalidades que van a desarrollarse estrategias y objetivos del negocio, qué
en el curso de los siguientes tres a seis cosas deben definirse. Al igual que los
meses [25]. equipos de desarrollo, el equipo de
requerimientos puede planear su iteración,
Los dueños del producto son responsables llevar a cabo el trabajo y finalmente tener
de que exista una pila de producto una reunión de revisión. Si los resultados de
compuesta de Historias de Usuario, sin la iteración cumplen con las expectativas
embargo, no necesariamente son ellos planteadas, entonces pueden moverse a la
quienes deben escribirlas. Lo importante es pila del producto. En muchos casos, las
que participen en las discusiones que organizaciones desarrollarán documentos
aportan mayor detalle sobre las necesidades que no necesariamente terminarán en la pila
de los usuarios [25]. del producto, sino que serán consultados
por los equipos durante el desarrollo.
Uno de los problemas que la mayoría de las
organizaciones tiene que enfrentar es Aquí es donde la trazabilidad de los ítems
mantener una pila de producto actualizada del producto a cualquier otro documento
para que los ítems del producto puedan ser externo se torna importante. Otra de las
tomados por los equipos de desarrollo [26]. partes importantes de este marco de trabajo
La definición y gestión de requerimientos es la Descomposición. La Descomposición
ágiles ha sido diseñada específicamente es el proceso por el cual los ítems del
para resolver este problema. El objetivo es producto son comunicados y refinados
alimentar la pila del producto a un ritmo junto con los equipos de desarrollo. En
mayor al que los equipos de desarrollo Scrum esto es conocido como preparación
pueden generar código. Este marco de de la pila del producto o backlog grooming
trabajo puede utilizarse tanto para la [26].
generación de requerimientos justo a
tiempo o just in time (JIT) como para el Cabe destacar que los mismos principios
armado de un repositorio de requerimientos [26] que se utilizan en el desarrollo de
que han de desarrollarse en el futuro [26]. software bajo metodologías ágiles pueden
Se utiliza un ciclo similar al ciclo Scrum aplicarse también a la definición y gestión
[25] que emplean los equipos de desarrollo. de requerimientos.
La diferencia es que este ciclo se encuentra
dos o tres etapas adelantado a los equipos
de desarrollo (Ver Figura 2: Definición y
Gestión de Requerimientos Ágiles [26]).
1
Product Backlog se refiere a una lista priorizada
de historias de usuario.
Figura 2: Definición y Gestión de Requerimientos Ágiles [26]

2.4 Un enfoque de trazabilidad ágil:


Para lograr desarrollar y mantener una
2.3 Trazabilidad trazabilidad útil en metodologías ágiles,
Como segundo paso fue necesario entender Appleton [27] sugiere algunas pautas a
qué es la trazabilidad; cuáles son sus tener en cuenta, como se menciona a
ventajas y desventajas en metodologías continuación:
tradicionales y después mapear éstas a las Minimizar los artefactos de trabajo
metodologías ágiles. que se incluirán en la trazabilidad. Generar
todos los requerimientos del software al
Tradicionalmente, la trazabilidad de los inicio del proyecto implica un gran esfuerzo
artefactos del producto software ha tenido tanto de especificación como de
origen en los requerimientos y se han trazabilidad [27]. Precisamente una de las
instanciado de diferentes maneras: características de los métodos ágiles es que
productos específicos de gestión de los requerimientos de software se definen
requerimientos, bases de datos, hojas de progresivamente durante el ciclo de
cálculo o procesadores de texto desarrollo [5], por lo que definir el producto
convencionales [27]. completo al inicio del proyecto significa
esfuerzo extra que debe invertirse para
Utilizando la trazabilidad, puede seguirse el mantener la trazabilidad de los
historial de una característica implementada requerimientos cada vez que surge un
hasta las personas o grupos que la cambio en la definición del producto.
solicitaron, permitiendo un rápido análisis Minimizar las fuentes de
en cada fase del proyecto para [28]: almacenamiento de información. Facilitar el
• Determinar la visión original y acceso de los artefactos de trabajo a los
permitir una discusión controlada de los miembros del equipo [27].
cambios en el alcance. Estabecer el nivel de granularidad
• Determinar qué elementos se verán de trazabilidad que será útil para el
afectados cuando consideramos agregar un proyecto. Determinar el detalle que se
nuevo requerimiento o modificar uno ya necesita: realizar trazabilidad ¿a
existente requerimientos o casos de uso?, ¿ a líneas
• Verificar que el requerimiento de código, métodos, clases o módulos?
contempla todos lo que el interesado [27].
solicitó. Automatizar la trazabilidad lo más
• Verificar que la aplicación no que se pueda [27]. Las herramientas
implementa funcionalidades no cumplen un rol muy importante en la
demandadas por el cliente. trazabilidad, ayudan a crear y mantener
información, relacionar artefactos de si las pruebas pasan, uno puede asumir que
trabajo y navegar dichas relaciones [28]. existe código que implementa dicho
requerimiento. Si posteriormente la rutina
Tambien [27] menciona recomendaciones es modificada, las pruebas dejarán de pasar
que ayudan a la trazabilidad: y deberán ser corregidas [31].
Herramientas de control de
versiones e integración de éstas con las 3 Resultados y discusiones
herramientas de gestión de productos [27]: Siguiendo con la definición de
Si los artefactos de trabajo que se generan requerimientos de software de la IEEE [15]
durante el ciclo de desarrollo de software citada previamente, podemos concluir que
(requerimientos, modelos, código, casos de las historias de usuario son requerimientos
prueba, etc.) son almacenados en un ya que expresan el problema que el sistema
repositorio, y éste se encuentra integrado o producto software debe resolver.
con la herramienta de gestión del producto,
entonces es posible la trazabilidad de las Sin embargo, las historias de usuarios no
actividades a los artefactos de trabajo cumplen con todas las características
relacionados. planteadas en IEEE [13] según [21]. Para
Implementación de técnicas como el poder verificar la calidad de una historia de
Desarrollo Guiado por Pruebas o TDD (por usuario surge el modelo INVEST [32] que
sus siglas en inglés Test Driven presenta una serie de atributos a tener en
Development) [22] y el Desarrollo Guiado cuenta para lograr escribir buenos
por Comportamiento o BDD (por sus siglas requerimientos en metodologías ágiles.
en inglés Behavior Driven Development)
[23]. Estas técnicas permiten particionar el El modelo INVEST [32] (por sus siglas en
trabajo en tareas y relacionarlas con los inglés Independent, Negotiable, Valuable,
artefactos de trabajo necesarios para Estimable, Small, Testeable) es la clave
implementar un requerimiento. Es decir, para pensar y escribir buenas historias de
una misma tarea va a relacionar a todos los usuario. Las historias deben ser
artefactos de trabajo requeridos para poder Independientes, Negociables, Valiosa,
implementar un requerimiento Estimables, Pequeñas y Testeables [32].
(requerimiento, diseño, código, casos de • Independiente: Esto significa que las
prueba, etc.). historias de usuario deben poder
implementarse, probarse y entregarse por sí
Por otro lado Beck [31] menciona que mismas sin depender de otras
existe también un enfoque de trazabilidad funcionalidades [32]. La dependencia entre
que mapea a las historias de usuario con las las historias de usuario hace que sea más
pruebas de aceptación. Los dueños del difícil planificar, priorizar y estimar. A
producto deberán especificar las pruebas de menudo, se pueden reducir las
aceptación que determinarán si las historias dependencias haciendo una combinación de
de usuario han sido implementadas o no historias, o partiéndolas de forma diferente.
[20]. Tanto los miembros del equipo como • Negociable: A diferencia de los
el dueño del producto deben acordar que requerimientos tradicionales, las historias
existen un conjunto de pruebas de de usuario no son obligaciones
aceptación que demuestran que las historias contractuales [32], sino más bien el
han sido implemantadas satisfactoriamente. compromiso de establecer conversaciones
La relación entre las historias de usuario y con el dueño del producto para convenir los
las pruebas de aceptación constituyen una detalles de los requerimientos y así poder
forma de trazabilidad. Podría no ser implementarlos, probarlos y validarlos. Este
necesario mantener trazabilidad entre es el proceso de negociación mediante el
historias de usuario y código fuente, ya que cual el equipo de desarrollo reconoce las
necesidades del negocio, pero también enfoque es conocido como Desarrollo
aporta sus ideas en base a la colaboración y Guiado por Pruebas (TDD) [22].
retroalimentación.
• Valiosa: El objetivo de los equipos Desde el punto de vista de la utilidad de la
Scrum es proveer valor a los clientes y trazabilidad en metodologías ágiles existen
usuarios con los recursos disponibles, en el diferentes opiniones. Por un lado [33]
tiempo disponible. Ese es el motivo que menciona que las matrices de trazabilidad
hace que ésta sea la característica más deberían ser requeridas sólo cuando existe
importante del modelo INVEST [32]. Los un riesgo de perder información corporativa
ítems del producto son priorizados en de valor. Si este no fuera el caso, entonces
función del valor que cada historia proveerá la trazabilidad se encuentra disponible en
a los clientes, usuarios y demás diversas formas: conversaciones, historias
stakeholder2 del producto. Una forma muy de usuario, código fuente, casos de prueba
eficaz de generar historias valiosas es hacer automáticos, documentos de diseño,
que el cliente las escriba. reuniones diarias de avance, correos
• Estimable: Los desarrolladores electrónicos, etc.
necesitan poder estimar una historia de
usuario para que se pueda priorizar y Por otro lado [27] reconoce el valor y la
planificar. Los problemas que pueden importancia de establecer y mantener
impedirle a los desarrolladores estimar una trazabilidad de los requerimientos, pero no
historia son: falta de conocimiento del acepta los modos tradicionales de hacerlo.
dominio (en cuyo caso se necesita más Por su parte [34] menciona que en treinta
negociación / conversación); o si la historia años de experiencia en la industria del
es muy grande (en cuyo caso se necesita software, en investigación y en el gobierno,
descomponer la historia en historias más nunca ha percibido el retorno de inversión
pequeñas). de las matrices de trazabilidad.
• Pequeña: Una buena historia debe
ser pequeña en esfuerzo, generalmente El desconocimiento sobre la importancia de
representando no más de 2-3 la trazabilidad se manifiesta en lo poco que
personas/semana de trabajo. Una historia se sistematiza en esta área. La cultura del
que es más grande va a tener más errores desarrollo de sistemas exige cada vez más
asociados a las estimaciones y al alcance. documentación adecuada, sin embargo el
Las historias de usuario deberían ser lo mantenimiento y seguimiento de esta
suficientemente pequeñas como para poder documentación no se lleva de manera
ser implementadas en una iteración. apropiada, la trazabilidad es una forma de
• Verificable: No se desarrolla lo que cambiar esta cultura y minimizar los
no puede ser probado. Si no puede fracasos en los proyectos de desarrollo de
probarse, nunca va a saberse si se ha software [35].
terminado. Si una historia no puede ser
verificada probablemente sea muy Según [36] [21] las razones para hacer
compleja, o tenga muchas dependencias con trazabilidad en proyectos ágiles se
otras historias. Para lograr que las historias mencionan a continuación:
de usuario hayan sido probadas antes de 1. Porque existe información de las
finalizar la iteración, algunos equipos de historias de usuario que no se documenta en
desarrollo emplean un enfoque que el código: la razón u objetivo que se
comienza creando los casos de prueba y persigue con dicho requerimiento.
luego continúa con la codificación, este 2. El valor que proporciona la
funcionalidad.
2
Un stakeholder es una persona que afecta o es
afectada por el proyecto [44].
3. Porque los desarrolladores rara vez agregar los detalles que sean necesarios.
podrán recordar el propósito de las Los testers3 escriben los casos de prueba
funcionalidades. que verifican los requerimientos, porque
4. Porque es esencial establecer y éstos últimos representan el acuerdo con el
mejorar el conocimiento del producto y de cliente, sin embargo, vuelven a las historias
su dominio en la organización. de usuario para comprender mejor cómo
estructurar los casos de prueba y de este
A pesar de que las metodologías ágiles modo asegurarse que las funcionalidades
fueron diseñadas para utilizar historias de más importantes han sido probadas en
usuario, el desarrollo de las aplicaciones profundidad. Para que esto sea posible se
está dirigido en su mayoría por deben relacionar de algún modo las
requerimientos tradicionales [37]. Muchas historias de usuario y los requerimientos
de las organizaciones que subcontratan sus (trazabilidad) y asegurarse de que todos los
productos utilizan requerimientos como requerimientos han sido mapeados a una o
medio para definir y acordar lo que se debe más historias de usuario. Se parte de un
construir. En estos casos, los equipos de documento de requerimientos del producto
desarrollo han tenido que encontrar el modo que luego es descompuesto en
de trabajar con ambos a la vez. Las historias funcionalidades, las cuales conocemos
de usuario proveen flexibilidad en el diseño como historias de usuario [39].
y en la implementación. Los requerimientos
proveen precisión y facilidad de gestión 4 Conclusión
[37]. Surge de este modo la siguiente Para lograr entender la importancia de la
pregunta ¿pueden coexistir ambos?. Los trazabilidad tanto en metodologías
equipos deben estructurar el proyecto con el tradicionales como en metodologías ágiles
objetivo de aprovechar al máximo las es necesario comprender qué es un
ventajas de cada uno. Una forma de hacerlo requerimiento, qué diferencia existe con la
es utilizando los requerimientos como el especificación de requerimientos y cuál es
acuerdo entre los clientes y/o usuarios y el la necesidad de que los mismos sean
equipo de desarrollo, ya que los expresados con cierto nivel de calidad. El
requerimientos son estructurados, objetivos requerimiento expresa el problema que el
y pueden definir exactamente lo que se sistema o producto software debe resolver
debe implementar; y las historias de [21]. La especificación del requerimiento en
usuario, ya que pueden construir el contexto cambio es el registro del requerimiento en
que ayuda a los equipos de desarrollo a una o más formas. Con el objetivo de
entender cómo se va a utilizar la aplicación. definir los atributos y características
Las historias de usuario pueden deseables para la especificación de los
administrarse en forma conjunta con los requerimientos en metodologías ágiles, se
requerimientos sin necesidad de invertir revisaron los objetivos y las buenas
demasiado esfuerzo adicional si ambos prácticas de desarrollo de requerimientos
representan las mismas funcionalidades según el estándar IEEE830 [6]. Inicialmente
desde diferentes puntos de vista; el del uso: se había planteado la hipótesis de que las
las historias de usuario y el sistémico: los historias de usuario podrían ser compatibles
requerimientos [38]. Esto significa que, una con los atributos del estándar de la IEEE
historia de usuario podría estar relacionada [6], sin embargo se encontró bibliografía
con múltiples requerimientos y que un que dice exactamente lo opuesto [21].
requerimiento podría a su vez, ser explicado
por múltiples historias de usuario [37]. Los
programadores utilizan las historias de
usuario para diseñar e implementar las 3
Un tester es aquel que se dedica a realizar pruebas
funcionalidades, y los requerimientos para a nuevas aplicaciones o a modificaciones de
aplicaciones existentes.
Durante el desarrollo del trabajo también se especifique cómo calcular un valor o
ha visto que las historias de usuario cualquier otro artefacto que consideren el
constituyen un enfoque de requerimientos dueño del producto o los miembros del
que hace énfasis en la comunicación y equipo [19]. Incluso en algunos casos
participación de los usuarios en el proceso coexisten los documentos de especificación
de desarrollo [21]. Los clientes rara vez de requerimientos y las historias de usuario.
conocen sus propias necesidades y durante
el transcurso del proyecto esas necesidades Por otro lado se ha mencionado la
y prioridades pueden cambiar. Las historias importancia de mantener trazabilidad de
de usuario favorecen el trabajo en requerimientos, pautas y recomendaciones
iteraciones lo cual facilita la adaptación a [27] para el desarrollo y mantenimiento de
los cambios. También se ha visto que la misma tanto en metodologías
expresar los requerimientos de software tradicionales como en metodologías ágiles.
como historias de usuario puede ocasionar Sin embargo existen algunos autores [40]
algunos problemas. El arte de escribir [33] [34] [4] que no reconocen del todo el
buenas historias de usuario resulta muy valor y la utilidad de mantener trazabilidad
difícil para quienes recién comienzan a en metodologías ágiles aunque [36] [21]
emplear metodologías ágiles, los errores mencionan tres razones muy importantes
cometidos en esta etapa pueden llevar a para hacerlo.
desarrollar casos de prueba equivocados, a
mal interpretar los requerimientos o peor También se mostró que para metodologías
aún a desarrollar el producto incorrecto tradicionales la IEEE [6] plantea como un
[40]. Es por ello que se han creado modelos criterio o atributo de calidad la trazabilidad
como el INVEST [32] que ayudan a escribir de los requerimientos. Sin embargo, con
buenas historias de usuario definiendo respecto a las historias de usuario se
atributos que las mismas deben cumplir. encontró documentación que dice éstas no
son compatibles con el mencionado
Aún cuando las historias de usuario pueden estándar [21]. A pesar de que surge el
pensarse como un reemplazo de los modelo INVEST [32] para ayudar a la
documentos de requerimientos especificación de historias de usuario de
tradicionales, es preciso recordar que la calidad, este modelo no plantea como
parte escrita de las historias de usuario característica que las historias de usuario
permanece incompleta hasta tanto se deban cumplir con el criterio de
efectúen las discusiones con los dueños del trazabilidad. La comprobación empírica
producto. Durante el desarrollo de este sobre el uso de la trazabilidad en entornos
trabajo se ha visto que hay autores como ágiles es parte del trabajo futuro que se
Mike Cohn [21] que opinan que las planea completar como se menciona en la
historias de usuario no son obligaciones siguiente sección.
contractuales, y que por lo tanto no es
necesario escribir los detalles conversados 5 Futuros trabajos
con los dueños del producto durante las Para continuar con el plan de tesis, los
reuniones de planificación. Las pasos a seguir son: 1) Investigación acerca
especificaciones del producto residen en lo de las características que poseen los
que se ha implementado al finalizar cada proyectos a gran escala; 2) Recopilación
iteración, en el código funcionando y en los bibliográfica e investigación de lecciones
casos de prueba. Pero también se ha visto aprendidas en la industria sobre trazabilidad
que en algunos casos las historias de de requerimientos de software en entornos
usuario se utilizan como punteros a de desarrollo ágiles mediante la realización
requerimientos, típicamente en diagramas de una encuesta para validar la hipótesis de
de flujos, hojas de cálculo donde se la importancia real o no de realizar esta
práctica en metodologías ágiles; 3) Scale,» 22 Diciembre 2009. [En línea].
Elaboración de un modelo de trazabilidad Available:
de requerimientos que contemple los https://www.ibm.com/developerworks/my
diferentes modos de definición de developerworks/blogs/ambler/entry/agile_
requerimientos en entornos de desarrollo requirements_at_scale?lang=en. [Último
ágiles, según la exploración llevada a cabo acceso: 19 Junio 2012].
en la primera etapa; 4) Aplicación del [6] ISO/IEC/IEEE 29148:2011, «IEEE
modelo de trazabilidad de requerimientos Recommended Practice for Software
definido a un caso real (proyecto piloto) y Requirements Specifications,» [En línea].
finalmente la 5) Validación de la [Último acceso: 6 Diciembre 2012].
implementación llevada a cabo.
[7] O. Gotel y A. Finkelstein, «An Analysis
Agradecimientos of the Requirements Traceability
Queremos agradecer en especial a Mariano Problem,» Imperial College of Science,
Zibbechi, Carlos Bertoni y Álvaro Ruiz de Technology & Medicine, London, 1994.
Mendarozqueta por su aporte en la revisión y
[8] Software Engineering Institute, CMMI for
corrección del presente trabajo.
Development, Version 1.3,
Massachusetts: CMMI Product Team,
Referencias 2010.
[9] Software Engineering Institute,
[1] R. Corral, «Exprimiendo Scrum: Scrum y «Requirements Development,» de CMMI
la gestión de requisitos,» Los for Development, Version 1.3,
pensamientos, peleas y descubrimientos Pennsylvania, CMMI Product Team,
de Rodrigo Corral con Scrum, C++, C#, 2010, pp. 325-340.
ASP.Net, Team System, Sql Server,
[10] M. S. Tabares, A. F. Barrera y J. D.
Sharepoint, la arquitectura, la gestión de
Arroyave, «Un método para la
proyectos y el desarrollo de software en
trazabilidad de requisitos en el proceso
general..., 12 November 2007. [En línea].
unificado de desarrollo,» Revista EIA:
Available:
Escuela de Ingeniería de Antioquia, pp.
http://geeks.ms/blogs/rcorral/archive/2007
69-82, Diciembre 2007.
/11/12/exprimiendo-scrum-scrum-y-la-
gesti-243-n-de-requisitos.aspx. [Último [11] B. Ramesh y M. Jarke, «Toward
acceso: 6 Junio 2012]. Reference Models for Requirements
Traceability,» IEEE Transactions on
[2] Product Arts, «Agile Requirements - So
Software Engineering, vol. 27, nº 1, pp.
What's Different?,» 2009. [En línea].
58-93, 2001.
Available: http://www.product-
arts.com/articlelink/204-agile- [12] M. P. Izaurralde, «Caracterización de
requirements-so-whats-different. [Último Especificación de Requerimientos en
acceso: 9 Junio 2012]. entornos Ágiles: Historias de Usuario,»
Trabajo de especialidad, Febrero 2013.
[3] M. Fritzsche y P. Keil, «Agile Methods
[En línea]. Available:
and CMMI: Compatibility or Conflict?,»
http://www.institucional.frc.utn.edu.ar/sist
e-Informatica Software Engineering
emas/lidicalso/pub/file/Tesis/Anteproyect
Journal, vol. I, nº 1, 2007.
o_Requerimientos_en_Metodolog%C3%
[4] S. W. Ambler, «Agile Requirements ADas_Agiles.pdf.
Modeling,» Ambysoft, 2010. [En línea].
[13] «SCRUM Alliance,» [En línea].
Available:
Available: http://www.scrumalliance.org/.
http://www.agilemodeling.com/essays/agi
leRequirements.htm. [Último acceso: 19 [14] Standards Coordinating Committee of the
Junio 2012]. Computer Society of the IEEE, «IEEE
Standard Glossary of Software
[5] S. W. Ambler, «Agile Requirements at
Engineering Terminology,» IEEE, New http://www.betterprojects.net/2008/01/req
York, 1990. uirements-traceability.html. [Último
[15] J. W. Brackett, Software Requirements, acceso: 9 Junio 2012].
Boston University, 1990. [26] J. Ibañez, «Gestión de requerimientos IV:
[16] A. Tuffley, «CIT3190 Information trazabilidad,» [En línea]. Available:
Technology Project Course,» 2000. http://blogs.salleurl.edu/project-
management/gestion-de-requerimientos-
[17] Software Engineering Institute,
«Requirements Management,» de CMMI iv-trazabilidad/. [Último acceso: 21
Agosto 2012].
for Development, Version 1.3,
Pennsylvania, CMMI Product Team, [27] B. Appleton, S. Berczuk y R. Cowham,
2010, pp. 341-347. «Lean-Agile Traceability: Strategies and
Solutions,» 19 Septiembre 2007. [En
[18] M. Cohn, «Mountain Goat Software,»
línea]. Available:
Mountain Goat Software, [En línea].
http://www.cmcrossroads.com/article/lean
Available:
-agile-traceability-strategies-and-
http://www.mountaingoatsoftware.com/to
solutions. [Último acceso: 21 Julio 2013].
pics/user-stories. [Último acceso: 1
Diciembre 2012]. [28] S. Berczuk, B. Appleton y R. Cowham,
«The trouble with tracing: Traceability
[19] M. Cohn, «An Overview,» de User
Stories Applied for Agile Software Dissected,» cmcrossroads, 30 Noviembre
2005. [En línea]. Available:
Development, Indiana, Addisson -
Wesley, 2009, pp. 3-15. http://www.cmcrossroads.com/article/trou
ble-tracing-traceability-dissected. [Último
[20] M. Cohn, User Stories Applied: For Agile acceso: 22 Julio 2013].
Software Development, Indiana: Addison
[29] D. North, «Behaviour-Driven
Wesley, 2009.
Development,» 2 Enero 2009. [En línea].
[21] S. W. Ambler, «Introduction to Test Available: http://behaviour-driven.org/.
Driven Development (TDD),» Agile [Último acceso: 9 6 2012].
Data, [En línea]. Available:
http://www.agiledata.org/essays/tdd.html. [30] K. Beck y M. Fowler, Planning Extreme
Programming, Addison-Wesley, 2000.
[Último acceso: 9 Junio 2012].
[22] K. Pugh, Lean-Agile Acceptance Test- [31] D. Leffingwell y P. Behrens, «A User
Story Primer,» 2009. [En línea].
Driven Development, Boston: Addison-
Wesley, 2010. Available:
http://trailridgeconsulting.com/files/user-
[23] M. Cohn, «What is Scrum?,» 2009. [En story-primer.pdf. [Último acceso: 24
línea]. Available: Enero 2013].
http://www.mountaingoatsoftware.com/to
pics/scrum. [Último acceso: 3 Febrero [32] M. Bolton, «Requirement Traceability
2013]. Matrix and Agile Testing,» 14 Marzo
2008. [En línea]. Available:
[24] J. Moccia, «Agile Requirements http://tech.groups.yahoo.com/group/agile-
Definition and Management (RDM),» 27 testing/message/13320?threaded=1&p=7.
Enero 2012. [En línea]. Available: [Último acceso: 21 Agosto 2012].
http://onespring.net/blog/agile-
[33] V. Hazrati, «Traceability Matrix in an
requirements-definition-and-
Agile Project,» 6 Junio 2008. [En línea].
management-rdm/. [Último acceso: 11
Febrero 2013]. Available:
http://www.infoq.com/news/2008/06/agil
[25] Craig, «Requirements Traceability: e-traceability-matrix. [Último acceso: 21
Project Leadership, Requirements Agosto 2012].
Management and Product Design,» 15
[34] M. M. Sandoval Carvajal y M. A. García
Enero 2008. [En línea]. Available:
Vargas, «La Trazabailidad en el proceso 2012].
de requerimientos de software,» 2008. [40] B. Appleton, R. Cowham y S. Berczuk,
[En línea]. Available: «Lean Traceability: a smattering of
http://www.iiis.org/CDs2008/CD2008CS strategies and solutions,» 18 September
C/CISCI2008/PapersPdf/C601UZ.pdf. 2007. [En línea]. Available:
[Último acceso: 21 Agosto 2012]. http://www.cmcrossroads.com/article/lean
[35] B. Rey-Mermet, «evocean,» 7 Enero -agile-traceability-strategies-and-
2011. [En línea]. Available: solutions. [Último acceso: 21 Agosto
http://evocean.com/blog/tag/traceability/. 2012].
[Último acceso: 21 Julio 2013]. [41] K. Schwabe, Agile Project Management
[36] P. Varhol, «Conference Paper: Agility with Scrum, Microsoft Press, 2004.
with Traceability: Blending Requirements [42] S. W. Ambler, «The Agile Scaling Model
and User Stories,» de Quality Engineered (ASM): Adapting Agile Methods for
Software & Testing Conference & Expo, Complex Environments,» IBM
Chicago, 2012. Corporation, United States of America,
[37] C. Suscheck, «Defining Requirement 2009.
Types: Traditional vs. Use Cases vs. User [43] UTN-FRC, «Universidad Tecnológica
Stories,» 17 Enero 2012. [En línea]. Nacional - Facultad Regional Córdoba,»
Available: [En línea]. Available: www.frc.utn.edu.ar.
http://agile.techwell.com/articles/weekly/
[44] K. Wiegers., «Software Requirements,»
defining-requirement-types-traditional-vs-
2nd Edition, Microsoft Press, 2003, 2003.
use-cases-vs-user-stories. [Último acceso:
20 Enero 2013].
Datos de Contacto:
[38] C. Langenfeld, «Using Rally to Map High María Paula Izaurralde. Universidad Tecnológica
Traceability User Stories: PRD to SRS,» Nacional. Facultad Regional Córdoba. Maestro M.
8 Julio 2011. [En línea]. Available: Lopez esq. Cruz Roja Argentina Ciudad
Universitaria - Córdoba Capital.
http://www.rallydev.com/community/agil paulaizaurralde@gmail.com
e-blog/using-rally-map-high-traceability-
user-stories-prd-srs. [Último acceso: 20 Natalia Valeria Andriano. Universidad Tecnológica
Enero 2013]. Nacional. Facultad Regional Córdoba. Maestro M.
Lopez esq. Cruz Roja Argentina Ciudad
[39] K. Kaczor, «5 Common Misktakes We Universitaria - Córdoba Capital.
Make Writing User Stories,» Scrum nandriano@sistemas.frc.utn.edu
Alliance, 3 Agosto 2011. [En línea].
Available:
http://www.scrumalliance.org/articles/366
--common-mistakes-we-make-writing-
user-stories. [Último acceso: 1 Diciembre

También podría gustarte