Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cada metodología ágil, cuenta con características propias y hace hincapié en ciertos
aspectos específicos. Entre las metodologías ágiles más utilizadas se determina a
continuación: XP (Extreme Programming), Scrum, Crystal Clear, DSDM (Dynamic
Systems Developmemt Method), FDD (Feature Driven Development), ASD (Adaptive
Software Development), XBreed, Extreme Modeling, Lean Development (LD), Lean
Software Development (LSD), etc.
Metodología SCRUM
Introducción
Scrum1 es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo
principal objetivo es maximizar el retorno de la inversión para su empresa (ROI). Se
basa en construir primero la funcionalidad de mayor valor para el cliente y en los
principios de inspección continua, adaptación, auto-gestión e innovación.
1
SOFTING Software Engineers
1
Características de la metodología SCRUM:
Cumplimento de expectativas. El cliente establece sus expectativas indicando el
valor que le aporta cada requisito.
Flexibilidad a cambios. Alta capacidad de reacción ante los cambios de
requerimientos generados por necesidades del cliente o evoluciones del
mercado.
Reducción del Time to Market. El cliente puede empezar a utilizar las
funcionalidades más importantes del proyecto antes de que esté finalizado por
completo.
Mayor calidad del software. La metódica de trabajo y la necesidad de obtener
una versión funcional después de cada iteración, ayuda a la obtención de un
software de calidad superior.
Mayor productividad. Se consigue gracias a la eliminación de la burocracia y a
la motivación del equipo que proporciona el hecho de que sean autónomos para
organizarse.
Maximiza el retorno de la inversión (ROI). Producción de SW únicamente con
las prestaciones que aportan mayor valor de negocio gracias a la priorización
por retorno de inversión.
Predicciones de tiempos. Mediante esta metodología se conoce la velocidad
media del equipo por sprint.
Reducción de riesgos. El hecho de llevar a cabo las funcionalidades de más
valor en primer lugar, permite despejar riesgos eficazmente de manera
anticipada.
Proceso de SCRUM2.
El Sprint3 consiste en un bloque de tiempo (time-box) de un mes o menos durante el
cual se crea un incremento del producto, utilizable y potencialmente entregable. El
modelo define un conjunto de roles, artefactos y prácticas, con el fin de ajustar y reglar
el proceso de desarrollo a ejecutar durante un proyecto:
2
http://www.softeng.es/es-es/empresa/metodologias-de-trabajo/metodologia-scrum
5
Miguel Ángel Lara Aranda. Guía práctica de uso de las diferentes metodologías de ingeniería del software
2
2
Product Backlog. Conjunto de requisitos denominados historias, priorizados por
valor de negocio, o lo que es lo mismo, por retorno de inversión considerando su
beneficio y coste.
Sprint Planning. El equipo determina la cantidad de historias que puede
comprometerse a completar en ese sprint.
Sprint. Iteración de duración prefijada durante la cual, el equipo trabaja para
convertir las historias del Product Backlog, en una nueva versión del SW.
Sprint Backlog. Lista de las tareas necesarias para llevar a cabo las historias del
sprint.
Daily sprint meeting. Reunión diaria de cómo máximo 15 minutos, en la que el
equipo se sincroniza para trabajar de forma coordinada. Cada miembro comenta
que hizo el día anterior, que hará hoy y si hay impedimentos.
Demo y retrospectiva. Reunión que se realiza al término del sprint y en la que el
equipo presenta las historias conseguidas mediante una demonstración del
producto.
Roles de SCRUM
La gestión de un proyecto Scrum se centra en definir cuáles son las características que
debe tener el producto a construir y en vencer cualquier obstáculo que pudiera
entorpecer la tarea del equipo de desarrollo.
3
El coste en términos de proceso y Management es mínimo, llevando a un
resultado más rápido y barato.
Ayuda a la empresa a ahorrar tiempo y dinero
Rápido desarrollo y testeo y cualquier error puede ser fácilmente rectificado.
Iterativo en su naturaleza, requiere continuo feedback del usuario.
Fácil de manejar los cambios debido a los sprints tan cortos y el feedback
constante.
Las reuniones diarias hacen posible medir la productividad individual.
Puede trabajar con cualquier tecnología o lenguaje de programación
Desventajas:
Si no existe una fecha definitiva de finalización del proyecto es posible que se
siga solicitando, y añadiendo, nueva funcionalidad.
Está bien para proyectos pequeños, de rápido movimiento ya que trabaja bien
solo con equipos pequeños.
4
Miguel Ángel Lara Aranda. Guía práctica de uso de las diferentes metodologías de ingeniería del software
4
Crystal Orange Web
Crystal Magenta
Crystal Blue
Solo tres de las metodologías incluidas dentro de las metodologías Crystal han sido
realmente construidos y son usados en proyectos de las diferentes organizaciones:
Crystal Clear. Es utilizada por equipos de desarrollo máximo de seis personas que
trabajen en una misma oficina u oficinas adyacentes y en donde el proyecto que se
lleve a cabo no sea de gran envergadura o con grandes dificultades para su desarrollo.
Los siguientes son los principales características de esta metodología::
Cuando el número de personas aumenta, también aumenta la necesidad de
coordinar.
Cuando el potencial de daños se incrementa, la tolerancia a variaciones se ve af
ectada.
La sensibilidad del tiempo en que se debe estar en el mercado varía: a veces est
e tiempo debe acortarse al máximo y se toleran defectos, otras se enfatiza la au
ditoria, confiabilidad, protección legal, entre otros.
Las personas se comunican mejor cara a cara, con la pregunta y la respuesta en
el mismo espacio de tiempo.
Orange Web. Se caracteriza por su diseño para proyectos que estén sometidos a
5
cambios continuos debido a que son usados por el cliente, según su creador (2003)
esta metodología se encuentra en prueba, y presenta alrededor de 50 roles divididos
en ejecutivos, gente de negocios, gerentes, analistas, programadores, y probadores.
Fases y actividades5:
La metodología Crystal Clear define su proceso como un conjunto de ciclos anidados
de diferentes duraciones. Cada ciclo tiene su propia secuencia, y pueden desarrollarse
simultáneamente varias actividades pertenecientes a distintos ciclos.
El Ciclo del Proyecto, que abarca todo el desarrollo del software. El Proyecto tiene
varios Ciclos de Entrega, en los que se libera una parte determinada del sistema y
5
(2013, 06). Metodología Crystal Clear.
6
tienen de una semana a tres meses de duración. Cada ciclo de entrega tiene al menos
un ciclo de iteración, que es una unidad de planeación, desarrollo y celebración que
según la cantidad de iteraciones que se planifiquen tiene de una semana a tres meses
de duración.
Crystal Clear requiere múltiples entregas por proyecto pero no muchas Iteraciones por
entrega. Cada iteración se divide en ciclos semanales y la semana se divide en ciclos
diarios. Cada día ocurren varios ciclos de integración, que son una unidad de
desarrollo, integración y prueba del sistema, de media hora a tres días de duración.
Dentro de cada ciclo de integración ocurren múltiples episodios de desarrollo, que
comprenden la escritura y comprobación de una sección de código, con una duración
de pocos minutos a algunas horas.
Desventajas:
Delimita el alcance del proyecto con el cliente.
Metodología MOBILE-D6
Introducción.
Es la metodología del VTT (Instituto de Investigación Finlandés) para el desarrollo de
software ágil. Este método se caracteriza por obtener ciclos de desarrollos muy
rápidos en equipos muy pequeños de alrededor de 10 personas, trabajando en un
mismo ambiente.
6
VTT: http://agile.vtt.fi/
7
Mobile-D7 se basa en la programación extrema para la implementación, metodología
cristal para la escalabilidad y en el Proceso Unificado de Desarrollo (RUP) para la
cobertura del ciclo de vida.
Características de Mobile-D
Una de sus características principales es la vital importancia que se les da a los
desarrolladores que componen el grupo de trabajo, por lo cual sus puntos de estudio
están destinados a:
Aspecto humano del equipo
Tamaño de un equipo
Comunicación entre los desarrolladores
Políticas a seguir
Espacio físico de trabajo
7
Fernando Duran Lasso (2013). Desarrollo de un Sistemas Informático para el campeonato ecuatoriano de futbol de
primera A para plataforma Iphone
8
Rasgos de un equipo Crystal
Una disminución en el número de desarrolladores proporcionará una mejor
comunicación entre los mismos.
Trabajar en un mismo lugar dará lugar a una disminución de gastos por
conceptos de comunicación.
La mejora individual habilitará el paso a la mejora del equipo y por consecuente
al producto final.
Fases de la metodología:
La metodología Mobile-D tiene las siguientes fases: exploración, inicialización, fase de
producto, fase de estabilización y la fase de pruebas. Cada una tiene un día de
planificación y otro de entrega:
Exploración. En esta fase se cubre la planificación, se determina las
características del proyecto, se determina el alcance del proyecto.
Iniciación. Se determinan los recursos requeridos para la ejecución del proyecto
informático.
Producto. En esta fase se repiten iterativamente las subfases; además, se lleva
a cabo la implementación.
Estabilización. Se efectúa la integración de los módulos de la aplicación.
Pruebas. Se ejecutan las pruebas correspondientes hasta obtener una versión
estable acorde lo determinado en las primeras fases por el cliente.
9
Figura 1. Fases Mobile-D y las etapas; Fuente: (VTT Electrónica, 2006)
Elementos de la metodología.
La mitología cuenta con 9 elementos fundamentales involucrados en las diferentes
prácticas en el transcurso del ciclo de desarrollo:
1. Ajuste y enfoque de fases. Los proyectos se ejecutan en iteraciones donde cada
una comienza con un día de planificación.
2. Line de arquitectura. Éste enfoque es utilizado junto con los patrones de
arquitectura por la modelado ágil.
3. Desarrollo basado en pruebas. El enfoque de pruebas primero es utilizado junto
con casos de prueba automatizadas.
4. Integración continúa. Las prácticas de Software Configuration Manager se
aplican a través de múltiples medios.
5. Programación en pares. La codificación, pruebas y refactorización se lleva a
cabo en pares.
6. Métricas. Pocas métricas se recogen con rigurosidad y se utilizan con fines de
mejorar la retroalimentación y el proceso de desarrollo.
7. Mejoras en el proceso de software ágil. Talleres de Pos-iteración son utilizados
para mejorar la retroalimentación y el proceso de desarrollo.
8. Cliente externo. El cliente participa en las jornadas de planificación y liberación.
9. Enfoque centrado en el usuario. Se hace hincapié en la identificación y el
cumplimiento de necesidades del usuario final.
8
Cuadro comparativo de las metodologías de desarrollo para aplicaciones Web:
Metodologías
Parámetros
Scrum Crystal Mobile-D
Análisis, diseño, construcción, Explotación, iniciación,
Análisis, diseño, construcción,
Fases de desarrollo test, aceptación y publicación producto, estabilización,
test, aceptación y publicación.
pruebas.
Presenta una planificación más El cliente participa en las
Planificación Planificación adaptativa
transparente para los clientes. jornadas de planificación
Trabajan con requisitos
Apropiado ante los cambios de Requisitos poco definidos o
Requisitos inestables y que requieren
requisitos del cliente cambiantes
rapidez y flexibilidad.
Documentación mínima, El factor relevante es la Documentación mínima,
Diseño
enfocada en la comunicación comunicación enfocada en la comunicación
Codificación Transferencia de conocimiento Transferencia de conocimiento Transferencia de conocimiento
Pruebas y puesta en Empoderamiento y auto Empoderamiento y auto Empoderamiento y auto
producción organización organización organización
Volatilidad del entorno Soporta entornos dinámicos Apropiados para entornos ligeros Soporta entornos dinámicos
Ciclos de desarrollo muy
Equipos de desarrolladores no Los colores determinan el número
Equipos de desarrollo rápidos en equipos alrededor
muy grandes de desarrolladores
de 10 personas.
Participación de Los usuarios participan en el Los usuarios participan en el Los usuarios participan en el
8
Juan Felipe Villada Muños .Proceso para el desarrollo de software para dispositivos móviles
10
Clientes desarrollo de la aplicación desarrollo de la aplicación desarrollo de la aplicación
Entornos de Soporta herramientas de Soporta herramientas de Soporta herramientas de
desarrollo desarrollo bajo plataforma OO desarrollo bajo plataforma OO desarrollo bajo plataforma OO
Software a nivel de Las aplicaciones son muy Las aplicaciones son muy Las aplicaciones son muy
aplicación autónomas autónomas autónomas
Periodos de desarrollo de 1 a 6 Periodos de desarrollo de 1 a 6 Periodos de desarrollo de 1 a
Ciclos de desarrollo
meses meses 6 meses
Al estar diseñada para el
Maximiza el retorno de la Al estar diseñada para el cambio
Costo del desarrollo cambio experimenta reducción
inversión experimenta reducción de costo
de costo
La metodología de trabajo y la
Entregas frecuentes, en base a un Se fundamente en el
versión funcional después de
ciclo de vida iterativo e desarrollo basado en pruebas
Calidad de software cada iteración facilita el
incremental; aseguran un producto que es una de las mejores
desarrollo de un producto de
de calidad formas de asegurar la calidad
calidad.
Conclusiones
Las principales cualidades de las aplicaciones Web son el lapso de tiempo corto,
aplicaciones multiplataforma, distintas versiones, requerimientos imprecisos,
corrección de errores inesperados, etc.
Las metodologías Scrum, Cristal y Mobile-D se utiliza en el desarrollo de proyectos
con requisitos dinámicos y en equipos pequeños que solucionan casos específicos.
En las Metodologías en mención la colección de información se da durante el
ciclo de vida del desarrollo de una aplicación, soporta cambios durante el
desarrollo, y el cliente es considerado parte del equipo.
Las metodologías Scrum, Cristal y Mobile-D proporcionan flexibilidad y prevalece la
parte humana, apuntando a lograr eficiencia, habitabilidad y confianza en los
miembros del equipo; ofrece especial importancia a la ubicación física del grupo,
donde la comunicación cumple el principal rol.
No existe una metodología de desarrollo específicamente para aplicaciones web;
de las metodologías revisadas tienen características comunes como se detalla en
la tabla 1. Las metodologías son seleccionadas dependiente de las características
propias del tipo de proyectos.
BIBLIOGRAFIA
Miguel Ángel Lara Aranda. Guía práctica de uso de las diferentes metodologías de
ingeniería del software
Miguel Ángel Lara Aranda. Guía práctica de uso de las diferentes metodologías de
ingeniería del software.
María José Pérez P. Guía comparativa de metodologías agiles.
Metodología de desarrollo ágil para sistemas web. Paco Blanco, Julio Camarero,
Antonio Fumero, Adam Werterski, Pedro Rodríguez.
11