Anda di halaman 1dari 8

Metodologas giles: La ventaja competitiva de estar preparado para tomar

decisiones lo ms tarde posible y cambiarlas en cualquier momento


Jess Prez Snchez
jess.perez@germinus.com
Agile-Spain / Germinus

Resumen de documentos que se deben realizar a lo largo


del proyecto. Esta documentacin que
Tomar las decisiones cuando no se est en mayoritariamente debe realizarse en la primera
condiciones de llevarlas a cabo es probablemente fase, nos permitir tener un plan de proyecto y
uno de los mayores problemas a los que se entender todas las decisiones que se aplican en
enfrentan aquellas empresas que contratan el cada momento del proyecto.
desarrollo de un proyecto para Internet. Los
proyectos suelen ser largos y suelen definirse al Las mayora de las metodologas
principio de la contratacin, dejando poco tradicionales definen un proceso secuencial
margen para el cambio en un entorno muy donde cada proceso se alimenta del anterior y en
cambiante como el de Internet. el que el software esta disponible al final de todo
el proceso. Son los llamados procesos en cascada
El entorno de Internet es un entorno que [Ref.5].
se mueve, donde los avances tecnolgicos tanto
en software como en infraestructura, as como
las nuevas necesidades, hacen que los escenarios
cambien en pocos meses. En estos entornos es
imprescindible estar preparado para que el
objetivo de nuestros desarrollos cambie, porque
estarlo ser una ventaja competitiva
fundamental.

Metodologas Tradicionales

El concepto de Ingeniera del Software


lleg despus de producirse la crisis del Figura 1. Procesos en Cascada 1
software. El desarrollo de software era
excesivamente artesanal y no permita planificar
y estimar el esfuerzo de una manera razonable. La adopcin de estas metodologas fue
Los proyectos eran muy ambiciosos y la ausencia una sobrerreaccin ante la crisis del Software.
de metodologas en muchas ocasiones acababa Esta aproximacin era una respuesta de
en un caos. Por este motivo se importaron naturaleza defensiva ante los problemas que se
metodologas de otros campos donde tambin haban detectado en el desarrollo de software.
existan procesos de Ingeniera. Se trataba de Estos problemas se encontraban en la incorrecta
procedimentar y documentar todo el proceso, estimacin del proyecto y en la compleja
para minimizar el riesgo de cada proyecto y ejecucin tcnica del proyecto. Estas
controlar su evolucin. Estas metodologas metodologas nos proponen solucionarlos
importadas son las que conocemos como definiendo correctamente el alcance de los
metodologas tradicionales. proyectos y resolviendo las dificultades tcnicas
antes de comenzar la ejecucin de un proyecto.
Las metodologas tradicionales abordan Para definir el alcance nos proponen una
estos problemas proponiendo comenzar con una detallada especificacin de los requisitos para
fase de anlisis, en la que se tomen todas las eliminar en lo posible su ambigedad . Para
decisiones, previa al comienzo del desarrollo. eliminar las dificultades tcnicas que podamos
Finalizada esta fase de anlisis ser el momento encontrarnos en el entorno tecnolgico voltil en
comenzar el desarrollo que debe finalizar con el que se suelen desarrollar los proyectos,
una etapa de pruebas que asegure la calidad antes proponen una primera fase donde se detalle la
de implantar el sistema en produccin. Para solucin tcnica que debe ejecutarse, tratando de
llevar a cabo todo el proceso proponen una serie

