Está en la página 1de 34

UNIVERSIDAD POPULAR DEL CESAR

MARIBEL ROMERO MESTRE


El enfoque se dio a conocer en la
comunidad de Ingeniería de Software con el
nombre de RAD o Rapid Application
Development. RAD consistía en un entorno
de desarrollo altamente productivo, en el
que participaban grupos pequeños de
programadores utilizando herramientas que
generaban código en forma automática
tomando como entradas sintaxis de alto
nivel.
Los procesos ágiles de desarrollo de software,
conocidos anteriormente como metodologías
livianas, intentan evitar los tortuosos y
burocráticos caminos de las metodologías
tradicionales enfocándose en la gente y los
resultados.
El desarrollo ágil de software, combina una filosofía
y un conjunto de directrices de crecimiento; en
donde la filosofía busca:
 La satisfacción del usuario final junto a la entrega
temprana o rápida del mismo.
 Formación de equipos de proyecto con alta motivación
(trabajo colaborativo).
 Métodos informales de programación y simplicidad
general del desarrollo de los software todo esto para
alcanzar las metas propuestas por los equipos de
trabajos de una manera mas rápida y eficaz con menos
desgate tanto humano como temporal.
Mejores maneras de desarrollar software tanto por experiencia
propia como ayudando a terceros. A través de esta experiencia se
aprende a valorar:

 Individuos e interacciones sobre procesos y herramientas


 Software que funciona sobre documentación exhaustiva
 Colaboración con el cliente sobre negociación de contratos
 Responder ante el cambio sobre seguimiento de un plan

http://www.agilemanifesto.org
 El desarrollo de software es
◦ Incremental
 liberaciones pequeñas y ciclos rápidos.
◦ Cooperativo
 clientes y desarrolladores trabajando juntos.
◦ Simple y Directo
 el método es fácil de aprender y modificar.
◦ Adaptativo
 es posible realizar cambios de último momento.
 La mayor prioridad es satisfacer al cliente a través de la entrega
temprana y continua de software con valor.
 Requisitos cambiantes, incluso en etapas avanzadas.
 Entrega de software frecuentemente.
 Los responsables de negocio y los desarrolladores deben trabajar
juntos diariamente a lo largo del proyecto.
 Se construyen proyectos con profesionales motivados.
 Conversación cara a cara.
 Software que funciona es la principal medida de progreso.
 Los procesos ágiles promueven el desarrollo sostenible.
 La atención continua a la excelencia técnica y los buenos diseños
mejoran la agilidad.
 Simplicidad es esencial.
 Las mejores arquitecturas, requisitos y diseños surgen de equipos que se
auto-organizan.
 A intervalos regulares el equipo reflexiona sobre cómo ser más
efectivo.

http://www.agilemanifesto.org/principles.html
Existe una amplia gama de metodologías y prácticas ágiles
de desarrollo de software que pueden ser utilizadas desde la
construcción de pequeños aplicativos y componentes de un
sistema, hasta una solución completa de software
empresarial. Algunas de las más prominentes son:
 La Programación Extrema es una
metodología ligera de desarrollo de
software que se basa en la simplicidad, la
comunicación y la realimentación o
reutilización del código desarrollado.
Desarrollada por Kent Beck.
«Todo en el software cambia. Los requisitos cambian. El diseño
cambia. El negocio cambia. La tecnología cambia. El equipo
cambia. Los miembros del equipo cambian. El problema no es el
cambio en sí mismo, puesto que sabemos que el cambio va a
suceder; el problema es la incapacidad de adaptarnos a dicho
cambio cuando éste tiene lugar.» Kent Beck.
 Centrada en potenciar las relaciones
interpersonales
 Promueve el trabajo en equipo,
 Se preocupa por el aprendizaje de los
desarrolladores, y propiciar un buen clima
de trabajo.
 Comunicación fluida entre todos los
participantes.
 Adecuada para proyectos con requisitos
imprecisos y muy cambiantes.
 Programador.  - Encargado de
Codigo - Pruebas seguimiento
 Cliente. Historia de (Tracker).
Usuarios  - Entrenador
 Encargado de (Coach).
pruebas (Tester).  - Consultor.
 - Gestor (Big boss).
Es el vínculo entre clientes y
programadores
 Scrum define un proceso empírico, iterativo
e incremental de desarrollo que intenta
obtener ventajas respecto a los procesos
definidos (cascada, espiral, prototipos, etc.)
mediante la aceptación de la naturaleza
caótica del desarrollo de software, y la
utilización de prácticas tendientes a
manejar lo impredecible y el riesgo a niveles
aceptables.
• Está especialmente indicada para proyectos con un
rápido cambio de requisitos.
• 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.
• Se realizan reuniones a lo largo proyecto, entre
ellas destaca la reunión diaria de 15 minutos del
equipo de desarrollo para coordinación e
integración.
SCRUM Estructura
• Esqueleto de SCRUM •Corazón de SCRUM
• Proceso iterativo e •Iteraciones
incremental
• Equipos auto-organizados
• El producto progresa en una serie de “sprints” que
duran un mes
• Los requerimientos se encuentran en el “product
backlog” reunidos en una lista
• No contiene practicas de ingeniería pre-descriptas
• Utiliza reglas generales para crear un ambiente ágil
para la liberación de los proyectos
• Usado para proyectos complejos con requerimientos
cambiantes
• Basado en un control de proceso empírico
SCRUM Roles
• Product owner (dueño del producto)

