Torres Jefferson Metod Agiles

Anuncio
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
I.
PORTADA
UNIVERSIDAD TÉCNICA DE AMBATO
Facultad de Ingeniería en Sistemas, Electrónica e Industrial
“Ingeniería del Software II”
Título:
Metodologías Ágiles de Desarrollo de Software.
Carrera:
Ingeniería en Sistemas Computacionales e Informáticos
Área Académica: Ingeniería del Software II.
Ciclo Académico
Séptimo “A”
y Paralelo:
Estudiante:
•
Torres Bastidas Jefferson Patricio.
Módulo y
Ingeniería del Software II.
Docente
Ing. Hernán Naranjo.
II.
INFORME
1. PPYY
2.1 Título
Metodologías Ágiles de Desarrollo de Software.
2.2 Objetivos
General:
• Definir e Investigar a profundidad acerca de algunas metodologías de
desarrollo ágil de software.
Específico:
• Enumerar 6 tipos de metodologías de desarrollo ágil para software.
• Establecer ventajas y desventajas de cada una de dichas metodologías.
• Comprender la aplicabilidad de cada una de las 6 metodologías.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
1. SCRUM
•
Definición:
Scrum es una metodología ágil fantástica para desarrolladores. Consiste en un modelo
de asignación de tareas diarias basado en reuniones rápidas y control de la evolución de
los procesos. Es muy bueno para llevar un seguimiento de las tareas que se están
llevando a cabo y saber en qué puntos se ha atascado el equipo. Además, la profundidad
de las tareas que se asignan en SCRUM tiende a ser incremental, y esto coincide
exactamente con el devenir normal de un desarrollo.
Es genial para empresas de desarrollo de software orientadas a varios clientes.
•
Características:
Sus principales características se pueden resumir en tres.
El desarrollo de software se realiza mediante iteraciones, denominadas sprints,
con una duración de 30 días.
El resultado de cada sprint es un incremento ejecutable que se muestra al
cliente.
Las reuniones a lo largo proyecto. Éstas son las verdaderas protagonistas,
especialmente la reunión diaria de 15 minutos del equipo de desarrollo para
coordinación e integración.
También tenemos las demás características que son:
Scrum es un modelo de referencia que define un conjunto de prácticas y
roles, y que puede tomarse como punto de partida para definir el proceso
de desarrollo que se ejecutará durante un proyecto. Los roles principales en
Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma
similar al director de proyecto, el ProductOwner, que representa a los
stakeholders (clientes externos o internos), y el Team que incluye a los
desarrolladores.
Durante cada sprint, un periodo entre 15 y 30 días (la magnitud es definida
por el equipo), el equipo crea un incremento de software potencialmente
entregable (utilizable).
El conjunto de características que forma parte de cada sprint viene del
Product Backlog, que es un conjunto de requisitos de alto nivel priorizados
que definen el trabajo a realizar. Los elementos del Product Backlog que
forman parte del sprint se determinan durante la reunión de Sprint
Planning. Durante esta reunión, el Product Owner identifica los elementos
del Product Backlog que quiere ver completados y los hace del conocimiento
del equipo. Entonces, el equipo determina la cantidad de ese trabajo que
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
puede comprometerse a completar durante el siguiente sprint. Durante el
sprint, nadie puede cambiar el Sprint Backlog, lo que significa que los
requisitos están congelados durante el sprint.
Scrum permite la creación de equipos autoorganizados impulsando la colocalización de todos los miembros del equipo, y la comunicación verbal
entre todos los miembros y disciplinas involucrados en el proyecto.
Un principio clave de Scrum es el reconocimiento de que durante un
proyecto los clientes pueden cambiar de idea sobre lo que quieren y
necesitan (a menudo llamado requirements churn), y que los desafíos
impredecibles no pueden ser fácilmente enfrentados de una forma
predictiva y planificada.
Por lo tanto, Scrum adopta una aproximación pragmática, aceptando que el
problema no puede ser completamente entendido o definido, y centrándose en
maximizar la capacidad del equipo de entregar rápidamente y responder a
requisitos emergentes.
Existen varias implementaciones de sistemas para gestionar el proceso de Scrum,
que van desde notas amarillas "post-it" y pizarras hasta paquetes de software. Una
de las mayores ventajas de Scrum es que es muy fácil de aprender, y requiere muy
poco esfuerzo para comenzarse a utilizar.
•
Ventajas y Desventajas:
Ventajas:
•
•
•
•
Entregables en tiempo y forma, puedes ir enviando entregables al cliente
mientras vas atacando los objetivos más sencillos, eso te hace ganar tiempo
para atacar los objetivos más complejos.
el ScrumMaster tiene el conocimiento necesario para lograr el objetivo primario
y secundario por lo cual puede ir controlando el proyecto y delegando roles.
Cada persona sabe que es lo que tiene que hacer y no es necesario estar
reorganizando una y otra vez los Tracks de cada persona.
Se involucra desde un principio y se da un rol a todos los stakeholders (personas
que van a participar en el proyecto incluyendo cliente final, QA, Testers, etc.).
Desventajas:
•
•
Algunos miembros de tu equipo pueden saltar pasos importantes en el camino
rápido para llegar al “sprint” final.
El cliente siempre va a esperar los informes con la fecha exacta, y muchas veces
los va a pedir antes, cuando capaz no pudiste avanzar en nada.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
•
Demasiadas Reuniones para poco avance, a veces es muy cansado y estresante
reunirse demasiadas veces por el mismo tema, algunos van perdiendo el interés
en el proyecto.
Si una persona renuncia o hay algún cambio es complicado remplazar ese rol ya
que es la persona que se lleva el conocimiento especifico y afecta a todo el
proyecto.
No es aplicable a grandes escalas o cuando el sector IT es variado.
•
Roles:
•
En Scrum se definen varios roles, estos están divididos en dos grupos: cerdos y
gallinas. El nombre de los grupos está inspirados en el chiste sobre un cerdo y
una gallina que se relata a continuación.
Un cerdo y una gallina se encuentran en la calle. La gallina mira al cerdo y dice:
"Hey, ¿por qué no abrimos un restaurante?" El cerdo mira a la gallina y le dice:
"Buena idea, ¿cómo se llamaría el restaurante?" La gallina piensa un poco y
contesta: "¿Por qué no lo llamamos "Huevos con jamón?" "Lo siento, pero no",
dice el cerdo, "Tú sólo estarías involucrada mientras que yo estaría
comprometido".
De esta forma, los 'cerdos' están comprometidos a través de sus aportes
'directos' en la construcción de software, mientras que las 'gallinas' están
involucradas a través de sus aportes 'indirectos'.
Las necesidades, deseos, ideas e influencias de los roles 'gallina' se tienen en
cuenta, pero no de forma que pueda afectar, distorsionar o entorpecer el
proyecto Scrum.
•
Roles "Cerdo"
Los Cerdos son los que están comprometidos con el proyecto y el proceso
Scrum; ellos son los que "ponen el jamón en el plato".
•
Product Owner
El Product Owner representa la voz del cliente. Se asegura de que el equipo
Scrum trabaja de forma adecuada desde la perspectiva del negocio. El Product
Owner escribe historias de usuario, las prioriza, y las coloca en el Product
Backlog.
•
ScrumMaster (o Facilitador)
El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los
obstáculos que impiden que el equipo alcance el objetivo del sprint. El
ScrumMaster no es el líder del equipo (porque ellos se auto-organizan), sino que
actúa como una protección entre el equipo y cualquier influencia que le
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
distraiga. El ScrumMaster se asegura de que el proceso Scrum se utiliza como
es debido. El ScrumMaster es el que hace que las reglas se cumplan.
•
Equipo
El equipo tiene la responsabilidad de entregar el producto. Un pequeño equipo
de 5 a 9 personas con las habilidades transversales necesarias para realizar el
trabajo (diseñador, desarrollador, etc).
•
Roles "Gallina"
Los roles gallina en realidad no son parte del proceso Scrum, pero deben tenerse
en cuenta. Un aspecto importante de una aproximación ágil es la práctica de
involucrar en el proceso a los usuarios, expertos del negocio y otros interesados
(stakeholders). Es importante que esa gente participe y entregue
retroalimentación con respecto a la salida del proceso a fin de revisar y planear
cada sprint.
Análisis de la frase "Rol gallina":
La gallina alimenta al proyecto "poniendo huevos", no se ve comprometida
como el cerdo que va al matadero.
•
Usuarios
Es el destinatario final del producto. Como bien lo dice la paradoja, El árbol cae
en el bosque cuando no hay nadie ¿Hace ruido? Aquí la definición sería Si el
software no es usado ¿fue alguna vez escrito?.
Stakeholders (Clientes, Proveedores, Inversores)
Se refiere a la gente que hace posible el proyecto y para quienes el proyecto
producirá el beneficio acordado que lo justifica. Sólo participan directamente
durante las revisiones del sprint.
Managers
Es la gente que establece el ambiente para el desarrollo del producto.
•
•
•
Artefactos
Pila del producto: (product backlog) lista de requisitos de usuario, que
a partir de la visión inicial del producto crece y evoluciona durante el
desarrollo.
Pila del sprint: (sprint backlog) lista de los trabajos que debe realizar el
equipo durante el sprint para generar el incremento previsto.
Sprint: nombre que recibe cada iteración de desarrollo. Es el núcleo
central que genera el pulso de avance por tiempos prefijados (time
boxing).
Incremento: resultado de cada sprint.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
2. PROGRAMACIÓN EXTREMA XP
•
Definición:
Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave
para el éxito en desarrollo de software, promoviendo el trabajo en equipo,
preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima
de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de
desarrollo, comunicación fluida entre todos los participantes, simplicidad en las
soluciones implementadas y coraje para enfrentar los cambios. XP se define como
especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y
donde existe un alto riesgo técnico.
•
Características:
Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos
con el objetivo de detectar futuros errores Re-fabricación: se basa en la
reutilización de código, para lo cual se crean patrones o modelos estándares,
siendo más flexible al cambio. Programación en pares: una particularidad de
esta metodología es que propone la programación en pares, la cual consiste en
que dos desarrolladores participen en un proyecto en una misma estación de
trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en
ese momento.
Lo fundamental en este tipo de metodología es: La comunicación, entre los
usuarios y los desarrolladores La simplicidad, al desarrollar y codificar los
módulos del sistema La retroalimentación, concreta y frecuente del equipo de
desarrollo, el cliente y los usuarios finales.
•
Ventajas y Desventajas:
Ventajas:
•
•
•
•
•
•
Da lugar a una programación sumamente organizada.
Ocasiona eficiencias en el proceso de planificación y pruebas.
Propicia la satisfacción del programador.
Fomenta la comunicación entre los clientes y los desarrolladores.
Facilita los cambios.
Permite ahorrar mucho tiempo y dinero.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
•
•
•
Puede ser aplicada a cualquier lenguaje de programación.
El cliente tiene el control sobre las prioridades.
Se hacen pruebas continuas durante el proyecto.
La XP es mejor utilizada en la implementación de nuevas tecnologías.
Desventajas:
•
•
•
•
Es recomendable emplearla solo en proyectos a corto plazo.
En caso de fallar, las comisiones son muy altas.
Requiere de un rígido ajuste a los principios de XP.
Puede no siempre ser más fácil que el desarrollo tradicional.
•
Roles:
Como todo equipo de trabajo se deben asignar o tener roles y en extreme
programming existen varios roles tantos los que deben estar presentes siempre
en un proyecto o algunos opcionales.
•
Programador
Escribe las pruebas unitarias y produce el código del sistema. Define las tareas
que conlleva cada historia de usuario, y estima el tiempo que requerirá cada
una.
•
Cliente
Escribe las historias de usuario y las pruebas funcionales para validar su
implementación. Asigna la prioridad a las historias de usuario y decide cuáles se
implementan en cada iteración centrándose en aportar el mayor valor de
negocio.
•
Tester (Encargado de pruebas)
Ayuda al cliente a escribir las pruebas funcionales. Ejecuta pruebas
regularmente, difunde los resultados en el equipo y es responsable de las
herramientas de soporte para pruebas.
•
Tracker(Encargado de seguimiento)
Es el encargado de seguimiento. Proporciona realimentación al equipo. Debe
verificar el grado de acierto entre las estimaciones realizadas y el tiempo real
dedicado, comunicando los resultados para mejorar futuras estimaciones.
•
Entrenador (coach)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
Es responsable del proceso global. Experto en XP, provee de las guías a los
miembros del equipo para que se apliquen las prácticas XP y se siga el proceso
correctamente. Determina la tecnología y metodologías a usar por el equipo de
desarrollo.
•
Gestor (Big boss)
Es el dueño del equipo y sus problemas. Experto en tecnología y labores de
gestión. Construye el plantel del equipo, obtiene los recursos necesarios y
maneja los problemas que se generan. Administra a su vez las reuniones (planes
de iteración, agenda de compromisos, etc).
No le dice al grupo lo que tiene que hacer, cuando hacerlo, ni verifica el avance
de las tareas.
•
Artefactos
Historias de Usuario
Representan una breve descripción del comportamiento del sistema,
emplea terminología del cliente sin lenguaje técnico, se realiza una por
cada característica principal del sistema, se emplean para hacer
estimaciones de tiempo y para el plan de lanzamientos, reemplazan un
gran documento de requisitos y presiden la creación de las pruebas de
aceptación.
3. KANBAN
•
Definición:
“Sistema de información que controla de modo armónico la fabricación de los productos
necesarios en la cantidad y tiempo necesarios en cada uno de los procesos.”
Kanban no es una técnica específica del desarrollo software, su objetivo es gestionar de
manera general como se van completando tareas, pero en los últimos años se ha
utilizado en la gestión de proyectos de desarrollo software, a menudo con Scrum (lo que
se conoce como Scrumban).
•
Características:
Visualizar el flujo de trabajo.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
Debes dividir tu trabajo en fases de forma que podamos tener un mapa
visual de los que sería el flujo de trabajo dividido en columnas. Este flujo
de trabajo podrá ser diferente según el proyecto de que se trate.
Determinar el límite de “trabajo en curso”.
En trabajo en curso (WIP: Work in Progress) debe estar limitado para
que se conozca cuál es el número máximo de tareas que se pueden
realizar en cada una de las fases.
Medir el tiempo en completar una tarea
El tiempo que se tarda en terminar cada tarea (desde que se solicita
hasta que se entrega), es el “Lead time”. La visualización de tareas
implica que la mejor forma de aplicar la metodología KANBAN sea a
través de un tablero (puede ser digital o físico)
Mover tarjetas dentro de una lista o trasladar de una lista a otra.
En cada tarjeta viene definida una tarea. Cuanto más alto se sitúe en
una etapa, mayor será su importancia. Hay un flujo continuo en el que
estas tarjetas avanzan de una etapa a otra según su grado de realización.
En la mayoría de aplicaciones de Kanban se puede cambiar la colocación
de una tarjeta y moverla dentro de una lista según su importancia o
trasladar de una lista a otra.
Asignar personas a tarjetas.
Las aplicaciones de Kanban son herramientas colaborativas en las que
se invita a distintos miembros e, incluso, a clientes. Se puede invitar a
unirse a una tarjeta específica o al tablero general. De este modo, los
participantes podrán editar y dejar comentarios en las tarjetas y
moverlas a otra etapa.
Añadir notas y comentarios en las tarjetas.
Las aplicaciones de Kanban para la gestión de proyectos cuentan con
espacio ilimitado para añadir notas en cada tarjeta. La mayoría incluye
un campo de descripción y permite adjuntar archivos relacionados. Esto
facilita las conversaciones con los compañeros de equipo.
Incluir listas de control.
Cada tarjeta puede tener una o más listas de verificación. Las tarjetas
pueden mostrar el porcentaje de verificación completado, lo que
permite observar dónde se encuentra en un proceso.
Establecer límites para el avance del proyecto.
Algunas aplicaciones de Kanban permiten restringir la cantidad de
tareas que se pueden incluir en una lista. De esta manera, se puede
limitar el número de tarjetas por columna. Esta restricción persigue el
avance del proyecto, en el que el aviso de demasiadas tareas advierte
de que hay muchas cosas por hacer.
Etiquetado de tarjetas.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
Las etiquetas pueden ser de utilidad para apuntar estados específicos
de una tarjeta, como el nivel de dificultad o el requerimiento de la ayuda
de algunos miembros concretos.
Colocar fechas de vencimiento en las tarjetas.
El establecimiento de plazos en las tarjetas de Kanban para su
realización conlleva a la elaboración de esta tarea en el periodo
establecido. Muchas aplicaciones envían notificaciones y recordatorios
de fechas.
Ver las tarjetas como un calendario.
Muchas aplicaciones de Kanban ofrecen la posibilidad de activar una
vista de calendario. Esto refleja la visualización de los plazos de
desarrollo o de las fechas de entrega/vencimiento.
•
•
•
•
•
•
Ventajas y Desventajas:
Ventajas:
Facilidad de entendimiento y exposición de información a todos los miembros
involucrados.
Facilidad de integración con metodologías ágiles (Scrumban).
El más adecuado para proyectos que se encuentran en mejora contínua.
No todas las desventajas de Kanban surgidas en manufactura aplican en la
industria del software puesto que la implementación interna es diferente.
Acepta el ingreso de cambios a último momento con facilidad.
Desventajas:
•
•
•
•
Menor efectividad en situaciones de Recursos Compartidos: Las órdenes no
frecuentes vuelven ineficientes a kanban ya que se tiene que asegurar una
producción suficiente por parte de un proceso mientras que a su vez el proceso
que es no-frecuente es ejecutado.
Kanban asume sistemas de producción repetitivos dada la naturaleza de su
creación en el área de manufactura.
Posiblemente Kanban pueda arrojar productos de baja calidad que requieren de
ser retrabajados. Kanban funciona a manera de semáforo para administrar el
tráfico y así cumplir con las necesidades del cliente indicando cuando empezar,
cuando bajar el ritmo y cuando parar. Cualquier variabilidad o evento no
esperado puede afectar el funcionamiento del sistema provocando que se
generen señales confusas.
Calidad: El sistema Kanban lleva los niveles de inventario cerca de 0 lo que en
caso de alta incertidumbre e interrupciones en la red de transporte representa
un peligro ya que eso significa que los clientes se quedan sin suministro de
partes.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
Roles:
•
Service request Manager
Se encarga de gestionar la demanda y los requisitos dentro del sistema Kanban,
manejando las relaciones con los stakeholders y fomentando la transparencia
dentro del sistema en torno a la priorización del trabajo. Alternativamente, este
rol se puede llamar Product Manager, Product Owner o Service Manager.
•
Service Delivery Manager
Es responsable del flujo de trabajo dentro de un sistema Kanban y/o
determinados ítems de trabajo y facilita el Kanban Meeting y el Delivery
Planning. Algunos nombres alternativos son Flow Manager, Delivery Manager o
incluso Flow Máster.
Kanban a diferencia de Scrum, no preescribe roles o reuniones. Éstos han sido
destilados a partir de la observación en organizaciones que han adoptado el
método y lo han evolucionado de forma colaborativa.
•
Artefactos
No prescribe artefactos.
4. DESARROLLO LEAN
•
Definición:
Lean Software Development, también conocido como Lean Programming es un
conjunto de técnicas que engloban una metodología de desarrollo ágil de software
orientado a conseguir exactamente lo que necesita el cliente. Es una evolución del
Método Toyota de Producción aplicado al desarrollo y que está muy de moda entre los
equipos de desarrollo en startups. Principalmente consiste en ciclos de evolución de
software incrementales en los que se posponen las decisiones lo más posible hasta
haber obtenido un feedback del cliente y así reaccionar lo más rápido y eficazmente
posible a sus necesidades. Se fundamenta en tener un equipo potente y comprometido
y el principio de aprendizaje continuo sobre el producto.
El Desarrollo Lean una metodología fantástica para startups que están desarrollando un
software orientado a tener éxito en el mercado, como desarrolladores de videojuegos
o aplicaciones para móviles.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
Características:
Se sostenía que para ser verdaderamente ágil se debía conocer además el
negocio de punta a punta. LD se inspira en doce valores centrados en estrategias
de gestión
Satisfacer al cliente es la máxima prioridad.
Proporcionar siempre el mejor valor por la inversión.
El éxito depende de la activa participación del cliente.
Cada proyecto LD es un esfuerzo de equipo.
Todo se puede cambiar.
Soluciones de dominio, no puntos.
Completar, no construir.
Una solución al 80% hoy, en vez de una al 100% mañana.
El minimalismo es esencial.
La necesidad determina la tecnología.
El crecimiento del producto es el incremento de sus prestaciones, no de
su tamaño.
Nunca empujes LD más allá de sus límites.
•
•
•
•
Ventajas y Desventajas:
Ventajas:
La eliminación de los residuos conduce a la eficiencia global del proceso de
desarrollo. Esto a su vez acelera el proceso de desarrollo de software que reduce
el tiempo y el costo del proyecto. Lo que es absolutamente vital en el entorno
actual. Cualquier cosa que permite a las organizaciones para entregar más
proyectos en el mismo periodo de tiempo que va a ser popular.
La entrega del producto temprana es una ventaja definitiva. Esto significa que
su equipo de desarrollo puede ofrecer mayor funcionalidad en un corto periodo
de tiempo, por lo tanto, permitir que más proyectos para ser entregados. Esto
sólo va a satisfacer tanto su departamento de finanzas, como a los clientes
finales.
El empoderamiento del equipo de desarrollo ayuda a desarrollar la capacidad
de decisión de los miembros del equipo que a su vez, crea un equipo más
motivado. Este beneficio realmente no se puede insistir demasiado suficiente.
Los desarrolladores no aborreces nada más que ser micro-administrado y que
las decisiones impuestas sobre ellos. De esta manera se puede determinar la
mejor forma para desarrollar la funcionalidad que dará lugar generalmente a un
producto final mucho mejor.
Desventajas:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
•
•
•
•
•
•
•
El proyecto depende en gran medida la cohesión del equipo y los compromisos
individuales de los miembros del equipo. En la mayoría de las profesiones que
esto podría ser un factor muy importante, pero en él largas horas de trabajo y
poco sociable es la norma por lo que no debería ser una gran desventaja. Y, por
supuesto, si usted no darse cuenta de que los desarrolladores y probadores de
trabajar largas horas, largos entonces usted está en para un rudo despertar.
El éxito del proyecto depende de la disciplina de los miembros del equipo son y
cómo son excepcionales sus habilidades técnicas. Si usted no tiene un equipo
de personas con buenas habilidades que se complementan entre sí, entonces
usted tiene un problema inmediato.
Los patrocinadores del proyecto y los clientes necesitan saber lo que quieren y
tomar las decisiones pertinentes. En desarrollo ágil de software estas decisiones
pueden ser tomadas más adelante que, por ejemplo cuando se utilizan
metodologías de cascada, que debería ser una ventaja. Pero el problema es que
los promotores de proyectos tienden a ser paralizado por el miedo a la hora de
tomar las decisiones difíciles.
El papel de un analista de negocios es de vital importancia para garantizar la
documentación de los requerimientos del negocio (BRD) se entiende
correctamente. Si usted no tiene una persona con las habilidades correctas
analista de negocios, entonces rápidamente podría encontrar esta convertido
en una de las causas de la corrupción del alcance.
En magra que permite la especificación de requisitos software (SRS) para
evolucionar. Sin embargo, esto causa problemas de su propia. La flexibilidad es
grande, pero demasiado pronto dará lugar a un desarrollo que pierde de vista
su objetivo original y que nunca termina.
Roles:
El Scrum Master es el que hace que se cumplan las reglas establecidas para la
gestión del proyecto, y como tal ha de aportar su conocimiento y esfuerzo para
que el proyecto se gestione siguiendo las pautas de la metodología LPM. No
debemos confundir esta figura con la del director del proyecto tradicional, sino
que su labor es la de coordinación del proyecto. De hecho, la persona que ejerce
esta función es también un miembro del Team y tiene su rol técnico en el
desarrollo del proyecto.
Además, el Director de Proyectos clásico es el referente jerárquico del equipo
de trabajo y es también el interlocutor directo con el cliente, y es por causa de
las gestiones que le comportan este nivel jerárquico que también se lo conoce
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
como “El solventa marrones” o “El come marrones” o “El pasa marrones”…
según como consiga resolver las situaciones que tiene que ir sorteando.
•
Artefactos
Como artefactos entendemos las distintas herramientas que deberemos
manejar a lo largo de la gestión del proyecto y que nos han de servir de apoyo y
facilitación.
Empezaremos por la pareja de backlogs: el Product Backlog y el Sprint Backlog.
Entendemos backlog como listado o relación de trabajos pendientes.
5. CRYSTAL METHODOLOGIES
•
Definición:
El método Crystal es un enfoque de desarrollo de software ágil que se centra en las
personas y sus interacciones cuando se trabaja en un proyecto en lugar de en procesos
y herramientas. Alistair en creador de esta metodología creía que las habilidades y
talentos de las personas, así como la forma en que se comunican, tienen el mayor
impacto en el resultado del proyecto.
•
Características:
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.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
Ventajas y Desventajas:
•
•
•
•
•
Ventajas:
Son apropiadas para entornos ligeros
Al estar diseñada para el cambio experimenta reducción de costo.
Presenta una planificación más transparente para los clientes.
Se definen en cada iteración cuales son los objetivos de la siguiente.
Permite tener una muy útil realimentación de los usuarios.
Desventajas:
•
Delimita el alcance del proyecto con el cliente.
•
•
Roles:
Diseñador Principal.
Produce la Descripción Arquitectónica. Se supone que debe ser al menos un
profesional de Nivel 3. En Metodologías Ágiles se definen tres niveles de
experiencia:
Nivel 1 es capaz de “seguir los procedimientos”.
Nivel 2 es capaz de “apartarse de los procedimientos específicos” y encontrar
otros distintos
Nivel 3 es capaz de manejar con fluidez, mezclar e inventar procedimientos. El
Diseñador Principal tiene roles de coordinador, arquitecto, mentor y
programador más experto.
Diseñador-Programador.
Produce, roles-niños-codependientes-300x300junto con el Diseñador Principal,
los Borradores de Pantallas, el Modelo Común de Dominio, las Notas y
Diagramas de Diseño, el Código Fuente, el Código de Migración, las Pruebas y el
Sistema Empaquetado.
•
•
Experto en Negocios.
Junto con el Usuario Experto produce la Lista de Actores-Objetivos y el Archivo
de Casos de Uso y Requerimientos. Debe conocer las reglas y políticas del
negocio.
•
•
Coordinador.
Con la ayuda del equipo, produce el Mapa de Proyecto, el Plan de Entrega, el
Estado del Proyecto, la Lista de Riesgos, el Plan y Estado de Iteración y la Agenda
de Visualización.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
•
Verificador.
Produce el Reporte de Bugs. Puede ser un programador en tiempo parcial, o un
equipo de varias personas.
•
Escritor.
Produce el Manual de Usuario. El Equipo como Grupo es responsable de
producir la Estructura y Convenciones del Equipo y los Resultados del Taller de
Reflexión.
•
Artefactos
Crystal Methodologies
Se trata de un conjunto de metodologías para el desarrollo de software
caracterizadas por estar centradas en las personas que componen el equipo y la
reducción al máximo del número de artefactos producidos.
6. ADAPTIVE SOFTWARE DEVELOPMENT (ASD)
•
Definición:
El método ágil ASD (Adaptive Software Development) traducido en español significa
Desarrollo Adaptable de Software es un modelo de implementación de patrones ágiles
para desarrollo de software. Al igual que otras metodologías ágiles, su funcionamiento
es cíclico y reconoce que en cada iteración se producirán cambios e incluso errores.
El desarrollo de software adaptable (Adaptive Software Development - ASD) es una
metodología de desarrollo que hace énfasis en aplicar las ideas que se originaron en el
mundo de los sistemas complejos, adaptación continua del proceso al trabajo.
•
Características:
Sus principales características del ASD son:
Iterativo.
Orientado a los componentes de software (la funcionalidad que el
producto va a tener, características, etc.) más que a las tareas en las que
se va a alcanzar dicho objetivo.
Tolerante a los cambios.
Guiado por los riesgos.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
La revisión de los componentes sirve para aprender de los errores y
volver a iniciar el ciclo de desarrollo.
•
Ventajas y Desventajas:
Ventajas:
•
•
•
•
•
La tercera fase del ciclo de vida, revisión de los componentes, sirve para
aprender de los errores y volver a iniciar el ciclo de desarrollo.
Apunta hacia el Rapid Application Development (RAD), el cual enfatiza
velocidad de desarrollo para crear un producto de alta calidad, bajo
mantenimiento involucrando al usuario lo más posible.
Utiliza información disponible acerca de cambios para mejorar el
comportamiento del software.
Promulga colaboración, la interacción de personas.
Anticipa cambios y trata automáticamente con ellos dentro de un programa en
ejecución, sin la necesidad de un programador.
Desventajas:
•
•
•
Aunque el ciclo entre el aprendizaje y la especulación es bueno
permitiéndonos entregar productos con alta calidad, la prolongación de
dicho ciclo por errores o cambios que no son detectados en reuniones
anteriores afecta tanto a la calidad del producto como a su costo total.
Dado a que es una metodología ágil implica no realizar procesos que son
requeridos en las metodologías tradicionales o por lo menos no
realizarlos en procesos diferentes, lo cual implica que empresas grandes
las cuales necesitan llevar un mayor control a procesos y personas, tener
tareas asignadas a un estado o proceso especifico.
Artefactos
No prescribe artefactos.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
Análisis Crítico:
Todas las metodologías de desarrollo ágil son de mucha ayuda dependiendo del
proyecto que estemos por realizar, SCRUM para mi es la metodología que más
documentación presento al momento de investigar scrum tiene más roles y
muchas más características en comparación a las demás metodologías pero
como dije anteriormente depende del proyecto que vamos a realizar para
nosotros ser decisivos en que metodología utilizar, Adaptative Software
development es una metodología que está surgiendo y es muy interesante
investigarla.
Bibliografía:
[1] I. d. Sotware, «Ingenieria de Software,» [En línea]. Available:
http://ingenieriadesoftware.mex.tl/61154_ASD.html.
[2] EcuRed, «Metodología Scrum,» [En línea]. Available:
https://www.ecured.cu/Metodolog%C3%ADa_Scrum.
[3] EcuRed, «EXtreme Programming,» [En línea]. Available:
https://www.ecured.cu/EXtreme_Programming.
[4] ScrumManager. [En línea]. Available:
https://www.scrummanager.net/bok/index.php?title=Artefactos.
Descargar