________________________________________________________________________
1
despejar cualquier duda tecnolgica antes de Antes de comenzar a desarrollar o de
comenzar. arrancar nuestro proyecto deberemos tener la
inmensa mayora de los detalles cerrados. Las
Estos problemas se hicieron evidentes metodologas tradicionales justifican este
debido a la crisis del software donde la planteamiento porque con toda esta informacin
estimacin de esfuerzo era claramente se podr encontrar la mejor solucin tcnica para
insuficiente para los ambiciosos alcances que se el problema que se plantea y se podrn planificar
definan y que a la postre era generalmente la el uso de recursos ms ptimo. Tendremos toda
razn del fracaso del proyecto. la informacin para ser lo ms eficientes en la
ejecucin del proyecto dado que tenemos todos
La estimacin de un proyecto de lo detalles de lo que se quiere hacer.
desarrollo tiene tres principalmente tres
variables: el tiempo, el coste y los requisitos. Nuestra planificacin nos dar un mapa
Podramos incluir la calidad como la cuarta, pero exacto de cul ser nuestro viaje. Tendremos
dado lo complicado que es de especificar no todos lo detalles del camino que tendremos que
suele utilizarse en la estimacin. En una oferta de recorrer. Siguiendo nuestra metodologa no
servicios profesionales las variables de tiempo y arrancaremos nuestro vehculo hasta que
de coste se especifican sin ningn tipo de hayamos analizado la ruta, elegido el vehculo
ambigedad, mientras que el alcance es muy que mejor se adapte al recorrido e incluso
difcil de detallar y su interpretacin en muchos programado nuestro vehculo para que adapte la
casos es subjetiva. Este es uno de los principales conduccin a las curvas que tendremos que
problemas que intentan resolver las tomar. Pero lo que no sabemos es cmo se
metodologas tradicionales intentando eliminar comportara en otros recorridos. No tendremos la
toda la ambigedad al definir el alcance. Cuanto posibilidad de cambiar el recorrido a mitad de
mayor sea el proyecto, mayor ser el esfuerzo en viaje porque eso nos obligara a reprogramar
definir el alcance de una forma clara y precisa. nuestro vehculo e incluso a cambiarlo, pero si
Se trata de conseguir delimitar lo que est nuestro recorrido no cambia seremos
contratado de lo que no est. Una definicin que probablemente de los ms rpidos.
deber en muchos casos entrar en mucho detalle
para ser realmente til. Una vez definida esa Cules son los problemas?
delgada lnea, servir de referencia en todo el
proyecto para defendernos de nuevos requisitos. La experiencia nos ha demostrado que
las metodologas tradicionales no ofrecen una
Definir el alcance del proyecto no buena solucin para proyectos donde el entorno
resuelve complemente el problema de estimar el es voltil y donde los requisitos no se conocen
esfuerzo que ser necesario para llevar a cabo los con exactitud, porque no estn pensadas para
objetivos definidos. Si conseguimos cerrar un trabajar con incertidumbre. No estn preparadas
alcance pero no somos capaces de estimar el para el cambio.
esfuerzo necesario para llevarlo a cabo no
habremos conseguido reducir el riesgo que Aplicar metodologas tradicionales nos
tratbamos de minimizar. La prediccin del obliga a forzar a nuestro cliente a que tome todas
esfuerzo necesario slo es posible basarla en la las decisiones al principio. El verdadero
experiencia pasada acometiendo proyectos de problema no ser el forzarnos a detallar este
similar complejidad y analizando el alcance de alcance con l. Detallarlo siempre ayudar a
las tareas que debemos realizar. Para llevar a conocer mejor los requisitos y a que el cliente
cabo una estimacin necesitaremos profundizar entienda mejor sus necesidades. El problema ser
en esa especificacin inicial para abordar detalles que estos detalles nos harn tomar decisiones que
de tipo tcnico que nos permitan razonablemente luego sern muy costosas de cambiar.
conocer el esfuerzo relacionado con cada tarea a
realizar. No vale con conocer los requisitos, Nuestro cliente deber ser capaz de
tendremos que conocer con que herramientas describir y entender a un gran nivel de detalle
contaremos, cuando tendremos disponibles otros para poder acordar un alcance del proyecto con
sistemas con los que tengamos que integrar, etc. l. Este alcance dar lugar a muchas decisiones
Este anlisis nos permitir tener un plan tcnicas que sern muy costosas cambiar y de las
detallado que dirigir nuestro proyecto y un cuales en alguna ocasin nuestro cliente no ser
detalle sobre como se abordar tcnicamente. consciente de las implicaciones que tienen.
Estamos poniendo a nuestro cliente en una
situacin que puede ser muy incomoda para el.

