Anda di halaman 1dari 45

DESARROLLO GIL

CAPTULO III
CONTENIDO
QU ES LA AGILIDAD?
LA AGILIDAD Y EL COSTO DEL CAMBIO.
QU ES UN PROCESO GIL?
PROGRAMACIN EXTREMA (XP).
OTROS MODELOS GILES DE PROCESO.
CONJUNTO DE HERRAMIENTAS PARA EL
PROCESO GIL.
RESUMEN.
QU ES LA AGILIDAD?

La agilidad se ha convertido en
la palabra mgica de hoy para
describir un proceso del
software moderno.
Es algo ms que una respuesta
efectiva al cambio.
Puede aplicarse a cualquier
proceso del software.
LA AGILIDAD Y EL COSTO DEL CAMBIO

La sabidura convencional del desarrollo de


software seala que el costo se incrementa en
forma no lineal a medida que el proyecto
avanza.
El escenario de uso tal vez tenga que
modificarse, la lista de funciones puede
aumentar, o editarse una especificacin escrita.
Los costos de hacer que esto funcione son
mnimos, y el tiempo requerido no perjudicar
el resultado del proyecto.
QU ES UN PROGRAMA GIL?

Cualquier proceso del software gil se caracteriza por


la forma en la que aborda cierto nmero de
suposiciones clave acerca de la mayora de
proyectos de software:

Es difcil predecir qu requerimientos de software


persistirn y cules cambiarn.
Es difcil predecir cunto diseo se necesita antes
de que se use la construccin para probar el diseo.
El anlisis, el diseo, la construccin y las pruebas
no son tan predecibles como nos gustara (desde
un punto de vista de planeacin).
QU ES UN PROGRAMA GIL?

PRINCIPIOS DE LA AGILIDAD

La Alianza gil define 12 principios de agilidad para


aquellos que la quieran alcanzar:
1) La prioridad ms alta es satisfacer al cliente a
travs de la entrega pronta y continua de software
valioso.
2) Son bienvenidos los requerimientos cambiantes,
aun en una etapa avanzada del desarrollo.
3) Entregar con frecuencia software que funcione, de
dos semanas a un par de meses, de preferencia lo
ms pronto que se pueda.
QU ES UN PROGRAMA GIL?

PRINCIPIOS DE LA AGILIDAD

4) Las personas de negocios y los


desarrolladores deben trabajar juntos, a diario
y durante todo el proyecto.
5) Hay que desarrollar los proyectos con
individuos motivados.
6) El mtodo ms eficiente y eficaz para
transmitir informacin a los integrantes de un
equipo de desarrollo, y entre stos, es la
conversacin cara a cara.
QU ES UN PROGRAMA GIL?

PRINCIPIOS DE LA AGILIDAD

7) La medida principal de avance es el


software que funciona.
8) Los procesos giles promueven el
desarrollo sostenible.
9) La atencin continua a la excelencia
tcnica y el buen diseo mejora la
agilidad.
QU ES UN PROGRAMA GIL?

PRINCIPIOS DE LA AGILIDAD

10) Es esencial la simplicidad: el arte de


maximizar la cantidad de trabajo no realizado.
11) Las mejores arquitecturas, requerimientos y
diseos surgen de los equipos con
organizacin propia.
12) El equipo reflexiona a intervalos regulares
sobre cmo ser ms eficaz, para despus
afinar y ajustar su comportamiento en
consecuencia.
QU ES UN PROGRAMA GIL?

LA POLTICA DEL DESARROLLO GIL

Hay mucho debate sobre los beneficios y


aplicabilidad del desarrollo de software gil como
oposicin a los procesos ms convencionales.
Jim Highsmith los extremos cuando caracteriza la
posicin del campo a favor de la agilidad:
Los metodlogos tradicionales estn atrapados en
un pantano y producirn una documentacin sin
defectos en vez de un sistema funcional que
satisfaga las necesidades del negocio.
QU ES UN PROGRAMA GIL?

