Está en la página 1de 9

Adaptive Software Development

Introduccin

Indice

ASD (Adaptive software development)

Historia
La tcnica de Adaptive software Development fue desarrollada por Jim Highsmith y Sam
Bayer a comienzos de 1990. Esta metodologa se adapta al cambio en lugar de luchar contra l. Se
basa en la adaptacin continua a circunstancias cambiantes. En ella no hay un ciclo de
planificacin-diseo-construccin del software, sino un ciclo especular-colaborar-aprender.
James Highsmith III, consultor de Cutter Consortium, desarroll ASD hacia el ao 2000 con
la intencin primaria de ofrecer una alternativa a la idea, propia de CMM Nivel 5, de que la
optimizacin es la nica solucin para problemas de complejidad creciente. Este mtodo gil
pretende abrir una tercera va entre el desarrollo monumental de software y el desarrollo
accidental, o entre la burocracia y la adhocracia. Deberamos buscar ms bien, afirma Highsmith,
el rigor estrictamente necesario; para ello hay que situarse en coordenadas apenas un poco
fuera del caos y ejercer menos control que el que se cree necesario, el pensador de quien
Highsmith toma estas ideas es John Holland, el creador del algoritmo gentico y probablemente el
investigador actual ms importante en materia de procesos emergentes.
Para Highsmith, los proyectos de software son sistemas adaptativos complejos y la
optimizacin no hace ms que sofocar la emergencia necesaria para afrontar el cambio. Llevando
ms all la analoga, Highsmith interpreta la organizacin empresarial que emprende un desarrollo
como si fuera un ambiente, sus miembros como agentes y el producto como el resultado
emergente de relaciones de competencia y cooperacin.
Definicin
El mtodo gil ASD (Adaptive Software Development) traducido en espaol significa
Desarrollo Adaptable de Software es un modelo de implementacin de patrones giles para
desarrollo de software.
El desarrollo de software adaptable (Adaptive Software Development - ASD) es una
metodologa de desarrollo que hace nfasis en aplicar las ideas que se originaron en el mundo de
los sistemas complejos, adaptacin continua del proceso al trabajo.
El mtodo gil ASD Desarrollo adaptable de software es un modelo de implementacin
para desarrollo de software. Al igual que otras metodologas agiles su funcionamiento es cclico y
reconoce que en cada iteracin se producirn cambios e incluso errores. Esta metodologa no
posee muchas ataduras, ni tampoco reglas a seguir, en otras palabras podemos decir que es un
proceso libre o mas abierto. Este mtodo se logra adaptar al cambio en lugar de luchar contra el,
se basa en adaptacin continua a circunstancias cambiantes.
La estrategia entera se basa en el concepto de emergencia, una propiedad de los sistemas
adaptativos complejos que describe la forma en que la interaccin de las partes genera una
propiedad que no puede ser explicada en funcin de los componentes individuales. ASD
presupone que las necesidades del cliente son siempre cambiantes. La iniciacin de un proyecto
involucra definir una misin para l, determinar las caractersticas y las fechas y descomponer el
proyecto en una serie de pasos individuales, cada uno de los cuales puede abarcar entre cuatro y
ocho semanas.
Aspectos claves de ASD son:
1. Un conjunto no estndar de artefactos de misin (documentos para t y para m), incluyendo
una visin del proyecto, una hoja de datos, un perfil de misin del producto y un esquema de su
especificacin
2. Un ciclo de vida, inherentemente iterativo.
3. Cajas de tiempo, con ciclos cortos de entrega orientados por riesgo.
Un ciclo de vida es una iteracin, este ciclo se basa en componentes y no en tareas, es
limitado en el tiempo, orientado por riesgos y tolerante al cambio. Que se base en componentes
implica concentrarse en el desarrollo de software que trabaje, construyendo el sistema pieza por
pieza. En este paradigma, el cambio es bienvenido y necesario, pues se concibe como la
oportunidad de aprender y ganar as una ventaja competitiva; de ningn modo es algo que pueda
ir en detrimento del proceso y sus resultados.
La idea subyacente a ASD (y de ah su particularidad) radica en que no proporciona un
mtodo para el desarrollo de software sino que ms bien suministra la forma de implementar una
cultura adaptativa en la empresa, con capacidad para reconocer que la incertidumbre y el cambio
son el estado natural. El problema inicial es que la empresa no sabe que no sabe, y por tal razn
debe aprender. Los cuatro objetivos de este proceso de aprendizaje son entonces:
1. Prestar soporte a una cultura adaptativa o un conjunto mental para que se espere cambio e
incertidumbre y no se tenga una falsa expectativa de orden.
2. Introducir marcos de referencia para orientar el proceso iterativo de gestin del cambio.
3. Establecer la colaboracin y la interaccin de la gente en tres niveles: interpersonal, cultural y
estructural.
4. Agregar rigor y disciplina a una estrategia RAD, hacindola escalable a la complejidad de los
emprendimientos de la vida real.
ASD se concentra ms en los componentes que en las tareas; en la prctica, esto se traduce en
ocuparse ms de la calidad que en los procesos usados para producir un resultado. En los ciclos
adaptativos de la fase de Colaboracin, el planeamiento es parte del proceso iterativo, y las
definiciones de los componentes se refinan continuamente. La base para los ciclos posteriores (el
bucle de Aprendizaje) se obtiene a travs de repetidas revisiones de calidad con presencia del
cliente como experto, constituyendo un grupo de foco de cliente. Esto ocurre solamente al final de
las fases, por lo que la presencia del cliente se suplementa con sesiones de desarrollo conjunto de
aplicaciones (JAD). Hemos visto que una sesin JAD, comn en el antiguo RAD, es un taller en el
que programadores y representantes del cliente se encuentran para discutir rasgos del producto
en trminos no tcnicos, sino de negocios.