________________________________________________________________________
2
Debe decidir el alcance de un proyecto que alcance de otras funcionalidades y har que el
puede durar ms de un ao, en una primera fase sistema sea ms complejo de gestionar y de
que puede durar unos meses y donde no se extender. Limitar el alcance de su proyecto final
avanzar nada en las necesidades a corto plazo porque para el mismo esfuerzo de desarrollo
que tiene. tender menos funcionalidades de valor para l.
Quizs una negociacin hbil pueda conseguir
La situacin es ms incmoda cuanto que la empresa de servicios se vea obligada a
mayor grado de incertidumbre tenga sobre el realizar mayor esfuerzo del que estim, pero sin
alcance del proyecto. Esto tambin estar duda esto tambin ser un problema para l.
relacionado con el tamao del proyecto. La Cuando una empresa de servicios tiene un
incertidumbre ser mayor cuanto mayor sea ste. proyecto que se convierte en deficitario las
Es parecido a planificar un viaje. Si tuviramos decisiones tcnicas que se empiezan a tomar
que planificar un viaje de una semana podramos suele ir guiadas ms por la reduccin del coste,
entrar en mucho detalle, pero si queremos que por la excelencia tcnica, con lo cual al final
realizar un viaje de un ao seriamos capaces de lo ver reflejado en la calidad del software que se
reservar todos los hoteles y vuelos de avin? No le entrega. La empresa de servicio intenta
agradeceramos poder hacer esta reserva minimizar ese sobre-esfuerzo en la variable de la
conforme avanzara nuestro viaje? Probablemente estimacin que menos visible es: la calidad.
valoraramos esta flexibilidad en esos casos,
como por ejemplo lo valoramos en otras Para tomar estas decisiones el cliente
situaciones. Cuando compramos un regalo tiene como nica realimentacin la
llevamos cabo una decisin que tiene mucha documentacin tcnica que se va generando en la
incertidumbre dado que es complicado acertar, primera fase de diseo. Dado que esto es
por este motivo valoramos que nuestro amigo claramente insuficiente en muchos casos se
pueda posteriormente cambiarlo aunque pueda ayuda al cliente con prototipos para llevar a cabo
costarnos algo ms. Tomar decisiones estas decisiones. Pero esto tampoco ser
irrevocables en entornos de incertidumbre es una realmente til, puesto que el usuario final no
situacin incmoda. suelen ser las personas del cliente responsables
de definir el alcance. Muchos de las necesidades
En mbitos financieros existen del software se encontrarn cuando el software
instrumentos como son las opciones que nos ponga en produccin y comience a ser utilizado
permiten, mediante una cantidad mucho menor por sus usuarios finales.
(primas), tener la posibilidad de llevar a cabo una
inversin en acciones en un futuro. Pero es una Las decisiones que vaya tomando el
decisin que podremos realizar o no cliente sern irrevocables o muy costosas. Pero
dependiendo de lo que nos interese cuando por qu son estas decisiones tan costosas de
llegue esa fecha sin tener que llevar a cabo la cambiar? Por qu ciertas decisiones no pueden
inversin total a priori. Son instrumentos para ser tomadas conforme avance el proyecto? Cul
manejar la incertidumbre. En el desarrollo de es el objetivo del proyecto? Acabar en tiempo y
software tambin podemos utilizar estas hacerlo tcnicamente perfecto, o maximizar el
estrategias. Si podemos dejar abiertas varias valor que aporta al cliente? En que caso es ms
posibilidades, podremos elegir ms tarde y con probable que el cliente siga contando con la
ms informacin cual ser la mejor empresa de servicios: cundo el proyecto ha
eleccin(incluso podra ser no hacerla) y esto a tenido xito para el cliente o cuando se ha
cambio de realizar una inversin mucho menor realizado tcnicamente de forma perfecta?.
que es permitir esa flexibilidad. Quizs haya que ponderar la satisfaccin del
cliente tanto como la excelencia tcnica.
Ante el problema de tener que detallar
todo prematuramente, el cliente suele adoptar Coste del Cambio.
una posicin defensiva que es contraria a sus
intereses. El cliente tratar que el sistema sea lo Las metodologas tradicionales como
suficientemente flexible para poder cubrir las hemos hablado definen un proceso secuencial en
necesidades que pudieran surgir o cambiar. Por el que se realiza el desarrollo de software. Dado
este motivo el sistema implementar ciertas que cada proceso es alimentado por al anterior el
funcionalidades no se llegaran a utilizar. El coste de un cambio es mayor cuanto ms tarde se
cliente no es consciente de que cuando toma produce dado que es necesario volver a repetir
estas decisiones est introduciendo una las tareas que ya se haban realizado. La curva
complejidad en el proyecto que reducir el

________________________________________________________________________
3
del coste aplicando metodologas tradicionales estrategias que permiten reducir el coste del
[Ref. 3] es: cambio.

Metodologas giles

Como respuesta a los problemas