FACTORES HUMANOS

Existe cierto nmero de caractersticas clave,


que debe compartir el equipo gil como tal:
Competencia: En un contexto de desarrollo
gil, la competencia incluye el talento
innato, las habilidades especficas
relacionadas con el software y el
conocimiento general del proceso que el
equipo haya elegido aplicar.
QU ES UN PROGRAMA GIL?

FACTORES HUMANOS

Enfoque comn: Aunque los miembros del equipo gil


realicen diferentes tareas y aporten habilidades distintas al
proyecto, todos deben centrarse en una meta: entregar al
cliente en la fecha prometida un incremento de software que
funcione.
Colaboracin: La ingeniera de software trata de evaluar,
analizar y usar la informacin que se comunica al equipo de
software; crear informacin que ayudar a todos los
participantes a entender el trabajo del equipo; y generar
informacin que aporten al cliente valor del negocio.
Habilidad para tomar decisiones: Cualquier equipo bueno
de software debe tener libertad para controlar su destino.
QU ES UN PROGRAMA GIL?

FACTORES HUMANOS

Capacidad para resolver problemas difusos: Los gerentes de


software deben reconocer que el equipo gil tendr que tratar en
forma continua con la ambigedad y que ser sacudido de manera
permanente por el cambio.
Confianza y respeto mutuos: El equipo gil debe convertirse en
lo que DeMarco y Lister llaman pegado. Un equipo pegado tiene
la confianza y respeto que son necesarios para hacer su tejido tan
fuerte que el todo es ms que la suma de sus partes.
Organizacin propia: La organizacin propia implica tres cosas:
1) el equipo gil se organiza a s mismo para hacer el trabajo, 2) el
equipo organiza el proceso que se adapte mejor a su ambiente
local, 3) el equipo organiza la programacin del trabajo a fin de que
se logre del mejor modo posible la entrega del incremento de
software.
PROGRAMACIN EXTREMA
VALORES XP

Beck define un conjunto de cinco


valores que establecen el fundamento
para todo trabajo realizado como parte
de XP: comunicacin, simplicidad,
retroalimentacin, valenta y respeto.
Cada uno de estos valores se usa como
un motor para actividades, acciones y
tareas especficas de XP.
PROGRAMACIN EXTREMA
EL PROCESO XP

La programacin extrema usa un enfoque orientado a


objetos como paradigma preferido de desarrollo, y
engloba un conjunto de reglas y prcticas que ocurren
en el contexto de cuatro actividades estructurales:
planeacin, diseo, codificacin y pruebas.
PROGRAMACIN EXTREMA
EL PROCESO XP

Planeacin: La actividad de planeacin comienza


escuchando.
Diseo: Un diseo sencillo siempre se prefiere sobre
una representacin ms compleja.
Codificacin: Una vez que el cdigo est terminado,
se le aplica de inmediato una prueba unitaria, con lo
que se obtiene retroalimentacin instantnea para los
desarrolladores
Pruebas: Las pruebas unitarias que se crean deben
implementarse con el uso de una estructura que
permita automatizarlas.
PROGRAMACIN EXTREMA
XP INDUSTRIAL

IXP incorpora seis prcticas nuevas diseadas


para ayudar a garantizar que un proyecto XP
funciona con xito para proyectos significativos
dentro de una organizacin grande.
Evaluacin de la factibilidad: Antes de iniciar
un proyecto IXP, la organizacin debe efectuar
una evaluacin de la factibilidad.
Comunidad del proyecto: La XP clsica sugiere
que se utilice personal apropiado para formar el
equipo gil a fin de asegurar el xito.
PROGRAMACIN EXTREMA
XP INDUSTRIAL

Calificacin del proyecto: El equipo de IXP


