Está en la página 1de 36

Metodologas de Desarrollo de Software giles

Con mucho, el desarrollo de software es una actividad catica,


frecuentemente caracterizada por la frase "codifica y corrige". El software se
escribe con un plan subyacente mnimo, y el diseo del sistema se adouina
con muchas decisiones a corto plazo. Esto realmente funciona muy bien si el
sistema es peueo, pero conforme el sistema crece llega a ser cada vez m!s
difcil agregar nuevos aspectos al mismo. "dem!s los bugs llegan a ser cada
vez m!s frecuentes y m!s difciles de corregir. #a sea tpica de tal sistema es
una larga fase de pruebas despu$s de ue el sistema ha sido "completado". %al
fase larga de pruebas hace estragos con los planes de pruebas y depurado
llegando a ser imposible de incluir en el programa de traba&o.
'emos vivido con este estilo de desarrollo por mucho tiempo, pero
tambi$n hemos tenido una alternativa desde hace mucho( )etodologa. #as
metodologas imponen un proceso disciplinado sobre el desarrollo de software
con el fin de hacerlo m!s predecible y eficiente. #o hacen desarrollando un
proceso detallado con un fuerte $nfasis en planificar inspirado por otras
disciplinas de la ingeniera.
#as metodologas ingenieriles han estado presentes durante mucho
tiempo. *o se han distinguido precisamente por ser muy e+itosas. ",n menos
por su popularidad. #a crtica m!s frecuente a estas metodologas es ue son
burocr!ticas. 'ay tanto ue hacer para seguir la metodologa ue el ritmo
entero del desarrollo se retarda.
Como una reaccin a estas metodologas, un nuevo grupo de
metodologas ha surgido en los ,ltimos aos. -urante alg,n tiempo se
conocan como metodologas ligeras, pero el t$rmino aceptado ahora es
metodologas !giles. .ara mucha gente el encanto de estas metodologas
!giles es su reaccin ante la burocracia de las metodologas monumentales.
Estos nuevos m$todos buscan un &usto medio entre ning,n proceso y
demasiado proceso, proporcionando simplemente suficiente proceso para ue
el esfuerzo valga la pena.
El resultado de todo esto es ue los m$todos !giles cambian
significativamente algunos de los $nfasis de los m$todos ingenieriles. #a
diferencia inmediata es ue son menos orientados al documento, e+igiendo una
cantidad m!s peuea de documentacin para una tarea dada. -e muchas
maneras son m!s bien orientados al cdigo( siguiendo un camino ue dice ue
la parte importante de la documentacin es el cdigo fuente.
/in embargo, $ste no es el punto importante sobre los m$todos !giles.
#a falta de documentacin es un sntoma de diferencias mucho m!s profundas(
#os m$todos !giles son adaptables en lugar de predictivos. #os m$todos
ingenieriles tienden a intentar planear una parte grande del proceso del
software en gran detalle para un plazo largo de tiempo, esto funciona
bien hasta ue las cosas cambian. "s ue su naturaleza es resistirse al
cambio. .ara los m$todos !giles, no obstante, el cambio es bienvenido.
)etodologas de -esarrollo de /oftware 0giles .!gina 1 de 23
4ntentan ser procesos ue se adaptan y crecen en el cambio, incluso al
punto de cambiarse ellos mismos.
#os m$todos !giles son orientados a la gente y no orientados al proceso.
#a meta de los m$todos ingenieriles es definir un proceso ue
funcionar! bien con cualuiera ue lo use. #os m$todos !giles afirman
ue ning,n proceso podr! nunca mauillar las habilidades del euipo de
desarrollo, de modo ue el papel del proceso es apoyar al euipo de
desarrollo en su traba&o. E+plcitamente puntualizan el traba&ar a favor de
la naturaleza humana en lugar de en su contra y enfatizan ue el
desarrollo de software debe ser una actividad agradable.
En las secciones siguientes se ver!n estas diferencias m!s en detalle,
para discernir lo ue es un proceso adaptable y centrado en la gente, sus
beneficios y desventa&as, y u$ se debera usar( sea como desarrollador o
como cliente de software.
Qu es una Metodologa gil?
#as )etodologas 0giles o 5ligeras6 constituyen un nuevo enfoue en el
desarrollo de software, me&or aceptado por los desarrolladores de e7pro&ects
ue las metodologas convencionales 84/97:;;;, C)), etc< debido a la
simplicidad de sus reglas y pr!cticas, su orientacin a euipos de desarrollo de
peueo tamao, su fle+ibilidad ante los cambios y su ideologa de
colaboracin =1>.
Predictivo versus Adaptable
Separacin de Diseo ! "onstruccin
#a inspiracin usual para las metodologas han sido disciplinas como las
ingenieras civil o mec!nica. %ales disciplinas enfatizan ue hay ue planear
antes de construir. #os ingenieros traba&an sobre una serie de esuemas ue
indican precisamente u$ hay ue construir y como deben &untarse estas
cosas. )uchas decisiones de diseo, como la manera de controlar la carga
sobre un puente, se toman conforme los dibu&os se producen. #os dibu&os se
entregan entonces a un grupo diferente, a menudo una compaa diferente,
para ser construidos. /e supone ue el proceso de la construccin seguir! los
dibu&os. En la pr!ctica los constructores se encuentran con algunos problemas,
pero $stos son normalmente poco importantes.
Como los dibu&os especifican las piezas y cmo deben unirse, act,an
como los fundamentos de un plan de construccin detallado. -icho plan define
las tareas ue necesitan hacerse y las dependencias ue e+isten entre estas
tareas. Esto permite un plan de traba&o y un presupuesto de construccin
razonablemente predecibles. %ambi$n dice en detalle cmo deben hacer su
traba&o las personas ue participan en la construccin. Esto permite ue la
)etodologas de -esarrollo de /oftware 0giles .!gina ? de 23
construccin reuiera menos pericia intelectual, aunue se necesita a menudo
mucha habilidad manual.
"s ue lo ue vemos au son dos actividades fundamentalmente
diferentes. El diseo, u$ es difcil de predecir y reuiere personal caro y
creativo, y la construccin ue es m!s f!cil de predecir. @na vez ue tenemos
el diseo, podemos planear la construccin. @na vez ue tenemos el plan de
construccin, podemos ocuparnos de la construccin de una manera m!s
predecible. En ingeniera civil la construccin es mucho m!s costosa y tardada
ue el diseo y la planeacin.
"s el acercamiento de muchas metodologas es( ueremos un plan de
traba&o predecible ue pueda usar gente del m!s ba&o nivel. .ara hacerlo
debemos separar el plan de la construccin. .or consiguiente necesitamos
entender cmo hacer el diseo de software de modo ue la construccin pueda
ser sencilla una vez ue el plan est$ hecho.
ABu$ forma toma este planC .ara muchos, $ste es el papel de
notaciones de diseo como el @)#. /i podemos hacer todas las decisiones
significativas usando @)#, podemos armar un plan de construccin y entonces
podemos dar planes a los programadores como una actividad de construccin.
.ero au surgen preguntas cruciales. AEs posible armar un plan ue
sea capaz de convertir el cdigo en una actividad de construccin predecibleC
D en tal caso, Aes la construccin suficientemente grande en costo y tiempo
para hacer valer la pena este enfoueC
%odos esto trae a la mente m!s preguntas. #a primera es la cuestin de
cu!n difcil es conseguir un diseo @)# en un estado ue pueda entregarse a
los programadores. El problema con un diseo tipo @)# es ue puede parecer
muy bueno en el papel, pero resultar seriamente fallido a la hora de la
programacin. #os modelos ue los ingenieros civiles usan est! basado en
muchos aos de pr!ctica guardados en cdigos ingenieriles. "dem!s los
problemas importantes, como el modo en ue &uegan las fuerzas, son dciles al
an!lisis matem!tico. #a ,nica verificacin ue podemos hacer con los
diagramas @)# es la revisin cuidadosa. )ientras esto es ,til trae errores al
diseo ue slo se descubren durante la codificacin y pruebas. 4ncluso los
diseadores e+perimentados, se sorprenden a menudo cuando convierten
dichos diseos en software.
9tro problema es el costo comparativo. Cuando se construye un puente,
el costo del esfuerzo en el plan es apro+imadamente un 1;E del total, siendo el
resto la construccin. En software la cantidad de tiempo gastada codificando es
mucho, mucho menor. /teve )cConnell =?> sugiere ue para un proyecto
grande, slo 1FE del proyecto son cdigo y pruebas unitarias, una inversin
casi perfecta de las proporciones de la construccin del puente. "un cuando se
consideren las pruebas parte de la construccin, el plan es todava F;E del
total. Esto genera una pregunta importante sobre la naturaleza del diseo en
software comparado con su papel en otras ramas de la ingeniera.
)etodologas de -esarrollo de /oftware 0giles .!gina 2 de 23
Esta clase de preguntas llevaron a GacH Ieeves a sugerir ue de hecho
el cdigo fuente es un documento de diseo y ue la fase de construccin est!
en realidad en la compilacin y el ligado. -e hecho cualuier cosa ue pueda
tratarse como construccin puede y debe automatizarse.
Estas ideas llevan a algunas conclusiones importantes(
En software la construccin es tan barata ue es casi gratis.
En software todo el esfuerzo est! en el diseo, de modo ue reuiere de
personas creativas y talentosas.
#os procesos creativos no se planean f!cilmente, de modo ue la
previsibilidad bien puede ser una meta imposible.
-ebemos ser muy cautos al usar la met!fora de la ingeniera tradicional
para construir software. Es un tipo diferente de actividad y por ende
reuiere un proceso diferente.
#a $%predecibilidad de los &e'uisitos
'ay un dicho ue se oye en cada proyecto problem!tico. #os
desarrolladores vienen y me dicen "el problema con este proyecto es ue los
reuisitos cambian todo el tiempo". #o sorprendente de esta situacin es ue
sorprenda a cualuiera. En el negocio de construccin de software los cambios
en los reuisitos son la norma, la pregunta es u$ hacemos al respecto.
@na forma es tratar los reuisitos cambiantes como el resultado de una
pobre ingeniera de reuisitos. #a idea detr!s de la ingeniera de reuisitos es
conseguir un cuadro totalmente entendido de los reuisitos antes de empezar a
construir el software, conseguir la firma del cliente sobre estos reuisitos, y
entonces preparar procedimientos ue limiten los cambios de reuisitos
despu$s de la firma.
@n problema con esto es ue simplemente tratar de entender las
opciones para los reuisitos es duro. Es aun m!s duro porue la organizacin
del desarrollo normalmente no proporciona la informacin del costo en los
reuisitos. El cliente termina solicitando algo ue el vendedor no puede cotizar
con e+actitud. /in una buena idea del costo, Acmo puede el cliente decidir si
uiere pagar por ese pedidoC
#a estimacin es difcil por muchas razones. En parte porue el
desarrollo de software es una actividad de diseo, difcil de planear y costear.
En parte porue los materiales b!sicos cambian r!pidamente. En parte por lo
mucho ue depende de los individuos involucrados, y los individuos son
difciles de predecir y cuantificar.
#a naturaleza intangible del software tambi$n afecta. Es muy difcil saber
u$ valor aporta un rasgo de software hasta ue se usa en realidad. /lo
)etodologas de -esarrollo de /oftware 0giles .!gina J de 23
cuando se usa realmente una versin temprana de alg,n software se empieza
a entender cu!les rasgos son valiosos y cu!les no.
Esto lleva al punto irnico de ue es de esperarse ue los reuisitos
sean cambiables. -espu$s de todo se supone ue el software es "suave". "s
no slo son cambiables los reuisitos, sino ue deben de serlo. %oma mucha
energa conseguir ue los clientes de software corri&an los reuisitos. Es aun
peor si ellos han estado alguna vez en desarrollo de software, porue entonces
"saben" ue el software es f!cil de cambiar.
.ero aun cuando se pudiera controlar todo esto y realmente se pudiera
conseguir un con&unto e+acto y estable de reuisitos, probablemente a,n no
estamos a salvo. En la economa de hoy las fuerzas de negocios
fundamentales cambian el valor de los rasgos de software demasiado
r!pidamente. El ue podra ser un buen con&unto de reuisitos ahora, no ser!
tan bueno en seis meses. ",n cuando el cliente pueda corregir sus reuisitos,
el mundo de negocios no va a detenerse por $l. D muchos cambios en el
mundo de negocios son completamente imprevisibles( cualuiera ue diga otra
cosa est! mintiendo, o ya ha hecho mil millones en la bolsa de valores.
Casi todo en el desarrollo de software depende de los reuisitos. /i no
se pueden obtener reuisitos estables no se puede obtener un plan predecible.
(s $%posible la Previsibilidad?
En general, no. 'ay algunos desarrollos de software dnde la
previsibilidad es posible. 9rganizaciones como el grupo de software del
trasbordador espacial de la *"/" son un e&emplo selecto donde el desarrollo
de software puede ser predecible. Ieuiere mucha ceremonia, mucho tiempo,
un euipo grande y reuisitos estables. 'ay proyectos por ah ue son
transbordadores espaciales. /in embargo no creo ue el software comercial
enca&e en esa categora. .ara $ste se necesita un tipo diferente de proceso.
@no de los grandes peligros es pretender ue se puede seguir un
proceso predecible cuando no se puede. #a gente ue traba&a en metodologas
no es buena en identificar condiciones lmite( los lugares donde la metodologa
pasa de apropiada en inapropiada. #a mayora de los metodologistas uieren
ue sus metodologas sean usadas por todos, de modo ue no entienden ni
publican sus condiciones lmite. Esto lleva a la gente a usar una metodologa
en malas circunstancias, como usar una metodologa predictiva en una
situacin imprevisible.
'ay una tentacin fuerte para hacer eso. #a previsibilidad es una
propiedad muy deseable. *o obstante creer ue se puede ser predecible
cuando no se puede, lleva a situaciones en donde las personas construyen un
plan temprano, y entonces no pueden mane&ar la situacin cuando el plan se
cae en pedazos. @sted acaba viendo el plan y la realidad flotando aparte.
-urante alg,n tiempo usted podr! pretender ue el plan es v!lido. .ero en
)etodologas de -esarrollo de /oftware 0giles .!gina F de 23
alg,n punto la deriva es demasiada y el plan se cae en pedazos. *ormalmente
la cada es dolorosa.
"s si usted est! en una situacin impredecible no puede usar una
metodologa predictiva. Kse es un golpe duro. /ignifica ue tantos modelos
para controlar proyectos, y muchos de los modelos para llevar la relacin con el
cliente, ya no son ciertos. #os beneficios de la previsibilidad son tan grandes,
ue es difcil de&arlos ir. Como en tantos problemas la parte m!s difcil est!
simplemente en comprender ue el problema e+iste.
-e cualuier modo de&ar ir la previsibilidad no significa ue hay ue
volver al caos ingobernable. )!s bien hace falta un proceso ue pueda dar
control sobre la imprevisibilidad. -e eso se trata la adaptabilidad.
"ontrolando un Proceso $%previsible ) $teraciones
A"s ue cmo nos controlamos en un mundo imprevisibleC #a parte
m!s importante y difcil, es saber con precisin dnde estamos. *ecesitamos
un mecanismo honesto de retroalimentacin ue pueda decirnos con precisin
cu!l es la situacin a intervalos frecuentes.
#a llave para obtener esta retroalimentacin es el desarrollo iterativo.
Esta no es una idea nueva. El desarrollo iterativo ha estado durante alg,n
tiempo ba&o muchos nombres( incremental, evolutivo, escenificado, espiral...
muchos nombres. #a clave del desarrollo iterativo es producir frecuentemente
versiones ue funcionen del sistema final ue tengan un subcon&unto de los
rasgos reueridos. Kstos sistemas son cortos en funcionalidad, pero por otra
parte deben ser fieles a las demandas del sistema final. -eben ser totalmente
integrados y tan cuidadosamente probados como una entrega final.
El punto es ue no hay nada como un sistema probado, integrado para
traer una dosis poderosa de realidad en cualuier proyecto. #os documentos
pueden esconder toda clase de fallas. El cdigo no probado puede esconder
bastantes defectos. .ero cuando las personas realmente se sientan delante de
un sistema y traba&an con $l, entonces las fallas se vuelven aparentes( tanto las
relativas a defectos como las relativas a los reuisitos mal entendidos.
El desarrollo iterativo tambi$n tiene sentido en los procesos predictivos.
.ero es esencial en los procesos adaptables porue un proceso adaptable
necesita poder tratar con los cambios en los rasgos reueridos. Esto lleva a un
estilo de planear donde los planes a largo plazo son muy fluidos, y los ,nicos
planes estables son a corto plazo hechos para una sola iteracin. El desarrollo
iterativo da un fundamento firme en cada iteracin ue puede usarse para
basar los planes posteriores.
@na pregunta importante es cu!nto debe durar una iteracin. -iferentes
personas dan respuestas diferentes. L. sugiere iteraciones de entre una y tres
semanas. /CI@) sugiere un mes. Crystal estira aun m!s. #a tendencia, de
cualuier modo, es hacer cada iteracin tan corta como se pueda mane&ar.
)etodologas de -esarrollo de /oftware 0giles .!gina 3 de 23
Esto proporciona la retroalimentacin m!s frecuente, as ue usted sabe m!s a
menudo donde se encuentra.
(l "liente Adaptable
Este tipo de proceso adaptable reuiere un tipo diferente de relacin con
el cliente ue las ue se consideran a menudo, particularmente cuando el
desarrollo es hecho por otra empresa. Cuando contrate una empresa separada
para hacer el desarrollo del software, la mayora de los clientes preferir!n un
contrato a precio fi&o. -gale a los desarrolladores lo ue uieren, negocie,
acepte una oferta, y entonces la carga ueda en la empresa de desarrollo para
construir el software.
@n contrato a precio fi&o reuiere reuisitos estables y por tanto procesos
predictivos. #os procesos adaptables y los reuisitos inestables implican ue no
se puede traba&ar con la nocin usual de precio fi&o. %ratar de enca&ar un
modelo de precio fi&o a un proceso adaptable acaba en una e+plosin muy
dolorosa. #a parte sucia de esta e+plosin es ue el cliente ueda herido tanto
como la compaa de desarrollo de software. -espu$s de todo el cliente no
uerra un software a menos ue su negocio lo necesitara. /i no lo consigue su
negocio sufre. "s aun cuando no pague nada a la compaa de desarrollo,
todava pierde. -e hecho pierde m!s de lo ue pagara por el software 8Apor
u$ habra de pagar el software si el valor comercial de ese software fuera
menorC<.
-e modo ue hay peligro para ambos lados al firmar un contrato a precio
fi&o en condiciones donde un proceso predictivo no puede usarse. Esto significa
ue el cliente tiene ue traba&ar de otro modo.
Esto no significa ue no se pueda fi&ar un presupuesto para software por
adelantado. #o ue significa es ue no se puede fi&ar el tiempo, precio y
alcance. #a manera !gil usual es fi&ar tiempo y precio y permitir ue el alcance
vare de manera controlada.
En un proceso adaptable el cliente tiene mucho control a escala fina
sobre el proceso de desarrollo de software. " cada iteracin puede tanto
verificar el progreso como alterar la direccin del desarrollo de software. Esto
lleva a una relacin mucho m!s ntima con los desarrolladores de software, una
verdadera sociedad de traba&o. Este nivel de compromiso no es para cualuier
organizacin cliente, ni para cualuier desarrollador de softwareM pero es
esencial para lograr ue un proceso adaptable funcione apropiadamente.
El beneficio importante para el cliente es un desarrollo de software
mucho m!s sensible. @n sistema usable, aunue mnimo, puede entrar en
produccin pronto. El cliente puede cambiar sus capacidades de acuerdo a los
cambios en el negocio, y tambi$n aprender cmo se usa el sistema en realidad.
@na pieza tan importante como $sta es una visibilidad mayor sobre el
verdadero estado del proyecto. El problema con los procesos predictivos es
)etodologas de -esarrollo de /oftware 0giles .!gina N de 23
ue la calidad del proyecto se mide por la conformidad con el plan. Esto
dificulta a la gente sealar cu!ndo la realidad y el plan divergen. El resultado
com,n es un gran resbaln m!s tarde en el calendario del proyecto. En un
proyecto !gil hay un constante rehacer del plan con cada iteracin. /i las malas
noticias est!n al acecho, tienden a aparecer m!s temprano, cuando aun se
puede hacer algo al respecto. -e hecho este control del riesgo es una venta&a
clave del desarrollo iterativo. #os m$todos !giles van m!s all! manteniendo
corta la duracin de la iteracin, pero tambi$n viendo estas variaciones como
oportunidades.
'ay un aspecto importante en lo ue constituye un proyecto e+itoso. @n
proyecto predictivo se mide a menudo por lo bien ue coincide con el plan. @n
proyecto ue est! a tiempo y en costo es un $+ito. Esta medida no tiene
sentido en un ambiente !gil. .ara el agilista la cuestin es el valor de negocio
8beneficio< ue el cliente consiga, es decir, un software m!s valioso ue el
costo ue puso en $l. @n buen proyecto predictivo ir! de acuerdo al plan, un
buen proyecto !gil construir! algo diferente y me&or ue lo ue se esperaba en
el plan original.
Poniendo a la *ente Pri%ero
*o es f!cil e&ecutar un proceso adaptable. En particular reuiere un
euipo muy eficaz de desarrolladores. El euipo necesita ser eficaz tanto en la
calidad de los individuos como en la manera en ue funcionan &untos en
euipo. 'ay tambi$n una sinergia interesante( no slo la adaptabilidad reuiere
un euipo fuerte, la mayora de los buenos desarrolladores prefieren un
proceso adaptable.
+untar ,nidades de Progra%acin "o%patibles
@no de los ob&etivos de las metodologas tradicionales es desarrollar un
proceso donde las personas involucradas sean partes reemplazables. Con tal
proceso se puede tratar a las personas como recursos ue est!n disponibles
en varios tipos. /e tienen un analista, algunos programadores, algunos
verificadores, un gerente. #os individuos no son tan importantes, slo los roles
lo son. -e esa manera si usted planea un proyecto no importa u$ analista y
u$ verificadores consiga, slo hay ue saber cu!ntos son para saber cmo
afecta su plan el n,mero de recursos.
.ero esto plantea una pregunta clave( Ason las personas involucradas
en el desarrollo de software partes reemplazablesC @no de los rasgos
importantes de los m$todos !giles es el rechazo a esta afirmacin.
Buiz!s el rechazo m!s e+plcito a las personas como recursos lo hace
"listair CocHburn. En su artculo 5Caracterizacin de las .ersonas como
Componentes *o #ineales de .rimer 9rden en el -esarrollo de /oftware6 =2>,
apunta a ue los procesos predecibles reuieren componentes ue se
)etodologas de -esarrollo de /oftware 0giles .!gina O de 23
comporten de manera predecible. /in embargo las personas no son
componentes predecibles. "dem!s sus estudios de proyectos de software lo
han llevado a concluir ue la gente es el factor m!s importante en el desarrollo
de software.
En el ttulo de su artculo se refiere a las personas como "componentes".
"s es como se trata a la gente en la literatura de diseo de procesos P
metodologas. El error de este enfoue es ue las "personas" son altamente
inconstantes y no lineales, con modos ,nicos de $+ito y fracaso. Esos factores
son de primer orden, factores no despreciables. El fracaso de los diseadores
de procesos y metodologas para responder a esto contribuye a la clase de
trayectorias de proyectos no planeados ue vemos a menudo.
@no se pregunta si la naturaleza del desarrollo de software funciona contra uno
au. Cuando programamos una computadora, controlamos un dispositivo
inherentemente predecible. Como estamos en este negocio porue somos
buenos en hacerlo, estamos idealmente hechos para perturbarnos cuando nos
enfrentamos con seres humanos.
"unue "listair CocHburn es el m!s e+plcito en su visin centrada en la
gente del desarrollo de software, la nocin de ue la gente es primero es un
tema com,n para muchos pensadores del software. El problema, demasiado a
menudo, es ue la metodologa se ha opuesto a la nocin de las personas
como el factor de primer orden en el $+ito del proyecto.
Esto crea un fuerte efecto de retroalimentacin positiva. /i usted espera
ue todos sus desarrolladores se &unten en unidades de programacin
compatibles, no intentar! tratarlos como individuos. Esto ba&a la moral 8y la
productividad<. #as personas capaces se buscar!n un lugar me&or donde estar,
y usted acabar! con lo ue usted deseaba( unidades de programacin
compatibles.
-ecidir ue las personas son primero es una gran decisin, ue reuiere
mucha determinacin. #a nocin de la gente como recursos es profundamente
inculcado en el pensamiento de negocios, teniendo sus races en el impacto del
enfoue de #a -ireccin Cientfica de QredericH %aylor. En la administracin de
una f!brica, este enfoue %aylorista tiene sentido. .ero para un traba&o
altamente creativo y profesional, como creo es el desarrollo de software, esto
no se sostiene. 8D de hecho la fabricacin moderna tambi$n se est! saliendo
del modelo %aylorista<.
#os Progra%adores son Profesionales &esponsables
@na parte clave de la nocin %aylorista es ue la gente ue hace el
traba&o no es la me&or gente para entender la me&or manera de hacer el traba&o.
En una f!brica esto puede ser verdad por varias razones. En parte porue la
mayora de los obreros no son las personas m!s inteligentes o creativas, en
parte porue hay una tensin entre la gerencia y los obreros en ue la gerencia
gana m!s dinero y los obreros menos.
)etodologas de -esarrollo de /oftware 0giles .!gina : de 23
#a historia reciente nos demuestra cada vez m!s lo falso ue es esto en
el desarrollo de software. " las personas brillantes y capaces les atrae cada
vez m!s el desarrollo de software, tanto por su ostentacin como por ganancias
potencialmente mayores. 8"mbas razones me tentaron a salir de la ingeniera
electrnica<. Cosas tales como opciones accionarias afirman el inter$s de los
programadores en la compaa.
"u bien puede haber un efecto generacional. @na evidencia
anecdtica me hace preguntarme si m!s gente brillante se han aventurado en
el desarrollo de software en los ,ltimos diez aos. En ese caso $sta sera una
razn para ese culto a la &uventud en el negocio de la computacin, como en la
mayora de los cultos se necesita un grano de verdad en $l.
Cuando se uiere contratar y retener a gente capaz, hay ue reconocer
ue son profesionales competentes. Como tales son los me&ores para decidir
cmo dirigir su traba&o t$cnico. #a nocin %aylorista de un departamento de
planificacin separado ue decide cmo hacer las cosas slo funciona si los
planificadores entienden me&or cmo hacer bien el traba&o ue auellos ue lo
hacen. /i usted tiene personas brillantes, motivadas ue hacen bien el traba&o
entonces eso no se sostiene.
Mane-ando un Proceso .rientado a la *ente
#a orientacin a la gente se manifiesta de varias maneras diferentes en
los procesos !giles, lo ue lleva a efectos diferentes, no todos consistentes.
@no de los elementos clave es la aceptacin de un proceso en lugar de
la imposicin de un proceso. " menudo los procesos de software se imponen
desde la gerencia. Como tales se les resiste a menudo, particularmente cuando
la gerencia ha estado fuera del desarrollo activo un buen tiempo. "ceptar un
proceso reuiere compromiso, y como tal se necesita el involucramiento activo
de todo el euipo.
Esto termina con el resultado interesante de ue slo los desarrolladores
pueden escoger seguir un proceso adaptable. Esto es particularmente cierto
para la L., ue reuiere mucha disciplina para e&ecutarse. "u es donde
Crystal es un complemento efectivo ya ue apunta a una disciplina mnima.
9tro punto es ue los desarrolladores deben poder tomar todas las
decisiones t$cnicas. L. llega al corazn de esto cuando en su proceso de
planeacin establece ue slo los desarrolladores pueden estimar cu!nto
tiempo tomar! hacer un traba&o.
%al liderazgo t$cnico es un gran cambio para muchas personas en
posiciones gerenciales. %al acercamiento reuiere compartir una
responsabilidad donde desarrolladores y gerencia tienen un mismo lugar en la
direccin del proyecto. *tese ue di&e igual. #a gerencia aun &uega un papel,
pero reconoce la pericia de los desarrolladores.
)etodologas de -esarrollo de /oftware 0giles .!gina 1; de 23
@na razn importante para esto es el ritmo del cambio de tecnologa en
nuestra industria. -espu$s de unos aos el conocimiento t$cnico se vuelve
obsoleto. Esta vida media de habilidades t$cnicas no tiene parangn en
cualuier otra industria. 4ncluso los t$cnicos tienen ue reconocer ue entrar a
la gerencia significa ue sus habilidades t$cnicas se marchitar!n r!pidamente.
#os e+desarrolladores necesitan reconocer ue sus habilidades t$cnicas
desaparecer!n r!pidamente y necesitan confiar y depender en los
desarrolladores actuales.
#a Dificultad de Medir
/i usted tiene un proceso donde las personas ue dicen cmo hacer el
traba&o son distintas de las personas ue realmente lo hacen, los lderes
necesitan alguna manera de medir cu!n eficaces son los ue lo hacen. En la
-ireccin Cientfica haba un impulso fuerte a desarrollar formas ob&etivas de
medir el rendimiento de las personas.
Esto es particularmente pertinente al software debido a la dificultad de
aplicar medidas al software. " pesar de nuestros me&ores esfuerzos somos
incapaces de medir las cosas m!s simples sobre el software, como la
productividad. /in buenas medidas para estas cosas, cualuier clase de control
e+terno est! condenado.
#a introduccin de gestin medida sin buenas medidas tiene sus propios
problemas. Iobert "ustin =J> hizo una discusin e+celente sobre esto. Kl seala
ue cuando se mide el rendimiento usted tienen ue conseguir todos los
factores importantes ba&o medida. Cualuier cosa ue se olvide tiene el
resultado inevitable ue los hacedores alterar!n lo ue hacen para producir las
me&ores medidas, incluso si eso claramente reduce la verdadera efectividad de
lo ue hacen. Este trastorno de la medida es el taln de "uiles de la gestin
basada en medidas.
#a conclusin de Iobert "ustin es ue usted tiene ue escoger entre la
gestin basada en m$tricas y la gestin delegatoria 8donde los hacedores
deciden cmo hacer el traba&o<. #a gestin basada en m$tricas es m!s
adecuada para el traba&o simple repetitivo, con ba&os reuisitos de
conocimiento y rendimientos f!cilmente medibles 7 e+actamente lo contrario al
desarrollo de software.
El punto de todo esto es ue los m$todos tradicionales han operado ba&o
la asuncin de ue la gestin basada en m$tricas es la manera m!s eficaz de
administrar. #a comunidad !gil reconoce ue las caractersticas del desarrollo
de software son tales ue la gestin basada en m$tricas lleva el trastorno de la
medida a niveles muy altos. Es realmente m!s eficaz usar un estilo delegatorio
de administracin, ue es el tipo de acercamiento central del punto de vista
agilista.
)etodologas de -esarrollo de /oftware 0giles .!gina 11 de 23
(l Papel del #idera/go de 0egocio
.ero los t$cnicos no pueden hacer el proceso entero ellos solos.
*ecesitan una gua en las necesidades del negocio. Esto lleva a otro aspecto
importante de los procesos adaptables( necesitan un contacto muy ntimo con
los e+pertos del negocio.
Esto va m!s all! del compromiso de negocios en la mayora de los
proyectos. #os euipos !giles no pueden e+istir con una comunicacin
ocasional. *ecesitan un acceso continuo a los e+pertos del negocio. "dem!s
este acceso no es algo ue se mane&e a nivel gerencial, es algo ue est!
presente para cada desarrollador. Como los desarrolladores son profesionales
capaces en su propia disciplina, pueden traba&ar como iguales con otros
profesionales de otras disciplinas.
Rran parte de esto, claro est!, se debe a la naturaleza del desarrollo
adaptable. Como la premisa entera del desarrollo adaptable es ue las cosas
cambian r!pidamente, se necesita un contacto constante para avisar a todos
de los cambios.
*o hay nada m!s frustrante para un desarrollador ue ver
desperdiciarse su duro traba&o. "s ue es importante asegurar ue hay pericia
de negocios de buena calidad ue est! disponible al desarrollador y de calidad
suficiente para ue el desarrollador pueda confiar en ella.
(l Proceso Auto1Adaptable
'asta ahora he hablado sobre la adaptabilidad en el conte+to de un
proyecto adaptando frecuentemente su software para enfrentarse a los
reuisitos cambiantes de sus clientes. *o obstante hay otro !ngulo de la
adaptabilidad( el del proceso ue cambia con el tiempo. @n proyecto ue
empieza usando un proceso adaptable no tendr! el mismo proceso un ao
despu$s. Con el tiempo, el euipo encontrar! lo ue funciona me&or para ellos,
y alterar! el proceso a su medida.
#a primera parte de la auto adaptabilidad son las revisiones regulares
del proceso. *ormalmente se hacen con cada iteracin. "l final de cada
iteracin, haga una reunin corta y h!gase las siguientes preguntas 8escogidas
de *orm Serth =F><
ABu$ hicimos bienC
ABu$ hemos aprendidoC
ABu$ podemos hacer me&orC
ABu$ es lo ue nos confundeC
)etodologas de -esarrollo de /oftware 0giles .!gina 1? de 23
Estas preguntas traer!n ideas para cambiar el proceso en la siguiente
iteracin. -e esta manera un proceso ue empieza con problemas puede
me&orar conforme el proyecto avanza, adapt!ndose me&or al euipo ue lo usa.
/i la auto adaptabilidad ocurre dentro de un proyecto, es aun m!s
marcada en una organizacin. .ara ahondar el proceso de la auto
adaptabilidad sugiero ue los euipos hagan una revisin m!s formal e hitos
del proyecto mayores siguiendo las sesiones retrospectivas del proyecto
esbozadas por *orm Serth. Estas retrospectivas involucran reuniones de ?72
das y un facilitador entrenado. Ellas no solo dan aprendiza&e al euipo,
tambi$n dan aprendiza&e a la organizacin entera.
@na consecuencia de la auto adaptabilidad es ue nunca se debe
esperar encontrar una metodologa corporativa ,nica. En cambio cada euipo
debe no simplemente escoger su propio proceso, debe tambi$n afinar
activamente su proceso conforme avanza el proyecto. )ientras ue tanto los
procesos publicados como la e+periencia de otros proyectos pueden actuar
como una inspiracin y una lnea de fondo, la responsabilidad profesional de
los desarrolladores es adaptar el proceso a la tarea en mano.
Esta auto adaptabilidad es muy marcada en "/- y Crystal. #as reglas
rgidas de la L. parecen desaprobarla, pero $sa es slo una impresin
superficial ya ue la L. anima a la gente a afinar el proceso. #a diferencia
principal de la L. es ue sus promotores sugieren hacer L. al pie de la letra
por varias iteraciones antes de adaptarlo. "dem!s las revisiones no son
enfatizadas, ni parte del proceso, aunue hay sugerencias de ue las
revisiones deberan ser una de las pr!cticas de la L..
#as Metodologas giles valoran2
En la "lianza 0gil =3> establecen como valores de los )"(
1. "l individuo y las interacciones en el euipo de desarrollo m!s ue a
las actividades y las herramientas.
?. -esarrollar software ue funciona m!s ue conseguir una buena
documentacin, implica minimalismo respecto del modelado y la
documentacin del sistema.
2. #a colaboracin con el cliente m!s ue la negociacin de un contrato.
J. Iesponder a los cambios m!s ue seguir estrictamente una
planificacin.
)etodologas de -esarrollo de /oftware 0giles .!gina 12 de 23
Por 'u surgen las Metodologas giles?
En =N> se destacan los siguientes puntos como los principales motivos de
surgimiento de los )"(
1. -ificultad para implantar metodologas tradicionales. /ofisticadas
herramientas C"/E y notaciones 8@)#<
?. @na solucin a medida para un segmento importante de proyectos de
desarrollo de software
2. .ugna entre comunidades P gur,es
J. "ceptar el cambio
"osto de los "a%bios en la "onstruccin de S3
-e =N> se pudo e+traer la Qigura 1 ue se muestra a continuacin. En la
misma se muestra el costo de producir cambios en el software ue se
desarrolla mediante una metodologa tradicional versus el costo de producir
cambios en el software ue se desarrolla mediante alguna de las metodologas
!giles. Como se puede apreciar, a medida ue avanza el tiempo, el costo es
e+ponencial en el caso de la construccin mediante una metodologa
tradicional.
Qigura 1( Quncin de costos de cambio en el software desarrollado
Manifiesto de las Metodologas giles
En un taller de dos das en /nowbird, @tah, en febrero de ?;;1 se
reunieron los representantes de cada una de las metodologas !giles. 'aba
)etodologas de -esarrollo de /oftware 0giles .!gina 1J de 23
costo del cambio
tiempo
metodologa tradicional
suposicin
metodologa !gil
mucho en com,n, y este reconocimiento era mucho mayor ue las diferencias
entre los procesos.
"dem!s de un contacto ,til entre los lderes de procesos, e+ista tambi$n
la idea de emitir una declaracin con&unta en favor de procesos de desarrollo
de software !giles.
El resultado es un )anifiesto para el -esarrollo de /oftware 0gil =O>, una
declaracin de los principios y valores comunes de los procesos !giles.
'ay tambi$n un deseo de colaborar m!s en el futuro, para animar m!s
tanto a tecnlogos como a gente de negocios para usar y reuerir
acercamientos !giles al desarrollo de software.
El manifiesto fue slo eso, una publicacin ue actu como un punto de
partida para auellos ue compartan estas ideas b!sicas. @no de los frutos del
esfuerzo fue la creacin de un cuerpo m!s longevo, la "lianza 0gil =3>. #a
"lianza 0gil es una organizacin sin fines de lucro ue busca promover el
conocimiento y la discusin de todos los m$todos !giles. )uchos de los lderes
de metodologas de desarrollo de software !giles son miembros y lderes de la
"lianza 0gil.
#os principios ue se establecieron en el manifiesto son(
1. #a prioridad principal es satisfacer al cliente mediante tempranas y
continuas entregas de software ue le reporte un valor.
?. -ar la bienvenida a los cambios. #os )" capturan los cambios para
ue el cliente tenga una venta&a competitiva.
2. Entregar frecuentemente software ue funcione, desde un par de
semanas a un par de meses, con el menor intervalo de tiempo
posible entre una entrega y la siguiente.
J. #a gente del negocio y los desarrolladores deben traba&ar &untos a lo
largo del proyecto.
F. Construir el proyecto entorno a individuos motivados. -arles el
entorno y el apoyo ue necesitan y confiar en ellos para conseguir el
traba&o.
3. El di!logo cara a cara es el m$todo m!s eficiente y efectivo para
comunicar informacin dentro de un euipo de desarrollo.
N. El software ue funciona es la medida principal de progreso.
O. #os procesos !giles promueven un desarrollo sostenible. #os
promotores, desarrolladores y usuarios deberan ser capaces de
mantener una paz constante.
:. #a atencin continua a la calidad t$cnica y al buen diseo me&ora la
agilidad.
)etodologas de -esarrollo de /oftware 0giles .!gina 1F de 23
1;. #a simplicidad es esencial.
11. #as me&ores aruitecturas, reuisitos y diseos surgen de los euipos
organizados por s mismos.
1?. En intervalos regulares, el euipo refle+iona respecto de cmo llegar
a ser m!s efectivo, y seg,n esto a&usta su comportamiento.
"o%paracin gil 1 4gil
Metodologa gil Metodologa 0o gil 56radicional7
.ocos artefactos )!s artefactos
.ocos roles )!s roles
*o e+iste un contrato tradicional o al
menos es bastante fle+ible
E+iste un contrato prefi&ado
El cliente es parte del euipo de
desarrollo 8adem!s in7situ<
El cliente interact,a con el euipo de
desarrollo mediante reuniones
Rrupos peueos 8T 1; integrantes< y
traba&ando en el mismo sitio
Rrupos grandes
)enos $nfasis en la aruitectura #a aruitectura es esencial
Principales Metodologas giles
Crystal )ethodologies, "listarir CocHburn,
www.crystalmethodologies.org
/CI@), Sen /chwaber U Geff /utherland,
www.controlchaos.com
-/-) 8-ynamic /ystems -evelopment )ethod<,
www.dsdm.org
#ean .rogramming, )ary .oppendiecH,
www.poppendiecH.com
Q-- 8Qeature7-riven -evelopment<, .eter Coad U Geff -e #uca,
www.nebulon.comPfdd, www.coad.comPpeterPVfdd
E+treme .rogramming, Sent WecH
www.e+tremeprogramming.org, www.+programming.com
)etodologas de -esarrollo de /oftware 0giles .!gina 13 de 23
"daptative /oftware -evelopment, Gim 'ighsmith
www.adaptivesd.com
)etodologas de -esarrollo de /oftware 0giles .!gina 1N de 23
#as Metodologas
Xarias metodologas enca&an ba&o el estandarte de !gil. )ientras todas
ellas comparten muchas caractersticas, tambi$n hay algunas diferencias
significativas. *o se pueden resaltar todos los puntos en este estudio breve,
pero por lo menos se puede apuntar a algunos lugares donde buscar.
En =:> se puede observar una descripcin introductoria a varias
metodologas !giles.
89 Progra%acin (:tre%a 5;P7
-e todas las metodologas !giles, $sta es la ue ha recibido m!s
atencin. Esto se debe en parte a la notable habilidad de los lderes L., en
particular Sent WecH, para llamar la atencin. %ambi$n se debe a la habilidad
de Sent WecH de atraer a las personas a este acercamiento, y tomar un papel
principal en $l. -e algunas maneras, sin embargo, la popularidad de L. se ha
vuelto un problema, pues ha acaparado la atencin fuera de las otras
metodologas y sus valiosas ideas.
#as races de L. yacen en la comunidad de /malltalH, y en particular la
colaboracin cercana de Sent WecH y Yard Cunningham a finales de los ZO;.
"mbos refinaron sus pr!cticas en numerosos proyectos a principios de los Z:;,
e+tendiendo sus ideas de un desarrollo de software adaptable y orientado a la
gente.
El paso crucial de la pr!ctica informal a una metodologa ocurri en la
primavera de 1::3. " Sent WecH se le pidi revisar el progreso del proyecto de
nmina C2 para Chrysler. El proyecto estaba siendo llevado en /malltalH por
una compaa contratista, y estaba en problemas. -ebido a la ba&a calidad de
la base del cdigo, Sent WecH recomend tirar la base del cdigo en su
totalidad y empezar desde el principio. El proyecto entonces reinici ba&o su
direccin y subsecuentemente se volvi el buue insignia temprano y el campo
de entrenamiento de L..
#a primera fase del C2 fue muy e+itosa y comenz a principios de 1::N.
El proyecto continu desde entonces y despu$s se encontr con dificultades, lo
ue result en la cancelacin del desarrollo en 1:::. 8#o cual prueba, sin
ninguna otra cosa, ue L. no es garanta de $+ito.<
#a metodologa L. empieza con cuatro valores =1;>(
Comunicacin,
Ietroalimentacin,
/implicidad, y
Cora&e.
)etodologas de -esarrollo de /oftware 0giles .!gina 1O de 23
Construye sobre ellos una docena de pr!cticas ue los proyectos L.
deben seguir. )uchas de estas pr!cticas son t$cnicas antiguas, tratadas y
probadas, aunue a menudo olvidadas por muchos, incluyendo la mayora de
los procesos planeados. "dem!s de resucitar estas t$cnicas, L. las te&e en un
todo sin$rgico donde cada una refuerza a las dem!s.
@na de las m!s llamativas, as como inicialmente atractiva, es su fuerte
$nfasis en las pruebas. )ientras todos los procesos mencionan la
comprobacin, la mayora lo hace con muy poco $nfasis. /in embargo L. pone
la comprobacin como el fundamento del desarrollo, con cada programador
escribiendo pruebas cuando escriben su cdigo de produccin. #as pruebas se
integran en el proceso de integracin continua y construccin lo ue rinde una
plataforma altamente estable para el desarrollo futuro.
En esta plataforma L. construye un proceso de diseo evolutivo ue se
basa en refactorizar un sistema simple en cada iteracin. %odo el diseo se
centra en la iteracin actual y no se hace nada anticipadamente para
necesidades futuras. El resultado es un proceso de diseo disciplinado, es
m!s, combina la disciplina con la adaptabilidad de una manera ue
indiscutiblemente la hace la m!s desarrollada de entre todas las metodologas
adaptables.
L. ha desarrollado un liderazgo amplio, muchos de ellos provenientes
del proyecto fundamental C2. Como resultado hay muchas fuentes para m!s
informacin. Sent WecH escribi 5E+treme .rogramming E+plained6, el
manifiesto clave de L. ue e+plica las razones detr!s de la metodologa y es
bastante amplia como para ue la gente pueda saber si se interesan en
seguirla. En el ,ltimo par de aos ha habido una epidemia de libros sobre L.
brillantemente coloreados la mayora de los cuales son bastante similares en
ue describen el proceso entero desde el punto de vista de varios seguidores
tempranos.
"s como los libros, hay un n,mero considerable de recursos en la web.
.ara encontrar un acercamiento m!s estructurado a L., es me&or empezar con
dos sitios de e+ alumnos del C2( Ion Geffries =11> y -on Yells =1?>. )ucha de
la promocin temprana y desarrollo de ideas de L. ocurrieron en el ambiente
de escritura colaborativa en la p!gina wiHi de Yard Cunningham =12>. El wiHi
sigue siendo un lugar fascinante para descubrir, aunue su naturaleza
divagante lo absorbe a uno. 'ay un activo y a menudo interesante Rrupo de
-iscusin L. =1J>. @na de las vistas e+ternas m!s interesantes sobre L. es la
de )arH .aulH ue es uno de los lderes de la comunidad C)) 7 su artculo
mira a la 5L. desde la .erspectiva del C))6 =1F>.
%ambi$n hay otras referencias, ue es tambi$n wiHi
http(PPwww.programacione+trema.orgP =13> y un Rrupo de -iscusin en Dahoo
=1N>.
)etodologas de -esarrollo de /oftware 0giles .!gina 1: de 23
<9 #a =a%ilia de "r!stal de "oc>burn
"listair CocHburn =1O> ha estado traba&ando en metodologas desde ue
la 4W) le encarg escribir sobre metodologas a inicios de los Z:;. *o obstante,
su acercamiento no es como la mayora de los metodologistas. En lugar de
partir solamente de su e+periencia personal para construir una teora de cmo
deben hacerse las cosas, $l complementa su e+periencia directa con la
b,sueda activa de proyectos y ver cmo traba&an. "dem!s $l no teme alterar
sus puntos de vista con base en sus descubrimientos.
/u libro, 5/obreviviendo .royectos 9rientados a 9b&etos6 =1:>, fue su
primer conse&o en proyectos corrientes, y sigue siendo una primera
recomendacin de libro para e&ecutar proyectos iterativos. )!s recientemente
"listair CocHburn escribi un libro de apreciacin de 5-esarrollo de /oftware
0gil6 =?;> ue mira los principios subyacentes de este tipo de metodologas.
-esde ese libro $l ha e+plorado m!s los m$todos !giles, viniendo con la
familia de metodologas Cristal =?1>. Es una familia porue $l cree ue los tipos
diferentes de proyectos reuieren tipos diferentes de metodologas. Kl mira
esta variacin a lo largo de dos e&es(
el n,mero de personas en el proyecto, y
las consecuencias de los errores.
Cada metodologa enca&a en una parte diferente de la re&a, de modo ue
para un proyecto de J; personas ue puede perder dinero discrecionalmente
tiene una metodologa diferente a la de un proyecto vital de seis personas.
Crystal comparte con L. una orientacin humana, pero esta
centralizacin en la gente se hace de una manera diferente. "listair CocHburn
considera ue las personas encuentran difcil seguir un proceso disciplinado,
as ue m!s ue seguir la alta disciplina de L., "listair CocHburn e+plora la
metodologa menos disciplinada ue aun podra tener $+ito, intercambiando
conscientemente productividad por facilidad de e&ecucin. Kl considera ue
aunue Crystal es menos productivo ue L., m!s personas ser!n capaces de
seguirlo.
"listair CocHburn tambi$n pone mucho peso en las revisiones al final de
la iteracin, animando al proceso a ser auto me&orante. /u asercin es ue el
desarrollo iterativo est! para encontrar los problemas temprano, y entonces
permitir corregirlos. Esto pone m!s $nfasis en la gente supervisando su
proceso y afin!ndolo conforme desarrollan.
?9 Software de "digo Abierto 5.SS7
Este ttulo podra sorprender. -espu$s de todo el cdigo abierto 89/ por
su sigla en ingl$s de 9pen /ource< es un estilo de software, no tanto un
proceso. /in embargo hay una manera definida de hacer las cosas en la
)etodologas de -esarrollo de /oftware 0giles .!gina ?; de 23
comunidad de cdigo abierto, y mucho de su acercamiento es tan aplicable a
los proyectos de cdigo cerrado como a los de cdigo abierto. En particular su
proceso engrana euipos de traba&o fsicamente distribuidos, lo ue es
importante porue la mayora de los procesos adaptables e+igen euipos
locales.
#a mayora de los proyectos de cdigo abierto tienen uno o m!s
mantenedores. @n mantenedor es la ,nica persona a la ue se le permite
integrar un cambio en el almac$n de cdigo fuente. /in embargo otras
personas pueden hacer cambios a la base del cdigo. #a diferencia importante
es ue estas otras personas necesitan enviar su cambio al mantenedor ue
entonces lo revisa y lo aplica a la base del cdigo. *ormalmente estos cambios
son hechos en forma de archivos de parches ue hacen este proceso m!s f!cil.
"s, el mantenedor es responsable de coordinar los parches y mantener la
cohesin en el diseo del software.
.royectos diferentes mane&an el papel del mantenedor de diferentes
maneras. "lgunos tienen un mantenedor para el proyecto entero, algunos lo
dividen en mdulos y tiene un mantenedor por mdulo, algunos rolan el
mantenedor, algunos tienen m,ltiples mantenedores sobre el mismo cdigo,
otros tienen una combinacin de estas ideas. #a mayor parte de la gente de
cdigo abierto son de tiempo parcial, as ue hay una duda en u$ tan bien se
coordina un euipo as para un proyecto de tiempo completo.
@n rasgo particular del desarrollo de cdigo abierto es ue la depuracin
es altamente paralelizable. )uchas personas pueden involucrarse en el
depurado. Cuando encuentran un defecto pueden enviar el parche al
mantenedor. Esto es un buen papel para los no mantenedores ya ue la mayor
parte del tiempo se gasta en encontrar bugs. %ambi$n es bueno para gente sin
mucha destreza en programacin.
El proceso para el cdigo abierto aun no se ha documentado bien. #a
referencia m!s famosa es el artculo de Eric Iaymond 5#a Catedral y el Wazar6
=??>, ue aunue es una descripcin e+celente tambi$n es bastante informal. El
libro de Sarl Qogel sobre 5-esarrollo de Cdigo "bierto con CX/6 =?2>, tambi$n
contiene varios buenos captulos sobre el proceso de cdigo abierto ue
incluso seran interesantes para auellos ue no uieren usar el CX/. CX/ son
las siglas de Concurrent Xersions /ystem 8/istema de Xersiones
Concurrentes<, un sistema cliente7servidor ue permite a los desarrolladores
realizar el seguimiento de las diferentes versiones del cdigo fuente de un
proyecto. /e trata de una herramienta muy potente ue facilita(
Iegistrar todos los cambios efectuados sobre los archivos de un
proyecto.
Iecuperar versiones anteriores del cdigo de un proyecto.
Conocer u$ cambios se han efectuado sobre un archivo determinado,
ui$n los ha realizado y cu!ndo.
)etodologas de -esarrollo de /oftware 0giles .!gina ?1 de 23
Restionar los conflictos ue pueden producirse en entornos en los ue
los desarrolladores se encuentran distribuidos geogr!ficamente.
El CX/ es especialmente ,til cu!ndo m!s de una persona traba&a sobre
un archivo especfico. En tales situaciones, es posible ue un desarrollador
sobreescriba accidentalmente los cambios ue ha realizado otro desarrollador.
CX/ resuelve este problema haciendo ue cada desarrollador traba&e sobre su
propia copia del cdigo 8lo ue se denomina workspace o espacio de traba&o< y
permitiendo posteriormente unir los cambios de todos los desarrolladores en un
repositorio com,n =?J>.
@9 (l Desarrollo de Software Adaptable 5ASD7 de AigBs%itB
Gim 'ighsmith =?F> ha pasado muchos aos traba&ando con
metodologas predictivas. Kl las desarroll, instal, ense, y concluy ue son
profundamente defectuosas( particularmente para los negocios modernos.
/u reciente libro 5"daptive /oftware -evelopment6 =?3> se enfoca en la
naturaleza adaptable de las nuevas metodologas, con un $nfasis particular en
aplicar las ideas ue se originaron en el mundo de los sistemas comple&os
adaptables 8normalmente conocida como teora del caos<. *o proporciona el
tipo de pr!cticas detalladas como lo hace L., pero proporciona la base
fundamental de por u$ el desarrollo adaptable es importante y las
consecuencias a los m!s profundos niveles de la organizacin y la gerencia.
En el corazn del "/- hay tres fases solapadas, no lineales(
especulacin, colaboracin, y aprendiza&e.
Gim 'ighsmith ve la planificacin como una parado&a en un ambiente
adaptable, ya ue los resultados son naturalmente imprevisibles. En la
planificacin tradicional, las desviaciones del plan son errores ue deben
corregirse. En un ambiente adaptable, en cambio, las desviaciones nos guan
hacia la solucin correcta.
En este ambiente imprevisible se necesita ue las personas colaboren
de la me&or manera para tratar con la incertidumbre. #a atencin de la gerencia
es menor en lo ue tiene ue hacer la gente, y mayor sobre la comunicacin
alentadora para ue las personas puedan proponer las respuestas creativas
ellos mismos.
En ambientes predictivos, el aprendiza&e se desalienta a menudo. #as
cosas se ponen de antemano y entonces se sigue ese diseo.
En un ambiente adaptable, aprender desafa a todos 7 desarrolladores y
sus clientes 7 a e+aminar sus presunciones y usar los resultados de cada ciclo
de desarrollo para adaptar el siguiente. El aprendiza&e como tal es un rasgo
continuo e importante, ue asume ue los planes y los diseos deben cambiar
conforme avanza el desarrollo.
)etodologas de -esarrollo de /oftware 0giles .!gina ?? de 23
El beneficio atropellado, poderoso, indivisible y predominante del Ciclo
de Xida de -esarrollo "daptable es ue obliga a confrontar los modelos
mentales ue est!n en la raz del autoengao de las personas. 9bliga a las
personas a estimar con realismo su habilidad. Con este $nfasis, el traba&o de
Gim 'ighsmith se enfoca directamente en fomentar las partes difciles del
desarrollo adaptable, en particular cmo fomentar la colaboracin y el
aprendiza&e dentro del proyecto. Como tal, su libro ayuda a dar ideas para
fomentar estas !reas "suaves" ue hacen un buen complemento a los
acercamientos basados en una pr!ctica aterrizada como L., Q-- y Crystal.
C9 Scru%
/crum se enfoca en el hecho de ue procesos definidos y repetibles slo
funcionan para atacar problemas definidos y repetibles con gente definida y
repetible en ambientes definidos y repetibles.
/crum divide un proyecto en iteraciones 8ue ellos llaman carreras
cortas< de 2; das. "ntes de ue comience una carrera se define la
funcionalidad reuerida para esa carrera y entonces se de&a al euipo para ue
la entregue. El punto es estabilizar los reuisitos durante la carrera.
/in embargo la gerencia no se desentiende durante la carrera corta.
%odos los das el euipo sostiene una reunin corta 8uince minutos<, llamada
scrum, dnde el euipo discurre lo ue har! al da siguiente. En particular
muestran a los bloues de la gerencia( los impedimentos para progresar ue se
atraviesan y ue la gerencia debe resolver. %ambi$n informan lo ue se ha
hecho para ue la gerencia tenga una actualizacin diaria de dnde va el
proyecto.
#a literatura de /crum se enfoca principalmente en la planeacin
iterativa y el seguimiento del proceso. Es muy cercana a las otras metodologas
!giles en muchos aspectos y debe funcionar bien con las pr!cticas de cdigo
de L..
-espu$s de mucho tiempo sin un libro, finalmente Sen /chwaber y )iHe
Weedle escribieron el primer libro de /crum ue lo llamaron 5"gile /oftware
-evelopment with /crum6 =?N>. .robablemente la me&or apreciacin global
sobre /CI@) est! en el sitio http(PPwww.controlchaos.com =?O> de Sen
/chwaber. Geff /utherland siempre ha tenido un sitio web activo sobre temas
de tecnologas de ob&etos e incluye una seccin sobre /crum =?:>. 'ay tambi$n
una buena apreciacin global de las pr!cticas de /crum en el libro de *eil
'arrison, Wrian Qoote, 'ans Iohnert titulado 5.attern #anguages of .rogram
-esign J 8/oftware .atterns /eries<5 =2;>. /crum tiene una lista de discusin en
Dahoo en la @I# http(PPgroups.yahoo.comPgroupPscrumdevelopment =21>.
)etodologas de -esarrollo de /oftware 0giles .!gina ?2 de 23
D9 Desarrollo Mane-ado por &asgos 5=DD7
El -esarrollo )ane&ado por Iasgos 8Q-- por su sigla en ingl$s de
Qeature7-riven -evelopment< fue desarrollado por Geff -e #uca y el vie&o gur,
de la 9rientacin a 9b&etos .eter Coad. Como las otras metodologas
adaptables, se enfoca en iteraciones cortas ue entregan funcionalidad
tangible. En el caso del Q-- las iteraciones duran dos semanas.
El Q-- tiene cinco procesos. #os primeros tres se hacen al principio del
proyecto.
-esarrollar un )odelo Rlobal
Construir una #ista de los Iasgos
.lanear por Iasgo
-isear por Iasgo
Construir por Iasgo
#os ,ltimos dos se hacen en cada iteracin. Cada proceso se divide en
tareas y se da un criterio de comprobacin.
#os desarrolladores entran en dos tipos(
dueos de clases, y
programadores &efe.
#os programadores &efe son los desarrolladores m!s e+perimentados. "
ellos se les asignan rasgos a construir. /in embargo ellos no los construyen
solos. /lo identifican u$ clases se involucran en la implantacin de un rasgo
y &untan a los dueos de dichas clases para ue formen un euipo para
desarrollar ese rasgo. El programador &efe act,a como el coordinador,
diseador lder y mentor, mientras los dueos de clases hacen gran parte de la
codificacin del rasgo.
'asta recientemente, la documentacin sobre Q-- era muy escasa.
Qinalmente hay un libro completo sobre Q-- titulado 5" .ractical Ruide to
Qeature7-riven -evelopment 8%he Coad /eries<6 de la autora de /tephen I
.almer y Gohn ). Qelsing =2?>. Geff -e #uca, el inventor primario, ya tiene un
portal Q-- en la @I# http(PPwww.featuredrivendevelopment.com =22>, con
artculos, blogs y foros de discusin. #a descripcin original estaba en el libro
5Gava )odeling 4n Color Yith @)#6 de .eter Coad et al =2J>. /u compaa,
%ogether/oft =2F>, tambi$n da consultora y entrenamiento en Q--.
)etodologas de -esarrollo de /oftware 0giles .!gina ?J de 23
E9 DSDM 5Mtodo de Desarrollo de Siste%a DinF%ico7
El -/-) 8-ynamic /ystems -evelopment )ethod< =23> empez en
Rran Wretaa en 1::J como un consorcio de compaas del Ieino @nido ue
ueran construir sobre I"- 8Iapid "pplications -evelopment< -esarrollo
I!pido de "plicaciones y desarrollo iterativo. 'abiendo empezado con 1N
fundadores ahora tiene m!s de mil miembros y ha crecido fuera de sus races
brit!nicas. /iendo desarrollado por un consorcio, tiene un sabor diferente a
muchos de los otros m$todos !giles. %iene una organizacin de tiempo
completo ue lo apoya con manuales, cursos de entrenamiento, programas de
certificacin y dem!s. .ero, tambi$n lleva una etiueta de precio, lo cual ha
limitado la investigacin popular sobre su metodologa. /in embargo, Gennifer
/tapleton ha escrito el libro 5-/-)6 =2N> ue da una apreciacin global de la
metodologa.
El m$todo empieza con un estudio de viabilidad y negocio. El estudio de
viabilidad considera si -/-) es apropiado para el proyecto. El estudio de
negocio es una serie corta de talleres para entender el !rea de negocio donde
tiene lugar el desarrollo. %ambi$n propone esbozos de aruitecturas del
sistema y un plan del proyecto.
El resto del proceso forma tres ciclos entrete&idos(
el ciclo del modelo funcional produce documentacin de an!lisis y
prototipos,
el ciclo de diseo del modelo disea el sistema para uso operacional, y
el ciclo de implantacin se ocupa del despliegue al uso operacional.
-/-) tiene principios subyacentes ue incluyen una interaccin activa
del usuario, entregas frecuentes, euipos autorizados, pruebas a lo largo del
ciclo. 4gual ue otros m$todos !giles, usan ciclos de plazos cortos de entre dos
y seis semanas. 'ay un $nfasis en la alta calidad y adaptabilidad hacia
reuisitos cambiantes.
*o hay mucha evidencia de su uso fuera del Ieino @nido, pero -/-)
es notable por tener mucha de la infraestructura de las metodologas
tradicionales m!s maduras, al mismo tiempo ue sigue los principios de los
m$todos !giles.
G9 (s &,P un %todo Fgil?
/iempre ue se discuten m$todos 99, inevitablemente se llega a
Iational @nified .rocess =2O>. El .roceso @nificado fue desarrollado como el
proceso complementario al @)#. El I@. es un armazn de proceso y como tal
puede acomodar una gran variedad de procesos. -e hecho $sta es la crtica
principal al I@. por parte de algunos autores( como puede ser cualuier cosa
)etodologas de -esarrollo de /oftware 0giles .!gina ?F de 23
acaba siendo nada. .refieren un proceso ue diga u$ hacer en lugar de dar
opciones infinitas.
Como resultado de esta mentalidad de armazn de procesos, el I@.
puede usarse en un estilo muy tradicional de cascada o de una manera !gil.
Como resultado se puede usar el I@. como un proceso !gil, o como un
proceso pesado 7 todo depende de cmo lo adapte a su ambiente.
Craig #arman es un fuerte defensor de usar el I@. de una manera !gil.
/u libro 5"pplying @)# and .atterns6 =2:> sobre desarrollo 99 contiene un
proceso ue est! muy basado en su pensamiento ligero del I@.. /u visin es
ue mucho del reciente empu&n hacia los m$todos !giles no es nada m!s ue
aceptar desarrollo 99 de la corriente principal ue ha sido capturada como
I@.. @na de las cosas ue hace Craig #arman es pasarse los primeros dos o
tres das de una iteracin mensual con todo el euipo usando el @)# para
perfilar el diseo del traba&o a hacerse durante la iteracin. Esto no es una
norma de la ue no pueda desviarse, sino un boceto ue da una perspectiva
sobre cmo pueden hacerse las cosas en la iteracin.
9tra punta en el I@. !gil es el proceso dL de Iobert )artin =J;>. El
proceso dL es una versin totalmente dcil del I@. ue simplemente es
id$ntico a L. 8girar dL ciento ochenta grados para ver la broma<. El dL est!
diseado para gente ue tiene ue usar el I@. pero uiere usar L.. Como tal
es a la vez L. y I@. y por tanto un buen e&emplo del uso !gil del I@..
/eg,n los crticos, una de las cosas claves ue necesita el I@. es ue
los lderes del I@. en la industria enfaticen su acercamiento al desarrollo de
software. )!s de una vez se oye a la gente ue usa el I@. hablando ue
est!n usando un proceso de desarrollo estilo cascada. .hilippe Sruchten y su
euipo son firmes creyentes en el desarrollo iterativo. Clarificando estos
principios y animando las versiones !giles del I@. tales como los traba&os de
Craig #arman y de Iobert )artin tendr! un efecto importante.
H9 #ean Develop%ent 5#D7 ! #ean Software Develop%ent 5#SD7
#ean -evelopment 8#-< es el m$todo menos divulgado entre los
reconocidamente importantes. #a palabra 5lean6 significa magro, en&utoM en su
sentido t$cnico apareci por primera vez en 1::; en el libro de Games YomacH
#a )!uina ue Cambi al )undo =J1>. #-, iniciado por Wob Charette =J?>, se
inspira en el $+ito del proceso industrial #ean )anufacturing, bien conocido en
la produccin automotriz y en manufactura desde la d$cada de 1:O;. Este
proceso tiene como precepto la eliminacin de residuos a trav$s de la me&ora
constante, haciendo ue el producto fluya a instancias del cliente para hacerlo
lo m!s perfecto posible. #os presentes conceptos han sido e+trados de Carlos
Ieynoso =J2>.
#os procesos a la manera americana corran con sus m!uinas al 1;;E
de capacidad y mantenan inventarios gigantescos de productos y suministrosM
%oyota, en contra de la intuicin, resultaba m!s eficiente manteniendo
)etodologas de -esarrollo de /oftware 0giles .!gina ?3 de 23
suministros en planta para un solo da, y produciendo slo lo necesario para
cubrir las rdenes pendientes. Esto es lo ue se llama Gust in %ime .roduction.
Con G4% se evita adem!s ue el inventario degrade o se torne obsoleto, o
empiece a actuar como un freno para el cambio. %oyota implementaba adem!s
las t$cnicas innovadoras del %otal Buality )anagement de Edward -eming,
ue slo algunos matem!ticos y empresarios de avanzada conocan en
Estados @nidos. 'asta el da de hoy la foto de -eming en %oyota es m!s
grande y esplendorosa ue la del fundador, %oyoda /aHichi.
9tros aspectos esenciales de #ean )anufacturing son la relacin
participativa con el empleado y el trato ue le brinda la compaa, as como una
especificacin de principios, disciplinas y m$todos iterativos, adaptativos, auto7
organizativos e interdependientes en un patrn de ciclos de corta duracin ue
tiene algo m!s ue un aire de familia con el patrn de procesos de los )$todos
0giles. E+iste unanimidad de intereses, consistencia de discurso y
complementariedad entre las comunidades #ean de manufactura y desarrollo
de software.
)ientras ue otros )" se concentran en el proceso de desarrollo, Wob
Charette sostena ue para ser verdaderamente !gil se deba conocer adem!s
el negocio de punta a punta. #- se inspira en doce valores centrados en
estrategias de gestin =JJ>(
1. /atisfacer al cliente es la m!+ima prioridad.
?. .roporcionar siempre el me&or valor por la inversin.
2. El $+ito depende de la activa participacin del cliente.
J. Cada proyecto #- es un esfuerzo de euipo.
F. %odo se puede cambiar.
3. /oluciones de dominio, no puntos.
N. Completar, no construir.
O. @na solucin al O;E hoy, en vez de una al 1;;E maana.
:. El minimalismo es esencial.
1;. #a necesidad determina la tecnologa.
11. El crecimiento del producto es el incremento de sus prestaciones, no
de su tamao.
1?. *unca empu&es #- m!s all! de sus lmites.
-ado ue #- es m!s una filosofa de management ue un proceso de
desarrollo no hay mucho ue decir del tamao del euipo, la duracin de las
iteraciones, los roles o la naturaleza de sus etapas. [ltimamente #- ha
)etodologas de -esarrollo de /oftware 0giles .!gina ?N de 23
evolucionado como #ean /oftware -evelopment 8#/-<M su figura de referencia
es )ary .oppendiecH =JF>.
4gual ue "gile )odeling 8")<, ue cubra sobre todo aspectos de
modelado y documentacin, #- y #/- han sido pensados como complemento
de otros m$todos, y no como una metodologa e+cluyente a implementar en la
empresa. #- prefiere concentrarse en las premisas y modelos derivados de
#ean .roduction, ue hoy constituyen lo ue se conoce como el canon de la
Escuela de *egocios de 'arvard. .ara las t$cnicas concretas de
programacin, #- promueve el uso de otros )" ue sean consistentes con su
visin, como L. o sobre todo /crum.
"unue la formulacin del m$todo es relativamente reciente, la
familiaridad de muchas empresas con los principios de #ean .roduction U #ean
)anufacturing ha facilitado la penetracin en el mercado de su an!logo en
ingeniera de software.
8I9 Agile Modeling
"gile )odeling 8")< fue propuesto por /cott "mbler =J3> no tanto como
un m$todo !gil cerrado en s mismo, sino como complemento de otras
metodologas, sean $stas !giles o convencionales. En el caso de L. los
practicantes podran definir me&or los procesos de modelado ue en ellos
faltan, y en el caso de I@. el modelado !gil permite hacer m!s ligeros los
procesos ue ya usan. ") es una estrategia de modelado 8de clases, de datos,
de procesos< pensada para contrarrestar la sospecha de ue los m$todos
!giles no modelan y no documentan. /e lo podra definir como un proceso de
software basado en pr!cticas cuyo ob&etivo es orientar el modelado de una
manera efectiva y !gil.
#os principales ob&etivos de ") son(
1. -efinir y mostrar de u$ manera se debe poner en pr!ctica una
coleccin de valores, principios y pr!cticas ue conducen al
modelado de peso ligero.
?. Enfrentar el problema de la aplicacin de t$cnicas de modelado en
procesos de desarrollo !giles.
2. Enfrentar el problema de la aplicacin de las t$cnicas de modelado
independientemente del proceso de software ue se utilice.
#os valores de ") incluyen a los de L.( comunicacin, simplicidad,
feedbacH y cora&e, aadiendo humildad. @na de las me&ores caracterizaciones
de los principios subyacentes a ") est! en la definicin de sus alcances(
1. ") es una actitud, no un proceso prescriptivo. Comprende una
coleccin de valores a los ue los modeladores !giles adhieren,
)etodologas de -esarrollo de /oftware 0giles .!gina ?O de 23
principios en los ue creen y pr!cticas ue aplican. -escribe un estilo
de modeladoM no es un recetario de cocina.
?. ") es suplemento de otros m$todos. El primer foco es el modelado y
el segundo la documentacin.
2. ") es una tarea de con&unto de los participantes. *o hay 5yo6 en ").
J. #a prioridad es la efectividad. ") ayuda a crear un modelo o proceso
cuando se tiene un propsito claro y se comprenden las necesidades
de la audienciaM contribuye a aplicar los artefactos correctos para
afrontar la situacin inmediata y a crear los modelos m!s simples ue
sea posible.
5. ") es algo ue funciona en la pr!ctica, no una teora acad$mica. #as
pr!cticas han sido discutidas desde ?;;1 en comunidad
8http(PPwww.agilemodeling.comPfeedbacH.htm<.
3. ") no es una bala de plata.
N. ") es para el programador promedio, pero no reemplaza a la gente
competente.
O. ") no es un ataue a la documentacin. #a documentacin debe ser
mnima y relevante.
:. ") no es un ataue a las herramientas C"/E.
1;. ") no es para cualuiera.
#os principios de ") especificados por /cott "mbler incluyen(
1. Presuponer si%plicidad. #a solucin m!s simple es la me&or.
?. (l contenido es %Fs i%portante 'ue la representacin. .ueden
ser notas, pizarras o documentos formales. #o ue importa no es el
soporte fsico o la t$cnica de representacin, sino el contenido.
2. Abra/ar el ca%bio9 "ceptar ue los reuerimientos cambian.
J. Aabilitar el esfuer/o siguiente9 Rarantizar ue el sistema es
suficientemente robusto para admitir me&oras ulterioresM debe ser un
ob&etivo, pero no el primordial.
F. 6odo el %undo puede aprender de algJn otro. Ieconocer ue
nunca se domina realmente algo.
3. "a%bio incre%ental. *o esperar hacerlo bien la primera vez.
N. "onocer tus %odelos9 /aber cu!les son sus fuerzas y sus
debilidades.
)etodologas de -esarrollo de /oftware 0giles .!gina ?: de 23
O. Adaptacin local. .roducir slo el modelo ue resulte suficiente
para el propsito.
H9 Ma:i%i/ar la inversin del cliente9
1;. Modelar con un propsito9 /i no se puede identificar para u$ se
est! haciendo algo Apara u$ molestarseC
11. Modelos %Jltiples9 ),ltiples paradigmas en convivencia, seg,n se
reuiera.
8<9 "o%unicacin abierta ! Bonesta9
8?9 6raba-o de calidad9
1J. &eali%entacin rFpida9 *o esperar ue sea demasiado tarde.
1F. (l software es el ob-etivo pri%ario9 -ebe ser de alta calidad y
coincidir con lo ue el usuario espera.
13. Kia-ar ligero de e'uipa-e9 *o crear m!s modelos de los necesarios.
1N. 6raba-ar con los instintos de la gente.
#o m!s concreto de ") es su rico con&unto de pr!cticas =JN>, cada una
de las cuales se asocia a lineamientos decididamente narrativos, articulados
con minuciosidad, pero muy le&os de los rigores cuantitativos(
1. Colaboracin activa de los participantes.
?. "plicacin de est!ndares de modelado.
2. "plicacin adecuada de patrones de modelado.
J. "plicacin de los artefactos correctos.
F. .ropiedad colectiva de todos los elementos.
3. Considerar la verificabilidad.
N. Crear diversos modelos en paralelo.
O. Crear contenido simple.
:. -isear modelos de manera simple.
1;. -escartar los modelos temporarios.
11. E+hibir p,blicamente los modelos.
1?. Qormalizar modelos de contrato.
)etodologas de -esarrollo de /oftware 0giles .!gina 2; de 23
12. 4terar sobre otro artefacto.
1J. )odelo en incrementos peueos.
1F. )odelar para comunicar.
13. )odelar para comprender.
1N. )odelar con otros.
1O. .oner a prueba con cdigo.
1:. Ieutilizar los recursos e+istentes.
?;. "ctualizar slo cuando duele.
?1. @tilizar las herramientas m!s simples 8C"/E, o me&or pizarras,
tar&etas, post7its<.
Como ") se debe usar como complemento de otras metodologas, nada
se especifica sobre m$todos de desarrollo, tamao del euipo, roles, duracin
de iteraciones, traba&o distribuido y criticidad, todo lo cual depender! del
m$todo ue se utilice.
#os diagramas de @)# y los artefactos del .roceso @nificado, por
e&emplo, han sido e+plorados en e+tremo detalle describiendo cmo debera
ser su tratamiento en un proceso !gil E@.. E@. es simplemente @.\").
889 Prag%atic Progra%%ing 5PP7
El ttulo en realidad no es totalmente cierto, ya ue no hay un m$todo
llamado programacin pragm!tica, sino ue e+iste un con&unto muy interesante
de las me&ores pr!cticas de programacin publicadas en el libro 5%he .ragmatic
.rogrammer6 =JO>, pero por practicidad se lo llama .rogramacin .ragm!tica
=J:>.
#a .. no tiene proceso, fases, roles distintos productos de traba&o.
Este )" cubre, sin embargo, la mayora de las me&ores pr!cticas de
programacin. 'ay un total de N; recomendaciones ue se enfocan en los
problemas del da a da, pero la filosofa por detr!s de esto es ue son
universales y pueden ser aplicadas a cualuier fase del desarrollo de software.
#a filosofa est! definida en 3 puntos(
1. %ome las responsabilidades para @d., piense en soluciones en lugar
de estar pensando en e+cusas.
?. *o disee o codifiue mal, arregle las inconsistencias o planee
arreglarlas tan pronto como sea posible.
)etodologas de -esarrollo de /oftware 0giles .!gina 21 de 23
2. %ome un rol activo para introducir cambios donde @d. vea ue son
necesarios.
J. 'aga software ue satisfaga a su cliente, pero sepa cu!ndo parar.
F. Constantemente ample su conocimiento.
3. )e&ore sus habilidades de comunicacin.
-esde un punto de vista !gil, la mayora de las pr!cticas m!s
interesantes se enfocan sobre el desarrollo iterativo, incremental, testing
riguroso y diseo centrado en el usuario. El enfoue tiene un punto de vista
muy pr!ctico, y la mayora de las pr!cticas son ilustradas con e&emplos
positivos y negativos, a menudo complementados con preguntas y trocitos de
cdigo. Es un esfuerzo considerable e+plicar cmo disear e implementar
software tal ue pueda resistir cambios. @na de las soluciones ue se plantean
para mantener software a trav$s de los cambios es la refactorizacin.
El enfoue de la .rogramacin .ragm!tica respecto del testing consiste
en testear el cdigo ue est! siendo implementado sobre el cdigo real, y todos
los testeos deben ser hechos en forma autom!tica. #a idea es ue si cada bug
corregido no es agregado dentro de la biblioteca del test y si los tests de
regresin no se corren peridicamente, el tiempo y el esfuerzo se gastan en
encontrar los mismos bugs repetidamente, y los efectos adversos de cambios
en el cdigo no pueden detectarse suficientemente temprano.
#a automatizacin se encuentra en la .. en algunas otras tareas
tambi$n. -e hecho llega a sugerir 5*o use procedimientos manuales6. .or
e&emplo, en la creacin de la primera documentacin de cdigo fuente y en la
creacin de cdigo de las definiciones de la base de datos.
Iecomienda conservar las especificaciones a un nivel razonable de
detalle. #a .. demuestra pr!cticas de software simples, responsables y
disciplinadas. #a pr!cticas sugeridas en .. son escritas desde el punto de
vista de un programador, independientemente de los m$todos o procesos ue
se utilicen, para evitar errores tpicos en la codificacin y en el diseo y errores
de comunicacin en el grupo de traba&o.
6esting Dirigido por el "onte:to
-esde el principio han sido los desarrolladores de software uienes han
conducido a la comunidad !gil. /in embargo muchas otras personas envueltas
en el desarrollo de software son afectadas por este nuevo movimiento. @n
grupo obvio es el de los verificadores, ue a menudo viven en un mundo
dominado por el pensamiento de cascada. Con pautas comunes ue declaran
ue el papel del testing es asegurar la conformidad del software con las
especificaciones escritas de antemano, el papel de los verificadores en el
mundo !gil est! le&os de ser claro.
)etodologas de -esarrollo de /oftware 0giles .!gina 2? de 23
Xarias personas en la comunidad de verificadores han estado
cuestionando mucho la corriente principal del pensamiento en testing desde
hace un tiempo.
Esto ha llevado a formar un grupo conocido como 5testing conducido por
el conte+to6. #a me&or descripcin es el libro 5#essons #earned in /oftware
%esting6, cuyos autores son Cem Saner, Games Wach y Wret .ettichord =F;>.
#a comunidad de testing de software es tambi$n muy activa, teniendo
sus sitios en la web Wrian )aricH =F1> 8uno de los autores del manifiesto !gil<,
Wret .ettichord =F?>, Games Wach =F2> y Cem Saner =FJ>.
Debe usted ir a lo Fgil?
#os p!rrafos siguientes son e+tractados de =:>.
El uso de un m$todo !gil no es para todos. 'ay ue tener en cuenta
varias cosas si se decide a seguir por este camino. /in embargo yo creo
ciertamente ue estas nuevas metodologas son e+tensamente aplicables y
deben ser usadas por m!s personas de las ue actualmente lo consideran.
En el ambiente actual, la metodologa m!s com,n es codifica y corrige.
"plicar m!s disciplina ue caos casi seguramente ayudar!, y el acercamiento
!gil tiene la venta&a de ue es mucho menos de un paso ue un m$todo
pesado. )ucha de la venta&a de los m$todos !giles es de hecho su peso ligero.
#os procesos m!s simples son m!s probables de ser seguidos cuando uno no
est! acostumbrado a ning,n proceso en absoluto.
@na de las limitaciones m!s grandes de estas nuevas metodologas es
cmo mane&an euipos m!s grandes. Como muchas nuevas tendencias, ellos
tienden a ser usados primero a escala peuea antes ue a gran escala.
%ambi$n a menudo se han creado con $nfasis en euipos peueos. #a L.
e+plcitamente dice ue est! diseada para euipos de no m!s de veinte
personas. 'ay ue recordar ue muchos euipos de software pueden reducirse
en tamao sin reducir su productividad total.
9tras tendencias !giles est!n destinadas a euipos m!s grandes. #a
Q-- fue diseada originalmente para un proyecto de cincuenta personas.
%houghtYorHs ha usado proyectos influidos por la L. con euipos de cerca de
1;; en tres continentes. /crum se ha usado para mane&ar tamaos similares.
Esperanzadoramente un mensa&e ue ueda claro en este artculo es
ue los acercamientos adaptables son buenos cuando sus reuisitos son
inciertos o vol!tiles. /i usted no tiene reuisitos estables, entonces no est! en
la posicin tener un plan estable y seguir un proceso planeado. En $stas
situaciones un proceso adaptable puede ser menos cmodo, pero ser! m!s
eficaz. " menudo la barrera m!s grande au es el cliente. Como yo lo veo es
importante para el cliente entender ue seguir un proceso predictivo cuando los
reuisitos cambian es arriesgado tanto para ellos como para el desarrollo.
)etodologas de -esarrollo de /oftware 0giles .!gina 22 de 23
/i usted va a tomar la ruta adaptable, necesita confiar en sus
desarrolladores e involucrarlos en la decisin. #os procesos adaptables
cuentan en ue usted confa en sus desarrolladores, de modo ue si usted
considera a sus desarrolladores de ba&a calidad y motivacin, usted debe usar
un acercamiento predictivo.
.ara resumir. #os siguientes factores sugieren un proceso adaptable
Ieuisitos inciertos o vol!tiles
-esarrolladores responsables y motivados
Clientes ue entienden y se involucrar!n.
Estos factores sugieren un proceso predictivo
@n euipo de m!s de cien
@n precio fi&o, o m!s correctamente un alcance o contrato fi&o
&eferencias
=1> Elisa Rallo, )iHel Xergara, European /oftware 4nstitute,
http(PPwww.esi.esPWerriHuntza
=?> /teve )cConnell, 5Iapid -evelopment6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P1FF31F:;;FPprogramacione7
?;
=2> "listair CocHburn, 5Characterizing .eople as *on7#inear, Qirst79rder
Components in /oftware -evelopment6,
http(PPalistair.cocHburn.usPcrystalParticlesPcpanfocisdPcharacterizingpeople
asnonlinear.html
=J> Iobert -. "ustin, 5)easuring and )anaging .erformance in
9rganizations6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;:2?322233P1;J7N11NOJ?7
N:;1F22Pprogramacione7?;P1;?7J3ONOO27:F?O:JO
=F> *orman #. Serth, http(PPc?.comPpprPaboutPauthorPnorm.html
=3> "lianza 0gil, http(PPwww.agilealliance.org
[7] .atricio #etelier, -epartamento de /istemas 4nform!ticos y Computacin,
@niversidad .olit$cnica de Xalencia, letelier]dsic.upv.es
=O> )anifiesto para el -esarrollo de /oftware 0gil,
http(PPwww.agilemanifesto.org
=:> )artn Qowler, #a *ueva )etodologa, http(PPwww.programacion.net
=1;> Sent WecH, 5E+treme .rogramming E+plained6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;1313J13Pprogramacione7
?;
)etodologas de -esarrollo de /oftware 0giles .!gina 2J de 23
=11> Ion Geffries http(PPwww.+.rogramming.com
=1?> -on Yells http(PPwww.e+treme.rogramming.org
=12> Yard Cunningham, p!gina wiHi, http(PPc?.comPcgiPwiHiC
E+treme.rogrammingIoadmap
=1J> Rrupo de -iscusin L.,
http(PPwww.egroups.comPgroupPe+tremeprogramming
=1F> )arH .aulH, 5L. desde la .erspectiva del C))6,
http(PPwww.sei.cmu.eduPcmmPpapersP+p7cmm7paper.pdf
=13> http(PPwww.programacione+trema.org
=1N> Rrupo de -iscusin en Dahoo, http(PPgroups.yahoo.comPgroupP+pspanish
=1O> "listair CocHburn, http(PPmembers.aol.comPacocHburn
=1:> "listair CocHburn, 5/obreviviendo .royectos 9rientados a 9b&etos6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;1J:O2J;Pprogramacione7
?;
=?;> "listair, -esarrollo de /oftware 0gil,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;13::3::Pprogramacione7
?;
=?1> Crystal, http(PPmembers.aol.comPacocHburnP
=??> Iaymond 5#a Catedral y el Wazar6, http(PPes.tldp.orgP9trosPcatedral7
bazarPcathedral7es7paper7;;.html
=?2> Sarl Qogel, 5-esarrollo de Cdigo "bierto con CX/6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P1FN31;J:;NPprogramacione7
?;
=?J> Qundacin /idar, http(PPwww.sidar.orgPrecurPdesdiPcvs
=?F> Gim 'ighsmith, http(PPwww.adaptivesd.com
=?3> Gim 'ighsmith, 5"daptive /oftware -evelopment6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;:2?322J;JPprogramacione7
?;
=?N> Sen /chwaber y )iHe Weedle, 5"gile /oftware -evelopment with /crum6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;12;3N32J:Pprogramacione7
?;
=?O> Sen /chwaber, http(PPwww.controlchaos.com
=?:> Geff /utherland, http(PP&effsutherland.comPscrumPinde+.html
=2;> *eil 'arrison, Wrian Qoote, 'ans Iohnert 5.attern #anguages of .rogram
-esign J 8/oftware .atterns /eries< 5,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;1J22;JJPprogramacione7
?;
=21> /crum, http(PPgroups.yahoo.comPgroupPscrumdevelopment.
=2?> /tephen I .almer, Gohn ). Qelsing, 5" .ractical Ruide to Qeature7-riven
-evelopment 8%he Coad /eries<6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;12;3N31F?Pprogramacione7
?;
=22> Geff -e #uca, Q--, http(PPwww.featuredrivendevelopment.com
=2J> .eter Coad, 5Gava )odeling 4n Color Yith @)#6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;12;11F1;LPprogramacione7
?;P1;?7J3ONOO27:F?O:JO
=2F> %ogether/oft, http(PPwww.togethersoft.com
=23> -/-), http(PPwww.dsdm.org
)etodologas de -esarrollo de /oftware 0giles .!gina 2F de 23
=2N> Gennifer /tapleton, 5-/-)6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;11NOO:2Pprogramacione7
?;
=2O> .hilippe Sruchten, 5%he Iational @nified .rocess6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;?;1N;N1;1Pprogramacione7
?;P1;?7J3ONOO27:F?O:JO
=2:> Craig #arman, 5"pplying @)# and .atterns6,
http(PPwww.amazon.comPe+ecPobidosP"/4*P;12NJOOO;NPprogramacione7
?;P1;?7J3ONOO27:F?O:JO
=J;> Iobert )artin,
http(PPwww.ob&ectmentor.comPresourcesParticlesPI@.vsL..pdf
=J1> Games YomacH, -aniel Gones y -aniel Ioos, 5%he machine that
changed the world( %he story of #ean .roduction6, 'arperWusiness,
1::1.
=J?> Iobert Charette, %he Qoundation /eries on IisH )anagement, Xolume 44(
5Qoundations of #ean -evelopment6, Cutter Consortium, "rlington, ?;;1
=J2> Carlos Ieynoso, 5)$todos 'eterodo+os en -esarrollo de /oftware6,
http(PPwww.microsoft.comPspanishPmsdnParuitecturaProadmap^arPhetero
do+.asp
=JJ> Gim 'ighsmith, 5"gile /oftware -evelopment Ecosystems6, Woston,
"ddison Yesley, ?;;?.
=JF> )ary .oppendiecH, 5#ean .rogramming6,
http(PPwww.agilealliance.orgParticlesParticlesP#ean.rogramming.htm, ?;;1.
=J3> /cott "mbler, 5"gile )odeling( Effective practices for E+treme
.rogramming and the @nified .rocess6, Gohn Yiley U /ons, ?;;?.
=JN> /cott "mbler, 5"gile )odeling and the @nified .rocess6,
http(PPwww.agilemodeling.comPessaysPagile)odelingI@..htm, ?;;?.
=JO> "ndrew 'unt, -avid %homas, 5%he .ragmatic .rogrammer( Qrom
Gourneyman to )aster6, http(PPallconsuming.netPitem.cgiC
isbn_;?;1313??L
=J:> .eHHa "brahamsson, 9uti /alo, Gussi IonHainen U Guhani Yarsta, 5"gile
/oftware -evelopment )ethods( Ieview and "nalysis6, X%%, ?;;?
=F;> Cem Saner, Games Wach, Wret .ettichord, 5#essons #earned in /oftware
%esting6, http(PPwww.amazon.comPe+ecPobidosP"/4*P;JN1;O11?JP1;J7
N11NOJ?7N:;1F22Pprogramacione7?;
=F1> Wrian )aricH, %esting Qoundations, http(PPwww.testing.com
=F?> Wret .ettichord, http(PPpettichord.com
=F2> Games Wach, /atisfice, 4nc. http(PPwww.satisfice.com
=FJ> Cem Saner G.-., .h.-., http(PPwww.Haner.comP
)etodologas de -esarrollo de /oftware 0giles .!gina 23 de 23

También podría gustarte