aplicando metodologas tradicionales surgieron
otras metodologas que trataban de adaptarse a la
realidad del desarrollo de software. En 2001 los
principales promotores de estas teoras se
reunieron para debatir los puntos que tena en
comn y el resultado fue el Manifiesto gil. Este
Figura 2 .Coste del Cambio en M. Tradicionales 1 manifiesto establece las ideas principales de las
metodologas giles:
El coste del cambio est muy Los individuos y las interacciones entre
relacionado con la metodologa que se elige para ellos son ms importantes que las
llevar a cabo el proceso. Una de las herramientas y los procesos empleados
caractersticas negativas de las metodologas
Es ms importante crear un producto
tradicionales es que inducen que ste sea muy software que funcione que escribir
elevado. documentacin exhaustiva
La colaboracin con el cliente debe
Pero tambin existen otras variables que
prevalecer sobre la negociacin de
afectan al coste del cambio. Una de ellas es la
contratos
complejidad. Cuanto ms complejo es un
proyecto, mayor ser el coste del cambio. Si La capacidad de respuesta ante un
cambio es ms importante que el
queremos reducir el coste del cambio deberemos
seguimiento estricto de un plan.
tratar de que nuestro sistema sea lo ms sencillo
posible.
Hay diversos mtodos giles que recogen
estas ideas como: eXtreme Programming
Si se ha desarrollado el proyecto
(XP),Cristal Methods ,SCRUM ,etc.
teniendo en cuenta que ser necesario cambiar
ciertas funcionalidades, los cambios sern menos
Estas metodologas ponen de relevancia que
costosos. Si los diseadores de los coches
la capacidad de respuesta ante un cambio es ms
nicamente hubieran pensado en el diseo del
coche ms rpido, probablemente hubieran importante que el seguimiento estricto de un
hecho una carrocera que lo cubriera totalmente, plan. Nos lo proponen porque para muchos
pero Cul sera el coste de cambiar una rueda?. clientes esta flexibilidad ser una ventaja
Permitir cambiar una rueda al coche en software competitiva y porque estar preparados para el
cambio significar reducir su coste.
es similar a desarrollar cdigo con bajo
acoplamiento y alta cohesin.
Retrasar las decisiones
Dado que los cambios son muy costosos
Las metodologas giles nos llevan a
cuando aplicamos metodologas tradicionales es
retrasar las decisiones tanto como sea posible (de
necesario avisar al cliente de que el cambio de
una manera responsable), porque ser una
las decisiones que est tomando en la primera
ventaja tanto para la empresa de desarrollo como
fase tendrn un coste elevado conforme el
para el cliente y no hay que olvidar que el xito
tiempo vaya pasando.
de una empresa desarrollo esta muy relacionado
con el xito de sus clientes.
Se puede intentar reducir el coste del
cambio aplicando las tcnicas que anteriormente
Tomar decisiones es similar a invertir
comentbamos pero tambin es importante tener
nuestro dinero, si lo invertimos todo no
en cuanta lo que las metodologas giles han
podremos aprovechar otras oportunidades de
puesto de relevancia: Una decisin que no ha
inversin que surjan. Y si lo invertimos
sido tomada es evidentemente mucho ms fcil
queremos que este nos produzca beneficio desde
de cambiar. Retrasar las decisiones es una de las
el momento en que hacemos la inversin.
Deberamos tratar el desarrollo de software de la