evala el proyecto para determinar si existe
una justificacin apropiada de negocios y si
el proyecto cumplir las metas y objetivos
generales de la organizacin.
Administracin orientada a pruebas: Un
proyecto IXP requiere criterios medibles para
evaluar el estado del proyecto y el avance
realizado.
PROGRAMACIN EXTREMA
XP INDUSTRIAL

Retrospectivas: Despus de entregar un


incremento de software, el equipo XP realiza una
revisin tcnica especializada que se llama
retrospectiva y que examina los temas, eventos y
lecciones aprendidas a lo largo del incremento de
software y/o de la liberacin de todo el software.
Aprendizaje continuo: Como el aprendizaje es una
parte vital del proceso de mejora continua, los
miembros del equipo XP son invitados a aprender
nuevos mtodos y tcnicas que conduzcan a una
calidad ms alta del producto.
PROGRAMACIN EXTREMA
EL DEBATE XP

Entre los aspectos que destacan algunos


crticos de la XP estn los siguientes:

Volatilidad de los requerimientos: Como el


cliente es un miembro activo del equipo XP, los
cambios a los requerimientos se solicitan de
manera informal.
Necesidades conflictivas del cliente:
Muchos proyectos tienen clientes mltiples,
cada uno con sus propias necesidades.
PROGRAMACIN EXTREMA
EL DEBATE XP

Los requerimientos se expresan


informalmente: Las historias de usuario y las
pruebas de aceptacin son la nica
manifestacin explcita de los requerimientos
en XP.
Falta de un diseo formal: XP desalienta la
necesidad del diseo de la arquitectura y, en
muchas instancias, sugiere que el diseo de
todas las clases debe ser relativamente
informal.
OTROS MODELOS GILES DE PROCESO

La historia de la ingeniera de software est


salpicada de decenas de descripciones y
metodologas de proceso, mtodos de
modelado y notaciones, herramientas y
tecnologa, todos ellos obsoletos.
Con la introduccin de una amplia variedad
de modelos giles del proceso el
movimiento gil est siguiendo la misma
ruta histrica.
Se han propuesto muchos otros y estn en
uso en toda la industria. Entre ellos se
encuentran los siguientes:
OTROS MODELOS GILES DE PROCESO

DESARROLLO ADAPTATIVO DE
SOFTWARE (DAS)

Fue propuesto por Jim Highsmith como una


tcnica para elaborar software y sistemas
complejos, quien argumenta que un enfoque
de desarrollo adaptativo basado en la
colaboracin es tanto una fuente de orden
en nuestras complejas interacciones, como
de disciplina e ingeniera.
OTROS MODELOS GILES DE PROCESO

DESARROLLO ADAPTATIVO DE
SOFTWARE (DAS)
OTROS MODELOS GILES DE PROCESO

SCRUM

Es un mtodo de desarrollo gil de software


concebido por Jeff Sutherland y su equipo de
desarrollo a principios de la dcada de 1990. En
aos recientes, Schwaber y Beedle han
desarrollado ms los mtodos Scrum.
Los principios Scrum son congruentes con el
manifiesto gil y se utilizan para guiar actividades
de desarrollo dentro de un proceso de anlisis que
incorpora las siguientes actividades estructurales:
requerimientos, anlisis, diseo, evolucin y
entrega.
OTROS MODELOS GILES DE PROCESO

SCRUM

Scrum acenta el uso de un conjunto de


patrones de proceso del software que han
demostrado ser eficaces para proyectos con
plazos de entrega muy apretados,
requerimientos cambiantes y negocios crticos.
Cada uno de estos patrones de proceso define
un grupo de acciones de desarrollo:
Retraso: Lista de prioridades de los
requerimientos o caractersticas del proyecto
que dan al cliente un valor del negocio.
OTROS MODELOS GILES DE PROCESO

MTODO DE DESARROLLO DE
SISTEMAS DINMICOS (MDSD)

Es un enfoque de desarrollo gil de


software que proporciona una estructura
para construir y dar mantenimiento a
sistemas que cumplan restricciones
apretadas de tiempo mediante la
realizacin de prototipos incrementales en
un ambiente controlado de proyectos.
OTROS MODELOS GILES DE PROCESO