CARACTERISITICAS
Sus principales caractersticas del ASD son:
Iterativo. Al ser un modelo linear dinmico, permite la iteracin entre sus ciclos de vida
simultneamente.
Orientado a los componentes de software. La funcionalidad que el producto va a tener
ms que a las tareas en las que se va a alcanzar dicho objetivo.
Tolerante a los cambios. Este modelo, como su nombre lo indica es Adaptable, lo cual lo
hace muy tolerante a cualquier cambio en el diseo.
Guiado por los riesgos. Al momento de encontrar un riesgo, el modelo toma el riesgo y se
adapta.
Aprender de los Errores. La revisin de los componentes sirve para

Ciclo de vida del Adaptive software development

ASD utiliza un "cambio orientado hacia el ciclo de vida", que tiene tres componentes que son:
especular, colaborar y aprender.
Especular:

Una primera fase de iniciacin para establecer los principales objetivos y metas del
proyecto en su conjunto y comprender las limitaciones (zonas de riesgo) con las que operar el
proyecto. En ASD se realizan estimaciones de tiempo sabiendo que pueden sufrir desviaciones. Sin
embargo, estas son necesarias para la correcta atencin de los trabajadores que se mueven dentro
de plazos de forma que puedan priorizar sus tareas.
Se decide el nmero de iteraciones para consumir el proyecto, prestando atencin a las
caractersticas que pueden ser utilizadas por el cliente al final de la iteracin. Son por tanto
necesarios, marcar objetivos prioritarios dentro de las mismas iteraciones.
Estos pasos se puede volver a examinar varias veces antes de que el equipo y los clientes
estn satisfechos con el resultado. Ofrece ms espacio para explorar, para darse cuenta que no
todo es seguro, permitiendo desviarse del plan sin ningn temor. Muchas veces desviarse del plan
original puede considerarse un error, ms que una oportunidad de aprendizaje, es ah donde la
especulacin incita a explorar y a experimentar. Si se admite que no se conoce todo, se est ms
dispuesto a aprender.




Colaborar:
Es la fase donde se centra la mayor parte del desarrollo manteniendo una componente
cclica. Un trabajo importante es la coordinacin que asegure que lo aprendido por un equipo se
transmite al resto y no tenga que volver a ser aprendido por los otros equipos.
Las aplicaciones complejas requieren, la recoleccin y el anlisis de un gran volumen de
informacin, lo cual no puede ser controlado por una sola persona. A su vez aplicaciones con
ambientes cambiantes como las de e-commerce producen un gran flujo de datos, los cuales
pueden ser manejados por una persona, o un grupo pequeo, ya que estos no pueden saberlo
todo.

Aprender:

La ltima etapa termina con una serie de ciclos de colaboracin, su trabajo consiste en
capturar lo que se ha aprendido, tanto positivo como negativo. Es un elemento crtico para la
eficacia de los equipos.
Se debe evaluar el conocimiento constantemente realizando retroalimentaciones y
reuniones de grupo, al final de cada ciclo iterativo, en lugar de al final del proyecto, ya que esto
ayuda a soportar y solucionar de una mejor manera el constante cambio que puede tener el
proyecto y su adaptacin.







Jim Highsmith identifica cuatro tipos de aprendizaje en esta etapa:

Calidad del producto desde un punto de vista del cliente. Es la nica medida legtima de
xito, pero adems, dentro de las metodologas giles, los clientes tienen un valor
importante.

Calidad del producto desde un punto de vista de los desarrolladores. Se trata de la
evaluacin de la calidad de los productos desde un punto de vista tcnico. Ejemplos de
esto incluyen la adhesin a las normas y objetivos conforme a la arquitectura.

La gestin del rendimiento. Este es un proceso de evaluacin para ver lo que se ha
aprendido mediante el empleo de los procesos utilizados por el equipo.

Situacin del proyecto. Como paso previo a la planificacin de la siguiente iteracin del
proyecto, es el punto de partida para la construccin de la siguiente serie de
caractersticas.


Ventajas y Desventajas
Ventajas
La tercera fase del ciclo de vida,
revisin 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 ms posible.
Utiliza informacin disponible acerca
de cambios para mejorar el
comportamiento del software.
Promulga colaboracin, la
interaccin de personas.
Anticipa cambios y trata
automticamente con ellos dentro
de un programa en ejecucin, sin la
necesidad de un programador.
Se utiliza para poder aprender de los
errores e iniciar nuevamente el ciclo
de desarrollo.
Utiliza informacin disponible acerca
de todos los cambios para poder
mejorar el comportamiento del
Software.
Difunde la colaboracin de distintas
personas.




Desventajas
Aunque el ciclo entre el aprendizaje
y la especulacin es bueno
permitindonos entregar productos
con alta calidad, la prolongacin 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 metodologa gil
implica no realizar procesos que son
requeridos en las metodologas
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, y en las cuales
dicho incremento de procesos no
afectan en gran medida al costo final
del producto, para dichas empresas
el elegir una metodologa tradicional
resulta mucho ms rentable tanto
por el gran volumen de personal, de
productos, y de costos que se
manejan y para los cuales se tendr
un mayor control.
Los errores y cambios que no son
detectados con anterioridad afectan
la calidad del producto y su costo
total.
Ya que esta es una metodologa gil,
no permite realizar procesos que son
requeridos en las metodologas
tradicionales.

También podría gustarte