________________________________________________________________________
4
misma manera, tratando de sacar la mayor que probablemente en nuestro proyectos estemos
rentabilidad a nuestros desarrollos o tomando muchas decisiones que pudiramos
infraestructuras. retrasar. Quizs la eleccin del lenguaje de
programacin o utilizar algn producto ya
Las principales ventajas de retrasar las desarrollado puedan ser un ejemplo de
decisiones son decisiones que es necesario tomar al principio
del proyecto.
Reduce el nmero de decisiones de
alta inversin que se toman.
Llevando a cabo una primera Planificacin Predictiva Vs Planificacin
aproximacin sobre estas decisiones, Adaptativa
esto nos permitir que estas se tomen
con mayor seguridad La aproximacin de las metodologas
Reduce el nmero de cambios giles es de naturaleza agresiva. Como se pone
necesario en el proyecto. de relevancia en el manifiesto se trata de
Reduce el coste del cambio maximizar el valor del software que se le entrega
al cliente por encima de tener un plan detallado.
Es de naturaleza agresiva porque nos propone
El entorno tecnolgico en el que potenciar la relacin con nuestro cliente en lugar
desarrollan los proyectos de software avanza de de protegernos contra el. Nos propone comenzar
una forma muy rpida e influye directamente en a desarrollar cuando tengamos detallado el corto
el proyecto. Es especialmente evidente con los plazo, sin esa necesidad de tener todo decidido,
elementos de Hardware cuya capacidad y nos propone desarrollar teniendo en cuenta que
eficiencia aumenta continuamente, dejando se llevarn a cabo cambios en medio del
obsoletos rpidamente los ya existente. Si proyecto. Estamos siendo agresivos porque
furamos a comprar Hardware cual seria la queremos maximizar el valor que entregamos al
estrategia mas eficiente No sera comprarlo cliente y asumimos trabajar con cierta
justo en el momento que lo vamos a empezar a incertidumbre para conseguir ese objetivo.
utilizar? En muchos proyectos junto con el
desarrollo de software suele acompaarse de una Esto implicar que planificaremos para
oferta de maquinas. Cundo el proyecto va a desarrollar en cada momento lo que ms valor
durar un ao, tiene sentido hacer esa compra al tenga para el cliente. Con un plan detallado
principio? En la mayora de los casos ser mucho probablemente seramos ms eficientes, aunque
mas eficiente hacerlo lo ms tarde posible. esa eficiencia la perderamos en el momento que
tuviramos que cambiar alguna decisin costosa.
Retrasar las decisiones no significa no Al final en proyectos donde existe mucha
tomar decisiones, si no tomar las que sean incertidumbre esta aproximacin ser
necesarias en cada momento. No es razonable probablemente mucho ms eficaz para conseguir
pensar que es posible dejarlo todo para el ltimo el objetivo.
momento como tampoco pensamos que sea
razonable tomar todas las decisiones al principio. Hacer una planificacin adaptativa
La toma de decisiones es un proceso que debe consiste en ir tomando las decisiones a lo largo
acompaar a todo el proyecto tomando las del proyecto. Entraremos en detalle de
decisiones en los momentos adecuados que para especificaciones del desarrollo que se vaya a
la mayora de las decisiones ser el ltimo llevar a cabo en las prximas semanas a lo sumo.
momento en el que de manera responsable se Entramos en detalle de lo que vayamos a
puede tomar llevar a cabo la ejecucin de desarrollar a corto plazo. Estamos transformando
decisin de una manera organizada. Dejar muy el proyecto en un conjunto de proyectos
poco tiempo para ejecutar las decisiones pequeos.
aumentara el riesgo del proyecto. Las planificaciones a corto plazo nos
permitirn tener software disponible para nuestro
Existen decisiones que es necesario cliente y nos permitirn aprender de las
tomarlas al comienzo del proyecto. No todas las estimaciones que vayamos realizando
decisiones son del mismo tipo y por este motivo permitiendo que nuestra planificacin sea
es necesario analizar que decisiones pueden ser sensible si nos encontramos con dificultades
retrasadas. Si analizamos en detalle nmero de tcnicas que ralentizan nuestro desarrollo o si por
estas decisiones que no podemos retrasar no el contrario lo aceleran.
daremos cuenta que no es un numero tan alto y