MTODO DE DESARROLLO DE
SISTEMAS DINMICOS (MDSD)

Define tres ciclos iterativos distintos,


precedidos de dos actividades adicionales
al ciclo de vida:
Estudio de factibilidad: establece los
requerimientos y restricciones bsicas del
negocio, asociados con la aplicacin que
se va a construir, para luego evaluar si la
aplicacin es un candidato viable para
aplicarle el proceso MDSD.
OTROS MODELOS GILES DE PROCESO

MTODO DE DESARROLLO DE
SISTEMAS DINMICOS (MDSD)

Estudio del negocio: Establece los


requerimientos e informacin funcionales que
permitirn la aplicacin para dar valor al
negocio; asimismo, define la arquitectura bsica
de la aplicacin e identifica los requerimientos
para darle mantenimiento.
Iteracin del modelo funcional: Produce un
conjunto de prototipos incrementales que
demuestran al cliente la funcionalidad.
OTROS MODELOS GILES DE PROCESO

CRISTAL

Alistar Cockburn cre la familia Cristal de


mtodos giles a fin de obtener un enfoque
de desarrollo de software que premia la
maniobrabilidad durante lo que Cockburn
caracteriza como un juego cooperativo con
recursos limitados, de invencin y
comunicacin, con el objetivo primario de
entregar software til que funcione y con la
meta secundaria de plantear el siguiente
juego
OTROS MODELOS GILES DE PROCESO

DESARROLLO IMPULSADO POR


LAS CARACTERISTICAS (DIC)

Concebido originalmente Peter Coad y sus


colegas como modelo prctico de proceso
para la ingeniera de software orientada a
objetos.
Stephen Palmer y John Felsing ampliaron y
mejoraron el trabajo de Coad con la
descripcin de un proceso adaptativo y gil
aplicable a proyectos de software de tamao
moderado y grande.
OTROS MODELOS GILES DE PROCESO

DESARROLLO IMPULSADO POR


LAS CARACTERISTICAS (DIC)

El nfasis en la definicin de caractersticas


proporciona los beneficios siguientes:
Debido a que las caractersticas son bloques
pequeos de funcionalidad que se entrega, los
usuarios las describen con ms facilidad,
entienden cmo se relacionan entre s y las
revisan mejor en busca de ambigedades,
errores u omisiones.
OTROS MODELOS GILES DE PROCESO

DESARROLLO IMPULSADO POR


LAS CARACTERISTICAS (DIC)

Las caractersticas se organizan por


jerarqua de grupos relacionados con el
negocio.
Como una caracterstica es el
incremento de software DIC que se
entrega, el equipo desarrolla
caractersticas operativas cada dos
semanas.
OTROS MODELOS GILES DE PROCESO

DESARROLLO IMPULSADO POR


LAS CARACTERISTICAS (DIC)

El diseo y representacin en cdigo de las


caractersticas son ms fciles de
inspeccionar con eficacia porque stas son
pequeas.
La planeacin, programacin de actividades y
seguimiento son determinadas por la jerarqua
de caractersticas, y no por un conjunto de
tareas de ingeniera de software adoptadas en
forma arbitraria.
OTROS MODELOS GILES DE PROCESO

DESARROLLO ESBELTO DE
SOFTWARE (DES)

Adapta los principios de la manufactura


esbelta al mundo de la ingeniera de
software. Los principios de esbeltez que
inspiran al proceso DES se resumen como
sigue: eliminar el desperdicio, generar
calidad, crear conocimiento, aplazar el
compromiso, entregar rpido, respetar a
las personas y optimizar al todo.
OTROS MODELOS GILES DE PROCESO

MODELO GIL (MA)

Es una metodologa basada en la prctica