• Team (equipo)

• ScrumMaster
El desarrollo adaptativo de software (DAS) lo
propuso Jim Highsmith 1998 como una
técnica para construir software y sistemas
complejos. Los apoyos filosóficos del DAS se
enfocan en la colaboración humana y la
organización propia del equipo.
Sus principales  Especulación: ciclo
características son: adaptativo.
 Iterativo, orientado
 Colaboración: gente
motivada.
a los componentes  Aprendizaje: progreso
software más que a de un ciclo.
las tareas y a) Grupos enfocados.
tolerante a los b) Revisiones técnicas
cambios. formales.
c) Post mortem.
 El ciclo de vida que propone tiene tres fases
esenciales: especulación, colaboración y
aprendizaje. En la primera de ellas se inicia el
proyecto y se planifican las características del
software; en la segunda desarrollan las
características y finalmente en la tercera se
revisa su calidad, y se entrega al cliente. La
revisión de los componentes sirve para
aprender de los errores y volver a iniciar el
ciclo de desarrollo
 El involucramiento del usuario es imperativo.
 Los equipos de DSDM deben tener el poder de tomar
decisiones.
 El foco está puesto en la entrega frecuente de productos.
 La conformidad con los propósitos del negocio es el criterio
esencial para la aceptación de los entregables.
 El desarrollo iterativo e incremental es necesario para
converger hacia una correcta solución del negocio.
 Todos los cambios durante el desarrollo son reversibles.
 Los requerimientos están especificados a un alto nivel.
 El testing es integrado a través del ciclo de vida.
 Un enfoque colaborativo y cooperativo entre todos los
interesados es esencial.
 Estudio de factibilidad.
 Estudio de negocios.
 Iteración de modelo funcional.
 Iteración de construcción y diseño.
 Implementación.
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.
Los siete valores o propiedades de Crystal Clear son:
Entrega frecuente. Consiste en entregar software a los

clientes con frecuencia.


Comunicación osmótica. Todos juntos en el mismo

cuarto.
Mejora reflexiva. Tomarse un pequeño tiempo para

pensar bien qué se está haciendo


Seguridad personal. Hablar cuando algo molesta

Foco. Saber lo que se está haciendo y tener la

tranquilidad y el tiempo
para hacerlo.

Fácil acceso a usuarios expertos.


 Feature Oriented Programming (FOP) es una
técnica de programación guiada por rasgos o
características (features) y centrada en el
usuario, no en el programador; su objetivo es
sintetizar un programa conforme a los rasgos
requeridos.
 Modelar con un propósito
 Usar múltiples modelos
 Viajar ligero
 El contenido es mas importante que la
representación
 Conocer los modelos y las herramientas con
que se crean
 Adaptar de forma local
Aún son muchas las personas y organizaciones
que desconocen los beneficios que traen consigo
las prácticas ágiles de desarrollo de software en la
actualidad. Sin embargo, esa realidad está
cambiando a medida que aumentan los casos de
éxito de proyectos que implementan dichos
enfoques ágiles, demostrando con hechos lo que
hace unos años era solo una moda.
Junto a la entrada de MSF Agile, Microsoft realiza una
importante inversión en el diseño y especificación de un
proceso ágil de desarrollo de software, el cual cumple con los
requerimientos para el nivel 3 del CMMI (Capability Maturity
Model Integration) del Instituto de Ingeniería de Software (SEI
por sus siglas en inglés). La principal diferencia entre MSF
Agile y MSF CMMI es que este último está orientado a
proyectos donde el nivel de formalidad es mucho mayor y se
exige una cultura de mejoramiento continuo de procesos.
Uno de los beneficios de implementar la metodología de MSF
CMMI es contar con una evaluación estándar por medio de la
cual se puede validar la habilidad de desarrollar software en
una organización.
 Sólo hay dos opciones para desarrollar software: iteración
continua o modelo secuencial.
 Con los modelos ágiles el coste de reparar errores no se
incrementa al avanzar el desarrollo.
 Los proyectos de desarrollo de software son problemáticos
"per se".
 Los cambios en los requisitos son inevitables.
 Los requisitos no se "obtienen", basta tomarlos como maná
caído del cielo.
 Los proyectos empresariales no deben temer a los riesgos.
 Un buen modelo de desarrollo se puede aplicar a todos los
proyectos.
Gracias Por su Atención

También podría gustarte