________________________________________________________________________
5
Para no perder la visin global ser iteracin cuales son los objetivos de la siguiente,
necesario tener una especificacin de alto nivel que se pueden orientar en cualquier momento
del alcance del proyecto. para que el producto tenga un conjunto de
funcionalidades coherentes para ponerlo en
Planificar de manera adaptativa nos produccin.
impedir ver el futuro con claridad, dado que lo
definiremos de una manera general, pero la Poner en produccin el producto de
pregunta quizs sera No nos estamos manera iterativo es una practica que en nuestra
engaando tratando de planificar en detalle a experiencia reduce el riesgo del proyecto y
largo plazo? No es condenarnos a fallar en la permite tener realimentacin de los usuarios muy
planificacin? til. Esta realimentacin permite que nuestro
cliente pueda conocer las posibles mejoras de las
Tambin nos encontraremos con otras funcionalidades para el software tenga mas valor
dificultades aplicando metodologas giles. El para el usuario final.
principal problema que nos encontramos cuando Tambin tendr un efecto positivo para
adoptamos planificaciones adaptativas es cmo el equipo de desarrollo dado que el efecto de la
delimitar el alcance del proyecto con nuestro presin de las entregas se distribuir a lo largo de
cliente. La solucin es definir un alcance a alto todo el proyecto y no en una nica entrega final.
nivel en un primer momento basado en la Decididamente no es una buena idea en los
experiencia que tenemos en el desarrollo de proyectos que solo se disponga de una entrega
software. Esta prediccin tratar de definir que porque la presin y los retrasos se concentran en
funcionalidades a grandes rasgos se desarrollarn ella y esto suele acabar en una fase final de
en el proyecto. Si los requisitos del proyecto desarrollo con prisas que en ocasiones conducen
cambiaran, sera necesario intercambiar algunas a un caos difcil de recuperar.
de las funcionalidades que se hayan estimado por
las nuevas que se acaban de identificar. Una de las ventajas ms importantes de
adoptar una planificacin adapativa es que
Es una filosofa parecida a la estaremos preparados para el cambio, porque lo
subcontratacin por horas, salvo que en este caso hemos introducido en nuestro proceso de
en lugar de horas tendremos funcionalidades. De desarrollo.
esta manera habremos acordado realizar una
serie de funcionalidades que tendrn cada una, Planificar de manera adaptativa supone
una complejidad asociada, que podremos tomar las decisiones lo mas tarde posible que es
intercambiar por otras de similar complejidad. realmente lo que permite ser mas giles. Lo que
En cada iteracin de nuestra planificacin permite ir adaptando nuestro desarrollo hacia lo
desarrollaremos una serie de funcionalidades que que es de mayor valor para nuestro cliente. En la
debern ser entregadas al cliente como finales. siguiente grfica podemos encontrar diferentes
De esta manera en cada iteracin seremos metodologas clasificadas en funcin de su
capaces de plantear el objetivo de la siguiente y adaptabilidad o agilidad
adaptarnos a las necesidades del cliente si estas
cambiaran. El cambio es una situacin normal
dentro del proceso que definen las metodologas
giles.

Este tipo de planificacin es mucho


mas transparente para nuestros clientes. Esto
supone una ventaja para ellos, ya que podrn
conocer con mayor seguridad las fechas en los
que estarn disponibles las diferentes Figura 3. Decisiones y Agilidad 1
funcionalidades de nuestro desarrollo. Esta
necesidad por conocer las fechas en la que
dispondr del software en muchos casos es de Tcnicas para retrasar las decisiones
vital importancia para su negocio. En una
planificacin adaptativa el cliente siempre tendr Para poder estar preparados para el
el producto disponible con las funcionalidades cambio, tambin lo tiene que estar nuestro
que se hayan implementado hasta la fecha equipo de desarrollo. Estar preparados para el
permitindonos poner en produccin cuando se cambio requiere aplicar tcnicas que lo faciliten.
decida. Incluso nos permitir definir en cada