para modelar y documentar con eficacia los
sistemas basados en software. En pocas
palabras, es un conjunto de valores,
principios y prcticas para hacer modelos de
software aplicables de manera eficaz y
ligera a un proyecto de desarrollo de
software.
Los modelos giles son ms eficaces que los
tradicionales porque son slo buenos, sin
pretender ser perfectos.
OTROS MODELOS GILES DE PROCESO

MODELO GIL (MA)

Aunque el MA sugiere una amplia variedad


de principios de modelado
fundamentales y suplementarios,
aquellos que son exclusivos del MA son los
siguientes :
Modelo con un propsito: Un
desarrollador que use el MA debe tener en
mente una meta especfica antes de crear
el modelo.
OTROS MODELOS GILES DE PROCESO

MODELO GIL (MA)

Uso de modelos mltiples: Hay muchos


modelos y notaciones diferentes que
pueden usarse para describir el software.
Viajar ligero: Conforme avanza el trabajo
de ingeniera de software, conserve slo
aquellos modelos que agreguen valor a
largo plazo y elimine los dems.
OTROS MODELOS GILES DE PROCESO

MODELO GIL (MA)

El contenido es ms importante que la


representacin: El modelado debe transmitir
informacin al pblico al que se dirige.
Conocer los modelos y herramientas que
se utilizan en su creacin: Entender las
fortalezas y debilidades de cada modelo y las
herramientas que se emplean para crearlos.
Adaptacin local: El enfoque de modelado
debe adaptarse a las necesidades del equipo
gil.
OTROS MODELOS GILES DE PROCESO

EL PROCESO UNIFICADO GIL


(PUA)

Adopta una filosofa en serie para lo


grande e iterativa para lo pequeo a fin
de construir sistemas basados en
computadora.
Cada iteracin del PUA aborda las
actividades siguientes:
Modelado: Se crean representaciones de
UML de los dominios del negocio y el
problema.
OTROS MODELOS GILES DE PROCESO

EL PROCESO UNIFICADO GIL


(PUA)

Implementacin: Los modelos se traducen a


cdigo fuente.
Pruebas: Igual que con la XP, el equipo disea y
ejecuta una serie de pruebas para detectar
errores y garantizar que el cdigo fuente cumple
sus requerimientos.
Despliegue: Como en la actividad general del
proceso que se estudi en los captulos 1 y 2, el
despliegue en este contexto se centra en la
entrega de un incremento de software y en la
OTROS MODELOS GILES DE PROCESO

EL PROCESO UNIFICADO GIL


(PUA)

Configuracin y administracin del


proyecto: En el contexto del PUA, la
administracin de la configuracin incluye la
administracin del cambio y el riesgo, y el
control de cualesquiera productos del
trabajo persistentes que produzca el equipo.
Administracin del ambiente: La
administracin del ambiente coordina una
infraestructura del proceso que incluye
CONJUNTO DE HERRAMIENTAS PARA EL
PROCESO GIL

Algunos defensores de la filosofa gil


afirman que las herramientas
automatizadas de software deben verse
como un complemento menor de las
actividades del equipo, y no como algo
fundamental para el xito. Sin
embargo, Alistair Cockburn sugiere que
las herramientas tienen un beneficio y
que los equipos giles favorecen el
uso de herramientas que permiten el
RESUMEN
Los profesionales deben enfocar la ingeniera de software en
forma que les permita mantenerse giles para definir
procesos maniobrables, adaptativos y esbeltos que
satisfagan las necesidades de los negocios modernos.
La programacin extrema (XP) es el proceso gil de ms uso,
la cual sugiere cierto nmero de tcnicas innovadoras y
poderosas que permiten a un equipo gil generar entregas
frecuentes de software que posee caractersticas y
funcionalidad que han sido descritas y clasificadas segn su
prioridad por los participantes.
Otros modelos de proceso gil tambin insisten en la
colaboracin humana y en la organizacin propia del equipo,
pero definen sus actividades estructurales y seleccionan
diferentes puntos de importancia.
GRACIAS