3.1 Materials
3.1.2 Recombinant proteins
4.2.2.1 Caracterizar los contextos
Los contextos permiten identificar los escenarios en los que se desarrollan los proyectos de software en la organización.
La variabilidad de contextos hace necesaria la adaptación de la metodología ágil para incrementar su eficacia de manera individual para cada contexto [3], [4].
La necesidad de realizar esta contextualización o caracterización de los escenarios ha sido manifestada por otros autores, y alguno de ellos ha dedicado un esfuerzo importante en formalizar esta clasificación para diferentes propósitos.
“Jones” [5] clasificó factores contextuales y los utilizó en su investigación sobre la productividad de los proyectos, “Krasteva e Ilieva” [6] crearon una taxonomía de caracterización de proyectos y la utilizaron para su estudio sobre adopción de metodologías ágiles.
Por otro lado, “Pham y Pham” [7] identificaron dimensiones del entorno y las utilizaron para crear un factor de corrección para la estimación de proyectos ágiles.
Para el presente trabajo de investigación, la caracterización de los contextos es necesaria para concretar el escenario de adaptación.
Las siguientes actividades constituyen el procedimiento propuesto en este trabajo, el cual permite identificar las dimensiones y atributos que configuran los contextos de los proyectos. Puede ser aplicado en cualquier estudio que busque clasificar u organizar los proyectos de la organización.
4.2.2.1.1 Identificar dimensiones y atributos
Consiste en identificar las dimensiones y atributos que dan origen a la categorización de escenarios de desarrollo de proyectos de la organización.
Características específicas del proyecto, el equipo de desarrollo, la tecnología y la infraestructura son algunos ejemplos de dimensiones.
Cada dimensión puede ser descrita a través de diferentes atributos (como puede ser el tamaño del equipo), los cuales a su vez pueden tener diferentes valores (equipo pequeño, mediano o grande). Esta actividad puede ser iniciada desde cero o tomar como referencia alguna de las clasificaciones existentes [5], [6] o [7]. Se sugiere empezar con un pequeño conjunto de atributos e ir completando la clasificación de manera incremental.
Figura 4.3 Configuración genérica de dimensiones y atributos
Por ejemplo, una organización podría iniciar su caracterización identificando las siguientes dimensiones, atributos y valores de atributos (véase Figura 4.4):
Figura 4.4 Ejemplo de dimensiones y atributos de una organización
4.2.2.1.2 Definir contextos
Los contextos se definen a partir de la combinación de valores de los diferentes atributos de cada dimensión. Mientras mejor caracterizadas estén las dimensiones y sus atributos, mayor será la precisión en la delimitación de un contexto, lo cual facilitará la adaptación de la metodología ágil al escenario de ejecución del proyecto.
El número de contextos de la organización será igual al número de combinaciones posibles de los valores de atributos. Cada contexto está formado por la combinación de un valor de cada atributo.
La Figura 4.5 muestra la identificación genérica de contextos para la configuración de dimensiones y atributos mostrada en la Figura 4.3
Figura 4.5 Identificación genérica de contextos
Para la caracterización mostrada en la Figura 4.4, el número de contextos posibles es de 12 y cada contexto está conformado por los diferentes valores de los 3 atributos (véase Figura 4.6).
Figura 4.6 Ejemplo de los contextos de una organización
A partir de estos contextos, la adaptación de la metodología ágil puede ser más específica reduciéndose la variabilidad del escenario.
Por ejemplo, no es lo mismo definir una adaptación metodológica para un contexto con automatización de pruebas que para otro que no las tiene.
No todas las combinaciones representan la realidad de los escenarios de desarrollo de los proyectos de la organización, por tal motivo es importante seleccionar los contextos habituales, aunque no se descarta que más adelante puedan presentarse nuevos contextos, o incluso incorporarse nuevas dimensiones o atributos.
4.2.2.2 Caracterizar la agilidad
La caracterización de la agilidad permite conocer las metodologías ágiles de la organización, y establecer su grado de agilidad para poder monitorizar el nivel de agilidad de la metodología ágil adaptada, de modo que ésta permanezca en un nivel aceptable y no desvirtué el sentido ágil de la metodología ágil de base.
4.2.2.2.1 Identificar las metodologías ágiles
Consiste en identificar las metodologías ágiles actualmente utilizadas por la organización o que se pretenden adoptar con el fin de establecer las metodologías ágiles de base. Las metodologías ágiles de base son aquellas que serán adaptadas a los diferentes contextos de la organización.
En el caso de que actualmente existan metodologías ágiles, se necesita volver a su definición original y excluir cualquier modificación o adaptación que se hubiese realizado sobre ella.
Para no perder el conocimiento y aprendizaje adquirido con las modificaciones anteriores, lo que se debe hacer es incluir este conocimiento como parte del proceso “Diseñar unidades de adaptación”, de manera que el conocimiento quede formalizado dentro del marco de trabajo de adaptación, y pueda ser validado, optimizado y reutilizado.
4.2.2.2.2 Determinar los ciclos de adaptación
Una vez identificadas las metodologías ágiles de base, es importante identificar el ciclo de adaptación sobre el cual se aplicará el marco de trabajo, es decir, aquel periodo de tiempo en el cual serán evaluadas las adaptaciones aplicadas a la metodología ágil.
Al estar intrínseca en el manifiesto ágil, la entrega rápida y frecuente de software, todas las metodologías ágiles son iterativas. Esto hace que esta actividad sea relativamente sencilla.
Algunos ejemplos de ciclos de adaptación son “Release”, “Sprint”, “Iteration”, etc.
Una vez determinado el ciclo de adaptación de cada metodología ágil de base, toda adaptación deberá ser experimentada sobre este ciclo para tener un criterio único de comparación y análisis de los resultados.
4.2.2.2.3 Determinar el grado de agilidad
Uno de los objetivos del marco de trabajo de adaptación que presenta esta tesis es mantener la agilidad de la metodología ágil adaptada con el fin de evitar desvirtuarla.
No existe un indicador universalmente aceptado que permita determinar si una metodología es o no ágil. Algunas propuestas para establecer el grado de agilidad de una metodología ágil han sido presentadas en [8], [9], [10], [11], [12], [13].
Por esta razón, este marco de trabajo de adaptación deja abierta la posibilidad a que sea la misma organización la que seleccione la técnica o método más adecuado para la evaluación del grado de agilidad. Lo más aceptado es, utilizar como criterio de evaluación, la alineación de la metodología evaluada con los enunciados y principios del manifiesto ágil.
Un ejemplo de técnica o método de evaluación del grado de agilidad es el propuesto por “Qumer y Henderson” [13] con la segunda dimensión del “4-DAT framework”. Éste consiste en identificar el nivel de agilidad de una metodología a partir de la evaluación de sus fases (alto nivel) y prácticas (bajo nivel) desde 5 características de agilidad extraídas del manifiesto ágil:
• Flexibilidad, orientada a la facilidad de adaptación al cambio.
• Velocidad, asociada a la capacidad de producir resultados de manera rápida.
• Ligereza, asociada a la producción económica y simple en periodos cortos de tiempo.
• Aprendizaje, asociada con la aplicación del conocimiento y experiencia previa.
• Sensibilidad, asociada a la exposición de sensibilidad de la metodología.
Cada componente (fase y práctica) es evaluada con uno o cero para cada característica de agilidad, y es a partir de esta evaluación que se obtiene el grado medio de agilidad, el cual mientras más cercano a 100% será mucho mejor.
En la Figura 4.7 se presenta el nivel de agilidad obtenido para la metodología XP siguiendo lo propuesto por “Qumer y Henderson”.
Además de medir el grado de agilidad de una adaptación, es importante establecer el umbral de agilidad. Este umbral es el valor mínimo aceptable del grado de agilidad, y será el que valide si la adaptación aplicada desvirtúa o no la agilidad de la metodología base.
Un punto de partida válido puede ser el grado de agilidad obtenido por la metodología ágil de base. De este modo, cualquier adaptación que se realice sobre ella deberá tender a mejorar su nivel de agilidad. Para el ejemplo mostrado en la Figura 4.7, el umbral de agilidad sería del 72%.
Es posible que en determinados contextos este umbral deba ser menor al grado de agilidad obtenido por la metodología base. En todo caso será la misma organización la que module este umbral en función de sus necesidades, experiencia y características del contexto.
Finalmente, independientemente del contexto, se debe establecer el “umbral mínimo aceptable” que ninguna adaptación podrá superar. Cada organización debe establecer este valor.
4.2.2.3 Caracterizar los problemas
El objetivo de esta actividad consiste en identificar de manera rápida los problemas principales de la organización para los siguientes propósitos:
• Realizar un diagnóstico inicial de la situación problemática de la organización.
• Detectar las principales necesidades de mejora.
• Potenciar en un primer momento la necesidad de aplicar el marco de trabajo. 4.2.2.3.1 Identificar los problemas de la organización
Consiste en elaborar una lista inicial de problemas a partir de entrevistas directas con el personal directivo y de operaciones de la organización.
Más adelante, en el proceso de “Establecer objetivos”, se completará la identificación de problemas orientando su identificación a la búsqueda de inhibidores de objetivos de negocio.
Mencionar que la identificación de problemas puede darse en cualquier momento y es importante mantener la lista actualizada porque son la base para la propuesta de acciones de adaptación. 4.2.2.3.2 Identificar necesidades de mejora
Consiste en elaborar una lista de necesidades de mejora para luego expresar estas necesidades como problemas o carencias, e incorporarlas en la lista de problemas anterior.