________________________________________________________________________
6
Las diferentes metodologas giles Subcontratacin de personal: Que no
proponen diferentes tcnicas que permiten podemos clasificarlo como proyecto,
minimizar el coste del cambio. Tomar decisiones ya que suele ser el cliente el que
de una manera continua nos lleva a que nuestro dicta en que se emplea ese esfuerzo.
diseo este en continua evolucin. Tcnicas
como la refactorizacin permiten que nuestro Una solucin que hemos utilizado en
diseo vaya adaptndose a las nuevas proyectos ha sido definir un nuevo tipo de
necesidades. Refactorizar significa modificar la contrato, en el que especifiquemos la
estructura interna de nuestro cdigo sin cambiar funcionalidad que se va a desarrollar, pero en el
su comportamiento externo. Esta tcnica que el alcance podr ser modificado durante la
permitir adaptar nuestro diseo para que los duracin del contrato. Este alcance podr ser
cambios sean ms fciles de llevar a cabo. Y modificado porque lo que se ofrece es un
tambin permite que podamos extender nuestro esfuerzo que es el que se estima que van a llevar
cdigo de la forma ms eficiente. los requisitos acordados, pero que podrn ser
intercambiados por otros requisitos de igual
Por otra parte, cuando aplicamos un dificultad tcnica.
cambio ser necesario comprobar que no hemos
creado efectos colaterales que hagan fallar Las dificultades del contrato residen en
nuestro desarrollo en las funcionalidades que no la dificultad del cliente a aceptar un contrato
queramos modificar. Aplicando pruebas donde no se detalle de una manera precisa el
unitarias sobre nuestro cdigo podremos cambiar alcance del proyecto. Una de las soluciones es
nuestro desarrollo con una mayor seguridad. que el contrato se divida en una serie de entregas
en las que se irn entregando funcionalidades ya
El coste de los cambios ser finalizadas al cliente. En ese momento el cliente
proporcional a la complejidad de nuestro podr optar por seguir con la siguiente entrega,
software. Intentando mantener nuestro diseo lo cambiar su alcance o finalizarlo. Estamos dando
mas sencillo posible y lo menos acoplado posible al cliente la opcin de que pueda retrasar las
permitir que los cambios sean menos decisiones a cambio de no cerrar en detalle el
traumticos. alcance. La empresa de desarrollo tendr mucho
inters en que el cliente haya quedado satisfecho
Involucrar al cliente en el desarrollo nos para continuar prestando servicios por lo que
permitir que las decisiones puedan ser tomadas tratar de ofrecer el mayor rendimiento posible
mientras se desarrolla el software y que los en cada una de las entregas. Kent Beck, una de
cambios por especificaciones incorrectas sean las personas mas representativas de las
menores. metodologas giles, introduce el Contrato de
Alcance Opcional que trata de formalizar esta
Estas prcticas anteriormente idea.
comentadas son parte del conjunto de prcticas
que proponen las metodologas giles y que har Retrasar las decisiones en lo posible es
mucho ms fcil retrasar las decisiones. tambin otra de las prcticas que mas difcil
resulta aplicar. Los responsables de las empresas
suelen preferir que todo se decida lo antes
Experiencia en proyectos Reales posible porque representa menos riesgo desde un
punto de vista de gestin, pero en la mayora de
En proyectos reales la aplicacin de las las ocasiones ms ineficiente.
metodologas giles se enfrenta en muchas
situaciones a problemas que la teora no No obstante esta idea de retrasar
contemplaba. decisiones no es nada nueva y en otros sectores
como el de la logstica o el financiero estas ideas
El principal problema que nos ya existen y se aplican con xito. Las empresas
encontramos en los proyectos reales es que los que no las aplicaron al final no han tenido ms
tipos de contratos no encajan con algunas de las remedio que hacerlo.
prcticas. Estos contratos suelen ser de dos tipos:
Nuestra experiencia en los proyectos
Contrato de Alcance Cerrado: Que donde hemos conseguido que el cliente retrasara
nos obligan a cerrar los requisitos en las decisiones en lo posible ha permitido que
la primera fase (Metodologas nuestro cliente tomara mejor las decisiones y que
tradicionales)

________________________________________________________________________
7
incluso al final no hiciera inversiones que no le
eran rentables.

Conclusin

La adopcin de metodologas giles, y


en concreto retrasar las decisiones, supone una
ventaja competitiva tanto para el cliente como
para la empresa de desarrollo, en proyectos
donde exista mucha incertidumbre.

Llevando a cabo una planificacin


adaptativa permitimos que nuestro cliente tenga
la flexibilidad de cambiar el alcance si lo cree
necesario sin un gran coste. El cliente no se ver
obligado a tomar decisiones prematuramente que
conlleven importantes inversiones en tecnologa
que puede que nunca llegue a utilizar. El objetivo
es que al final del proyecto el cliente tenga el
software que mayor valor le ofrezca para la
inversin que realiz.

Para la empresa de servicios


profesionales las metodologas giles nos ofrecen
una manera razonable de gestionar la
incertidumbre en la estimacin de los proyectos
permitindonos ofrecer el mejor servicio posible
a nuestro cliente.

Referencias:

1 Lean Software Development: An Agile


Toolkit. Mary Poppendieck, Tom
Poppendieck. Addison-Wesley

2 Agile Methodologies in Software


Development for a Fast Moving World
Giancarlo Succi

3. Examining the Cost of Change


Scott W. Ambler

4 Extreme programming explained


Kent Beck. Addison-Wesley

5. A guide to Successful Software


Development. Murray Cantor. Addison-
Wesley, NY, 2002,
_________________________

Jess Prez Snchez


Agile-Spain / Germinus
jesus.perez@germinus.com
http://www.germinus.com

________________________________________________________________________
8

Anda mungkin juga menyukai