Académique Documents
Professionnel Documents
Culture Documents
EL RESPONSABLE DE PRODUCTOS ME DIJO que quera desarrollar un producto preparado para un cambio. Deseaba tener en cuenta la calidad, evitar el crecimiento de prestaciones, controlar la planificacin y tener una fecha de entrega predecible. Cuando lleg la hora de realizar el proyecto, qued claro que la nica prioridad real era poner el producto a la venta 1o antes posible. ,Usabilidad? 1/o tenemos tiempo. Rendirniento? Puede esperar. ,Facilidad de mantenimienf"o? Para el prrimo proveclo. Verificacin7 Nuestros usuurios qttieren el produco ahora. Hav que terminar conto sea. Este responsable de productos en particular no eta el responsable de un solo producto. Podra haber sido prcticamente cualquiera de los responsables de productos para los que he trabajado. Este comportalniento se repite todos los das, en todos los estados y en todos ios pases. El tiempo de desarrollo se ha convertido en una prioridad tan irnportante que ha cegado a las personas sin dejarles ver otras consideraciones importantes, incluso algunas que afectan al final al tiempo de desarrollo.
1.1
Qu es el desarrollo rpido?
Para algunas personas. el desarrollo rpido consiste en aplicar una nica herramienta o mtodo. Para el hacker, el desarrollo rpido consiste en codificar 36 horas de un tirn. Para el ingeniero de sistemas de informacin" es RAD (Lrna cornbinacin de herramientas CASE,, la participacin intensiva del usuario y \entanas temporales estrictas). Para el programador de mercado, consiste en usar prototipado rpido con la ltima versin de Microsoft Visual Basic o Delphi. Para el clirectivo desesperado por acortar una planificacin. es cualquier mtodo recomendado en el ltimo nmero de Business trfeek. Cada uno de estos mtodos y herramientas va bien hasta un clerto lmite, y cada uno puede contribuir a incrementar la velocidad de desarrollo. Pero para obtener todo el beneficio posible, cada uno tiene que estar coordinado dentro de una estrategia global. Ninguno de ellos es aplicable a todos los casos. y ninguno puede compararse frente a otras tcnicas que generaimente no son consideradas como tcnicas de desarrollo rpido. pero que sin embargo tienen profundas implicaciones en la velocidad de desarrollo. En lugar de identificar una herramienta o mtodo especficos, en lo que respecta a este libro ei <desarrollo rpido> es simplemente una frase descriptiva opuesta a,,desarrollo lento y tpico>. No es Desarrollo Rpiclor\, una frase o palabra mgicas. No es una fulgurante metodologa de desarrollo rpido Blaze-O-Matic o Gung-HO-OO. E,l desarrollo rpido es un trmino genrico que significa lo nismo que <desarrollo veloz> o <planificaciones ms cortas)). Significa desarrollar software a una velocidad superior a Ia alcanzada en este momento. E,nionces, un <proyecto de desarrollo rpido> es cualquier proyecto que necesite hacer nfasis en 1a velocidad de desarrollo. En las circunstancias actuales, esta descripcin se adapta a gran cantidad de proyectos.
,,lo prctblema
:'t(10 ha.l un
a:t('.\d corta.
velocidad de desarrollo. Tambin me gustara tener cinco millones de dlares. Pero las soluciones simples tienden a funcionar slo con problemas sencillos, y cl desarrollo de software no 1o es. El desarrollo rpido de
software es an menos simple. Como sugiere la Figura 1.1, el conjunto de todos los mtodos disponibles para desarrollo de software es inmenso. Dentro de esre conjunto, el subconjunto de mtodos tambin es grande. E,n un proyecto en particular, slo se utiliza un pequeo subconjunto de estos mtodos. Visto por encima, para tener xito en el desarrollo rpido se requieren dos cosas:
o .
tivos de planificacin.
Mlodos ineficaces
Conjunto
de mtodos
usados en
un proyecto
determinado
1.1. Conjunto de todos los mtodos para desarrollo de software La velocidad de desarrollo depende de la seteccin de los mtodos de desarrollo. La velocidad con que desarrollemos cualquier programa concreto depender de Ia proporcin de mtodos eficaces y de mtodos orientados a la planificacin que seleccionemos.
Figura
Podramos pensar que esto es obvio. pero como se explica en el Captulo 3, las organizaciones seleccionan habitualmente mtodos ineficaces. Eligen mtodos cuya ineficacia est probada, o que fallan ms de la cuenta. Cuando necesitan la mxima certeza en los plazos. seleccionan prcticas de alto riesgo, que reducen la posibilidad de alcanzar las fechas lmite fijadas. Cuando necesitan reducir costes, seleccionan mtodos orientados a la velocidad, que incrementan los costes. En estas empresas, el primer paso hacia la me.jora de la velocidad de desarrollo consiste en admitir que estn seleccionando rntodos ineficaces, y a partir de ah comenzar a elegir mtodos eficaces. En la Figura L l. todos los mtodos efectivos orientados a la planificacin estn agrupados en una categora, pero como sugiere la Figura 1.2, actualmente se puede elegir entre tres tipos de mtodos orientados a la planificacin:
. .
Mtodos que mejoran la velocidad de desarrollo, permitiendo entregar antes el software. Mtodos que reducen el riesgo en la planificacin, permitiendo evitar
grandes retrasos de planificacin. Mtodos que hacen visible el progreso, perrnitiendo disipar la irnpresin de tener un desarrollo lento.
Los tipos especficos quc seleccione de mtodos orientados a planificacin estarn determinados por sus problemas con la velocidad de desarrollo. Si piensa que simplemente necesita desarrollar ms rpido, debe
1.2. Hay tres tipos de mtodos orientados a la planificacin: mtodos que permiten desarrollar ms rpido, que reducen el riesgo en la planificacin y que hacen visible el progreso.
Figura
Captulo 1: Bienvenido al desarrollo rpido centrarse en n-rtodos orientados a la velocidad de desarrollo. Si piensa que su velocidad de desarrollo es correcta, y que el problema radica en la percepcin de la velocidad cle desarrollo por parte del cliente, debera centrarse en los mtodos orientados a la visibilidad. Al unir mtodos ef-ectivos orientados a planificacin junto con un plan para usarlos, ver que el conjunto ofrece mejoras drsticas y reales en ia velocidad de desarrollo. Esto es mejor que usar un software <elixir> Habichuelas-Mgicas,que realmente no funciona. Por supuesto, seleccionar mtodos eficaces y evitar los ineficaces es fcil de decir, pero difcil de hacer, y ste es el tema del resto del libro.
2.2. Cuatro c'limensiones cle la vclocidad de desarrollo 2.3. Tipos generales de desarrollo rpido
2.'1. ,Cul cs la dimensin ms importante? 2.5. Una estratcgia alternativa para el dcsarrollo rpido Temas relacionados
E,rrores clsicos: Captulo 3 Bases dcl desarrollo de software: Captulo 4
SI COGIESEN4OS lOO MUSICOS DE PRESTIGIO A NIVEL MUNDIAL y los pusisemos en una orquesta sin director, no sonaran como una orquesta de calidad. E1 tempo de 1a seccin de cuerda no coincidira con el de la seccin dc madera y viento o con 1a seccin de metal. Indicar a los r.nsicos quc lo hagan <1o mejor que puedan> no les ayuda a saber si debcn ir ms rpido o ms lento. Scmejante evento musical sera un desperdicio de taleuto. E.n el desarrollo de softr.varc sc produce un desperdicio similar de talento. Equipos de clesarrolladores intcligentes y dedicados utilizan 1as tcnicas rnejorcs I nrs recientes. y siguen sirt podcr alcanzar sus objetivos
de planificacin. Una de las trantpas rns tentacloras en las que cae la gente que qulere desarrollar ms rpido consiste cn centralse slo en mtodos de desarrollo orientados a planificacin. Podramos ejecutar cl prototipado rpido
10
Desarrollo y gestin de proyectos informticos perf'ectamente, pcro si corletemos un error no obtclrdrerlos un desarr.
rpido (<Vaya!, en la planificacin hemos olr.idado inclLrir tierrpo p.,: hacer el subsistema de in-rpresin>). Las tcnicas concrstas orientac'la. planificacin son slo parte de lo que necesitarnos para obtener el pr., ms corto posible. Tambin se necesita Lln cntorno global que pernt.. utilizar estas tcnicas con el mximo beneflcio. De aqu cn adclanlc cste capitulo proponc una cstratcgia orqrre.r.re para conseguir un desarrollo rpido.
Ejemplo
2.1.
Mickey estaba preparado para dirigir su segundo proyeclo en Square-Tech. un gigante en el mundo de las hojas de clculo sobre pC. Su primer proyecto fue mal. El plan original prevea que su equipo entregase Square-Calc versin 2.0 en i2 meses, pero emple 18. El equipo saba desde el princip1o que la fcha era agresiva, por lo que casi durante los l8 meses completos llevaron una marcha tlepidante, trabajando l2 horas al dia 6 o 7 das a la semana. Al final, dos de los seis miembros del equipo se fueron, y Bob. el desarrollador ms importante del equipo, parti desde Seattle en su bicicleta hacia un lugar desconocido. Bob dijo que no abandonaba, y envi una postal a Mickey desde Otturnwa, en Dakota del Sur, una foto suya montando en un rodeo, pero nadie saba cundo volvera. La versin 3.0 de Square-Calc tena que entregarse l2 meses despus que la versin 2.0, as despus de dos meses del fin del poyecto, diagnsticos post-mortem y vacaciones, Mickey estaba dispuesto a intentarlo de nuevo. Tenia i0 meses para entregar la versin 3.0. Mickey se reuni con Kim, su jefa, para discutir el plan dei proyecto. A Kim se le conocia por su capacidad para aprovechar hasta el ltimo esfuerzo de los desarrolladores
a su cargo. Tambin estaban John, de documentacin de usuario, y Helen, de control de calidad.
<La versin 3.0 tiene que superar a la competencia>, dijo Kim. <Por tanto, en este proyecto tenemos que hacer un gran esfuerzo. S que tu equlpo no cree que la compaia les haya apoyado mucho anteriormente. asi que ahora la compaa est dispuesta a darles todo el apoyo que pueda. He autorizado despachos privados e individuales, computadores ms modernos y refrescos gratis durante todo el proyecto. Qu te parece?> <Me parece bieo. dijo Mickey. <Todos los desarrolladores tienen experiencia, as que principahnente quiero darles motivacin y apoyo, y entonces dejarles trabajar. No quiero controlarles estrechamente. Me gustaria que cada uno se responsabilizase de una parte del sistema. Antes tuve problemas c<n las interthces, as que quiero dedicar algn tiempo en disear las interfaces entre las partes, r despus dejarles a su aie.> <Si es un proyecto de l0 meses, en 8 meses necesito una versin con el aspecto definitivo del software para tener la documentacin de usuario lis\( ()llIlllllti
J
rpido
11
ta a tiempo>, dijo John. <La ltima vez los desarrolladores estuvieron haciendo cambios hasta el f,nal. El archivo LEAME tsna 20 pginas, y adems enrevesadas. Los manuales de usuario estn siendo destrozados en las revisiones. Siernpre que ests de acuerdo con tener lista una versin con la interfaz definitiva, el mtodo de desarollo parece correcto.)) <Necesito la versin definitiva ms o menos en la misma fecha para escribir secuencias autornticas de prueba>, aadi Helen. Mickey acept el planteamiento de la versin definitiva. Kirn aprob la estrategia global de Mickey y le dijo que le dejase organizarse. Cuando comenz el proyecto, los desarrolladoes andaban contentos con sus despachos individuales, sus nuevos ordenadores y los refrescos, asi que empezaron fuerte. No tardaron mucho en quedarse voluntariamente a lrabajar por la tarde. Los meses pasaban, y hacan progresos constantss. Pronto construyeron un prototipo, y continuaron generando cdigo. La directiva mantenia la presin, John record a Mickey varias veces su acuerdo de tener la vesin con el aspecto definitivo en 8 meses, cosa que Mickey encontr irritante, pero todo pareca progresar bien. En el cuarto res del proyecto Botr volvi de su viaje en bicicleta. fresco, e irrumpi en el proyecto con nuevas ideas que haba concebido mientras pedaleaba. Mickey estaba preocupado por si Bob podra implementar las funciones que necesitaba en el tiernpo disponibie, pero Bob estaba comprometido con sus ideas y garantizaba la entrega a tiempo sin importar lo mucho quc tuviera que trabajar. Cada miembro del equipo trabajaba individualmente en su parte, y como la entrega de la versin con la interfaz definitiva se aproximaba, corenzaron a integrar el cdigo. Comenzaron a las 2:00 de la tarde del dia anterior a la entrega de la versin definitiva y pronto descubrieron que su programa no compilaba, y menos an se ejecutaba. El cdigo combinado tena varias docenas de errores de sintaxis, y pareca que cada uno que se correga generaba otros 10. A medianoche, decidieron dejarlo por esa noche. A la maana siguiente, Kirr se reuni con el equipo. <El programa est listo para entregarlo al equipo de documentacin y prueba?> <An no>i, dijo Mickey. <<Tenemos aigunos problemas en laintegracin; podemos tenerlo listo esta tarde.> El equipo trabaj esa tarde y por la noche, pero no consiguieron corregir todos los errores que encontraron. Al final del dia admitieron que no tenan ni idea de cunto tiempo llevara la integracin. Emplearon dos semanas completas en corregir todos los errores de sintaxis y tener el sistema funcionando al completo. Cuando el equipo entreg la versin buena tras un retraso de dos semanas, los equipos de prueba y de documentacin la rechazaron inmediatamente. <Es demasiado inestable como para documentarla>, dijo John. <Se viene abajo cada pocos minutos. y hay dernasiadas opciones que no pueden plobarse.> Helen aar,li: ,,No tiene senlido escribir un informe de errores, si el sistema es tan inestable que se interrumpe casi cada vez que se hace una eleccin en el men.>
(aDnInuLt\
12
Mickey estaba de acuerdo con elros, y drjo que los esfuerzos der equipo se tenan que centrar en corregir errores. Kim les record la fecha tope de 10 meses, y dijo que ese producto no poda retrasarse como el anterior.
se emple un mes en hacer que el sistema fuese lo bastante fiable como para comenzar la documentacin y la prueba. por entonces slo quedaban dos semanaspara el plazo de 10 meses, y trabajaron an ms. Pero la pruetra enc,ntraba defectos con ms rapidez de la e'.rpleada por los desarrolladores para corregirlos. Las correcciones en Lrna parte del sistema frecuentemente generaban problemas en otras. No habia posibiliclad alguna de acabar el dcimo mes. Kim convoc una reunin de emergencra. <veo que estis trabajando duro>, dijo. <pero no es suficiente. Necesito resultados. os he dado todo tipo de ayuda, y an no tengo ningn sofiware que ensear. Si no acabis pronto el producto, la cornpaia podra hundirse.>> Segn aumentaba la presin. bajaba la moral rpidamente. Segn pa_ saban los meses, el producto comenzaba a estabilizarse, y Kim t.t..rani"na la presin. Algunas de las interfaces se volvieon extremadanlente ineficientes' y se necesltaron varias semanas ms para nrejorar la eficiencia. Bob, a pesar de trabajar contra reloj, entreg su softrvare ms tarde que el resto del equipo. El cdigo estaba virtualmente libre de ,.ru "rro."r" haba cambiado algunos elcmentos de la interfaz de usuario, y las pruebas y documentacin de usuario no encajaban. Mickey se reuni con John y Helen. <No os gustar esto, pero las op_ ciones son ias siguientes: Podemos mantener el cdigo de Bob como est. y revisar ias pruebas y la documentacin de usuario, o podemos descartar el cdigo de Bob y escribirlo todo de nuevo. Bob no reescribir su cdigo. ni nadie del resto del equipo. parece que tendris que carnbiar la documintacin de usuario y las secuencias de pruebas.> Despus de oponer un poco de resistencia, John y Helen aceptaron de mala gana. Finalmente, 1os desarrolladores emplearon l5 meses en acabar el software. Debido a los cambios de aspecto, la documentacin de usuario perdi su lugar en el programa de produccin de la imprenta, asi que <lespus de que los desarrolladores tuvieran los discos naestros, hubo dos semanas ms de retraso en el lanzamiento mientras square-Tech esperaba que llegaran los documentos de la imprenta. Despus del lanzamiento la respueita de los usuarios a la versin 3.0 de square-calc fue poco entusiast, y al cabo de los meses descendi del segundo al cuarto puesto en el mercado. Mickey concluy que haba acabado su segundo proyecto un 50 por 100 de tiempo ms tarde de 1o planificado, igual que el prirnero.
13
l. 2. 3. 4.
Como se sugierc en la Figura 2.1. cstas cllatro tcnicas olicccrr soporte para el mcjor plan posible. Las imgenes con pilarcs no le llaman la atencilt r rradic. lero los pilures de esta figura nruestlan rarios puntos irnporlantes. E,l soporte ptimo para el rnejorplan posiblc cs tcner los cuatro pilares colocados en su lugar. y hacer que cada uno de ellos sea lo nts firc-rte posible. Sin el soporte de los tres primeros pilares. las posibilidadcs dc conscguir cl rnejor plan posiblc estarn en peligro. Podentos utilizar los nttodos lus potentes orientados a la planificacin. pero si contetentc'rs cl error clsico de descuidar la calidad del proyecto clt sLls fases inicialcs. clcsperdiciaremos ticmpo corrigiendo defectos justo cuarrdo cs u.rs carcl. Nucstrcr proyecto sc retrasar. Si pasan.ros por alto cl rxiontr dc desarrollo de crear un buen diseo antes cle contenzar a codillcar. ltLrcstro progfauta firllar cuanclo cambie la concepcin del producto durantc cl troceso cic desarrollo, y el proyecto se retrasar. Y si no controlrmos los riesgcts. pocler.nos descubriljusto antes de la fecha dc cntrega quc uu subcontratistr clave sc ha retrasado tres meses scgn el tllan. Dc nuevo tcndrentos rctrast,.
Mejor planificacin
posible
"!:s*
rrfiNti
rl
,i1rl
&#;; ;#;;
clscos desarrollo Figura
**M
Evitar errores
Bases
oel
2.1. Los cuatro pilares del desarrollo rpido. El mejor plan posibte depende de evitar los errores clsicos, las bases del desarrollo y la gestin de riesgos, adems del uso de mtodos orientados a planificacin.
14
Desarrollo y gestin de proyectos informticos La figura tambin sugiere que ros tres primeros pilares ofrecen la rnayor parte del soporte necesario para obtener el mejor plan posibre. euizs no sea el soporte ideal, pero es la mayor parte de lo que necesitamos. Debemos ser capaces de obtener un plan ptimo sin mtodos orientados plaa
todo el trabajo, probablemente no tenclremos todo er soporte ne."su.iolsi lo hacemos una vez, puede que no seamos capaces de hacerlo de nuevo. Los tres primeros pilares rnostrados en ra Figura 2.r son bsicos para el xito del desarrollo rpido, as se har 1o posible para clarificar qu quiere decir evitar errores clsicos, bases del desarroll y gestin de ries_ gos. El captulo 3 trata los errores clsicos. En la nrayria de los casos, estar avisado simplernente de la natural eza d,e un error ser suficiente para evitarlo. as que en este captulo se muestra una lista de los errores clsicos. El tema de las bases del desarrollo se trata en el captulo 4, y el tema de la gestin de riesgos en el Captulo 5. El resto del libro trata de mtodos concretos orientados a planificacrn, incluyendo mtodos orientados a velocidad, orientados a la olanifi_
nificacin. Se podra obtener el mejor plan posible centrndose nicamenre en mtodos orientados a planificacin? Se podra hacer. La gente va ha rea_ lizado antes proezas como sta. pero como muestra la Figura i.2, ., ,n difcil problema de equilibrio. puedo mantener en equilibrio una silla en mi barbilla y mi perro puede mantener en equiribrio una galleta en sr-r nariz. Pero la elaboracin ile un proyecto software no ., un-t.uco de saln, y si confiamos en que los mtodos orientados a planificacin hasan
Figura 2.2. Resurtado de centrarse solamente en mtodos orientados a planificacin. Ni los mtodos orentados a ptanificacin ms avanzados son capaces de soportar por ellos solos el mejor ptan posible.
rpido l5
resto de captulos.
cacin de riesgos y orientados a la visibiridad. En la tercera parte del ribro, <Mtodos recomendables>. se muestra el efecto de cad mtodo en la velocidad del desarrollo, planificacin der riesgo y visibilidad. Si desea pasar al desarrollo rpido en s antes de leer acerca de los tres pasos necesarios para conseguir las bases del desarroilo rpido, puede saltar al Captulo 6, <Cuestiones fundamentales para el desrrollo rpido>, y al
Personas
Producto
Tecnologa
2.3. Las cuatro dimensiones de ra verocidad de desarroilo (mostradas aqu en dos dimensiones). podemos centrar la atencin en las cuatro dimensiones a la vez.
Figura
16
Como rplica a este diagran.ra. algunos ingenieros diran: <E,h!, no son cLratro dinten.srttes. Son cuatro tlirec'c'one.s. Arn no podemos dibujar cn cr-ratro clirrensiones!> Es cierto. No se puede dibujar en cuatro dir.nensioncs. y sta es la raz(rn dc que la figura se muestre en dos dimensiones. Por cl conccllto qLle se quiere mostrar es lls rna dirnensin que una
d
i
rcccin.
Los libros de dcsarrollo de softr.vare tienden a hacer nfasis en una dircccin v a nrinir.uizar las derns. pero no hay necesidad de renunciar entre central'se en las personas. el proceso. el producto o la tecnologa. Si fucscn direcciones. cntonces centrarse en las personas podra quitar valor a centrarsc en la tecnologa. Ccntrarsc en el producto impedira centrarse en c[ proceso. Pero pllesto qlle son dimensiones. podemos centrarnos al misl.no tiempo en la gente. cl proccso. el producto y la tecnologa.
Las organizacioncs de softu'are tienden a t'er las dir.nensiones que no utilizan como valores fi.jos. y sta puedc ser una de las razones de que la planificacin de proyectos pueda ser frustrante. cspecialmente la planiflcacin teurporal. Cuando r-rtilizamos una sola dimensin, es prcticamente irnposible satisfacer los objetivos dc todos. El dcsarrollo autntrcamente rrido necesita que incorporemos gran variedad de tipos distintos de nrtodos (Boehm et ul..198.:l; Jones. 199 l). Las organizaciones r.ns efeclivas en la consecucin de un desarrollo rpido optimizan simultneamcnte las cuatro diurcnsiones. Aprender cada una de las cnatro dimensiones puede suponer una gran rcnta.ja para la planificacin del softu'arc: la planificacin pr"rede llegar a scr mis completa. rs creativa, ms efectiva y nos satisfar mejor. tanto a nosotros conto al resto de los intplicados. Las siguicntcs subsecciclne s tratan de las cuatro dimensiones v dc cnro
sc relaciorran.
Personas
Se conoccn los resultados dc experimentos concretos cn tcmas de personal (peotleu'arc). Poder.nos estar familiarizados con la tcsis de que la di-
fcrencia cn la proclu.^tividad cntre diferentcs desarrolladores cs al nrenos o estar lamiliarizados con la aportacin positiva que pucde tcuer unr utcjora cxplcita en 1a r.notir,acin. Lo que es rrenos lamiliar de la rnayora dc los dcsarrollaciores. incluida la mavora de la serrte de la industria. es que los resultados cn las incle dicz a uno.
17
tiviclacl del sofiu'arc y por tanto cn la calidad del software. Desdc f-inales dc los sesenta. estudio tras estudio sc ha descubierto que la productividad de programadorcs concretos dc sirnilar nirel de experienciu pLrede variar en un factor dc al menos de dicz a uno (Sackr.nan. Erikson y Grant, 1968: Curtis. l98l: Mills. 1983: DcMarco y Lister. 1985; Curtis
1986: Card. 1987: Valett y McGarry. 1989). Los estuclios tambin han descubicrto r.ariaciones en la eficiencia de equipos cor.npletos del ordcn de 3, 4. o 5 a I (Weinbcrg -v- Schulman. 197.1: Boehm. 198 l; Mills. I 983: Boehr. Grav y Seeu aldt. 1984). Despus
er
ul.,
,:
=-ALES
boratorio de Ingeniera del Soltrvare de la NASA han llcgado a la cor.lclusin dc que la tecnologia no es la respucsta; los u.rtodos ms ef'ectivos son aquellos quc sacan partido al potencial humano dc sus desarrolladorcs (Basili er al.,1995). Puesto qllc est claro quc todo lo relacionaclo con peopler.r'are influyc fuertemente en la productividad. ahora tarnbin queda n.ruy claro que cualcluicr organizacin que trate seriantentc de ntclorar la productiridad primero debe ocLlparse c1c temas relacionados con pc-rsonal. contt'r lr ntotir,'acin. cquipo de trabajo. seleccin dcl personal y fbrrnacicin. Hav otras formas dc mejorar la productividad" pero la gcstin de personal of}ece los mayorcs beneflcios potcnciales. Si nos interesa cl dcsarrollo rpido. de bcmos preocuparnos de las personas. Conjuntarrcntc. los tcntas relacionados cor.t el persorral son r"ns in.rportantcs que cl proccso. el producto cl la tecnologa. Tendremos que tenerlos clt cuenta si buscan.tos el rito. Este rcsultado es contundente. pcro no dcbe tornarsc con.lo base de cualquier iniciativa relacionada con pcoplervarc cn cada rca. Los resultados de la investigacir-r simplentcnte dicen quc los cl-cctos cle la habilidad y motivacin individuales. y habilidad y motiracin clc.l eqr.ril'rtr son pcqueos factores que influyen en la productlvidad. No dicen especticamente que las camisetas. los refrescos gratis. las oficiurs extericlres. rccompensas de productir,'idad o la cerveza dc los viernes por 1a tarcle rrrc..jtrrcn la motivacin. pero hay una relacin clara: Llrla elrlprcsa que quiera n.rcjorar la productividad debe utilizar cstos utedios. E,ste libro incluye r''arias lirnnas de maxitrizar cl pcltencial Ituntano 1, reducir los planes del softrvare.
Seleccin del personal para equipos de proyectos. En su libro clave. Sofiture Engineerirtg Eccltctntit'.s. Barr, Boehnt presenla cinco Ir'irrcipios para la seleccin de pcrsonal (Boehm. 1981 ):
a a
,)Ixinto tulento. Usar poco y bucn personal. Trabttjo uclec'uudo. Asignar tarcas segn la habilidad y nrotiracin dc la gente disponible. Progresitr tt'o./e.sionul. Ayr-rdar a la _gente a actualizrrse por s
18
REFERENCIAS CRUZADAS Para ms informacin sobre adecuacin de trabajos y cafiera profesional, vase "El trabajo en s", en la Seccn 1 1.2. Para ms informacin sobre el equlibrado de equipos y poblemas de personal, vanse el Captulo 12, "Equipo
.lo tr.h.i^\?
c o
mlsma en vez de obligarles a trabajar donde ms experiencia tienen o donde son ms necesarios. Equilibrado del equipo. Seleccionar a gente que se complemente y armonice con los dems. Eliminar la inadaptacin. Ehminar y reemplazar a los miembros problemticos del equipo lo antes posible.
Otros factores que pueden marcar la diferencia son la habilidad de diseo del personal, la habilidad en programacin, la experiencia en el entorno y la rnquina y la experiencia en el rea de aplicacin.
Organizacin del equipo. La forma de organizar al personal tiene un gran efecto sobre la eficiencia con la que trabajen. Las empresas de software sacan partido a la estructura de sus equipos para que concuerden con el tamao dei proyecto, las caractersticas del producto y los objetivos de planificacin. Un proyecto software especfico tambin puede sacar provecho de la especializacin apropiada.
Motivacin. Una persona que carece de motivacin no va a querer trabajar duro, y prefiere dejarse llevar. La motivacin es el nico factor que provocar que una persona renuncie a las tardes y los fines de semana srn que se le pida. Pocos otros factores pueden aplicarse a tanta gente dentro de tantos equipos en tantas empresas. La motivacin es potencialmente el aliado ms fuerte que tenemos para el desarrollo rpido de un proyecto.
Diferencias en la productividad mayores de l0 a 1 entre individuos con diferencias en la diversidad y profundidad de su experiencia, Diferencias de productividad de 10 a I enrre individuos con los
mismos niveles de experiencia.
Proceso
Tal y como se aplica al desarrollo del software , el proceso incluye tantas metodologas de gestin como metodologas tcnicas. E,l efecto que tiene el proceso en el plan de desarrollo es ms fcil de calcular que el que
19
tiene la gente, y el Software Engineering Institute y otras organizaciones han desarrollado gran cantidad de trabajo para docurnentar y publicitar los procesos de softrvare efectivos. E,l proceso representa un rea de gran relevancia en la mejora de la r clocidad de desarrollo, casi tanto como las personas. Hace diez aos era razonable debatir acerca de la importancia de centrarse en el proceso, pero hoy da, como ocurre con el personal. existen gran cantidad de evidencias en favor de prestar atencin al proceso. Organizaciones cono Hughes Aircraft, Lockheed, Motorola, NASA, Raytheon y Xerox. que se han dedicado durante varios aos a mejorar explcitamente sus procesos de desarrollo. han reducido sus plazos de salida al mercado a la mitad, y han reducido costes y errores en un factor de 3 a 10 (Pietrasanta, 1991;Myers, 1992; Gibbs. 1994; Putnarn,1994; Basili e al.,1995; Raytheon, 1995; Saiedian
y Hamilton, 1995).
Algunas personas piensan que ocuparse del proceso es agobiante, y no hay duda de que algunos procesos son demasiado rgidos y burocrticos. Hay gente que ha creado estndares en procesos principalmente para sentirse ms poderosos. Pero se trata de un abuso de poder, y el hecho de que se abuse de centrarse en el proceso no debe permitir echar por tierra los benefrcios que puede ofrecer este enfoque. La forma ms habitual de abusar del proceso es 1a negligencia, y su efecto es que desarrolladores
inteligentes y concienzudos trabajan ineficientemente y con objetivos cruzados, cuando no sera necesario trabajar de esta forma. Centrarse en el proceso puede ser ti1.
DATOS REALES
Evitar la repeticin de trabajo. Si en las ltimas etapas del proyecto hay un cambio en los requerinrientos, es necesario redisear, recodificar y volver a hacer las pruebas. Si ha habido problemas en el diseo que no se descubren hasta la prueba, se debe volver al diseo detallado y la codificacin y comenzar de nuevo. Una de las mejores fonnas de ahorrar tiempo en los proyectos software es orientar el proceso de forma que se evite hacer la misma cosa dos veces. Raytheon obtuvo en 1995 el IEEE Computer Society's Software process Achievement Award por reducir sus costes de repeticin de trabajo dei 4l por 100 a menos del l0 por 100. y simultneamenre triplicar su productividad (Raytheon. 1995). La reiacin entre estas dos proezas no es una casualidad. Control de calidad. El control de calidad tiene dos objetivos princrpales. El primero es asegurarse de que el producto entregado tiene un nivel de calidad aceptable. Aunque se trate de un objetivo importante, est fuera del alcance de este libro. El segundo objetivo es detectar los errores en el proceso en el momento que haya que emplear menos tiempo (y menos diseo) para corregirlos. Esto siempre quiere decir localizar los errores lo
,i,
REFERENCIA CRUZADA Para ms informacin sobre control de calidad vase la Seccin 4.3, "Bases del control de calidad".
20
ms pronto posible desdc cI lrontento en el que sc introducen. Cuanto rrs tiempo pcnnanczca un error en el producto. ms tiempo (y ms dinero) se emplear cn clinrinarlo. Por tanto. para un progranta serio de desarrollo riipido cs indispensable controlar la calidad.
BEFERENCIA CRUZADA Para ms informacin sobre las bases del desarro lo, consulte la Seccin 4 2, -Bases
tecn lcas,,
.
Bases del desarrollo. La mayor parte del trabajo realizado durantc los pasados 20 aos en el campo dc la ingeniera del softrvare est rclacionada con clesarrollar softu'arc rpidamente. Muchos traba.jos se centran cn la <productiriclacl> ns quc cn cl desarrollo rpido en s mismo. 1' por csto algunos de ellos sc han oricntado hacia obtencr el tllisnro trabajo hccho por nenos gentc. cn vcz de conseguir hacer el proyccto ms riipidarnente. Sin cmbargo. podemos intcrpretar los principios subyacentes descle cl punto de vista clel desarrollo rpido. Las lecciones aprcndidas a lo largo c1e 20 arlos clar.rclo tropczoncs pueden ayudar a que su proyecto se desarrolle tranquilamente. A pesar de qr.rc los r.ntodos estndar en in-ee-
cflcas que se centran en evitar el clesastrc. El desarrollo rpido no es sllficientcrxentc bucno si durante dos setnanas antes de la fecha dc cntrega
nos clucclamos fircrr de.j uego. Para prograr.nar un desarrollo rpido es rrecesario gestionar los riesgos asociados con la planifcacin.
Atencin a los recursos. Los recursos pueden enfocarse de fbrma e fectir,'a y ayudar ir la procluctividad global. o pueden dirigirse ntal y usarsc dc fbrnra inef'cctir"a. En un proyecto de desarrollo rpido. es incluso rns irnportante de lo habitual acertar al rnximo er.r el rncior plan. Tcnicas con.ro oficinns productir''as, desarrollo cn ventanas temporales. planificacin a.justacla y horas ertras r,'oluntarias ayudan a asegurarse dc que cacia da sc hace todo el trabajo posiblc.
REFERENCIA CRUZADA Para ms informac on sobre la planifrcac on del ciclo de vida. consulte el Captulo 7. ,,Planlf icacin del clclo
Oe vlOa,,.
Planificacin del ciclo de vida. Una de las clal'es para la asignacirr efcctira clc los recursos cs utilizarlos dentro de un ciclo de vida deflnido quc tenga sentido para cl proyecto concreto. Un modelo de ciclo de vida es til porque describc r-rn plan de gestitin bsico. Por ejcmplo. si tenemos un llroyecto arriesgado. cs recomendable un ciclo clc r''ida oricntado al ricsgo: si los requerir.nicntos no estn claros. funcionar n.rejor r.rn rnodelo cle ciclo de vida increr.ncntal. Los modelos de ciclo de vida hacen qlte sea ms fcil identiflcar y orgarrizar las muchas tal'eas neccsarti.ts cn un proyc-cto sofiu'arc. y as poder realizarlas con la mayor e ficacia.
21
Orientacin al cliente. Uno dc los cambios fundamentales entre el desarrollo de softu'are tradicional sobre mainfiames y los ntodernos estilos de
desarrollo es el giro hacia las necesidades y deseos del cliente. Los desarrollaclores han aprendido que desarrollar el software a partir de la especificacin supone slo la mitad del trabajo. La otra mitad es ayudar al cliente a deflnir el producto quc dcsea. 1, la mayora de las veces es necesarla una aplorimacin diferentc a la tradicional especificacin en papel. Ponerse en su lugar es una dc las rnejores fbnnas de cvitar las vueltas atrs maslvas provocadas por el clicnte que decide que el producto correcto no es el quc se est dcsarrollando desde hace 12 meses. Mtodos colno la entrega llof etapas. entrega evolutiva. prototipado evolutivo, prototipado desechable y rregociacin conveniente rpoltan Vc-ntajas a este rea.
'
::";'b:l:":'i;1:;
En este libro^ cuando hablamos de clientes nos referimos a quienes pagan para que se desarrolle el software y son los responsables de aceptar o rechazar el producto. En algunos proyectos se trata de la misma persona o grupo de personas, y en otros son diferentes. Hay casos en los que el cliente es el autntico cliente de carne y hueso que paga el coste del desarrollo del proveclo directarnente. En olros proyectos. es un grupo interno dentro de una organizacin. An queda otro tipo de proyectos, en los que el cliente es la persona que pone sobre el mostrador 200 dlares para comprar el software <prt--porter>, En este caso, el cliente real es un cliente lernoto y habitualrnenre hay un directivo o un especialista de mercado que
lo represerrla.
Segn sea la situacin concreta, el trmino <cliente> puede representar <cliente>. <especialista de mercado>>, <usuaio final> o <<jefe>.
Producto
La dimensin rrs tangible dcl cuarteto genteiprocesoiproducto/tecnologa es la climensin producto, y ocupal'se del tantao y caractersticas del prodr-rcto plantea enoflncs oportunidades de reducir la planificacin. Al rcdLrcir el cclnjur.tto dc prcstaciclnes del producto rcducimos el plan. Si el conjuuto de prestaciones cs flexible. se pucde aplicar la regla 80/20 1'clesarrollar el 80 por 100 dcl producto empleando slo el 20 por 100 de1 tiemtr-ro. Mis tarcle se dcsarrollar el 20 por 100 restante. Si hacemos que el aspccto. las caracter'sticas dc rendimiento y las caractersticas de calidad dcl proclucto sean flcriblcs. podernos ensatnblar el producto empleando componentes preexistentcs y cscribir la r.nnima cantidad de cdigo especiflco. E,l total en la reduccin sobrc cl plan que sc obtiene al ajustar en el tanrao v las caractersticas dcl producto slo se ve limitado por el concepto cle prcducto quc ticnc cl cliente y la crealividad del equipo.
22
Tanto el producto como las caractersticas clel producto ofiecen oportunidades para acortar el ticmpo dc clesarrollo.
REFERENCIAS CRUZADAS Para ms informacin sobre Ia manipulacin del tamao del producto para obtener velocidad en el desarrollo, consulte el
del conjunto de
prestaciones". Para
ms informacin sobre el efecto del tamao del producto en el plan de desarrollo, consulte el Captulo 8,
" Estimacin "
.
producto. El tamao del producto es el elernento individual que ms aporta al plan de desarrollo. para productos grandes se ernplea nrs tiempo. Para productos nis pcquerios. menos. prestaciones adrcionales necesitan especificacin. diseo. construcciones, prueba e integracin adicionales. Rcquieren ttna coordinacin aclicional con cl resto tle las utilidades. y neccsitamos coordinar las otras con ellas. puesto que el esluerzo para construir softwarc se increncnta clesprclpor-cionaclamentc ms rirpido que el tamao del software. la recruccin clel tanrao urejorar la vclocidad del desarrollo clesproporcionadamente. Reducir a la mitacl el tamao de un progranra intermedio nornralmcnte supone una reduccin de ai menos dcs tercio,s del esfuerzo. Podemos reducir drsticamente el tarnao del pro<lucto esforzndonos en desarrollar slo las prestaciones ms esencialcs. o rcducir-lo temporalmer.rte desarrollando el producto en etapas. Tanbin es posiblc reducirlo empleando un lenguaje de un nivel ms aito o un conju'to cle herramientas para que cada utilidad necesite menos cdigo.
Tamao del
REFERENCIA CRUZADA Para ms informacin sobre el efecto que pueden tener los objetivos en el plan de desarrollo, consulte "Definicin de objetivos", en la Seccin 1 1.2.
caractersticas del producto. Aunque no rienen la misma influencia que el tamao del producto, hay otras caractersticas clel proclucro qlle afectan al p1an. Se emplear ms tiempo en desarroliar un producto con objetivos ambiciosos respecto al rendimiento. uso de memoria. robustez y fiabilidad que el que se emplear en uno sin nin-en ob.ieti'o para estas caractersticas. Hemos de elegir nuestras metas. Si la autntica prioridad es el desarrollo rpido, no pondremos trabas a los desarrolladores insistiendo en demasiadas prioridades a la vez.
Tecnologa
REFERENCIA CRUZADA Para ms informacin sobre herramientas de productvidad, vase el Captuto t S, " Herramientas para aumentar la productividad..
una fbrma rpida de la velociciad de clesarrollo es Dasar cle usar 'ejorar herramicntas menos efectivas a otras ms efectivas. En la hisroria det desarrollo de software. uno de los cambios con mayor influencia fue el paso de lenguajes de bajo nivel, como el ensamblador, a lenguajes de alto nivel, corno c o Pascal. La actr"ral tendencia haua componentr.are (vBX y oCX) puede producir resultados igualrnentc espcctaculares. La seleccin de herramientas efectivas y la gestin de ros riesgos asociados son aspectos claves en una iniciativa de desarrollo rnido.
DATOS REALES
ffi
Sinergia
Hay un momento en que ocuparse de la gente, cl proceso, el proclucto y Neil olsen rcaliz un estuclio cr.r el que descubri que pasar de una inversin baja a media e'pcrsonal,
Ia tecnologa se convierte en un todo.
rpido
23
formacin y entorno de trabajo produce unas ganancias similares: inversiones adicionales se justificaban con ganancias i a l, aproximadamente. Pero al pasar de una inversin en personal. formacin y entorno de trabajo dc nilcl medio a alto. la productividad se dispara, con una ganancia dc 2 a 1, o de 3 a I (Olsen, 1995). Los urtodos de ingeniera del software tambin pueden cooperar. Por ejer-nplo. los cstndares en codificacin de una organizacin ayudan a proyectos concretos. pero tambin hacen que sea ms fcil reutilizar componentes en otros proyectos. A la r,'cz, un grupo de componentes reusables pucde ayudar a que se respeten los estndares en codificacin, y asegurarse de que mantienen el significado entre distirrtos proyectos. Las revrsiones del diseo y el cdigo ayudan a distribuir el conocimiento sobre los estndares en codiflcacir-r y los componentes reusables existentes, y f'acilitan cl nivel de calidad necesario para que la reutilizacin tenga xito. Buenas tcnicas sueien ser la bases de otras.
rrollo.
Tabla 2.1. Caractersticas de los enfoques estndar de desarrollo orientado a la planificacin
Ef'ecto del enfoque de desarrollo en.,.
Enfbque de desarrollo
N4todo normal
...
Plan
... Coste
Medio
Medio
la
Mejor
que
la media
Algo mejor
que la rnedia Peor que la media
posible
media
24
Desarrollo eficiente
REFERENCIAS CRUZADAS Para ver un ejemplo de los benef icios dei desarrollo raprdo, consulte la Seccin 4.2, "Bases tcncas", y de forma general el Captulo 4, -Bases del desarrollo
de software".
Tal como se ve en la Tabla 2.1. el rtodo nredio es... nleciio. El se-cunclcr enfoque nrostrado en la tabla se c.tiqucta corno <clesarrollo etlcienre)). y. como muestra la Fi-uura 1..1. es la conrbinacin de los tres pilar.es clc la velocidad mrima de c'lesarrollo. E,ste enfoquc es el que sencra nrL-ior
resultado que la media en cada una cle las tres catcgoras. N{ucha -ucnte alcanza sus objetivos cle planificacin dcspus cle roner los trcs prinrcros pilares cn su sito. Algunas personas clescubrcn quc clcspuers cle toclo ncr necesitaban el dcsarrollo rpiclo; slo tcnan c'ue organizarscl para muchos proyectos. cl desarrollo etlciente sLlllonc rLna optintizacirin notrblc del costc. plan y caractersticas del proclucto. ,Se pueclen conseguir planes cortos sin alcanzar prinrercl cl clesarrollcr eficicnte'.) Es posible. Podemos elegir mtodos cf-ectir.os v orientacios u la planificacin v evitar mtoclos lentos e ineficaces sin ocuparrnos tlel desarrollo eflciente cn s Sin enrbar_uo. aunclue sc obtenga el clesarrclllo eficiente, las posibilidades de rito cn el uso cle r.ntoclos oricntados a planificaci6n son inciertas. Si cmplcanros nrtoclos concretos oric-n1ados a planificacin sin una estratcgia general" emplearcmos nriis tie nrro mejorando la capacidad c'le dcsarrollo global. por supucsto. scilo uosotros
.$.s
clsicos desarrollo
Figura
FM
e@M
e&
Gest
de rie
2.4. Desarrollo eficiente. Los tres primeros pasos para lograr el mejor plan posible conforman el *desarrollo eficiente.. Muchos equipos de proyectos descubren que el desarrollo eficiente ofrece toda la vetocidad de
desarrollo que necestan.
rpido
25
srbrcmos si r-'s urs importante me'jofar las capacidades cle desarrollo glo-
bal o intentar acabar nras lariclanreute uu pfolecto coucrcto. Otra razn pafa ccntrafse en el clesarrollo cflciente consiste en que en la rlayora clc las olganizncioncs. Ios clnrillos para llcgar al desarrollo eficientc ) obtcner planes nris cortos son los n.lisr.r.ros. E,n cstc aspecto. hasta llegar a cieflo llLluto. los canrinos hacia planes cortos. nrenos def'cctos v llrenor coslc son tanrbin islrales. C'onro r.r.rucstra la FigrLra 2.5" cuando sc alcanza el cie'sarlollo ctlciente los ciulrinos e()lnicuzan a scpararse. per() dondc uos clrcontran.ros ihora. la nral'ora cle los grupos cle desarrollo sc bcneflciarian dc poncr runtbo cn printcl lugar hacia cl clesa-
rrollo elicienlc.
El tercer cntbque
dc-
cllcicntc y velltos
:-:aos oflentaoos
: -. r:
clue an nccesitamos una nrc.jor eficacia clcl plan. pociemos optar pof ntetcldos dc clcsrrrollo clur' sc oLrcr.rtcr.r lr rne re-ntentar la r elociclaci dc dcsarro-
llo. rcciucir cl ric-s-uo dc la planrfictcirr o urejorar la risibilidacl dcl progre s(). Tcrrct'cmos qLle haccr peclueos sacrifle i()\ L-lt costl- I, ca|re tcrsticas
dcl prociLrcto llara ganar clt tclocic'lacl o prcclccibilidad; sin crrbargo. si paltimcls clc la base clel clcsan'ollo eflcicntc" aun cstarcntos utuy pol encin-ra
dc
lt mc-clia.
rpido
A la ciudad de reducci
de defectos
\
Ciudad del
A acudad
desarrollo
ef
iciente
Figura 2.5. El camino hacta el desarrollo rpido. Desde donde estan ahora la mayora de las organizaciones. la ruta hacia el desarrollo rpido sigue el msmo camino que Ia ruta hacia el mnmo de defectos, mximo de satisfaccin del usuarto y los menores cosfes de desarrollo. Despues de llegar al desarrollo eficiente, las rutas comenzan a separarse.
26
Hl irltinrc'r cr.rfirquc- cle clesarrollo oricntar'lo a la planificacin es el clenol.ntnaclo <ciesarrollo ruitrirkr r tirndo>. la courLrinicin cle mcltcldos ot'icntados
icacion
nOmlnaleS", en la Seccin 8.6. Para ms informacin sobre costes de la reduccin del plan. vase ,,Dos Seccin 8.6.
a planil'icacitin cficit--ntcs e ieflcientcs. l-lcga u11 ptlltto cn el ctre trabajanros lo rne.lor v lo mas dr,Lro cluc poclcnros. t t'u irr Ltttico qtLe Llucda por hacer cs ragar rnlis. retluclr cl conirrnto clc caracteristicrs o reducir el lre tl.it..l.t de l Pt'odlit l,r. LJn e'jcnrplo cie quc! cluiere rlecir nitt'lcio <inclicicnte)) cs: podeutc'ls t'eclucir cn un 2-5 iror i0() el pian clc dcsarrollo nonrinal cle un prol,ectcl sinrplenrcnlc inclLrvcnclo mas gcntc. Siu clnbargo^ cicbido rl increr.ltcrrto en las conrunicaciones 1'la gcstitin global. su'clcbcra incrcntctttar cl tanrao clel cquipo en un 75 por 100 pant obtct-tct'una rccluccin clcl plan dc un 2-5 por l(X). El ef'ccto nclt cle acortar el plan 1'agranclat'cl tantao del cqtripo cs cplc cl pro;-cc1o cucsta un 3.i 1'lr.rr 100 nlris cluc cl ltro.vccto origirtal. L.l salto ai ciesan'ollo r'pido a tbnrlo cs urr gran paso. v es tteccsario aceplai'cl inclctnentcl en cl riesgo clel ltlan o las gt'atrdes cotrcesiones cn coste v caractcristicas clel prodLtcto. () arttbos. Pocos proycctos aclmitct.t e'stas coucesioncs. v la mavoru sc acaban nrcjclt'itsanclo slo alguna fbrrrra de dcsarrollo cficiente.
2.4.
de os procesos
solllvar e a las necesrdades de proyectos concrelos. vase 1a Secon 6.1, ,,Existe un modelo n co?-
Capitulo 2: Estrategia para el desarrollo rpido Si estanros trabajanclo cn Lln pfosranra clc gcstirr domstica. quizs
27
se
rrtilicc url lcnguaie tlc cuut'tu genr'r':rein. un entorno clc proeranrtrcin yisLlal o ull'l herrrtrtict'lt CASE. Potlren'los crpanclir al mhrin.to la tccnologa. Pcro podr'a tlaba.jlr nllra rurl cnrl)rc\il pesacla quc nos impicla hacer
tlrttchas cosas ct'l ia dirttcltsirirt corrcsroudicutc r las pu'sctnas. Se clcsarrollrrh la clinrensitin cL,-l pcrsonal toclo lo cLrc rclnrita la compaa. ),el rcsto dcl cslcrzo sc enrrleani en las cliurensioncs crc rroccso y proclucto. Si t|abajanrr)s en ulr nrercaclo diri-giclo Irrrr pr'!-\tirci()nL-s clr paquctes ((pft--llortcr'). no l.loclcnros rcclLrcir cl conjunto clc prestacioncs lo suflcientc cr.rn'rti para tencr Lrn lrlan ar-rstacio. Sc rcclucirn lo rs posible v se clcsarrollarn la gcntc. el rroccstl y, lir tccnologa hasta obterrcr lo rrccesa-
n0
plra
cubrir cl plan
Este libro describe tres tipos genelales de proyectos: cle sisfent,,-, de.qest(tt .t ,, l1t (:t-r't.l)(tt'lL't
,,.
El softr.r'are <<prt-c)-porte.> es soltrvare empaquetaclo y que se vencle cornercialmente. Incluvc trltto Irruductos pilra el rnercado horizontal (corno tratarrientos dc texto v hojas de clculo), corno productos para el mercado (como rrogramas de anhlisis nanciero. escritura cle guiones y ges'ertical tin de infoluraoin lcgal). Se emplca' algunos ot'os t'ninos para ref-erirsc a tipos de softu,are que no estn clescritos por estas tres etiquetas generales. Softu'are (.oner, cial es cualquier tipo de softu,are desan'ollado para venderlo comercialrnente. Ef software dontstic es el softr.vare desarrollado nicamente para usos domsticos y no para la venta. E,l soft,,vare militur se escribe parauso nrilitar. El softrvare iilfera(rivo es e I softu,'are con el que el usuario puede intelactuar clirectarnente. cue engloba la lravor partc del softu,'are que se escribe hoy dia.
inclr-rye el sistcma operativo. controladorcs de dispositi"'os. compiladorcs 'bibliotecas de cdigo. Desde el punto de vista de este libro (-".' a pesar cle sus dif'erencias). el sofiv'are entpott.crtlo, finn,t'ure, sistat|u.s en lienpo t'col 1' sofiture cietrf.fico tienen las misrnas caractersticrs que el soft',,uare de sisternrs. El software de gesriltn se reflere a sistcrnas internos. q'c' se utilizan en una nica empresa. [runciona sobrc un hardrvare limitado. quizs un nico computador. Los cjemplos tpicos son sistenras cle control de nminas. contabilidad o control dc ahacn. El.] cste libro. el sotin,are IS, IT y MIS se tratan corno pertenecrentes a un grupo ms general. el soflware de gestin.
c1e ,ri.r're,r"r
Hl softlvare
[:u resurnen. se clebc analizar el pnlvccto para c'leternrinar curl de las cLlatro clitllensiones cst linritaclu I cLuil puecle suponer la r.n riuta rcta.ja.
Lttegc'r liav qtrc fbrzrl cittlrr unlr r'l nltriru,,. [rsta es. cn resumiclrs cucntas. la clar,'e clcl rito dcl clcsarrttllo rpiclo.
28
El enfbclr-rc para el dcsalrollo rpido cluc se tratt cn cstc libro no es ei unico c'nfbque conocidcl ;\lsunos provcctos han scgLriclo con rito tLn carnino clif-erentc. Estc crurino se clrctct'izil ltor colttratal al ntcjor personal posible. buscirnckr un conrpronliso total con el llrovccto. sarantiz;.ildolcs casi totrl autononra. nrotirlrdolcs en graclo crtrcmo. r'clcspus eonrprobirr que trabajan 60" 80 o inclu-so 100 horas a la sertrana l.rasta qr-re bir':t cllos o el provccto tcrnrinrn. El clcsalrollo rirpiclo con Lllr cnfircue basacl, en cr)lrprouriso sc consir:ue cou valor. suclor 1' detcnlinrcititr. Este enfoquc ha gcneraclo ri1os notables. incluvenclo N{icrosoti \\ inclous NT i.0 r cl l)ata (ienr-ral Faglc C'ontputer" I'cs incucstionable clil. cs cl enfbquc dc dcsarrollo rpido nts polular clue sc usa hoy clia. Pur'., una cmpresa cn clcsarrollo con preoclrpacioncs fespecto a sLl econont:,.. sLrpone la rentaja clc sacar el trabajo cle clos lleses cle un cntpleado con . laga de Llu mes. Esto puccle lrArcAr la clif'erencil put' ar'ehur urr plocluc. clarc a tier.nlo clc colocarlo cn cl ntcrcado. haciutdo que la entplest g.t::, una fbrtuna v cousi-ga dinero rtrriclamente" llrtcs incluso cle clue el erlut:' acabe el prclclucto. iVlrntener un cquipo cle pequeo tantao tarrbin lc.i .cc las corl.runicacioncs. la coordinacirin 1, la gestin global. Si se entp. conocienclo los intcrrsos riesgos 1' con algunas lin-ritaciones. el cntb.: ..pucde tener rito. Dcsafortunaclanrente. cstc cntbque sicrnprc cs llcr rclo a la prctre .i , ms durcza qr.re cr.riclaclo. Nornralrucute un enfbclue clc coclit'r , -senera cin a clcstajo. clue provoca qne los provcctos se alrrgucl.l conlo sl tir;:.. etenros. El enfoque es una correccin rpicla" v ticnc toc'los los problc:: de otras correcciones riipidas. A lo largtt del libro sc criticarr tspt-.crrr. . este enfclclr-rc. A cclnlinLrrcin se ntucstra un resuuten.
El enfoque implica ganar o perder. A vece s fLrncionr: 0 \ CCC. Los frctorcs quc hacen quc fimcione o no son prcticaurentc ilnpr'- ' clc controlar. Curndo se llcga al flnal clel pt'o_vecto. l veces se obri; , firncionalidad que se planil-ica; v a veces rros sorprender.r.los. A r.'.:consiguen los ob.jctiros cle calidad; a veces no. Este enfircluc hacc.1L.. difcil contrcllar lis caracterslicas cspccficas del proclucto.
Provoca problemas de motivacin a largo plazo. En los |r.o\ -colrprolliso. los desarrolladorcs con'ricr.rzan con cntuSr.i.:-' cnrplear.r tantas horrs cxtras colno elt sus tientpos clc princitrtiant.'. completar sus conrpronrisos. Nonralntcntc. r.lo cs suf icielrte colr :r' .. horas. - firllan al intcnlar conseguir los conttronlisos dcl plan. L. nr. ., sr-r r.lroral se allaga )'sc ven obligaclos r rclntitir la dcrrota. C'nlnclo lcls clcsan'olladores ponclr su colazirll , su alnra intl: lograr sLts conrlron-tisos fallan. se ruclrct.l lcae irls tt i.lcr-l)tlu'!\,r rr'
basados clr
.
"
29
sos adicionales. Comienzan a resentirse cle las horas ertras. Aceptan nuevos courpror.r.risos de palabra pcfo lro c'lc corazn, y' el proy'ccto picrdc todo aspecto de plarrilicacin o control. En un proyecto cluc ha alcanzado este estado. es cor.nrn decir <cluedan tfes sclnanas para cl final>> dr-raute scis rleses o mhs.
No se puede repetir. Ar-rncluc cl cnfirque cle codiflcacin a destajrr terrga rito una vez. esto no sLlponc unr basc para cl ritcl en otfo caso. Puesto que cansa a la gcntc. cs ms probable qlle sientc las bases para futuros l'allos. Una errpresa r.ro puede reparar fcilnentc el clao hut.nano quc provocan cstos proycctos. y los estudios de estcls pro)'ectos indican quc provocan uu sran volur.nen de canrbio dc pcrsonal (por ejernplo. Kiddcr. 1981: Carroll. 1990: Zachary'. 199-l.
Es duro para organizaciones no dedicadas al software. E,l enfbclue dc codiflcacin a destaio aporta poca viabilidad y cor.rtrol a los den.rs irrplicados en el provccto porclLle se basa en hcroicidades indil'iduales en vez de en la coordinacin. coopcracin l planrficacin. Incluso cuando sc dcsarlolle con rito cl sofirvare ms rapidamctrte de lo c1r-rc cs habitual, no hay fbnna de saber cunlo llcrar el proyecto. No sabrcnros cunclcl acabar hasta quc' se acabe.
Alguno de los beneflcios dc relociclaci cluc'sc consiguen con cl cnfoque basaclo en conlprouriso sc neutraliza debiclo a quc hay otros grullos con quienes cleben coorclirrarsc los clesarrolladorcs. couro son los gfupos de prueba" documentacill dc usuario o cor.uercializacin.;'' rro se rucdc planificar. En un ployecto a desta.jo. la fl'ustracin dc los dcsarrolladorcs al no poder obtener informacin flable ciel plan provoca Llna tcndL-uclf, a la irritacill. , cl pcrsonal clcl equipg est ett colltra dcl pcrsortal ertcrno al equipo. Lo quc cs bucno para una parte del proyccto no cs buencr llcecsal'iltlnetttc l)at't cl pt'ttyccto eolllIlctrr.
Se malgastan recursos humanos exageradamente. Los dcsarrolladorcs que participau cn cstc tipo de proyectos se olvidan dc la f-amilia. ar-nigos. hobbics c incluso c'le su rropia salud para tener rito cn cl trrroyccto. Selcros conflictos pcrsonales son la rcgla en \;cz cle la erccpcirin. Este nivcl cle saclillcio pLrcdc scr justitlcable pal'a gallar Llul guerra o llc'r'ar un hombrc a la Luna. pcro no cs ncccsario para clesarrollar softu'arc de gcsticin. Con pocas excepcioncs. cstc sacrillcio no es ncccsario: sc pucdcn conscguir' los lrismos resultados con llnl gestin cuidaclosa. scria e intcligcntc y con uua planificacin tcnica. lo que suponc lnucho urcuos csfuerzo. La Tabla 2.2 resunre al_eunas clc las difcrencias entre el mtodo a destajo y cl quc dcscribe este libro. EI nltodo dcscrito cn este libro mr-restra c(rrro obtcner cl dcsarrollo rpido con una planificacirin cuidadosa. Llna Lrtilizacin eflcicntc del tiL'nrpo
30
Desarrollo y gestin de proyectos informticos Tabla 2.2. Comparacin det mtodo a destajo con el mtodo propuesto en este libro
\Itodo a destaio
Sus de f'ensores aducen rnc. joras increbles e instantirncas cn cl ticrrpo de clesarrollo.
Ncccsltu toca erpericncit tccnol(tgica aprtc. dc conocitr-lielrltts en cod i ficrc irin. Ricsgo alto: fl'ecucntentente f'alla. inclriso curnclo se ha hecho dc la
conocimient()s en
cod i fl cac i n.
fbrrla
Ries-qo ba.jo: pocas '".eces falla cuanclo sc aplica cle fbna ef'cctrva.
Los denrhs ltos vcn cono <r-aclicales)); parecc qLie csturos en las r"rltinras. quc tuvirantcls toclo.
Se entple-an clentasiaclos recursos
Los derns nos vcn como consen'adores. aburridos e incluso f'eos. No parece que estamos trabajando duro.
Usr los recursos huranos de fbnna humana v eficiente.
E,s posiblc personalizar el mtodo para dar toda la visibilidad y el
rcabado
control neccsarios.
Los elerentos clales del mtodo se
enrrlcan con xito desde hace nis de
I
5 aos.
Frcrtc: f nsllirad. eil .Rcnlrds of taiiirg thc path Lcss Tral.cleii>r (Dar.is. i99.1t.
corto que la nredia. Cuando falra. se debe a que la gcnte piercle ra determinacin dc seguir isando el nttoclo, no a que falle cl propio mtodo. Resuuriendo. el mtodo a desta jo asegura un sacrilicio extraorcirnario. per. no unos resultados cxtraordinarios. Si el objetivo es la mrima velocidad de desarrollo en vez de las rxi'as horas cle bullicio (actividacl), cualqr-rier persona razonablc apostar por cl desarrollo eficiente. Si leemos e'tre las l'eas de cste libro. encontramos toda la infbrmacin nccesa.ia pa'a llcr,ar con cl rnejor .xito posible un proyecto a destajo. ciertarrentc. una pcrsona podra transformar este ribro der cioctor Jekyll en el dc Nfr. H,dc a destajo. pero hay ntncho cje rn cn este tipo de desa_ rrollo. y no \ov a crplicar cmo usarlo.
disponible y la aplicacin de tcnicas de desarrollo orientadas a pranificacicin. Las horas ertras son habitrales en este tipo de desarrollo rpido. pcro no suele ser el misr.no montn de horas exrras que se usan en el m_ todo a destajo. No'.'alnrentc. el dcsarrollo cficie'te genera un plan ms
rpido
31
Ejemplo
2.2.
Miembro de la compaa a partir de Square-Calc 3.0, Sara estaba preparando el proyecto Square-Plan 2.0. Square-Plan era el paquete de gestin de proyectos de Square-Tech. Sara era el jefe tcnico. En la primera reunin de equipo, Sara present a los miembros del equipo y plante directanlente el asunto. <He recorrido toda la compaia recolectando los infonnes post-ntortem de los proyectos>, dljo. <Tengo una lista de un kilmetro de los enores que se han cometido en otros proyectos de la compaa. He puesto la lista en la sala de reuniones. y nre gustaria que avisarais si cometemos aiguno de ellos. Tal.nbin querra cue incluyeseis cualquier posible emor que conozcis o que encontris segn avanzarnos. Si no hay que hacerlo, no es cuestin de repetir la historia. Os he seleccionacio para este equipo porque cada uno de vosotros domina las bases del desarrollo. Sabis lo que significa hacer un buen trabajo de recopilacin de requisitos y diseo para que no perdamos tiempo en vueltas atrs innecesarias. Qr,riero que todos en este proyecto trabajls inteligentemente en vez de trabajar duro. El personal que trabaja demasiado duro comete dernasiados errores, y no tenemos ticrnpo para ello.
Tambin he incluido un plan de gestin de riesgos. El plan es agresivo, asi que no podemos pennitir que nos atrapen los riegos de los que estamos avisados. E,l mayor riesgo de la lista es que el plan puede ser inalcanzable. Quiero que rehagis el plan al final de la semana, y si no se puede cumpllr. haremos uno algo ms realista.> Todo el equipo asintiti. Para el personal que vena de provectos que se haban desarrollado a un ritmo endiablado, las palabras de Sara parecian como una bocanada de aire fresco. A1 final de esa semana, Sara se reuni con su jef'e. Eddie. <El equipo ha echado un buen vistazo al plan del proyecto, Eddie, y henros comprobado que slo tenemos un 5 por 100 de posibilidades para llegar a la fecha tope con las prestaciones actuales. Suponiendo que no ha,a cambios, 1, siempre hay algunas cosas que cambian.) <<Eso no es bueno), dijo Eddie, Eddie tena reputacin de entregar lo que prometa. <Quiero al menos el 50i50 de posibilidacles cle entregar el soflwarc a tiempo, y quiero que scalnos capaces de responder a los cambios en el mercado durante los prximos l2 meses. ,,Qu recon.riendas?> <An no est completamente especificado el producto, y tenemos alguna flexibilidad>, do Sara. <Pero creo que el conjunto de requisitos actual llevar de l0 a 30 meses. S que es un margen arnplio. pero es lo ms que puedo decir antes de saber ms sobre 1o que tenerros que construir. Tenemos que acabaren 12 meses, cierto? Considerando esto, creo que se debera incluir otro desarrollador y entonces fijar un plan de entregas evolutivas donde se planificar construir una versin comercializable del software cada dos meses, con la prinrera entrega a partir de los 8 meses.D
\.(onltlluu
)
32
<Me parece bien>. dijo Eddie. <Aderns. crco que cn este proyecto la funcionalidad ciebe ser ms irr.rportante que er pran. Djame hablar con al-
cuando Eddie llarn a Sara, le dijo quc la compaa tenia la voluntad de forzar a cue el plan del software fuese de ll rneses para conseguir las prestaciones descadas. pero para nrayor segulidad deberia emplear el plan de cntregas evolutir,as. Sara se tranquiliz ' dijo que ella pensaba que ste era un objetivo ms realista. Durante las p'imeras semanas del proyecto, el equipo desarroll un prototipo de la interfaz de usuario detallada y con aspecto hollvwoodense. La <lista de errores> de r,ez en cuando indicaba que el esfuerzo en el prototipado pocla suponer una vida en s lnismo, as que se fij una ventana temporal rgida para cl trabajo en el prototipado que evitase construir un pfototipo excesivamente rreticuloso. El prototipo se utiliz para realizar entrevlstas con los posibles clientes acerca de las utilidades canclidatas, y el prototipo s* rcvis i arias r cces cn respuesta a las indicacioncs de rncjode los usuarios. Sara sigui manteniendo la lista de riesgos y determin que los tres ricsgos clat'es para el prorecto eran la baja calidatl, que podra provocar excesivas vueltas atrs y el alargamiento del plan, Ia agresiviclad del plan, , las prestaciones que aadiria la competencia desde ahora hasta la linalizacin del proyecto. Sara crea que el plan tle entregas evolutivas se haba aplicado por el riesgo de la calidad. Deberian entregar la primera versin clel software al grupo de control de calidad. eA, en el lmite de los g rneses. y QA podra ir ei.'olucionando los casos de prueba con el software. El equipo control el riesgo en el plan creando una lista de prestaci.nes priorizada. Deban desarrollar lo ms que pudiesen en l4 meses, pero llevando el producto a un estado comercializable cada dos meses. y debian asegurarse de tener algo que entregar cuando fuera el nromento. Tarbin tomaron decisiones de diseo para varias prestaciones que estaban especificamente indicadas para ahorrar tiempo de implementacin. El menor tiempo consunrido en las implementaciones no era una tfanlpa, pero era aceptable, y supuso una reduccin en el riesgo del plan. El equipo gestion el .iesgo de las prestaciones de los competidores de dos fb'nas. Emplearo' cinco rneses en desaroilar un diseo que incluyese un entorno capaz de sopoftar todas las prestaciones que haban prototipado v unas cuarltas rns que crean que deban incluirse en la versin 3.0. su diseo pretenda qr,re se pudiese adaptar a los cambios con poca dificultad. Tambin asignaron tiempo en el rnes l2 para revisar los productos de los competidores, revisar el prototipo e irnplementar las prestaciones necesarias para ser con-rpetitivos en los ltimos dos meses. En el sexto l1res, con el diseo cornpleto, el equipo fij un conjunto rJe hitos miniatura que indicaban el calnino a seguir pura otten.. la primera versin comercializable que pudiese ser probada en el octavo mes. La versin del octavo mes no haca rnuchas cosas, pero la calidad era buena, y
l
ll
(otlltiluuJ
33
suponia una buena base para cl trabajo siguiente. Pasado este punto, el equipo fij otro cclnjunto de hitos miniatura, que los llevaria hasta la ntarca del rnes 10. El equipo Lrtiliz la misma tcnica para el hito dei nres 12. En el mes I 2. 1, segn lo planeado. el equipo revis los productos de la competencia. Un cornpetidor haba acabado un buen producto en el mes 10. y contenia alguna utilidad que Square-Plan 2.0 tena que incluil para ser competitivo. El equipo incluy !'stas ltuevas prestaciones a su lista priorzada, reordenndola, y se jaron ntinihitos para los dos ltimos meses. En ese tiempo, Jos, uno de los desarrolladores con lrenos experiencia. descubri una organizacin r.rn poco nrcjor de los cuadros de dilogo del producto y llev el asunto a una reunin del personal. George. uno de los desarrolladores ms veteranos, respondi: <Tu idea es buena. Creo que deberiamos cambiarlo. pero ahora no podenos, Jos, Slo se neccsita un da para el carnbio. pero afectaria al plan de docurnentacin al nrenos en una sernanr. ,Qu os parece si lo ponernos en la lista de la versin 3.0'l> <No haba pensado en el efecto sobre el plan dc documentacin>, dijo .los. <Est bien. Lo pondr como una peticin de cambio para nrs tarde.>> A los 14 meses. el equipo acab la versin final del software. tal como se plane. La calidad de Square-Plan era cxcelente. puesto que se haba probado desde el octavo rnes. La seccin de doculentacin pudo centrar sus esfuerzts en el plototipo detallado de la interfaz de usuario. mientras esperaba que llegase el software. Los desarolladores no tuvieron tiempo de implententar varias de las prestaciones de ms baja prioridad, pero haban implernentado tocias las importantes. Square-Plan 2.0 fue un xito.
3 i bl
iografa adicional
No conozccr libros gencrales quc traten los terras del productcl o la tecnologa colno se han dcscrito cn este captulo. Este libro trata estos elementos cn ms profuncliclad c.n el Captulcl 14" <Control clcl conjuntt'r de prestacioncs>: el Captulo I 5. <Herrauricntas rara aumentar la productividad>. 1'en cl Captulo 31. <<Lcngua.jes para el clesarrollo r'pido>. Los trcs libros siguientes oll-ecen inlbnracin gencral sobrc enfbqucs basac'lcrs etr pcrsonal (pt'otlt,vurt.) para cl clesarrollo clel softu,arc. El prinlero es un clisico:
DcN1arco. Tonr. y Tintothy Lister: Paopletrura; Pt'tdut'tiye Pt'oit,r't.s trttd Tt,unts. 1.-eu York. Dorsct Housc. 1987. Constrntir.rc" Larry L.'. Constuitta rtt Peoplerut'a. E,rrglcri'oocl Clifl\.
Purtost'll;
[:.s.su.t'.s
34
Los siguientcs libros ofl'ccen info'racin sobre los procesos del softu'arc. cl prin.rero a nivel orsanizacional. el scgundo a nivel del equipo y el tcrccrcl a nivel inclividiral.
N{el lon Un i vcrsity/Sofl."vare Engineering Institute: T he c apub i lit.t' il,'uturit.t' ,\loclel; Guitlelines fbr. inrtr.oying the .sofiwctre prot'ess. Rcading. Mass.: Addison-Wesley. 1995. Este libro es un resumen de los rltimos trabajos para mc-jorar el proceso de softwarc realizados por cl Soltu.'arc Ensincering Institute. Describe el ntodclo complcto de ntaclurcz cle procesc'rs cn cinco nir,cles, los beneficios que se obticnen con cada nir'cl v los mtodos quc caractcrizan cada uno de ellos. Tanibin it.rcluvc ejenrlos dctallados de una entprcsa que ha consegLrido los ntayorcs nivcles cic madur.sz. calidacl 1, productividad. Ma-euirc, Stcr.c: D,gging the Development Proc'e,ss. Rcdrlond, Wash.: Microsof Pless. 199.1. hl libro dc Nlaguire presenta ur.r conjunto de mximas tradicionalcs qr-re pr.reden utilizar los rcsponsables dc los proycctos para hacel quc sus cquipos sean productilos. y da un vistazo intcresante de las intcrioridrdes dc algunos proyectos de Microsoft. FIur-riplrrcy, Watts S.: A Dist'ipline ./br So.ftu.are Engineering. Reading, Mass.: Adclison-\\'esley" 1995. I{umphrey define su propio proceso de sofirvare. que trtrtderlos adoptar a nil'el individual, independienternente de que nucstra entpresa sopofte la ntejora del proccso.
carnegie
Errores clsicos
Contenido
3.l.
3.2. E,fecto dc los crrores en la pro-tr.antaciitn 3.3. Relacin de errores clitsicos 3.4. La fuga de Lu islu de Gilligun
Temas relacionados
Gestin de riesgos: Captulo 5 Estrategia para el desarrollo rpido: Captr-rlo 2
F]S UNA ACTIVIDAD COMPLICADA. Un proyecto softu'arc tpico puedc presentaf r.ns oportunidades para aprender cle los errorcs que las planteadas a algr-rnas pcrsonas durante toda su r''ida. Este captulo exantina algunos dc los crrores clsicos que sc conteten cuando se intenta ciesarrollal sofir,t,are rniclatnente.
EL DI]SARROLLO DE SOFTWARE
36
Ejemplo
Mike. un responsable tcnico de Giga Safe, estaba conriendo en sn ol'icina y n.rirando por la Ientana una brillante lnaana de abril. <Felicidadesl Mike. ya rienes los fondos para el programa Giga_ Quotel> Era Bill. el jefe de Mike en Giga, una cornpaa de seguros mdicos. <Al cornit ejccutivo le ha gustado la idea de autornatizar nuestras cuotas de seguro mdico. Y tambin la idca de volcar cada noche las cuotas del cla en la oflcinr principal para que siempre tengamos al da los ltimos valoes de ventas. Ahora tengo una reunin. pero podemos discutir
los detalles ms adelante. Br-ren trabajo!> Mike escribi la propuesta para el programa Giga-euote meses anres, pcro estaba pensada conto u11 programa para un solo pC. sin ninguna capa_ cidad de cornunicacin con la oflcina principal. perfecto. sta era la oportunidad de cii.igir Lrn proyecto cliente-servidor en Lln moderno entorno GUI (inferiaces grlicas de usuario).1o que sienrprc haba querido hacer. El proyecto le llevara al lnenos un ao. y lo ocupara a tiempo completo. Mike descolg el telfbno y marc el nmero de su esposa. <Cario, esta noche cenaremos fuela para celebrarlo...rr A la maana siguiente. Mike qued con Bill para discutirel proyecto. <Vamos a ver. Bill. ,Qu pasa? Esto no se parece a la propuesta en la que
he trabajado.>r Biil se sinti inseguro. Mike no haba participado en las revisiones de la propuesta, pero no hubo tierrrpo de avisarle. CLlando el comit e.jecutivo
estudi c-l programa Giga-Quote^ tontaron los mandos. <Al con-rit ejecutivo le gust la idea de construir software para automatizar las cuotas de seguros mdicos. Pero querian que se pudieran transferir automticamente las cuotas locales al cornputador central. Y qucran tener hecho el sisterna antes de que se hagan efectivas Ias nuevas cuotas el I de enero. Adelantaron la fecha de finalizacitin del software que propusiste del I de marzo al I de noviembre, con lo que se acort el plan propuesto en 6 meses.> Mike haba estinrado que el trabajo ller,.ara l2 meses. No crey que tuviese la suerte de acabar en seis meses, y as se 1o dijo a Bill. <Varnos a r''er si me he enterado>. diio Mike. <Parece que ests dicindome que el comit aadi requisitos de comunicaciones a gran escala y ha acortado el plan de 12 a 6 rreses.> Bill se encogi de hombros. <S que ser un reto. pero t eres creati\.o y creo que puecles con todo. Han aprobado el presupuesto que queras, y aadir el enlace de comunicaciones no debe ser difcil. Pediste 36 personas-mcs y las tienes. Puedes reclutar a quien quiera que necesites para el proyecto e incrementar el tamao del equipo.> Bill le dijo que hablase con algn otro desarrollador y que buscasen la forma de entregar el software a tiernpo. Mike se reuni con Carl. otro responsable tcnico, y buscaron la fornta de rcortar el plan. <,;Por qu no usas C+* v diseo orientado a objetos?>,
\( otlttnIt(t
)
Captulo 3: Errores
clsicos
37
crrlent Carl. <Sers ms productivo que con C, y el plan se acor.tar en uno o dos meses.) A Mike le pareci bien. Carl tambin conocia una hel'r'arienta de elaboraciirn de infbm-res que supuestamente acortaba el tiempo de desarrollo a la mitad. El proyecto tenia bastantes infornres, y por tanto esos dos car-ltbios los llevaran hasta los 9 rneses. Consiguieron hard\\are nuevo y ms rpido. y esto les ahorraba un par de setnanas. Si realrnente poda recluta a desarrolladores dc primerisima categolia. podra bajar a 7 r.neses. Esto era suflcientenrente ajustado. Mike coment sus progresos
a Bill.
<<\,1ira>. dijo Bill, <dejarel plan cn 7 mescs est bien, pero no es suficiente. El conrit dej claro que el plazo de entrega eran seis meses. No me clieron opcin. Puedo daros el hardr,vare que necesitis, pero t y tu equipo tenis que encontrar una fornta de redr.rcir el plan a seis meses, o tendrrs que hacer algr.rnas horas extra para paliar la diferenciar. Mike se plante el hecho de que su estimacin inicial slo fue una aploxirnacin y pens que quizs podra bajar.la a meses. <De acuerclo, Bill, buscar un par de personas externas espabiladas para el proyecto. euizs puedn cnctrntrJr geltte eon expericncia cn comunicaciones para que nos ay*udc en la descarga de datos desde el PC al rainfranre.> EI I de nrayo. Mike haba formado el equipo. Jill. Sue y Tomas eran buenos desarrolladores de la casa. y fueron liberados. Complet el equipo con Keiko y Clhip, dos contratados extentos. Keiko tenia experiencia tanto en PC como en los rrainfiale con los que tena que conectarse. Jill y Tomas habian entrevistado a Chip y no querian contratarlo, pero Mike lo impuso. Tena expericncia en conrunicaciones y estatra disponible, as que Mike lo contrat. En la primera reunin de I equipit. Bill dijo que el programa Ciga-Quote era estratgicarnenfe irnportantc para Giga Safe Corporation. Algunos de los rnagnates de la cornpaa estaran pendientes de ellos. Si tenan xito seran recornpensados. Dijo que estaba seguro de que lo conseguiran. Despus de los nimos infundidos porel discurso de Bill, Mike se sent con el equipo y mostr el plan. El comit ejecutivo les haba proporcionado una especificacin aprorimada, y emplearon las siguientes dos semanas en completar las lagunas, Despus se emplearian 6 semanas en e I diseo, lo que dejaba 4 meses para la construccin y la prueba. Su estimacin aproxirnada fue que el producto flnal tendra unas 30.000 lneas en C++. Todos los asistentes asintieron, dando su confbnnidad. Era arlbicioso, per-o lo sabian cuando se comprometieon con el proyecto. A la semana siguiente, Mike se reuni con Stacy, la responsable de la prueba. Indic que debera tener pares del producto tcrminadas para probarlas no despus del I de septiembre. con el propsito de tener un producto con todas las funciones el i de octubre. Mike estaba de acuerdo. El equipo acab la especificacin de los requerirnientos rpidarnente. y se meti en el diseo. Obtuvieron un diseo que pareca hacer buen uso de las prestaciones de C++. (totttittt)
38
balsa de accite. Ni a.lill ni a Tornas les gllsraba Chip. Sue se qucjaba <ie 1. que no queria que nadie se,ce'case a su cdigo. Mikc atribuy los choques de personaliclacles a las muchas lroras cle tr.abajo. No obstante, a primeros de gosto" le indicaron quc cstaba hccho entre el g,5 v el 90 oor 100. A rnitad de agost., el departa'renro actuarial dio las tsas paia el ao siguiente, el equipo descubriri que teria que rnodificar completamente la estnlctura pal'a las nueYas tasas. El nuer.o nrtodo dc tasacin necesitaba realizal preguntas sobre hbitos de ejercicio, en ia bebida, en la comida, actividades cle ocio y otros factores que no se haban incluido antes en las frmulas de tasacin. Pensaron que c*r deba prote*erlos de los efectos cle esos carnbios. c'alcularon que slo tendrian que incluir nuevos valores en las tablas de tasas. Pero tendran que cambiar el diiilogo cle entrada, el diseer clc la base de datos" el acccso a la base de clatos los objetos de -v colrunicaciones para adaptarlos a la nuer.'a estmctura. como el equipo estaba revuelto lorrlue tena que reajustar sr-r cliseo. Mike dijo a Stacy que se rctrasaran unos tlias en la cntrcga de la primera \,ersin para la prueba. El equipo no hbia te'lrinado er I de septienbre. y Mike asegur a Stacv que acabaran cn slo uno o dos das. Los dias sc semanas. El lmite del I de octubre para entregar 'ol'icron el producto cornpleto llara sir prucba lleg y fire rebasado. Desarrollo aun no haba acabado e-l primer pr-oducto para prueba. Stac, llanr a Bill a una l'cunin para tratar el plan. <An no tcnemos nada cle desarrollo;r, dijo, <rsuponianros clue tcrrdrarros la prinrera versin el I cie septiembre, y puesto que ahn no tenelll0s nada. por lo menos nos relrasaremos un r-nes respecto al plan oiginal. Creo cue tcnelxos Lrn problemar>. <Es crerto, tenemos r"rn probrema>>. dijo Biil. <Djarne que hable con el equipo. He prorneticlo a 600 agentes qLre tendrauros el progralra el l de noi.iellbre . l-o entregarerros a tierrrpo para cl canlbio de asa.s.> Bll cottt'oc una re,nin con el equito. <<sfe es utt equpo l-antstict, l'debera currplir cor s,s co*promisos>, res dijcl. <N. s qu es lo que ha ido r.nal, pero espcro qre todos traba.iis duro y entregurs el softwae a trempo. Airr.r podeis conseguir las bonificaciones, pero ahora tendris que I,char por ellas. Desde ahora .s asignar horario de 6 das por r",.,.,unu. l0 horas al dia. hasta q'e cl sottlvare est'n hecho.> Dcspus <ie la reunin, Jill r" Tomas se quejaron a Mike de q,e l.raba necesidacl de que los 'o trataser.I como nios. pero accedieron a trabajar las horas que Bill quera.
Acabaro'el diseo cl l-i cle.iunio. adclant'close al pltrn. y col.rlenzaron a cociilicar como locos para llcgar al objetivo r1e tener la prirnera versin de p^reba el I de septieurbre. E,l trabajo cn el pr.oyectn no .r, uno
prueba antes c1e que entrasen en vigor las nuevas tasas en enero. EI ccluip. cntrcgti su p.imera al grupo de prucbas cuatro semanas despus del I de no'iembre. y'ersin se rer:ni para tratar algunas de las reas problenrticas que qr-reclaban.
|( ()ilI
El equipo rctra-c el plan dos semanas, prorretiendo te.er la utilidad completa construida el I 5 de novieurbre. Esto dejaba 6 senranas para la
tl |tLt
39
con Llnl barrea. <La pgina resuluen de cuotas incl-ve grtico de barras. He utilizaclo un gene raclor cle infbnles que srttrron:r generaba grficos cle barras. pero [a nica forr.lta de gencrarlos cs en pginas individuales. Uno de los requeriurientos del grupo de velltas es que hav que pnner grficos cle brrras y texto en la lnisnra pgina. He- pensaclo que puedo tranlpeal un intbrr.ne con un griifico tlc barras pasando e I texto dcl inforrne conlo una leyenda clel objeto grfico cie bal'ras. Realnrente es trlln tranrps. pero siernp|e puedo volVer atrs v reimpletrentarlo ms clarat-nente despLrs de la plirttclr r crsi,itl.', Mike respondi: <No I'eo cltinde est c-l problema. Tenemos que acabaf el producto. v no hav tienrpo de hacer un cirdigo perl'ecto. Bill ha dejado Lricn claro que no podcnlos tencl nls fallos. Usa esc truco.)) Chip conrent quc stt cdigo dc comunicaciolres estaba hecho al 95 pol i00 y cLre t-unciortaba. pet'o que airtl tenia que hacer algunas prrtebas de ejc'cr-rcin. N'like r.'io que Jill y Tomas sc mirallan. pero decidi ignorarlo.
)'
se encontr
el l5
cle
hastr el l5 de novielnbre- incluyenclo las nonovicntbre. pcro no pudiclon lraccr quc [a feclia de
entrega lue se el 15 de noviembre. El e quipo estaba exhausto' pero la maana rlel clieciseisayo dia. fue Bill quien se sinti deprinrido. Stacy le haba avisado de quc desarrollo n9 habia entregado la versin coniplela el dia anterior. La irltima senrana halra dicho al cornit ejecutil'o que el provecto estaba encarrilaclo. OtIa gestol'a cle provectos. Claire. haba investigado en los ptogresos del equipo. dicicndo qtlc habia oilo que no estabarl cul'nplienclo la-s entregas pianiticadas con el equipo de prueba. Bill pens que Claire estaba tensa y n0 le gustaba su info|me. Le haba asegulado a ella quc su cquipo estlba eu bucn carnino para cunrplir las entlegas llaneadas. Bill cli.io a lVlike qtte reuniese al equipo. v cuarldo lo hizo. llit'ccan derrotados. Un ures v nteclio a 60 hors semallales haban sido la punt:illa. Mike pregunt cunto ticnrpo lcs llevara rcabar" pero su tnica respuesta lue el silencio. <i,Qu nrc estis ciiciendo?>. dijo. <t{oy ibanros a fener lista la versirin con todas las funcioltes. (.La tellemos'l)) <Mira. lr'{ike>. dijo Toras. (llLredo entregar hot n.ri cdigo y decir que incluve "tcda la funcionalidacl''. pel'o plobablemente rlece sitar' tfes semanas cle traba.fo cle lirnpieza urt vez que lo etltregtre>. Mike pregunt qu qucr'a decil Tot.nas con <limpieza. <rNo hc puesto el logotiptl de la empresa en cada prgina. ni clue el lronrbt'e y el tellbno del agente aparezca al pie de la pgina. Son pequerias cosas como sa. Todo lo importante funciona bien. He acabado al 99 por 100.> <Yo tamtoco hc hecho exactatnente el 100 por 100>. admjti .lill. (Mi antiguo grullo me ha llamado para que les diese apoyo tcnico' y he tenido quc emplear un plr de holas ciiat'ias con cllos. Adems, haba olvidado hasta ahor.a rnismo que los agelites redan poner su nombre y su telfbno en los infirrrnes. An no he iurplementado los dilo-eos de entradaparaesos
\(onttilrrLt)
40
datos. y tambin ten-qo que hacer alg'nos dilogos de mantenimiento. No crea que fuesen necesarios para el hito de la ,.utilidacl completa'..i>
Ahora Mike talnbien empezaba a sentirse mal. <Si he odo lo que creo que hc oido, mc estiis diciendo que neccsitis tres selnanas para completar el sofhvare. ,,Es correcto?> <<Al men,s tres semanls)r. dijo Jill. Elresto de los desarrolradores estude acue'do. Mike pas uno por uno y lcs pregunt si podran conrpletar 'o pafie en tres seianas. su uno por uno. cada programador le dijo que trabaduro, y que pensaba que poda hacerlo. .jara Al final dc ese da. despus cle una discusin larga e inc(rnroda, Mike y Bill acordaron retrasar c'1 plan 3 semanas, hasta el 5 tle diciembre, sienrpre que el equipo prometiera t.abajar 12 horas al da en vez cle 10. Bill clijo que tenia que demostrar a su jefe quc estaba azuzando al equipo de desarrolro. La revisin del plan implicaba que rendfan que probar el c<ligo y prepa_ rar al personal al urisnro tiempo, pero era la rnica posibilidacl de entr-egar el cdigo el I de enero. Sracy se que.i de que cl control de calidad del softrvare no tenia asignado el tienrpo suficiente para probarlo, pero Bill no le hizo caso.
Giga_
completo al grupo de pruebas antes del rneclioda. v salieron pronto del trabajo para tener su largamente esperado descanso. Habar.r trabajaclo
casr constantcmente dcsde cl I de septiembfe. Dos das ms tarde, Stacy dio la prirnera lista de errores, se desat el 1, infierno. En dos das el grupo de pruebas iclentific ms cre 200 def'ectos en
el programa Giga-Quote, incluyendo 23 clasificados conro de sevcridad l (<Tienen que corregirse>). <Ner veo la fbrma de que el soitr.r,are est listo para entregarlo a los agentes locales antes del 1 de enero>, clijo. <probablemente el grupo de pruebas necesite ese tiempo para escribir los casos de
prueba de los defectos qlle ya ha descubielto. y est descubriendo def-ectos cada hora.> Mike con'oc urra reunin de personal a las I en punto de la rnaana siguiente. Los desarrolladores estaban quisquillosos. Decan que haba unos cuantos errores serios. pero la rnayoria de los errores indicados no eran realnlente errores, sino lnalas interpretaciones de cmo se supona quc tena que funcionar el progranla. Tomas indic que el error # 143 era un ejemplo de eso. <El inlbrme del error #143 dice que en la pgina resurnen de la cuota, el grfico de barras ticne que estar elr la clerecha de la pgina en vez de en la izquierda. Esto no es Lln error de severidarl L Es la tpica lornra en que los comprobadores sobreestiman un problema.> Mike distribuy copias de los informes de errores. Encarg a los desarrolladores que revisasen los errores que el grupo de pruebas les haba asignado y estimasen cunto tiempo les llevara corregir cacla u'o de ellos. Cuandcl el equipo se reuni de nuevo por la tarde. las noticias no eran buenas. <Siendo realista. estimo que necesito dos senranas completas cle trabajo para corregir los errores que ya nos han pasado>, dijo SLre. <Adems.
Captulo 3: Errores
clsicos
41
tengo que acabar las comprobaciones de integridad referencial de la base de datos. En total, necesito cuatro semanas a partir de hoy.> Tomas habia devuelto el error #143 a los comprobadores, cambiando su severidad de I a 3 (<Cambro esttico>). El grupo de pruebas respondi que los informes fesumen de Giga-Quote tenan que coincidir con informes similares generados por el programa instalado en el mainfrane para polticas de renovacin, que era similar a los formatos de marketing preimpresos que la compaa haba usado durante muchos aos. Los 600 agentes de la compaa estaban acostumbrados a ver sus valores de ventas en grficos de barras a la derecha, y tenan que quedarse a la derecha. El error se qued con un nivel 1, y supuso un problema. <Recuerdas ia trampa que utilic para que se pudiesen imprimir en la misma pgina el grfico de barras y el informe'?>, pregunt Tomas. <Para poner el grfico a la derecha, tengo que reescribir ese informe eoncreto desde el principio, lo que significa que tengo que escribir mi propio cdigo a bajo nivel para dar formato al informe y al grfico.> Mike tembl, y pidi una estin,acin aproximada de cunto tiempo necesitaba. Tomas dijo que por lo menos 10 das, pero que tendra que verlo ms despacio antes de estar seguro. Antes de volver a casa, Mike dijo a Stacy y Bill que el equipo trabajara incluso ios dias de fiesta y que todos los errores encontrados se corregiran para el 7 de enero. Bill dijo que se lo esperaba y que habia aproLrado un retraso en el plan de 4 semanas antes de irse a un cfucero de un mes por ei Caribe que tenia planeado desde el pasado verano. El mes siguiente Mike estuvo ocupado manteniendo al grupo unido. Durante cuatro meses haban trabajado todo lo duro que se poda trabajar, y no crea que pudiesen hacer ms. Estaban en la oficina 12 horas al da, pero empleaban rnucho tiempo leyendo revistas, pagando facturas y hablando por telfono. Pareca que se irritaban siempre que les preguntaba cunto les quedaba para reducir la cuenta de errores. Por cada error que se corregia, el grupo de prucbas descubra dos nuevos. Errores cuya correccin deba haber llevado 2 minutos tenan implicaciones en el proyecto completo y podan llevar dias. Pronto calcularon que no haba forma de que pudieran corregir todos los defectos para el 7 de enero. El 7 de enero Bill volvi de sus vacaciones, y Mike le dijo que el equrpo de desarrollo an necesitaba 4 semanas ms. <Esto es serio>, do Bill, (tengo 600 agentes locales que estn hartos de dar vueltas alrededor de un puado de aprendices de informticos. El comit ejecutivo est hablando de cancelar el proyecto. Tienes que encontrar una forma de entregar el software en las prximas dos semanas. sea como sea)). Mike convoc una reunin del equipo para estudiar sus opciones. Les comunic el uitimtum de Bill y les pidi una estimacin aproximada de cundo entregaran el producto, primero en semanas, luego en meses. El equipo se call. Ninguno se arriesgaba acerca de cundo podran entregar finalmente el producto. Mike no sabia qu decirle a Bill.
\( ollIIItLtu
I
42
equipo centrase sus esfuerzos en un puado de mduros propensos a errores, que se iniciasen inmediatamente revisiones del diseo y la codificacin para corregir todos los errores y que el equipo .otrr.nrur. trabajando horas fijas. para que se pudiesen hacer mtricas precisas del esfuerzo empleado en el proyecto y cunto se necesitara para terminarlo. Tres semanas ms tarde. en la primera ,.tnrnu de marzo, la lista de effofes pendientes baj un poco por primera vez. La moral del equipo subi un poco, y basndose en los progresos regulares que se iban haciendo, el asesor estim que el soitware podra entregarse, completamente probado y fiable, el 15 de mayo. Puesto que el incremento semestral de la tasa de Giga Safe tendra efecto a parlir de I ile julio, claire j ra fecha oficial de lanzamienro el I de junio.
tad de febrero. finalmente Claire decidi que ya habia odo suficiente y mand un (stop) al programa Giga-euote. Se reuni con Mike el viernes. (Este proyecto est fuera de control>, dijo. <Desde hace meses. Biil no me ha dado una estimacin fiabre. Es un proyecto de 6 meses, y ya lleva ms de 3 meses de retraso sin un final claro. Estis trabaiando tantas horas oue no hacis progresos. Quiero que descansis todos utr tin o. se*anu; qriro que desarrolles un informe detallado. paso a paso. que incluya roOo. y Oigo todo, lo que queda por hacer del proyecto. No quiero que foicis el pioyec_ to para encajarlo en un plan artificial. Si se necesitan otros 9 meses quiero saberlo. Quiero el informe del trabajo pendienre para el lnircoles. o tene que ser bonito, pero tiene que estar completo.> El equipo de desarrorlo se aregr de tener un fin de semana ribre, y durante la semana siguiente atacaron el informe detallado con enersas renovadas. Estuvo en la mesa de claire para el mircoles. Revis el i-nforme con charles, un asesor en ingenieria del software que tambin haba revisado las estadsticas de errores del proyecto. charles recomend que el
Tras la reunin, Chip drjo a Mike que haba aceptado un contrato de otra compaa y que empezaba el 3 de febrero. Mike comenz a sentir que sera un alivio que se cancelara el proyecto. Mike busc a Kip, el programador que haba sido responsable del aparta_ do de comunicaciones entre er pc y er mainfiame, reasignado de apoyo al proyecto. y 1o dedic a corregir los errores en el cdigo de comr,nicu"iones del PC. Despus de luchar una semana con el cdigJde Chip, Kip conclu_ y que tena algunos defectos conceptuales profundos que haran que nunca funcionara correctamente. Kip se vio obligado a redisear y reimpmentar la parte PC del enlace de comunicaciones entre el pC y el mainfiame. Puesto q'e Bill se sali por la tangente en ra r.unin ejecutiva de mi-
Eplogo
EI programa Giga Quote se entreg a los agentes locales de acuerdo con el plan e[ I de junio. Los agentes locales de Giga Safe ro acogieron con entusiasmo y algo de escepticismo.
((()nltnuu)
43
La corporacin Giga Safe mostr su aprecio al trabajo duro realizado por el equipo de desarollo dando a cada desarrollador una bonificacin de 250 dlares. Unas cuantas semaas ms tarde, Tomas pidi una larga traja, ir Jill se fue a trabajar a otra compaa. El producto final Giga-Quote se entreg en 13 meses en vez de en 6, pasndose del lmite ms de un i00 por 100. El esfuerzo de desarrollo, incluyendo las horas extras, fue de 98 personas-mes, lo que supuso ua exceso del 170 por 100 respecto a las 36 personas-mes planificadas. El producto final tena en torno a 40.000 lneas de cdigo C** no vacias y sin comentarios, superior en ms de un 33 por 100 a las estimaciones aproximadas de Mike. Puesto que fue un producto distribuido en ms de 600 puestos internos. Giga-Quote es un hibrido entre un producto de gestin y un producto <prt--porter>. Un producto de este tamao y este tipo normalmente se debera haber acabado en 1 I meses y medio con un esfuerzo de 71 personas-mes. El proyecto sobrepas ambas cantidades.
2,
44
Uso de tcnicas modernas de programacin (pocentaje del sistema total) Porcentaje de la planificacin nomrnal
^ri{i.^
Alta (76-100%)
+200
Leyenoa
+1
00
0 (media)
I
-1 00
,,.. I L?i,',0"'ru..
ISIS?,0",
ll\,4nimo
Figura 3.1. Estudio sobre el factor *Uso de tcnicas modernas de programac1" (Vosburgh et al., 1984). Hacer algunas cosas ben no garantza el desarrollo rpido. Tambin tenemos que evtar hacer mal cualquer cosa.
catcgorias dc alto rendimiento variaba mucho, segn muestra la franja
ancha dc la categora Alta en la figura. La productividad de los proyectos dc Ia catcgora Alta r,'ariaba desde pobre a ercelente. No es sorprendente que proyectos que se espera que tengan una productividad pobre la tengan realmente. Pero s debiera ser una sorpresa el dcscubrimiento de quc muchos proyectos que se esperaba quc tuviesen una productividad excelente tienen una productividad pobre. Lo que este grfico y otros como ste muestran a lo largo de todo el libro es que aunquc es necesario utilizar alguno de los mtodos recomendables, no es suficiente para obtener la ntxima velocidad de desarrollo. Incluso si se hacen
BEFERENCIA CRUZADA Para ms informacin acerca del papel que luegan los errores en el desarrollo rpido. vase la Seccin 2.1, .Estrategia general para el desarroilo rPido'
ductividad.
Al pensar cn el desarrollo rpido, resulta tentador pensar que todo lo que hay que haccr es identificar las causas iniciales de un desarrollo lento y eliminarlas. y despus obtendremos un desarrollo rpido. El problema es que no hay slo unas pocas causas del desarrollo lcnto. y que al final no es muy rtil intentar identificar todos los orgenes del desarrollo lento. Es corno preguntarse: ,cul es la causa principal de que no sea capaz de correr una milla en cuatro minutos'l Bueno, soy demasiado viejo. Peso mucho. No estoy cn forma. No me atrevo a intentarlo. No tengo un buen entrenador o capacidades atlticas. No podra ir tan deprisa aunque fuese ms joven. La lista crece y crece.
Cuando hablamos dc proezas excepcionales, las razones de que la gente
45
las. El equipo de Giga-Quote del Ejemplo 3.1 cometi muchos de los errores que han plagado el desarrollo de software desde los tiempos ms remotos de la informtica. El camino dcl desarrollo de software est lleno de baches. y los baches en que caigamos determinan la rapidez o la lentitud
En el software! una manzana podrida puede estropear todo el barril, pequea. Para caer en el desarrollo lento, todo lo que hay que hacer es colneter realmente un gran error; para conseguir el desarrollo rpido tellen'los que evltar cometer algtin gran error. La siguiente seccin enumera
1os grandes errores ms habituales.
Figura 3.2. El proyecto software estaba repleto de errores, y todos tos directivos de mayor categora y los responsables tcnicos juntos no lo pueden salvar a ningn precio.
46
al rcsto dcl cciuipo'.) Lrspcrarentos hasta quc rcabc el proyccto para dcspcdirlol ,,Hav clue accleral'cl proyccto para acabar'/ C'ogerentcls
comodl
Los dcsarrollaclorcs. ilirectir os y clicntcs rrormalnrentc ticncr.l buenas lrs clecisiones qLrc tonralr. y la aparicncia scductora dc los crrores clsicos cs unl dc las razones dc que esos crrorcs sc colretan tan a r.l'lcl.luclo. Pero clcbrdo a qLre sc han conrcticlo n.luchas \cccs. sus consccucncias sc han he'cho lciles dc predccir. Y los crrorcs clirsicos rara vcz produccn los lesultaclos quc la gcnte espcfa. F,sta scccirt elrulrrcra allccledol clc dos clocenas de errorcs clsicos. Pcrsottalr.ltcntc he risto colncter cacla uncl clc esos crrorcs al menos una vcz. y )-o misrxo hc contetido bastrntes. \fuchos dc cllos aparecen en cl Llcmplo i.l. El colrur denorrrinador de csos en'orcs cs clue el desarrollo r'pid,r no sc erlnsi!trc llee csll'iltnlcnte si sc er ilan. l)ct'() s no sc cr itall. segLrfo quc sc consiguc el dcsarrollo lento. Si alguno de estos errorcs nos resulta funriliar. hay clue ulutarse. muchos otros lOs han colTrcticlo antes. Una l,ez que comprendamos sr-rs cfectos en la velociclacl clc clesarrollo. roclrer.nos utilizar esta lista para ayuclarnos en la planificacin dc nuestro provccto r,'elt la -ucstiu de
razoncs pafa tomar nesgos.
Algunos tlc l,rs cl'rrrrcs nllis sirnilicrrtiros ticncn strs propias \ce ioncs cn otras partes dc este libro. otros no sc tratarn nrrs. Para f'acrlitar la consulta. la lista sc ha dirrclido emplcanclo las clinlensioncs de la r,elociclad de desarrollo: persoitas. proceso. ploducto y tecnologa.
Personas
A cclntinuacitin alarccen algunos dc los errores clisicos relrcionados con
las pelsonas.
FEFERENCIA CRUZADA Para ms informacin sobre los buenos y malos usos de la motivacin, consulte el Captulo 11,
.,
l\,4
1 : Motivacin dbil. Estudio tras estudio sc ha rnostrado qr.rc la nrotir rcicin probablelrente ticne r.uavor efecto sobre la procluctir idacl y la calidacl
otivacin "
que ningn otro fhctor (Boehm. l98l). En el Ejemplo 3.l.los directivos tomaron a lo largo de lodo el proyccto mediclas qr.rc nrinaban la r.uoral: conro dar nirnos a diario al principio para peiiir horas extras en la rrritad. y como irsc de'n'acaciones ntientras el equipo estaba trabajanclo incluso los das de fiesta. para dar rccontpensas al final del proyccto que resnltaron ser de nrenos de un cllal por cada hora extra.
2: Personal mediocre.
Despus dc la rnotivacin" la capacidacl indir,iclLral cle los micr.ubros clcl eciuipo. as cor"no sus relaciones como ccluipo. probablerrentc tienen la nrayor inf-luencia en la productividad (Boehm^ l9ltl: Lakhanpal. 19c)3). Contratar apurando el fbndo clel barril
47
dctcrntina
:ullondr unA aurcnaza al esfuerzo dcl clcsarrollo rpiclo. En el ejemplo, la :e'li-'ccin dcl pcrsonal se hizo buscando quin podra contratarse ms ri.rcio" erl vez cle quin rcalizara la mavora dcl trabajo durante la vida del jrro)ec1o. Esta tcnica consi-gue rrn inicio rpido dcl proyecto. pero no
Lrn
llnal rpido.
rl trarar con .'5enal problcmtico tarnbin an')enaza la r clociclacl cle dcsarrollo. Es un nrobler.na habitual. y sc ha corrprendido bien. al rrenos dcsdc que Geralci
\\ cinberg pLrblic
un fallo
erii ura lrlnzana poclricla, pcro el jefe del equrpo no hizo'acla. El resultado cra predecible: rehacer cl trabajo c'le chip.
las cluejas r.r.rrs coll"rur.lcs que liencn lcls nricmbros clel equipo respecto sus responsables (Lalson 1.'LaFasto. lggc)). En el Ejernplo 3. l. el equi-
contribuycn al proce so
rir-lc a los pfogfcsos flnres y consistcntcs y'a los infbrmes signilicativos ric progreso. El resultaclo flc r-rn nrocleltl de pla'ificacin al imite en el iluc las amcnazls cle dc.sajuste dcl plan no se dctcctaban. ni sc collocran o rrr sc iulbllnabin a la caclena dc clirectir.os hasta el irltimo minuto. Un pe querio ecluipo dc clcsarrollo v sus jefcs inmediatos toman cono relrenes ir una courpaa entera por lro adnritir que tiencn problenras para cumplir 5u plan. El enfasis !-n los conrrortarlicntos hcroicos ibmenta correl.ul.r fiesgo cxlren'ro. e impidc la cooperacin entre los mLrltiples elementos que
c'lc
dc nir el lneclio dieron mavores arlausos a actitudcs clel trpo <ser capaz de>
4: Hazaas. Algu'ros dcsarrolladores cle sofiu/rre pouen un gran nfasrs en la rcalizacin dc hazaas en los proyectos (Bach. 1995J. pero lo llue hacen tienc mis de rlalo quc de bucno. Err el ejemplo. los directivos
Al-qunos clirectir os lilnentan cl conrporlamiento heroico cuanclo se cOnccntran con dcnrasiada firnrcza en actitr.rdcs (ser capaz cle>. E,levando L'stas actlturies llor encima cle intbrmcs del estado exactos y a veces pesr_ rrristas. los clirectivos cic estos provectos coartan su capacidad de tomar nrcdicias colrcctivas. Ni sicluicra sabcn que tre nerr que r-mprendcr acclolres correctolas hasra clLrc el dao 'a cst hecho. Couro dijo Torn DeMar_ co. ias actitucies (ser caplz clc> conriertcn pequeos contratienlpos en auleir.rticcls ciesastres ( DcN4arco. I 995).
cl nrs clsico de Ios errores clrsicos. crr-ranclo uu proyecto se alarga, aaclir nrrs gcr.rtc rr-rcdc quitar n'riis procir-rc-tilidacl a los r.nierrbros del equipo exlstcnte cle la que aaclen los nuevos miembros. Frc<i Brooks colr-
(Brooks.
48
REFERENCIA CRUZADA Para ms informacin sobre los efectos del entorno pscolgico en
ra pruuuLUvruduj
REFERENCIA CRUZADA Para ms informacin sobre las relaciones efectivas con los clientes, consulte el Captulo 10, . Desarrollo orientado al clente..
7: Fricciones entre los clientes y los desarrolladores. Las fricciones entre los clientes y los desarrolladores pueden presentarse de distintas formas. A los clientes puede parecerles que los desarrolladores no cooperan cuando rehsan comprometerse con el plan de desarrollo que desean los clientes o cuando fallan al entregar lo prometido. A los desarrolladores puede parecerles que los clientes no son razonables porque insisten elr
planes irreales o cambios en los requerimientos despus de que stos hayan sido fijados. Pueden ser simplemente conflictos de personalidad entre dos grupos. El principal efecto de esta friccin es la mala comunicacin, y los efectos secundarios de la mala comunicacin incluyen el pobre entendimiento de los requerimientos. pobre diseo de la interfaz de usuario y, en el peor caso. el rechazo del cliente a aceptar el producto acabado. En el caso medio, las fricciones entre clientes y desarrolladores de software llegan a ser tan se\eras que ambas partes consideran la cancelacin del proyecto (Jones, 1994). Para remediar estas fricciones se consume tiempo, y distraen tanto a desarrolladores como a clientes del trabaio real en el proyecto.
REFERENCIA CRUZADA Para ms informacin sobre f ilar expectatvas, consulte la Seccin 10.3, "Gestin de las expectativas del
8: Expectativas poco realistas. Una de las causas rns comunes de fricciones entre los desarrolladores y sus clientes o los directivos son las expectatlvas poco realistas. En el Ejemplo 3.1. Bill no tena razones para
pensar que el programa Giga-Quote se podra desarrollar en 6 meses, pero se era el plazo en que lo quera el comit ejecutivo de la compaa. La
Cllenle'.
incapacidad de Mike de corregir esta expectativa irreal fue la principal fuente de problemas. E,n otros casos, los directivos o los desarrolladores de un proyecto se buscan problemas al pedir fondos basndose en estimaciones de planificacin demasiado optimistas. A veces prometen un conjunto de funciones tan altas como la Luna. Aunque por s mismas las expectativas irreales no alargaran el plan. contribuyen a la percepcin de que el plan de desarrollo es demasiado largo, y de que puede ser malo. Una inspeccin de Standish Group marc las expectativas realistas como uno de los cinco factores principales necesarios para asegurar el xito de los proyectos internos de software de gestin (Standish Group. 1994).
49
;htrs dc los aspectos del desarrollo rpido es necesario un promotor del lrrrvecto de alto nivel. incluyendo una planificacin realista, el control de ;nrbios y la introduccin de nuevos mtodos de desarrollo. Sin un pro:lotor ejecutivo efectivo, el resto del personal de alto nivel de la empresa :.uede forzar a que se acepten fechas de entrega irreales o hacer cambios .1ue debiliten el proyecto. El consultor australiano Rob rhomsett afirma ue la falta de un promotor ef-ectivo garantiza virtualmente el fracaso clel irrovecto (Thomsett, 1995). 10: Falta de participacin de los
impricados.
po. miembros del equipo, personal de ventas, usuarios finales, chentes y cualquiera que se juegue algo con el proyecto. La cooperacin estrecha scllo se produce si se han i'rplicado todos los participantes. permitiendo una coordinacin precisa del esfuerzo para el desarrollo rpido, que es imposible conseguir sin una buena participacin.
11
prftrcipantes del esfuerzo de desarrollo de software deben imolicarse en c-i p.oyecto. Incluyendo a los promotores, ejecuti'os. responsables del equi-
Group descubri que la razn nmero uno de que los proyectos de Siste-
Group, 1994). Los proyectos que no implican al usuario desde el principio corren el riesgo de que no se comprendan los requerimientos del pro\ecto. y son vulnerables a que se consun-ra tiempo en prestaciones que rns tarde retrasarn el proyecto.
12: Poltica antes que desarroilo. Larry constanti'e indic que si hay cuatro equipos hay cuatro tipos difercntes de orientaciones polticas (constantine, 1995a). Los <polticos> estn especializados en la <<gestin>, centrndose en las relaciones con sus directivos. Los <investigadores> se centran en explorar y reunir informacin. Los <aislacionistas> estn solos. creando fronteras para el proyecto que rnantienen cerradas a los que no son miembros del equipo. Los <generalistas> hacen un poco de todo: establecen relaciones con sus clirectivos, realizan investigaciones y exploran actividades, y se coordinan con otros cquipos conlo parte de su modo de trabajo. constantine indic que inicialmente los equipos polticos y generalistas estn bien vistos por los directivos de alto nivel. pero despus de un ao y medio, los equipos polticos llegan a la muerte sbita. Primar la politica en vez de los resultados es fatal para el desarrollo orientado a la velocidad.
13: llusiones. Estoy impresionado de ver cuntos problemas del desarrollo del software se deben a la ilusin. cuntas veces hemos escuchado cosas como stas a distintas personas:
50
Desarrollo y gestin de proyectos informticos <Ninguno de los rnicrlbros clel provccto cree reillrente que pueda coutplctafse el prol'ccto rle acrcrcio con eJ tllrn (lue tir-nclr. pcro picnsan que cluizlis si trabrtjan ciuro. r natla la r-nrl. r tiencr Lllr poco clc suerte. sc-riin t.tpitc) tlc .,rltr'lur' \()n \ito.,' r<\ucstro cquil-ro no hacc urllcho traba.jo parii la coorclinaciirn clc las intcrttccs cntrc- las distintas partes (lel proclucto. pcro tcncnr()s .rna bucna conrunicilcin pafa otras cosas. v las rnterfaces son relati\'mente sinrples. slt ncccsitarcnros un da o clos para elinrinar los
:::J:: ,i-t,rtrlr-nrcritc
<Sabcnros que c()ntlnros con Lrn clesan'ollador e\tcnro clc poco talento e I subsiste'nra dc'lt base- dc thtos. \, clc cs cliflcilvel ctin.ro va a acabar el trabajo con lo. nirelcs de'pcrsonal que lia esrccificailo en sLl propLrcsta. No ticncn tarlta expcricncia couro algunos de los cie-nts desarrollaclores e\ternns. pero pLretlc cluc contpenser con enerqa lo clue les falta en experiencia. [)robrblenrente ucaben tienll]o.)) <<No ncccsitarnos fel'1.'iar l irltima lista dc canlbios cn cl prototipo para cl cliente. Lstor. scquro cle quc rot'ahOt' sabelnos lo cluc clLliere.)) ,,El cquil-ro csth clicicnclo quc rcalizar un estucrzo extrrorclinrrio I-riu u cirnrplil con la lecha clc cntrcgr. \'clLlc no han llegaclo a su printer hito por pocos clias. pcro creo quc nlcanzarlt rlstc u ttetrrpo. " para
Las ilusioncs no son slo optintismo. Re alutente colsistcn clt cerrar los ios )'csllcrar que toclo lirncione cuurdo no se tienen las bases razonAbles para pcnsar qLre serll rs. Las ilr.rsioncs al comienzo del proyecto llevan a grandcs cxplosiones al tlnal. Intpiclcn llet'ar a cabo uua planificaci(in coh'rcrite y pueclen ser la raz de nts problenras cn el soft$,are que todas las otras calrsrs conrbinaclas.
Proceso
Los errores rclacionaclos con el proccso ralentizan los proyectos porquc malgastan cl talcnto y el esfucrzo clel personal. A continllacin sc ntllestran algunos dc los peorcs crrores relrcionados colt el proccso.
REFERENCIA CRUZADA Para ms informacin
<^hro l^c l.nc
14: Planificacin excesivamente optimista. Los rctos a los quc sc elfrenta alguicn qLre dcsarfolla una aplicacin en trcs nlcscs son muy dil-crentcs de aqucllos a los quc sc eufl'enta algLrien que desarrolla una aplicacin que neccsita un ao. Fi.jal Lrn plar"r crcesir antelrtc optinrista predispone a qur- el proyccto f'alle por infravalorar el alcance dcl proyecto, minando la planificacicin cfectiva, y rcduciendo las actir.'idac'lcs criticas para el ciesarrollo. cono cl anlisis de rcqucrimientos o cl disco. Tanlbin supone una exccsi\/a presin para los desarrolladores. quisl.lss a largo plazo se ven af'ectados cn su nroral y su producti\idtd. Esta t-s la mayur fuente de problcmas clel Ejenrplo 3.1.
51
15: Gestin de riesgos insuficiente. Algr-rnos crrorcs no son lo suficicntcl.lrcnte habituale s conto para considerarlos clsicos. Son los llamados ,,ricsgos>>. Cor.no con los errorcs clsicos. si no e-jercernos una gcstin activa dc los ricsgr)s. colr que slo va_va ntal ulta cosa se pasar de tcner un pro\ccto con un clesarrollo rupiclo a uno cou un dcsarrollo lento. El f-allo de no gcstional' uno solo clc cstos riesgc'ls es un crror clsico.
haccr cl trabqo en c1sa. Pcr<t los contrataclos fl'c-cuentementc entregan sll lrabao trrcle" con uua calidrc1 inaceptable cl quc falla al no coincidir con lrr e 'rr'ifie le itlll t Bochlll. lt)x,,1 t. Ric:t()\ e onto rcqucrimicntos inctables cl interf aces nial clcfinicias pueclen scr enorntes cuando un contratado entra elr escr-na. Si las relaciones con los contratados no se _eestionan cuidadosamente . la utilizacin dc desarrolladorcs cxternos nuede ralentizar el Drovecto cn vez dc acelerarlo.
17: Planificacin insuficiente. Si no planificamos para conseguir un clesarrollo rpido. r'ro rodcnros espcrar obtcnerlo.
18: Abandono de la planificacin bajo presin. Los equipos de desarrollo haccn plane s y rulinarian.rentc los abanclonan cuanclo sc tropiezan
con Lln problema or la planificacin (Humplrrey. 1989). El problcma no cst en el abandono del plar.r. sino nrs bien en fallar al no crear un plan alternatlvo. \'cacr elttoltccs en el t.nodo dc trabajo de codiflcar y corregir. En el Ejcnrplo 3.1. el cquipo abandon su plan despus de fallar en la prirnera
entrega. v csto es lo habitual. A rartir cie cste punto. el trabajo no tuvo cooldinacitin ni cJcgancia. hasta cl punto de que Jill empez a trabajar partc dcl tier.npcl llara Llu llroyecto c1e su liejo grupo y nadic lo supo.
difuso.
: -'-^
:':.
::
normalnlcnte se picrcle en el proceso de aprobar y hacer el presupuesto. No cs poco cor.n[tn quc ull pro]-ccto dcsperdrcic lreses o aos en un inicio difuso. v cntonces se cst a las -ruertas de un plan agresivo. Es r.nucho rns fcil r barato y lxenos arries-eado suprirrrir Luras pocas selranas o lneses del inicio dilirso cn vez cie contprir.r.rir el plan de desarrollo en ese misl.l.lo tiempo.
A
-::
es.
:a on
: .:.--ele
52
DATOS REALES
ffi
Los resultados de este error, tambin conocido como (saltar a la codificacin>, son todos demasiado predecrbles. E,n el ejemplo. un truco de diseo en el informe del grfico de barras fue sustituido por un trabajo de diseo de calidad. Antes de poder entregar el producto, el traba.o con truco tuvo que trrarse, y hubo que hacer de todos modos el trabajo bien hecho. Los proyectos que normalmente escatir.nan en sus actividades iniciales tendrn que hacer ese trabajo en otro momento. con un coste de l0 a 100 veces superior a haberlo hecho bien inicialmente (Fagan, l 976; Boehm y Papaccio, 1988). Si no podemos encontrar ci'co horas para hacer
el trabajo correctamente la printera vez. ,cmo vamos a encontrar 50 para hacerlo correctamente ms tarde'l
21: Diseo inadecuado. un caso especial de escatimar en las acti\ idades iniciales es el diseo inadecuado. Proyectos acelerados generan un diseo indeterminado. no asignando suficiente tiempo para l y originando un entorno de alta presin que hace difcil la posibilidad de considerar alternativas en el diseo. El nlasis en el diseo est ms orientado a la conveniencia que a la calidad, por lo que necesitar r'arios ciclos de diseo antes de poder finalizar completamente el sistema.
REFERENCIA CRUZADA Para ms informacin sobre control de calidad, consulte la Seccin 4.3, .Bases del control de calidad".
DATOS REALES
22: Escatimar en el control de calidad. En los proyecros que se hacen con pnsa se suele cortar por lo sano. eliminando las revisiones del diseo y del cdigo, eliminando la planificacin de las pruebas y realizando slo pruebas superficiales. En el ejemplo, las revisiones del diseo y del cdigo se eliminaron lirnpiamente para conseguir una ganancia considerable en el plan. Al final. cuando el proyecto alcanz su hito de plena funcionalidad, an tena demasiados errores y se retras ms de 5 meses. Este resultado es tpico. Acortar en un da las actividades cle control de calidad al comienzo del proyecto probablemente supondr de 3 a l0 clas de actir.'idades finales (Jones, 1994). E,sta rcduccin va contra la velocidad de desarrollo.
23: Control insuficiente de la directiva. En et ejemplo hay poco control de la directiva para detectar a tiempo los signos de posibles retrasos en
el plan, y los pocos controles definidos al comienzo se abandonaron cuando el proyecto comenz a tener problemas. Antes de encarrilar un proyecto, en primer lugar debemos ser capaces de decir si va por buen camrno.
.Seguimiento.. en
la Seccin 4.1, y el Captulo 27, ,Hitos mtntatura..
24: Convergencia prematura o excesivamente frecuente. Bastante antes de que se haya programado entregar un producto, hay un impulso para preparar el producto para la elttrega, mejorar el rendimiento del producto, imprimir la documentacin final, incorporar entradas en el sistema final de ayuda, pulir el programa de instalacin. eliminar las funciones que no van a estar listas a tiempo y dems. E,n proyectos hechos con prisa,
53
25: Omitir tareas necesarias en la estimacin. Si la gente no guafda cuidadosamcntc datos dc proycctos antcriores. olrida las tareas ntcnos r.'isiblcs. pero son tareas que se han de aadir. El esfuerzo ontitido suelc aumentar el plan de desarrollo en un 20 o 30 por 100 (Van GcnLrchten. l99l). 26: Planificar ponerse al da ms adelante. Un tipo de reestinracin es responder inapropiadanentc al rctraso dcl plan. Si hcrnos trabajado en un proyecto durante 6 nreses. y hemos empleado tres n.reses en llegar al hito correspondiente a los dos rreses. .qu hacer'l E,n muchos proyectos
simplemente se plantea recuperar el retraso l.ns tardc. pero nunca se hace. Aprenderemos ms del producto confonne lo estarnos construyendo. incluyendo ms sobre lo que nos llevar construirlo. E,stos conocinrientos nccesitan reflejarse en la reestimacin del plan. Otro tipo de error eu la reestimacin se debe a cambios er.r el prociucto. Si el producto que estamos construyendo carnbia. la cantidad de tiempo nccesaria para construirlo cambiar tarnbin. En el Ejcnplo 3.1, los requerimiertos principales cambiaron entre la propuesta original y el conricnzo del proyecto sin la correspondiente reestir.nacin del plan o de los recursos. El crecinliento dc Ias nue\as prestaciones sin a.j rrstar cl plarr gal'antizil quc no se alcanzar la f'echa de entrega.
27: Programacin a destaio. Algunas organizaciones cr.--cn quc Ia codiflcacin rpida, libre. tal corro salga. cs cl camino hacia el desarrollo rpido. Piensan que si los desarrolladores estn lo suflcientcmcntr- motivados, pueden solr,entar cualquicr obstculo. Dcbido a las razoncs que se vern claramente a lo largo de todo cstc libro. esto est lejos dc la vcldad. Este enfoque muchas vcccs se prcseuta colno uu enfbque <empresarial>> al desarrollo de softrvarc, pero realmeute es slo la envoltura dcl l'ie-jo paradigrra a destajo combinado con Llna planificacin anrbiciosa. y esta combinacin raras veccs funciona. Es un ejemplo de que dos negaciortc-s r.rcl constituyen una verdad.
Producto
A continuacin
se n-ruestran los errores clsicos relacionados con la fbr-
54
28: Exceso de requerimientos. Algunos proyectos tienen lns reqLlerimientos cle los que necesitan. desde el misrno inicio. La eficiencia se fija como requisito ms a menuclo de lo qtle cs necesario. y pucde generar una planificacin del softu'are innecesariamente larga. Los usuarios tiencien a interesarse menos en las prestacioncs con-rplcjas que en las de las
secciones de marketing o de desarrollo. r las prestaciones cornplejas alargan desproporcionadantente el plan de desarrollo.
REFERENCIA CRUZADA Para ms informacin sobre el camtlio de prestaciones, consulte el Captulo 14, "Control del conjunto
.l nraelr.i^nac-
prestaciones.
rcquerimientos erccsivos" los proyectos sufren como rnedia sobre uu 25 por 100 de carnbios en los rcqLlerinlientos a lo largo de su vida (Jones. 1994). Un cambio de este calibre puede producir un aumento en el plan de al mcnos un 25 por I 00, 1o que puedc ser fatal para los proycctos de dcsarrollo rpido.
REFERENCIA CBUZADA Para consultar un ejemplo sobre cmo, incluso accidentalmente, un desarrollador puede caer en requerimientos excesivos o superf luos, vase ,,Objetivos poco claros o imposibles", en la Seccin 14.2.
el plan.
31: Tiras y af loias en la negociacin. Cuando un directivo aprueba un retraso en el plan de un proyecto quc progresa ms lento de 1o csperado, y entonces aade tareas completamente nuevas despLrs de un cambio en el plan. se produce una situacin curiosa. La ran Subyacente de esto cs difcil de localizar, puesto que el directivo que aprlteba el retraso en el
plan
1o hace sabiendo implcitarnente quc el plan estaba equivocado. Pero una vez que Se corrige. la misma persona realiza acciones cxplcitas para volver a cquivocarse. E,sto slo pucde ir en contra del plan.
32: Desarrollo orientado a la investigacin. Seymour Cray. el diseador de los supercomputadores Cray. dijo quc no intentaba sobrepasar
los lmites de la ingcrriera cn ms de dos reas a la vez. porque el riesgo de un f-allo es demasiado alto (Gilb, 19S8). Muchos proyectos software deberan aprender la leccin de Cray. Si el proyccto fuerza los lmites de la informtica porqLle necesita la creacin de nuevos algoritmos o de nuevas tcnicas de contputacin. no estamos desarrollando softrvare; estamos inr,'estigando en software. Los planes de desarrollo de softrvare son razona-
blernente preclecibles: 1os planes en la inr.'estigacin sobre software nr siquicra son predecibles tericamcnte. Si cl producto tiene objctivos que pretenden aumentar los conocirnicntos
55
existentes. como algoritrnos. velocidad, utilizaci dc la metnoria y dcrns. debemos asumir que la planificacin es altamente especulativa. Si queremos mejorar el estado dcl arte y tenemos algn otro punto dbil en el proyecto. recortes de personal, debilidades en el personal, rcquerinlientos \agos, interfaces inestables coll contratados externos. etc . podemos tlrar poi la ventana la planificacicin prevista. Si queremos supcrar el estado del u.t. po. todos los medios, hagmoslo. Pcro no debemos esperar hacerlo
rpidamente
I
Tecnologa
L,l resto
c1e
: : -'--'Tacin : : -:-3me de
: = JZADA
_-_: f
trl
demasiado las I'cntajas proclamaclas de tecnologas que no se habian usado antes en (gencradores de informes. diseo orientado a objetos y C++) y demasiada poca inlormacin sobre 1o buenas que seran en cste entorno de desarrollo concreto. Cuando el equipo cicl proyccto sc aftrra slo a una nueva tcnica. uua nueva tecnologa o un proceso rigido. y espera resolver con ello sus problemas cle planificacin. est ineyitablemente equivocado (Jo-
nes.1994).
-:-r-f \u1A
34: sobreestimacin de las ventaias del empleo de nuevas herramientas O mtOdOS. Las organizaciones rejoran raranente su producrir itiad a grandes saltos. sin inrportar cutltas nuevls het'ralllicntas o lnetoclos ernpleen o lo buenos que sean. Los beneficios de las nuevas tcnicas
--:.ora de
:::=l:NCIA
-'
i: ---'laclon ::,
ZaClOn,,.
, I JZADA
son parcialmente desplazados por las curvas de aprendizaje que llevan asociadas. y aprerrdcr a utilizar nuevas tcnicas para aprovecharlas al mrimo lleva su tiempo. Las nucvas tcnicas tambin suponcn nucvos riesgos. que slo descubriremos usndolas. Ms bien experirnentaremos rncjoras lentas y continuas cn un pequeo porcentaje por proyccto en lugar dc grandes saltos. El equipo del Ejemplo 3.1 debera haber previsto omo mucho un l0 por 100 de ganancia en productividad por la utilizacin de las nuevas lecnologias en vez de asumir que cstaran cerca de duplicar su productividad. Un caso especial de sobreestimaciones de las nrejorls se producc cuando se reutiliza cdigo c1e proyectos anteriores. Este tipo de reutilizacin puedc ser una tcnica ntuy clectil'a. pero el tiernpo que Se gana no es tan grande como se espera.
35: Cambiar de herramientas a mitad del proyecto' Es un r iejo recurso que funciona raramente. A veces puede tencr sentitlo actualizar
56
incrementalmente dentro cle la misma lnea de productos, de la versin 3 1. Pero cuando estamos a la mitad de un proyecto, la curva de aprendizajc. rehacer el trabajo y los inevitables errores cometidos con nna herramienta totahrente nueva. normalmente anulan cualquier posible bencficio.
a la 3.1, o incluso a la
la
utilizacin clel control autonltico del cdigo fuente expone a los proycctos
a riesgos innecesarios. Sin 1. si dos desarrolladores estn trabajando en la r.lrisma parte del programa. deben coordinar su trabajo manualurente. De-
berian ponerse de acuerdo para poner la ltima versin de cada archivo en el directorio maestro y verificarlos con los dems antes de copiarlas en este directorio. Pero invariablemente alguno sobreescribir el trabajo del otro. Se desarrolla nuel'o cdigo con intcrfaccs dcsfasadas. y despus se tiene que redisear el cdigo al descubrir que se ha utilizado una versin eqr.ril'ocada de la interfaz. Los usnarios avisan de errores que no podemos reproducir porque no hay forma de volver a crear los elementos que han utilizado. Cclr.no media. los cambios en el cdigo fuente suelen ser de un l0 por 100 al mes. y con un control manual dcl cdigo fuente no deberan crecer (.lones, 1994). La Tabla 3.1. de la pgina siguientc. conticnc una lista completa de lcls errorcs clsicos.
3.4.
Captulo 3: Errores
clsicos
57
. -:-l',:
,.. .
con el
Errores relacionados Errores relacionados Errores rclacionados proceso con el producto con la tecnologa
ji Sndrome de la .I Planificacin 28. Exceso de e-rcesivamente requerilxientos panacea . ,,_ optirnisa 29. Cambio de las -l1. Sobreestimacin 15. Gestin de riesgos prcstaciones de las ,,,entajas del insuflciente . ernpleo de nuc,u,as 30. Desarrollaclorcs herramientas lb. Fallos de los rneticulosos I.ntodos contratidos i l. Tiras y aflojas en 11. Planiflcacin la negociacin 35. Cambiar de insul-icie nte herrarnientas a .. -. 32. Desarrollo mitacl del proyecto lE. Abanclono clc la orientaclo a la -:. planificacin bajo invcstisacin j6. Falta cle control Preslon automtico del . -' :-cdigo fuente 19. Prdida de tiernpo . en el inicio difuso . ,\ - r. -,.f) 10. Escatimar cn las
cr
actir, idades
iniciales
. ,
__
Diseoinadecuatlo
Escatimar cn el control de calidad
i. Jc- 23. Control - , .:..1': insuflciente de la directrva . . .lcl 2.1. Conr ergencia
.
.\ t-'r.
r r
:.
25. Omitir
tareas neccsarias en la
estimacin
26. 27.
rece en este captulo. Vaya incrementando la lista segn se vayan acabanclo proyectos para aprender de los errores cometidos por su equipo. E,stimule
58
aprcnder dc stts errores. Intercanbie cxpcriencias con los colegas de otras y aprenda de su cxpcrienciii. Exhiba en lugai r.'isible la lista de errores. y asi la gente la vcr y aprcr.rdcrii sin cometer cle nuevo los
orgrrlizacioncs
Inlsnt()S
eI.l'OfCS.
Temas relacionados
Estrategia para el desarrollo rpido: Captulo 2 Resumen de inspecciones: Captulo 23
RED AUERBACH. EL ENTRENADoR QUE MAS TIEMPo DUR con los Boston Celtics. y lrasta hace poco. el que ms veces gan cn la historia del baloncesto profesional. lanz un video titulado <Rcd on Roundball>. Auerbach nantiene el hecho de que los conocin.tientos bsicos son el punto clave para tener xito clentro del baloncesto prof'esional. Indica quc dc al rnenos 20 pascs de los que se realicen. slo van a tener xito aquellos en los que htn'o ulguien que cojct el haln. La clal'e del rito en el rebote radica en coqer el baln. Tencr una buena base fuc la estratc-gia quc Auerbach sigui para ganar ocho l'cccs seguidas los carnpeonatos dc la NBA. Para obtener rito en el software hay que prestar la urayor atencin posible a los fundamentos. Podra ser el Bob Cousy, Kareem Abdul Jabbar o Michael .lordan de su organizacirin softu,are. Podra disponer de una serie dc mtodos orientados a la planificacin. Pero si no utiliza los
conceptos bsicos dc desarrollo corno el punto nts importante del esfuer-
60
No'ralmente las personas suelen decirre que use buenos ntodos de ingeniera del software porque estn <bien>) o porque contribuir a aumentar la calidad. Srrs consejos parecen tcner connotaciones religiosas.
utilcelas. Si no funcionan. ino lo hagal Mi opinin es qllc se deberan utilizar los mtodos fundamentales de ingeniera del software descritos en este captulo, no porquc estn <bien>>. sino porque r.educen el coste y el tiempo de cornercializacin. Esta postura es menos terica de lo que se podran imaginar. En ur.l anlisis de l0 proyectos software. que las organizaciones seleccionaron como <los mejores proyectos)). Bill Hetzel lle-e a la conclusin dc que <si haba que birscar una conclusin que destacara por encima de las dems, se poda decir que los r.nejores proyectos lo eran porque se basaban
cn los fundamentos. Todos conocemos los fundamentos para un buen software; la diferencia est en que la mayora de los proyectos no lo hacen bien, y entonces tienen problemas> (Hetzel, 1993). Pero no piense cn esto como una cuestin dc fe. Si las tcnicas fLrncronan.
Tottos deseun <'stur en ttrt aclttipo cttrrtpen, p(r0 nude descu reLt/i:ur el
e.t.f
Bobb' Knirht
El mejor lugar para comenzar a buscar informacin sobre los funciamentos del desarrollo del software es un libro de texto de ingeniera del software en general. Este libro no es un libro dc texto cle ingenieria del soflware. de forn-ra que este captulo se limita a identificar los funclamentos del desarrollo. explicar cmo afectan a la planificacin clel desarrollo. cuantificar el impacto de su efecto (si es posible). y proporcionar inciicaciones para poder obtener ms informacin. En este captulo, los mtodos se dividen en mtodos de gestin, tcnicos y de control de calidad. Algunos dc los mtodos no se encuadran dcntro de u'a categora, de fbrma que podria hojear todas las catcgoras aunque est r.ns interesado en una en particular. pero primero sera conr,,cniente ver el Ejemplo 4.1 para situarse dentro del cclnrexro.
Ejemplo
4.1.
<<Nosotros pensbamos que estbarnos seguros de lo que estbamos haciendo>, dijo Bill a charles. <La versin 3 de nuestro programa de primas de ventas, PPV, que utilizamos para pagar las comisiones a los agentes, nos sali bastante bien. Pero con la versin 4 todo cambi.) Bill haba sido el jefe de las versiones de la I hasta la 4, y charles era un consejero tcnico llamado por Giga-Safe para que les ayudara a comprobar por qu ra versin 4 haba sido tan problemtica. <Cules fueron las diferencias entre la versin 3 y la 4?>, pregunt Charles. <Tuvimos problemas con las versiones I y Z>, respondi Bill, <pero con la versin 3, creamos que nuestros problemas haban quedado atrs.
|
(otrtulLtul
Captulo
4:
61
*utgtn de seguridad ;;to* ;;;"dimos ano tuvieron problemas co las tareas' herramientas ";;;"; desarrolladores casl
Todo fue fenomenal>' elementos de diseo que se les oividaban' 4?>' apunt Charles' .. <<Entonces, qu ocurri con la versin versin 3 erauna actualizacin evo<Fue algo totalmente diferente' La que se tuvo l"ti;;;;;;i" versin 4 era un producto completamente nuevo' que desarrollar desde el principio' q,nr ^^.^^^i'-ir^" adqut-
aplicar 1os conocimientos Los miembro* a"t la "{ttifo'intentaron Pero en una parte del proyecto' ridos en las versiones r at I "t PPV' ser ms com-
p"1t.".i0"
resultaron comenz u li't'ut' Las tareas tcnicas esttTareas.que^los.desarrolladores haban plicadas de lo que ,. problemas "tpttubu' 2 o,3 semanas Haba "*"" o"t p"riun turui z lu' la bata'"q""tun lt"rrie"tat de desarrollo' y el equipo perdi con algunas nuevas no conocan todas las reglas equipo lla con ellas. Los nuevos miembros del sobreescriban eny desaprovecharon trabajo y tiempo' porque del mismo, Al final, naie poda predecir cundo estre ellos sus archivos ",iuuuo. en que realmente 1o estuvo' La tara listo el producto, hasta el momento por 100'> ' versin 4 tuvo un retraso de un 100 - habia tentque L^Lr^ +^ bastante mal>' ug'"g' Charles' <Mencion <<Eso suena
planificacin.Elequipodedesarrollosufriaunretrasotrasotloenlaplanificacin'yningunosabacundoelproductoestararealmentepreparado, realmente lo estuvo' Al final' el equipo hasta uno o dos dias unit" t que de retraso sobre la planientreg .i pt;;t;;; t* un I 00 por 100
det PPV
ficacin inicial.> con la versin 4>' dijo Charles' <Esto es muy similar a lo que sucedi
<Escierto>,Billsacudilacabeza.<Pensquehabamosaprendidola
leccin hace mucho tiemPo 't pregunt Charles' <Qu sucedi con la versin 2?>' de una forma tns regular que <En la versin z, a Jttu*ollo procedi proyecto y la pianificatt:1: las^taeas en la versin 1. La estimacin del gstar mas ba1o conp"t*i.""t ms realistas, y el trabajo tcnico nareci desarrollo y el trabajo de troi. Hubo ,r."no, p.oii"*ut ton las herramientas haba estimado' Cometiede desarrolio llev el tiempo que se del equipo tiemgo de ms' ,on .iror., en la estimacin, poniendo el final del proyecto' el equipodescSbri Pero cuando ,. l u""undo tareas' Tamno hban incluio muchas de las que en la estimacin "tigit"f el diseo' 1o cual signific que tendran que bin descubrieron talloi en
(t
on
t
intiu)
62
volver a revisar del l0 al l5 pol l0c) del sistema. Tenr un gran retraso en la planificacin, donde tenian que incluir las tareas olvidaclas y la revisin.
Terminaron el trabajo. encontrando unos cuantos problemas ms, sufrieron otro retraso. v finalrnente entregaron el producto un 30 por 100 tacle. En este momento aprendirros a aadir un 30 por' 100 de margen de seguridad a las planificaciones.> <Y entonces, la versin 3 fue bien?>. prcgi.rnt Charles. <Desde luego>. agreg Bill. <Segn he entendido.,,se utiliz el misnro cdigo base en las versio_ nes de la I a la 3'l>, pregunt Charles.
(S>.
<,Trabajaron los mismos miembros del equipo en las versiones de la a la 3'l>
1
j.
anteriornlente. ) <Cracias>, dijo Charles. <Ha sido de gran ayuda.> Charles pas el resto del da hablando con el equipo de <lesarrollo, y por la noche se encontr de nuevo con Bill. <Lo que tengo que decirle puede que no sea fcil para usted>, dijo charles. <como consejero tcnico, he visto docenas de proyectos en un ao, y en toda mi profesin he visto cientos de proyectos en ms de cien organizaciones. El proceso seguido por las versiones de la I a la 4 del ppV es bastante comn. Anteriormente, me dio a entender que los clesarroiladores no controlaron el cdigo fuente de forma automtica, y esta tarde lo confirm hablando con ellos. Tambin confirm que el equipo de desarrollo no realizaba revisiones del cdigo o del diseo. La organizacin confia ms en la estimacin que se hace a ojo, aunque se tengan disponibles mtodos de estimacin ms fiables.> <De acuerdo>>, dijo Bill. <Todo eso es cierto. pero, qu tenemos que hacer para que no nos ocurra lo mismo con otlos proyectos como con la
de forma que
versin
4'?>
<Eso es parte de lo que puede ser duro de oir>, dijo Charles. aNo ne_ cesita hacer nada. Necesita mejorar en los fundamentos clel desarrollo del software o se encontrar con lo mismo una y otra vez. Necesita consolidar los tundamentos. En la parle de gestin, se necesita una mayor efectividad en la programaci', planificacin, seguimiento y meclidas. En la parte tcnica, necesita ms efectividad en la gestin de requisitos, diseo, construccin y configuracin. Y aderr-rs necesita un mayor control de calidad.> <Pero la versin 3 la hicimos bien>, objet Bill. <Desde luego>, agreg Charles. <Lo hicieron bien de vez en cuando. cuando trabajaron con un producto con el que estaban familiarizados, con miembros de un equipo con el que haban esta<io trabajando antes en el mismo producto. La mayora del eqr"ripo de la versin 3 haba trabajado en
l(
onurttd
software
63
. : . ,irr'! I , 2. Una de las razoues por las que las organizaciones pien_ - -..: r: n!-cesitan primar las bases de desarrollo del software es porque . -. :..,-rr er.ito. Pueden obtener resultados bastante buenos en la estimr. ' t'.-tnitlcacin de un producto en particular. piensan que lo hacen - . :i piensan que alguien lo puede hacer mejor.. r:' . >1r catacrdad de dc-sarrollo se construye sobre una base frgil. : !'..ir]r!'frte slo saben crno desarrollar un producto en particular *. .---: :,rill]a especfica. Cuando se enfrentan con cambios importantes en : -:r'i,,lt.ll. en las herramientas o elttorno de desar.rollo, o en e1 concepto ,- :.:,-.itctit" la capacidad de desarollo se derrumba. De repente se en_ ,-.r ::,r: tle nuer,o en el paso l. Esto sucedi con ppV 4 cuando tuvieron -; rr',i:rr el producto desde el inicio. con los desarrollaclores nuevos. i: - -: J: l.t causa dc que los resultados de la versin I y la 4 fueran muy
f ., Ir"ia pensaclo en eso antes. pero probablemente lleve razn>, ilijo :: ::..:nquilamentc. (En mi opinin, eso sllena a mucho trabaio. No s si : -::nos.justiticarlo.> :r no da rtray'or importancia a los fundamentos, lo har bien en los - ' rcrtrS sencillos, pero los proyectos complicados se vendrn abajo>, do
-,:i::. ,rr
stos son a los que realmente l.ray que prestar atencin>.
-:<:
s de gestin
- - . ,inclrrlrentos clc gestin tierrcn al rrenos tanta influencia corno los --r'!o: r-'n la planil-icacin de desarrollos. El Instituto de Ingeniera del ' -..',.lfc hr obscn'ado repeticlanrcnte clue las organizaciones que intr.u:- ::rpl111 la disciplina de la ingeniera dcl sofiu,are antes que la cle
-;r..rrn dc rrovcctcls estrr abocadas al
r-.
fl"acrso
(Burlton. 1992). La
ges-
,.:).rrrollo sicr.npre controla la planificacin real: y a vsces tambin con.:.,,i la planificacin progfantacir). Los liurdar.nentos de gestin consisten en cleterminar el tamao clei .':'orllicto (incluyenclo funcionaliclad, conplejictad y otras caractersticas .r-') prociucto). asignando los recursos apropiados a ur.r producto dc esc .nrao" crcando un plan para aplicar csos recursos y luego controlanrlo y .irligiendo los recursos para impedir que el proyccto sc desr,,e. En alguiros casos. los altos cargos clclegan explicitamente estas tareas de gestin .r los respor.rsrbles tcnictrs. y en r)tros casos simplcmente lo dcjan vacante . ocuprrdolo un rcsponsable o desarrollador rnotivado.
nrr'mllnrenlc controla las tres magnitudes dcl tringulo cle equilibrio ,.-,.rCLr lplanrficacin. coste y prodLrcto), aunqLre algunas veces el depar-::r.'1rto dL- marl(eting controla Ia cspecificacin del producto, y a veces - !11'partamento de dcsarrollo controla la planilicacin (normalmente. cl
64
Estimacin y planficacin
BEFERENCIAS CRUZADAS Para obtener ms informacin sobre la estimacin, vase el Captulo 8, "Estimacin.. Para obtener ms informacin sobre la planificacin. vase el Captulo 9.
. Planif icacin..
planificacin software. Primero se estima er tamao der producto, luego se estima el esfuerzo necesario para constrllir un producto con ese tamao y por ltimo se realiza una planificacrn, basndose en la estimacin del esfuerzo.
Los proyectos bien ejecutados pasan por tres etapas bsicas para crear una
La planificacin y estimacin son las bases crel desarrollo porque una estimacin incorrecta reduce la eficiencia en el desarrollo. Una estimacin correcta es una condicin necesaria para una planificacin efectrva. que aderns es esencial para un dcsarrollo eficicnte.
Planif icacin
como Philip w. Metzger seal en su clsico Managing a programrtring Project (Gestin de un Proyecto de programacin), la mala planificacin
se manifiesta como luente de problemas ms a menudo que cualquier otra causa (Metzger, l98l). A continuacin se enumera la lista de problemas que aparecen en el desarrollo software que l propone:
ERROF CLASICO
Mala planificacin. o Contrato mal definido. Mala planificacin. Definicin del problema inesrable. Mala planificacin. Falta de experiencia en la gestin. Mala planificacin. o Presin poltica. o Mala planificacin. o Control de cambios poco efectivo. . Mala planificacin. o Plazos poco realistas. o Mala planificacin.
En la revisin qr.re hizo de los mejores proyectos,
REFERENCIAS CRUZADAS Para ms informacln sobre estos temas. vanse el Captulo 12, " Equipo de trabajo"; el Captulo 13, "Estructura de{ equtpo'; el Captulo 7, "Planif icacin del ciclo de vida", ei Captulo 5. ,,Gestin de riesgos". y el Captulo 14, ,, Control del conlunto de prestaciones,,.
Bill
Hetzel en-
corrtr quc los mejores proyectos de la industria se caracterizabanpor una fuerte planificacin anticipada para definir las tareas y programaciones (Hetzel, 1993). La planificacin de un proyecto sofru'are incruye las actir''idades siguientes:
o ' .
Estimacin y planificacin. Determinar el nirmero de personas que deben participar en el equipo del proyecto, qu habilidades tcnicas son necesarias. cundo aumentar el nmero de personas y quin participar. Decidir cmo organizar el equipo.
65
. o .
Tomar decisiones estratgicas, tales como controlar el conjunto de prestaciones del producto y decidtr si hay que comprar o crear algunas partes del producto.
Seguimiento
Una vez que se haya planificado el proyecto, hay que seguir el proceso de desarrollo para comprobar que se est cumpliendo el plan previsto: que satisface sus objetivos de planificacin, coste y calidad. Normalntente el
Inicio
Visibilidad de un proyecto ideal Visibilidad de un proyecto eficiente Visibilidad de un proyecto con el modelo de ciclo de vida en cascada bien desarrollado Visibilidad de un proyecto tipco Prnnrocn del proyecto n
|l
r,j
i.r
Figura 4.1. La visibilidad del progreso cambia segn la clase de proyecto. El desarrollo eficiente ofrece ms visibilidad que el desarrollo
tpico.
66
DATOS REALES
proyect0.
capcrs.lones iufbnna que <el control cle un proccs.r softuarc es tan nlalo quc t.nuchos dcsastres softu'arc bastantc conociclos no se conoclerolr hasta el nrisnro cla del despliegue cspcraclo> (Jones. l995Lr). DcspLrs de cvaluar 59 nruestras cr,trc 1987 , 1993. cl Instituto de lngeniera dcl Soflivare dedLrjo que el 75 pol 100 rrecesitaban rrrcjorar-la supcr.r,.isin y el scguinticnto del rrovccto (Kitson l,Mastcrs. 1993). Cuanclo las ttr.gani_ zaciones han sitlo rsesoraclas. han intentando nrcjorar v han'r,uelto a soIicitar el'aluacicin. se ha visto que los principales problernas aparecen en las reas clc planificacitin. seguimicnto v supervisin cicl proyecto (Baumert. I995 ). El seguirniento cs una acti'iclad lundrmental cn el proceso de ln planilicacin softriare. Si no sc puccle seur-rir un llroyecto. uo sc pueclc gestionar. No hay fbrnra cic sabcr si e'l plan se cstii llevanclo r cabo ni lo quc se debera haccr clcspr.rs. No hay brrna dc controlar los rics,{os en el proyecto. un sc-euimiento cfectiio perrnite cletcctar-rpiclamc-nte los problcmas dc planificacin. cuanc'lo arn quccla tierrpo para pocler resolverlos. El clcsarrollo rirpiclo no se puecic llc'ar a cabo si no se sigue cl
Medidas
REFERENCIA CRUZADA Para obtener ms nformacln sobre las medidas. vase el Captuto 26.
,,Medidas,,.
una de las formas de progresar cn una orernizacicin soli*are. a largo plazo' es recoger datos trttricos para analizar la caliclad v prodLrctir.iclacl dcl
softlvare. Prcticar.ncnte todos los proyectos recogen clatos sobre los costes 1, la planificacin. Pcro cstos datos son rimitaclos y no avuclan mucho a reducir los costes o a clisntinuir la planificacin. Recogcr rns datos pr-redc suponcr n.lucho tiempo. Si aclems clc datos de coste v planificacin se obticnen datos histricos" corno el trrao dc los progran.ras en lneas cle cdigo. o cualcluier otra meclida" se tcr.rcirn las bascs para la planificacin de proyectos tirrr.rros. cFre srcmpre es nrcjor que cl instinto. cuando eljef'e cliga: <,podis dcsarrollar estc proclucto en
nucve nlcscs'.'r>. podremos dccir: (Nuestfa organizacirl nunca ha clesarrollado un producto de ese tamao en lrcl.los de I I n.reses. y el tienrp, nredio para tal producto es cle l3 nteses.> Para rcalizar el dcsarrollo cie fbrma eficientc'. se necesita teller unos
conocir.uientos bsicos sobrc las rnediclas o r.r.lcltricas ciel softu,are. Se nccesita conocer los ter-nas a los que af'ecta la recogicia de mecliclas. incluyenclo qu cantidad o cunto tie'nrpo se necc-srta para recogcrlos 1.,ctirno hacerlo. Se deberan tener conocimientos sobre mtricas cspeciticas utilizarlos para 1,
analizar el estado. la calidacl y la prodr-rctil'idacl. una organizacitin qire desee implantar el clesarrollo rpido neccsita recoger las meciidas bsicas
rara sabel cul es la r.elocidacl dc desarrollo v si es meior o Dcor a medicl qLlc transcul'rc el tiet.npo.
67
sistcma. y tclras csotricos" como puede ser la importancia que tiene la obscrvacicin para cl clesrn'ollo clel softu'are. Los liblos de Weinberg son entretcnidos y llenos clc ideas.
\\'einberg, Gerald N[.: Quulin' Sofitrure ,lluttugentent, t't1. l Srsen1s Thn/ririg. Neu'York: Dorsct House, 1992. \\'cinberg. Gerald M.: Quulitr So/iwure Iluttugerttettt, rol. 2: I'-it'st-Orcler :\Ieusttretttan l. Nc\\' York: Dorset Hcluse. 1993. \\'cinberg" Gerald M.: QuuIit.t Sttfi:r.ut'e ,11unugetrtettt, t'oI 3: C'cntgruent .1r'tiou. Ner.r York: Dorsct llousc. 199.1. \\'einbcrg. Gerald M.'. Ottulit.t' Sofitut'c .\lunagetuettt, vol. 4: .,lntic'ipLttittg
Chunge, Neri York: Dorset IIousc. 1996.
Plessnran. Roger S.: ,1 ,)lutruger'.s Guide to Sofin,are Engineering. Neu' York: McGrau-Hill. 1993. E,s uno clc los libros que nruestran una visin ger.reral sobre la gestin clc un prclyccto soft."r,are. Ir-rcluye una introduccin sobre la estlnlacin. anlisis de ries-eos. planificacin .v scguimiento. as cor.no el elcrncnto hur.nano. El iurico inconreniente es clue utiliza un fblmato a base de prcguntas y respuestas. lo cual poclra parecer ir.rct'rr.rcxo a algunos lectores. (Fue lo que rre suce-
cliti a mi.)
f'arr.regie N4ellon Univcrsity,$ofirvare Engineerin-9 Institute: Tlte Cutuhilit.t';\lutut'it.t'1'lodel; Guidelitrt,.s /itr Irttprcn,ing the Soliu'ure Proc'e.ss. Reading. Mass.: Addison-Wcsley. 1995. Estc libro clescribe un entorno a nivei clc gcsticin apto para la cornprensin, gcstin y mejora dcl
lo clcl sollu'rre. Tha,'er. Richalcl II.. cd.: Ttttot'ial: Stfivure Ettgineerittg Projecf Manugetneltt. L-os .Alanlitos. C'alif.: IEEE ('omputer Socict, Prcss. 1990. Es urra colcccirin de .15 artculos sobrc tcr.nas de gcstin dc proycctos solju'arc. Los artcr.rlos son algunos de los me'jorcs esludios disponiblcs sobrc tcrras de planil'icacin. organizacin. contratacin dL. persorral. dircccin y control de un proyecto softr,r,arc. Thaycr hacc una breve intrcldr-rccin y una serie cle correntarios sobre estos temas en cada uno dc los altculos. Gilb. Tom: Prirtt'iple.s ol So.fiu'ure Engineering Xlunugetnent. Wokingham, Englirnd: Adtlison-\\eslcy. 1988. La tesis que Gilb mantiene es ciue los directores de los llroycctos generahrrente no desean preclecir lo clue suceder con sus proycctos: prefiercn controlarlo. Gilb se centra cn cl clcsarrollo de los r.ntodos que contribuyen al control de la
clesarrol
68
planificacindelsoftrvare.ymuchosdelosmtodosqueseincluyen enestelibroestncatalogadoscomomtodosrecomendables. DeMarco.Tot:n,.Contl.tlllngSofiv,areProjects'NewYork:YourdonPress, lgs2.EllibrodeDeMarconopareceenabsolutoanticuado'Trataen lg82conlosmtsmosproblernasconlosquenosenfrentamoshoy: directivosqueloquierentodoyclientesquedeseantodoalmomento. PresentaestrategiaSdegestindeproyectos,prestandoespecialatencin a las mediciones' Metzger.PhilipW...MttnagingctProgrammingProjec,t,2dECl.E,ng]e-
wcloclCliff.s.N.J.:PrenticeHall.lg8l.Esunlibrodetextoclsico
alguienqu.l.oellibroconintencindesercrticoencontrarque
Metzgerantienecosasimportantesquedecirsobrelosproyectosde hoy. y adems lo dice bastante bien'
proyectos Aunque el libro siguiente no trate especficamente sobre sofilvare, puecle ser dc inters comentarlo' Random House' Grove, Andrerv S.: High Otptrt Managemen 1' New'York: de Intel y tiene.grandes 1983. Andy Grove es uno de los fundadores
utiliian.
para conseguir un desarrollo rpido' ' Lu..y c]onstantine cuenta una historia sobre el concurso de Software
delaAustralianComputerSociety(Constantine.l995b).Elconcursoconpara desarrollar y sisti en llamar a equipos formados por tres personas 6 horas' entregar una aplicacin de 200 puntos dc funcin en
69
a planificacin
nomlnal +200
Baja (o-25%)
Media (26-75%)
Alta (76-100%)
Leyenoa
+1
00
0 (meda)
_1 00
Figura 4.2. Resultados del factor .Uso de los mtodos de programacon modernos" (Vosburgh el al., 1984). No se puede alcanzar Ia productividad mxima sin utilizar "los mtodos modernos de programasis', Que en este captulo se denomnan "bases tcnicas,.
El equipo de Ernst y Young decidi seguir una metodologa de desarrollo formal. una versin reducida de la metodologa que acostumbraban a seguir: completa con actividades por etapas y entregas intermedias' Su propuesta incluy un cuidadoso anlisis y diseo, parte de 1o que se describe en este captulo como bases tcnicas. Muchos de sus competidores se rnetieron de lleno en la codificacin, y en las primeras horas. el equipo de E,rrrst y Young se qucd atrs. Sin embargo. al medioda el equipo de Ernst y Young era el eqtripo
dominante. Al terminar el da. este equipo perdi, pero no fue debido a su metodologia formal. Perdieron porque sobreescribieron accidentalmente algunos de 1os archivos. entregando lrlenos funciones al final del da de 1as que haban dernostrado que tenan a la hora del almuerzo. De forma irnica. lo que les hubiera salvado no era el habcr sido rnenos formales. sino el haberlo sido ms: es decir, la gestin de configuracin formal incluye copias de seguridad peridicas. Ellos se dejaron engaar por el error clsico de no utilizar un control efectivo del cdigo fuente. El mensa.je de esta historia parece suficientemente claro, pero algunos escpticos" incluyndorne a mi. quedaron sorprendidos: Realmente, ,debera el equipo de Ernst y Young haber garrado si tro hubiera sido por el embrollo de la gestin de la configuracin'? La respuesta es <s>. Reaparecieron unos rrleses ms tarde en otro concurso de desarrollo rpido (esta vez colr control de versiones y haciendo copias de seguridad) y ganaron (Constantine. 1996). En este caso. las metodologas formales merecieron 1a pena en un solo da. Si prestando atencin a las bases tcnicas se puede conseguir esta
70
dif-erencia en esta canticlrd de tiempo. irragincn la dif-erencia que puedc haber en un nro\/ecto de 6 a l2 rneses.
Gestin de requerimientos
REFERENCIA CRUZADA Para ms informacin sobre los mtodos tradicionales de la gestin de requerlmientos, vase
DATOS REALES
La gcstitirr de reqtrclirtticr'rl()s cs cl ploceso rluc c()l):istc cn leunir reqtrericn un documento. corrco clcctrnico. cuaderno dc interf-az dc usuario. prototipo e-jccutable o cualquier otro fbrmato: hacer un scguir.niento del disco y del cdigo; y gcstionar los car.nbios para cl restcl dcl proyecto. E,s r.nr-ry cornirn que los clesarrolladorcs se laurellten de los problerras rsociados a los rntodos de gestirr dc requerimientos tradicionalcs, sienc1o la rnayora cle cllos demasiado rgidos. Algunos rrtodos pucdcn ser denasiado rgidos. pero la altcrnativa que clfreccn suele ser peor. Un estuclio realizado en rns de 8.000 proyectos encontr que las tres razones principales por las que los proyectos cran entregados tarclc. por cncinra del prcsu-rucsto y cou nleuos firncionaliciacl dc la que se esperaba eran debiclas a los r.ntodos cle gestin de requerirlientos: falta de inforrnacin del usuario. rcquerimientos incompletos y cambios en los requerinrientos (Standish (iroup. 1994). Un estuclio realizado por cl Instituto de Ingcnicra del Sofir.vare lleg a la r.nisma conclusin: rrs dc la mitad de los proyectos quc se estudiaron tur,ieror.l una gestin inadccuada de los requclimientos (Krtson y Mastcr. 1993). E,l rito en la gestin de requerimicntos dependc dcl conocimicnto de suficientes r.ntodos difcrcntes. de tbrma que sea posiblc escoger los rna-s apropiados para un proyecto espccl-ico. A continuacicir.r sc rnilcstran la,s busc. dc llr ecstin dc reqtrcrirrricnlos:
r.r.ricntos: plasnrallos
o o
Metodologas de anlisis dc re querir.r.rientos. inclr.ryendo anlisrs cstructurado, anlisis estructurado de datos y anlisis oricntado a
ob.jetos.
Mtodos para crcar el modelo del sistcma. como diagramas de clascs. cliagramas dc 11Lrjo cle datos. diagranas enticlad-re lacin. notacitrn del diccionario de datos v diagrarnas de estado-transicin. Mtodos de comunicacin. como el Dcsarrollo Conjr.rnto cle Apli-
caciones (JAD). prototipaclo de la illterfaz de usuario y mtodo. genL'l'illcs de entrcr islas. Las relaciones entre la gcstin de requerimientos y los difclcntc. nrodelos ciel ciclo de r ic1a. incluyendo el prototrpado clolutir,o. 1 entrega por etapas. cspiral. cascada y codificar y corrcgir.
Lir gcstirt dc r'.'querinricrrttls propoleiona de clos fornlas dil'erent;Llna gran influcncia en la velocidad de dcsarroilo. En primer lugar. la recogida de requerimientos cs tur paso que tiende a hacerse sin prisas. conr-
71
-:
a=ALES
parado con otras actividades del desarrollo del software. Si esre paso se acelera sin perjudicar a la calidad. se puede disminuir en conjunro cl tiempo de desarrollo. En segundo lugar. obtener un requerimiento collro es dcbido en cl primcr paso non.nalmente cLlesta de 50 a 200 r eccs lDcnos quc si se espera a las 1'ases dc construccin o mantenimiento (Boehrn y papaccio. 1988). Un proyecto nomral tiene un 25 por 100 dc caurbios en los requerirnientos. Algunos mtodos de gestin de requerimientos pen.niten reciucir cl nmero de calnbios. Otros nltodos de desarrollo permiten reducir el costc de cada cambio en los reqr.rerin.rientos. Ima-uine el efecto cornbinaclo que ploducir'a por un lado reducir el nrero dc cambios de un 25 a un l0 por 100. y simultnearnente reducir el coste de cacla cambio en r-rn f'actor de 5 o 10. El desarrollo rpido podra estar a su alcance.
Diseo
Del misn-ro n.rodo quc tiene sentido crear una serie de bocctos antes cjc construir una casa" tiene sentido cfear una arquitcctura y un diseo antes dc construir un sistema softw'are. Un error de disco que no se detecta hasta la fase de comprobacin. necesita l0 r,eces rns tiempo para arrcglarlo quc si se detectara en la fase de disco (Dunn, 198.1).
es quc
,Est preparado cualquiera para hacer un bucn diserlo'l No. Mi opinin cl buen diserlo es un ter.na de convcrsacin comn cn el desarrollo
ciel sofln'are,y que realmente pocos desarrolladores haccn argo cle diseo. Un discador que trabajaba para Microsoti dijo que en 6 aos de en-
los conceptos de <r'r.rodularidacl> y <<ocultar.ricnto de infrlrmacin> (Kohen.1995). Los conccptos de rnodularidad v ocultamiento de informacirin son las
bascs del diseo. Ar.nbos son parte de las bascs del disco estructuraclo 1, del diseo orientado a objetos. Un desarrollador que no puecie cliscutir sobrc los conceptos de modularidad y de ocultamiento dc informacir.r es couro unjugador dc baloncesto qLle uo sabe regatear con cl baln. cuanclo consideramos quc Microsoft examina rigurosarncnte a sus candidatos. incluso antes de que seau entrevistados. llegamos a la cspantosa conclusin de
que Ia situacin cn el r.nundo dcl desarrollo del sofi'ur.'are cst considerablemente peor de lo quc se crea. que de 200 desarrolladores. 195
ticnen lagunas importantes en sus conocimientos soblc las bases del diserio. A contiuuacin se muestran los tenras bsicos sobre la arquitectr-rra y
el diserlo:
Principales estilos de dise'o (como cl cliserlo orierrtado a objetos, diseo estructurado. diseo orientado a la cstructnra dc datos).
72
Conceptos fundamentales del diseo (como ocultanriento de infbrmacin, modularidad, abstraccin. encapsulacin, cohesin, asociacin. jerarquia. herencia. polimorfismo, algoritmos bsicos y estructuras de datos bsicas). Enfbques de diseo estndar en reas generalmente duras (incluyendo manejo t1e excepciones. intenlacionaIizacin y localizacin. portabilidad, almacenamiento de cadenas. entrada/salida, gesti' de memoria, almacenantiento de datos. aritr.t.ltica en punto flotante. diseo de bases de datos, rendimiento y reutilizacin). Consideraciones dcl diseo propias del dominio de la aplicacin en la que se est trabajando (aplicaciones financieras, aplicaciones cientficas, sistenras <empotrados>, sistemas en tiempo real, softll'are de seguridad crtica y otros). Esquernas de arquitectura (como organizacin de subsisternas, niveles, estilos de comunicacin de subsistemas y arqLritectura tpica de sistemas). Uso de herramientas de diseo.
REFERENCIA CRUZADA Para obtener ms detalles sobre un tipo de diseo bien adaptado a los proyectos de desarrollo rpido, vase el Captulo 19,,,Diseo para el cambio".
Es posible desarrollar un sistema sin disearlo prir.ncro. Los principales sistemas se han implementado a travs de una codillcacin completa r una habilidosa depuracin, gran entusiasmo y mucho ms tiempo clel csperado (y sin diseo sistemtico). Sin embargo, el diseo es la base de l
construccin, planificacin. seguimiento y control del proyecto, y ese diseo efectivo es imprescindible para conseguir la velocidad rnxima d.. desarrollo.
Construccin
En cl monrento en que se llega a la construccin, ya se ha llevado a cabo i.. mayor parte del trabajo para el xito o fiacaso del proyecto. Tanto la gestir.: de requerimientos como el diseo ofrecen una mayor influencia en la p1.-
lt.
cambios pequeos pueden n-rarcar una gran diferencia en la planificaclo j: En la planificacin. la construccin no ofrece muchas oportunidacle . de reduccin, pero el trabajo de construccin es tan detallaclo y laborio.
quc es importante hacerlo bien. Si en un principio la calidad del c digo no es ptirna. es casi imposible volver hacia atrs y rrejorarla. Re" mente no es efectivo hacerlo dos vcces. Aunque la construccin es una actividad de bajo nir.'el, se presenr.l posibilidad de perder el tiempo en cosas poco eficientes o cle clespista:.en tareas que, aunque no son crticas, consufilen tiempo. por ejerl. se puede perder el tiempo en funciones que no tienen que ser brillanr... depurar cdigo intil o ejecutar con esnero pequeas secciones del sis -. ma antes de saber si realntente es necesario afinarlas.
74
para usted en este equipo. ya que hay bastantes mdulos que tienen demasiados fallos y tienen que volver a escribirse.> Esta frase delata a una persona que an no comprende por qu requiere tanto tiempo realizar un proyecto software. Cuando todo est dicho y hecho, prestar atencin a las bases de la construccin es tanto un mtodo de gestin de riesgos como un mtodo de ahorro de tiempo. Las buenas construcciones previenen la creacin de un nido de ratas de cdigo indescifrable, que hace que el proyecto se pare lenta y ruidosamente cuando una persona cae enferma, cuando se descubre un fallo crtico, o simplemente cuando se necesita hacer un cambio. Estos mtodos mejoran las previsiones y el control que se tiene sobre el proyecto e incrementan la probabilidad de entregarlo a tiempo'
ficacin del desarrollo. A veces. la SCM se implementa de forma que disminuye la eficiencia, pero es crtica en el caso de que se desee alcanzar la mxima velocidad de desarrollo. Sin la gestin de la configuracin, los
compaeros de equipo pueden cambiar parte del diseo y olvidarse comentarlo a los dems. Entonces, se puede implementar el cdigo de forma in-
ERROR CLASICO
cesitaban Masters, 1993). En los proyectos pequeos, la carencia de 1a gestin d.' configuracin aumenta un poco el porcentaje del coste del proyecto. Erl
75
grandes proyectos, la gestin de la configuracin es un elemento del canrino crtico (Jones. 1994).
Gestin de requerimientos Yourdon, Edward: Modern Structurecl Anctlysis. New York: Yourdon Press. 1989. El libro de Yourdon contiene un estudio sobre la especificacin de los rcquerimientos y el anlisis hacia el ao 1989. incluyendo
herramientas de modelizacin, proceso de recogida de requerimientos y temas relacionados. Observe que una de las secciones ms interesantes se encuentra oculta en un apndice: <Tcnicas de entrevista y
recopilacin de datos>. Hatley, Derek J., y ImLtaz A. Pirbhai: Strateges .f'or Reul-Time St;stent Specificatictn New York: Dorset House Pubhshing, 1988. Hatley y Pirbhai prestan especial atencin a los sistemas en tiernpo real, y extienden la notacin grfica utilizada por Yourdon al entorno en tiempo real. Gause, Donald C., y Gerald Weinberg: Explorng Requirements: Qttalin, Before Design. Nerv York: Dorset House, 1989. Gause y Weinberg
presentan un curso poco comn en el terreno de la gestin de requerimientos. Trata sobre la ambigedad, reuniones, resolucin de conflic-
tos, represiones, expectativas. razones por las que las metodologas no son suficientes y otros temas. E,llos evitan principalrnente los temas que incluyen otros libros de requerimientos y tratan los temas que otros libros evitan.
Diseo
Plauger. P. J.'. Prograntnting on Purpose.' Essa-r'.r on So.fiv'are Design. E,nglewood Cliffs, N.J.: PTR Prentice Hall, 1993. Es una coleccin reconfortante de ensayos que fueron originalmente publicados en la revista Computer Language. Plauger es un gran diseador que se dedica a una sran variedad de tenas relacionados tanto con ser disea-
76
dor como con el diseo en abstracto. Se extiende libremente por todo el mbito del diseo. y no se restringe exclusivamente a un estilo de diseo; esto es lo que hace que 1os ensayos sean tan reconfortantes. E,ste resultado es nico en su mbito y provocatlor. Mcconnell, Steve: code Complete. Redmond, wash.: Microsoft press. 1993. Este libro contiene varias secciones que tratan sobre el diseo, particularmente el diseo relativo a la construccin. Al igual que el libro de Plauger. describe varios estilos de diseo. Yourdon. Edward, y Larry L. constantine: structurecr Design; Fundamentals o/'a Discipline of'Computer Prograrn and svstents Design. Englewood cliffs, N.J.: Yourdon press, 1979. ste es un rexto clsico sobre el diseo estructurado creado por uno de los coautores (constantine) del artculo original. El libro est escrito con sumo cuidado. contiene temas completos sobre acoplamiento, cohesin, notaclones grficas y otros concepros importantes. Algunas personas han catalogado este libro como <tcnicamente difcil>, pero es muy difcil ensear un mtodo mejor que sus inventores originales. Page-Jones, Meilir: The Practical Guide to srructurecl svsents Design, 2d Ed. Englewood Clifls. N.J.: yourdon press, l9gg. Es un libro*de texto muy conocido que presenta el mismo contenido sobre el diseo estructurado que el libro de Yourdon y constantine y se escribi con un considerable entusiasmo. Algunas personas han encontrado el libro de Page-Jones ms accesible que el de yourdon y Constantine. Booch, Grady: object oriented Analt,si.s ancl Design; with Apptications. 2d Ed. Redwood City. Calif.: Benjamin/Cr-n-'ingr, tgg4'.'El libro de
Booch trata sobre los fundamentos tericos y prcticos del diseo orientado a objetos en ms de 300 pginas, y luego tiene 175 pginas ms sobre el desarrollo de aphcaciones orientadas a objetos en c++. Nadie ha hecho una defensa ms activa sobre el drseo orientado a objetos que Grady Booch, y es el volumen definitivo sobre el tema. coad, Peter, y Edward Yourdon: object-orientecl Design E,nglewoocl Cliffs. N.J.: Yourdon Press, 199 l. sta es una alternativa ms ligera al libro de Booch, y algunos lectores podran encontrarla como una introduccin ms sencilla sobre el diseo orientado a obietos.
Construccin
Mcconnell, Steve: Code Complete. Redmond, wash.: Microsoft press, 1993. ste es el nico libro conocido que trata sobre todos los temas claves
en la construccin, identificados en la seccin <Construccin>. Contiene listas de control de gran utilidad en algunos aspectos de la construc-
cin, as como datos que hacen ms efectivos los mtodos de construccin. El libro contiene varios cientos de ejemplos de cdigo en c.
Pascal, Basic, Fortran
y Ada.
77
Marcotty. Michael: Sofhrare Intplementatior. NewYork: Prentice Hall, 199 l. E,ste libro trata sobre temas generales involucrados en la construccin del software. prestando especial atencin a la abstraccin, complejidad, legibilidad y correccin. La primera parte del libro trata sobre la historia de la programacin, sr"rbcultura, equipos de programacin y cmo reparten el tiempo de forma general. El libro est escrito con ingenio y estilo. y especialmente las primeras 100 pginas sobre <el negocio de la programacin> estn muy bien hechas.
Los dos libros de Bentley que vamos a ver a continuacin tratan el tema de 1a programacin y explican claramente las razones por las que hay personas que consideran la programacin colo un tema muy interesante. El hecho de que la informacin no sea de fcil comprensin o no est rigurosamente organizada no evita que los libros traten unas ideas muy significativas, las cuales se leern en unos pocos rninutos y se utilizarn durante aos.
986.
Bentley. Jon: More Programnting Pearls: Confbssions o/'o Coder. Reading" Mass.: Addison-Wcsley, 1988. Maguire, Steve: I4lriling Solid Crde. Redmond. Wash.: Microsoft Press,
1993. Este libro describe los mtodos claves de construccin softwarc utilizados por Microsoft. Explica cmo minimizar los errores utilizando avisos (v'arnings) de compilacin, protegiendo el cdigo con sentencias de afirmacin, fortaleciendo los subsistemas con pruebas de integridad. diseando funciones de interfaz no ambiguas. comprobando el cdigo con un depurador y evitando los mtodos de progra-
rnacin peligrosos.
Bersoff, Edward H., et al.: Sofitt'ctre Configuration Manugemenl. E,nglewood Cliffs. N.J.: Prentice Hall. 1980. Babich, W.: So./lv'are Configuration Mttnogerel. Readiug. Mass.: Addi-
son-Wesley. 1986. Bersoff, Edward H., y Alan M. Davis: <lmpact of Life Cycle Models on Software Configuration Managemenf>, Contmunications o/' the ACM 34, nm.8 (August 1991):104-118. Estc artculo describe cnro la SCM est influenciada por las nuevas aproximaciones al dcsarrollo dei software, especialmente por el prototipado.
lidad proporcionan un apoyo fundamental para obtener la mxima velocidad de desarrollo. Cuando un producto software tiene demasiados errores, los desarrolladores emplean ms tiempo corrigiendo e1 software que escribindolo. Muchas organizaciones han descubierto que todo funciona mejor si no se cometen los errores en el primer paso. La clave principal para no cometer errores es prestar atencin a las bases del control de calidad desde el primer da.
las revisiones del cdigo. Otros proyectos (que van retrasados) intentan
ERROR CLASICO
recuperar el tiempo perdido reduciendo la planificacin de la prueba. lo cual es bastante sensible a la reduccin porque normalmente es el elemento del camino crtico al final del proyecto. Estas son algunas de las peores decisiones que una persona que desea maximizar la velocidad
de desarrollo puede tomar, porque al aumentar la calidad (desde el punto de
vista de menor tasa de dcfectos) se reduce el tiempo de desarrollo. La Figura 4.3 muestra la relacin entre la tasa de defectos y el tiempo de
desarrollo.
Pocas son las organizaciones que tienen una tasa de defectos extremadamente baja (mostrada en el extremo derecho de la curva de la Figura 4.3). en cuyo punto, la reduccin adicional del nmero de defectos incrementar la cantidad de tiempo de desarrollo. El tiempo extra es ne-
Tiempo de
desarrollo
=95%
100%
Figura
4.3. Relacin entre la tasa de defectos y el tiempo de desarrollo. En la mayora de los casos, los proyectos que se llevan a cabo con una tasa de defectos ms baja tambin tienen una planificacin menor.
7g
cesario cuando se aplica a sistemas crticos para la vida, tal como 10s sistemas de soporte vital de una lanzadera espacial, pero no cuando se aplica a desarrollo de software no crtico para la vida.
IBM fue la primera compaa en descubrir quc la calidad y la planificacin del software estaban relacionadas. Tambin descubrieron que los productos con menor nmero de defectos eran los que tenan una menor planificacin (Jones, 1991). En la actualidad, muchas organizaciones han desarrollado software con un nivel de defectos que le asigna una planificacin mayor de la necesaria. Despus de realizar un estudio de ms de 4.000 proyectos software, Capers Jones informa que una caiidad baja es una de las principales razones del retraso en la planificacin (Jones , 1994). Tambin dice que la baja calidad es una de las razones por las que se cancelan ms de la mitad de los proyectos. Un estudio del Software E,ngineering Institute descubri que un 60 por I 00 de 1as organizaciones tenan un control de calidad inadecuado (Kitson y Masters, 1993). En la curva de la Figura 4.3, estas organizaciones son las que estn al lado izquierdo de la 1nea que indica el 95 por 100. Algunos puntos alrededor del 95 por 100 son significativos por-]S
REALES
que ese nivel de supresin de defectos parece ser el punto en donde los proyectos generalmente alcanzan la planificacin ms baja, el menor esfuerzo y el nivel ms alto de satisfaccin del usuario (Jones, 199 1). Si despus de lanzar el producto se tienen ms de un 5 por 100 de def'ec-
tos, ser vulnerable a los problemas asociados a una calidad baja, y probablemente se tardar ms tiempo del necesario en desarrollar el
software.
::
OR CLASICO
Los proyectos que se realizan con prisas son particularmente vulnerables a engaos en cuanto al nivel de calidad del desarrollador. Cuando se tienen prisas, se hacen recortes porque <slo faltan 30 das para la entrega). En vcz de escribir un mdulo de impresin completamente distinto, se hace a partir del mdulo de visualizacin en pantalla. Se sabe que el diseo es malo, que no es ampliable o de mantenimiento fcil, pero no hay tiempo para hacerlo bien. Se tienen prisas por termlnar el producto. de fbrma que uno se siente obligado a tomar el camrno ms corto. Tres mescs ms tarde, el producto an no se ha terminado, y empiezan a aparecer los problemas derivados de esos recortes. Se encuentra con que los usuarios no estn contentos con la forma de imprimir, y que la nica manera de satisfacer sus requerimientos es aumentando significativamente la funcionalidad del mdulo de rmpresin. Desafortunadamente, desde hace tres meses el mdulo de impresin y el de visualizacin en pantalla se han ido entrelazando. Redisear el mdulo de impresin y separarlo del de visualizacin es una operacin difcil, que consume tiempo y es susceptible a errores.
80
El resultado es que en un proyecto que se supona que prestaba espe_ cial atencin al desarrollo de una planificacin lo ms corta posible, sc pierde el tiempo en las actividades siguientes:
ya que la mayora del cdigo se desechar. El tiempo que se ent_ ple cn la prueba y la depuracin del mdulo de impresin tambi.
sr.'
desperdici.
El tiempo adicional que se debe emplear en separar el mdulo de impresin del mdulo de visualizacin por pantalla. Se debe emplear tiempo de prueba y depuracin adicional en asegurar que el cdigo de visualizacin que se ha modificado sigue funcionando despus de separarlo ilel mdulo de impresin.
El mdulo de irnpresin, que debera haberse diseado como 'uevo una parte integral del sistema, se ha diseado fuera del sistema exlstente. no siendo sta la forma de diseo que se tena pensada.
DATOS REALES
DATOS REALES
Todo esto sucede, cuando el nico coste necesario (si se hubieran tomado las decisiones apropiadas en el momento correcto) era el diseo e implementacin del mdulo de impresin. Este ejemplo es bastante comn. El nmero de defectos que se presentan cuando los programadores lanzan productos bajo una excesiva presin en la planificacin es hasta cuatro veces mayor (.rones. 1994). En losproyectos que tienen problemas de planificacin, se suelen obsesionar por trabajar ms duro, en vez de trabajar de forma ms ingeniosa. prestar atencin a la calidad es como si fuera un lujo. El resultado es que los proyectos suelen funcionar mal, dando lugar incluso a problemas graves de planificacin. Decidir al inicio del proyecto no centrarse en la deteccin de errores equivale a la decisln de posponer la deteccin de defectos hasta mas tarde. cuando ser mucho ms cara y consumir tiempo. No es una decisin racional cuando el tiempo apremia. Si se pueden prevenir o detectar los defectos y eliminarlos pronto, se obtiene una ventaja significativa en la planificacin. Los estudios han demostrado que revisar errores de requerimientos, diseo y cdigo norrnalmente consume del 40 al 50 por 100 del coste total del desarrollo del softvu'are (Jones. 1986b; Boehm, 1987a). como regla emprica, cada hora que se emplea en prevenir defectos reduce el tiempo empleado en la recuperacin de 3 a 10 horas (Jones, 1994). En el peor caso. revisar un problema de requerimientos software, una vez que el programa est ejecutndose, normalmente cuesta de 50 a 200 veces ms de lo que costara revisar el problema cuando est en la fase de requerimientos (Boehm y Papaccio, 1988). Dado que ms del 60 por 100 de los errores se dan en tiempo de diseo (Gilb, 1988), se pueden ahorrar grandes cantidades de ticmpo detectando los errores antes de hacer la prueba del sistema.
81
En este libro se hace referencia a muchas ratios de coste, y como algunos de los valores son similares, las diferencias pueden llevar a confusin. A continuacin se muestra un resumen:
r r r
Cada hora que se emplea en las actividades de control de calidad, como son las revisiones de diseo, ahorra de 3 a 10 horas en el coste total. Un defecto en los requerimientos que no se detecta hasta la construccin o el mantenimiento necesitar una correccin que costar de 50 a 200 veces ms que si se hubiera hecho en la fase de reque-
rimientos. De forma ms general, un defecto que no se detecta al inicio (durante la fase de requerimientos o diseo) necesitar para su correccin de 10 a 100 veces ms esfuerzo al encontrarlo al final (durante la prueba) de 1o que habra costado corregirlo al principio. Al detectar un error, cuanto ms tiempo haya pasado desde el inicio, ms costar corregirlo.
-:
S REALES
7 por 100 de los mdulos (Jones. 1991). Barry Boehm infbrma que sobre el 20 por 100 de los mdulos en un programa son norntalmente responsables del 80 por 100 de los errores (Boehm, 1987b). Los mdulos con tasas de defectos elevadas son ms costosos y consumen ms tierrpo para ejecutarlos que los mdulos menos propensos a errores. El desarrollo de mdulos normales cuesta de 500 a 1.000 dlares porpunto de funcin. Los mdulos propensos a errores cucstan de 2.000 a 4.000 dlares (Jones, 1994). Los mdulos propensos a errores tienden a ser ms complejos que los dems mdulos del sistema, menos estructurados e inusualmente grandes. Suelen desarrollarse bajo una fuerte presin de planificacin, y no suelen estar completamente probados. Si la velocidad de desarrollo es importante, identificar y redisear los mdulos propensos a errores es prioritalio. Si la tasa de errores de un mdulo alcanza los l0 defectos por cada l00lneas de cdigo, habr que revisarlo para determinar si debera volverse a disear o implementar. Si el mdulo est mal estructurado, es excesivamente compleio o lareo. ha-
82
Desarrollo y gestin de proyectos informticos br que volverlo a disear e implementar desde el inicio. Se ahorrar tient,
Prueba
El mtodo ms comn de control de calidad es indudablementc la prueba d; ejecucin: encontrar crrores al ejecutar el programa y ver lo que hace. La. dos clases ms comunes de pruebas de ejecucin son las pruebas indil,iduales, en las cuales el desarrollador comprueba su propio cdigo para verificar que funciona correctamente, y las pruebas del sistema, en las que un probador independiente comprueba si el sistema funciona como se esperaba La eficacia de las pruebas vara enormemente. La prueba individua. puede encontrar del 10 al 50 por 100 de los defectos en un programa. \ laprueba del sistema del 20 al 60 por 100. Al unir las dos, la tasa acumulada de la deteccin de defectos suele ser menor del 60 por 100 (Jones, 1986a). Los errores que no se localizan se pueden encontrar por otras tcnicas de deteccin de errores. como las revisiones o los usuarios finales, despus de que el software se haya puesto en funcionamiento. La prueba es la oveja negra en lo que respecta a los mtodos de control de calidad, y en lo que respecta a la velocidad de desarrollo. Realmente se puede hacer tan mal como para retrasar la planificacin de desarro1lo, pero su efecto en la planificacin suele ser indirecto. La prueba descubre que la calidad del producto es demasiado baja para lanzarlo. y el producto tiene que retrasarse hasta que se pueda rnejorar. De esta manera. la prueba se convierte en el mensajero que comunica las malas noticias que afectan a la planificacin. La mejor forma de fomentar la prueba, desde el punto de vista del desarrollo rpido, es preparar un plan antes de obtener las malas noticias: establecer la prueba de forma que si se dan malas noticias, la prueba permita lanzar el producto tan pronto como sea posible.
DATOS REALES
Revisiones tcnicas
Las revisiones tcnicas incluyen toda clase de revisiones que se utilizan para detectar defectos en requerimientos. diseo, cdigo, casos de prueba o cualquier otro artefacto del proyecto. Las revisiones varan en cuanto al nivel de formalidad y eficacia, y juegan un papel ms crtico en la velocidad de desarrollo que las pruebas. Las secciones siguientes resumen los tipos de revisiones ms comunes.
Reuniones
DATOS REALES
Las reuniones informales son el tipo ms comn de revisin. El trmino <reunin> se define aproximadamente y se refiere a cualquier reunin en
83
la que dos o ms desarrolladores revisen el trabajo tcnico con el objetivo .1e r.t.rejorar su calidad. Las reuniones son tiles para el desarrollo rpido, porque se pueden utilizar para detectar errores antes de la prueba. Por elemplo. en el caso de que la prueba pueda detectar un defecto en los
requerimientos,
diseado
lo har despus de quc stos se hayan especificado, y codificado. Una reunin puede detectar un defecto en los
requerimientos. en tiempo de especificacin, antes de que se realice el rirseo o se codifique. Las reuniones pueden encontrar entre el 30 y el 70 por 100 de los errores en un programa (Myers, 1979; Boehm, 1987b; Yourdon.1989b).
Inspecciones
-Mr,
?*' &
4F+
::::'.:lA _: _::lA . ::-_en
:1, : :3 i : :::l
aS
. \F
- :
==ALES
Las inspecciones son un tipo de revisin tcnica formal, que ha demostrado scr extremadamente efectivo en la deteccin de errores en un proyecto. Con las inspecciones, los desarrolladores reciben una preparacin especial y juegan un papel especfico durante las mismas. E1 <moderador> se vuelca en trabajaren el producto para inspeccionarlo antes de la reunin de inspeccin. Los <revisores> examinan el producto antes de la reunin y utilizan listas de control para estimular su revisin. Durante la reunin de inspeccin, el <autor>> normalmente comenta el material inspeccionado, los revisores identifican los errores y el <secretario> guarda los errores. Despus de la reunin, el moderador genera un informe sobre la inspeccin, describiendo cada uno de los defectos e indicando lo que se har con ellos. A 1o largo del proceso de inspeccin, se recogen datos sobre defectos, se emplean horas corrigiendo estos defectos, y se emplean horas en las inspecciones, de forma que se pueda analizar 1a efectividad del proceso de desarrollo del software y mejorarlo. Al igual que en las reuniones, las inspecciones se pueden utilizar para detectar defectos tan pronto como colt la prueba. Se pueden utilizar para detectar errores en requerimientos, prototipos de interfaz de usuarios. diseo.
cdigo y otros artefactos del proyecto. Las inspecciones encuentran de un 60 a un 90 por 100 de defectos en un programa, lo cual es considerablemente mejor que las reuniones o las pruebas. Las inspecciones generan una planificacin neta, ahorrando de un I 0 a un 30 por I 00. ya que se pueden utilizar en el ciclo de desarrollo (Gilb y Graham, 1993 ). E,n un estudio realizado sobre un programa grande, se encontr que cada hora empleada en las inspecciones produca una media de 33 horas de ahorro, y las inspecciones eran 20 veces ms eficientes que las pruebas (Russell, 199 l).
al mismo tiempo tanto el sntoma como la causa fundamental del defecto. La prueba slo detecta el sntoma del defecto: el desarrollador an tiene que encontrar la causa en la depuracin. Las revisiones tienden a encon-
effi
4.4. No permita que le suceda esto! Cuanto ms tiempo permanezca un defecto, ms tiempo necesitar para corregirlo. Corriia los defectos oculto cuando estn en un estado inicial v son fciles de controlar.
Figura
software
85
de casos de prueba; prueba de mdulos; prueba de orden superior: depuracin; herramientas de prueba; y otras tcnicas. El libro es corto (177 pginas) y entretenido. La encuesta que incluye al principio pretende hacerle pensar como un probador y demuestra exactamente las formas en las que el cdigo puede tener defectos. Hetzel, Bill: The Complete Guide to Sofiw,are Testing, 2d Ed. Wellesley, Mass.: QED Information Systems, 1988. El libro de Hetzeles una buena alternativa al libro de Myers, ya que trata sobre el mismo tema, pero
86
Desarrollo y gestion de proyectos informticos de forma ms moderna. Adems de tratar 1o misrno que Myers, Hetzel tambin trata sobre la prueba de requerimientos y diseo, prueba de regresin. compra de software. y consideraciones de gestin. Con 284 pginas, tambin es relativamente corto, y e1 autor muestra una gran
Revisiones e inspeccones
Gilb, Tom. y Dorothy Graham: Sofiwure Inspection. Workingham, England: Addison-Wesley, 1993. Este libro hace un tratamiento mu1'
minucioso sobre las inspecciones. Tiene un enfoque prctico e incluye ejemplos de muchas organizaciones que han establecido programas de inspeccin. Freedman, Daniel P., y Gerald M. Weinberg: Handbook of Walkthroughs. Inspecions and Technical Revieu,s, 3d Ed. New York: Dorset House, 1990. Es un libro excelente en cuanto a revisiones de toda clase. incluyendo reuniones e inspecciones. Weinberg es el promotor originai de la <programacin annima>, la base de la mayora de las revisiones prcticas. Es enormemente prctico e incluye muchas listas de control tiles, informes sobre el xito de las revisiones en varias compaas, y ancdotas entretenidas. Se presenta con un formato de preguntas y respuestas.
Los dos artculos siguientes estn escritos por el desarrollador de inspecciones. Contienen lo nccesario para ejecutar una inspeccin, incluyendo los formularios de inspeccin estndares. Fargan, Michael E: <Design and Code Inspections to Reduce Errors in Program Development>>,lBM S-v-stems Journal, vol. t5, nm. 3, 197.
pp. 182-21 l.
Fargan, Michael E: <Advances in Software Inspections>>, IEEE Transuttions on Sofiware Engineering, July 1986, pp. 144-151.
87
Como adulto, suelo ver que los proyectos software fallan simplemente porque los programadores y directivos que trabajan en ellos no siguen las instrucciones. las bases del desarrollo de software descritas en este captulo. Es cierto que se puede desarrollar software sin dominar los fundalnentos, a veces incluso rpidamente. Pero a juzgar por los resultados de la mayoria de las personas, si los fundamentos no prevalecen al principio, no se tendr ei control necesario sobre el proyecto para desarrollarlo rpidamente. lncluso no se podr saber si tendr xito o fallar, hasta el final del proyecto. Suponga que va a comenzar un proyecto de pintura, y lee las instrucciones siguientes en la lata de pintura:
1. 2. 3.
dad; quite los restos con disolvente. Prepare la superficie utilizando un producto adecuado. Despus de que la superficie est completamente seca (al menos 6 horas), aplique una capa fina. La temperatura ambiente debe estar entre l5 y 30 grados centgrados. Djela secar durante dos
horas.
4.
Aplique una segunda capa fina y djela durante 24 horas antes de utilizarla.
,Qu sucedera si no se siguieran las instrucciones'l Si va a pintar la caseta del perro un martes por 1a noche, despus del trabajo, slo tendra dos horas para pintarla, y Fido necesita dormir esa noche. No hay tiempo para seguir las instrucciones. Podra decidir saltar directamente al paso 3, ,' aplicar en el paso 4 utra capa gruesa de pintura en vez de una fina. Si el tiempo es bueno y la casa de Fido es de madera y no est demasiado sucia, es probable que todo vaya bien. Despus de unos pocos meses, la pintura se podra agrietar, al ser la capa de pintura demasiado gruesa, o se podran desconchar las superficies de metal de los clavos al no estar preparadas adecuadamente, y habra que r olverla a pintar otra vez el prximo ao, pero realmente no tendra den-ra-
siada importancia.
,Qu sucedera
un Boeing 141'! En este caso, sera conveniente seguir las instrucctones de la lata. Si no quitara la capa de pintura previa, incurrira de forma significativa en la seguridad y en 1a eficiencia: una capa de pintura en un 7 47 pesa de 200 a 400 kilos. Si no prepara la superficie adecuadamente, el viento y la lluvia atacaran la pintura al ir a 600 millas por hora, y tendran efecto mucho ms rpidamente que un viento y una lluvia suaves en la caseta de Fido. Qu sucedera si se pintara algo que estuviera entre una caseta de un perro y unl4l , por ejemplo una casa? En este caso, las consecuencias de
88
realizat un mal trabajo serian menos severas que para uni4i, y ms que para una caseta de un perro. No desearemos volver a pintar la casa en dos aos, y desearemos tener mejores resultados que con la caseta del perro. La mayora de los proyectos software que tienen problemas de planificacin son proyectos del tamao de la casa o mayores, y son esros proyectos los que principalmente interesan en este libro. En tales proyectos. las bases de desarrollo ahorran tiempo. Si se tiene suficiente conocimiento sobre el problema, sera un proceso mucho menos rgido que los pasos de la lata de pintura. proporcionando toda la flexibilidad necesaria.
Se
pueden ignorar las instrucciones si se desea, pero hay que hacerlo teniendo conciencia del riesgo que conlleva.
Bibliografa general
La seccin bibliografa adicional del final de este captulo presenta un listado de libros de ingeniera del software. El motivo de leer un libro de
conocimientos generales sobre ingeniera del software no es adquirir un conocimiento profundo sobre un tema especfico, sino ver a grandes rasgos el desarrollo del software. dentro del contexto. Los siguientes libros describen una visin de los mtodos que este captulo describe como bases del desarrollo del software.
Sommerville,lan: Software Engineering, 6th Ed. Reading, Mass.: Addison-Wesley, 1996. En la sexta edicin de este libro se tratan de forma equilibrada los requerimientos, diseo, validacin de la calidad y gestin. Contiene diagramas tiles y cada tema tiene una seccin sobre bibliografa adicional. Con 700 pginas, no es necesariamente un libro que se tenga que leer de principio a fin, pero si se desea una breve descripcin sobre un tema en particular, probablemente se encuentre en este libro. Tiene un buen ndrce. Pressman, Roger S.'. So.fi,,rare Engineering: A Practitioner's Aptroar.lt 3d Ed. New York: McGraw-Hlll, 1992. Es una excelente alternatira al libro de Sommerville y es similar en contenido y tamao. No scconfunda con el ttulo I Practitioner's Approach (<Un enfoque prctico>); aun siendo excelente, este libro es ms adecuado como un libro para proporcionar una visin sobre temas importantes que para ser usado como libro orofesional.
Gestin de resgos
Contenido
5.1. Elementos de la gestin de riesgos 5.2. Identificacin de riesgos 5.3. Anlisis de riesgos
5 .1
in de
ie sgo s
4l
SI QUIERE APOSTAR SEGURO, VAYA A LAS VEGAS y juegue a las mquinas tragaperras. Los casinos han calculado minuciosamente las probabilidades y han determinado que pueden obtener beneficios incluso cuando las mquinas paguen hasta el 97 por 100 del dinero de la recaudacin. Las probabilidades se refieren a que si un da juega 1.000 dlares en monedas en las mquinas tragaperras, podr obtener hasta 970 dlares. Si no le gustan las mquinas tragaperras, puede jugar al blackjack y contar las cartas para poder aprovecharse de las probabilidades. (Pero no se equivoque al contarl) Si Las Vegas le resulta muy aburrida, el software puede ser su juego apropiado. Los proyectos de software incluyen un conjunto amplio de riesgos que pueden causar pesadillas a los apostadores de Las Vegas (cambio
90
Desarrollo y gestion de proyectos informticos sonal contratado poco fiable, f-alta de experiencia en la gestin, problemas de personal. problernas con la tecnologia, cambio de las leyes del gobier-
DATOS REALES
no y problemas con el desarrollo. por nombrar slo unos de ellos). La probabilidad de que un proyecto complejo finalice en el tiempo estimado tiende a cero. Las probabilidadcs de que un proyecto complejo se cancele se aproximan a las de acertar allanzar una moneda al aire (Jones, l99 l). En I 988, Peat Marwick encontr que sobrc el 35 por 100 de 600 empresrs encuestadas han tcnido al menos un proyecto que se les ha ido de las manos (Rotht-eder, 1988). Los daos producidos por proyectos descontrolados hacen parecer a los combates de Las Vegas tan tranquilos como tonrar una taza de t con la Reina. Allstate comenz a automatizar en 1982
sus actividades aclministrati'u as. Planificaron una temporizacin para crnco
y un presupuesto de 8 ntillones. Seis aos ms tarde y l5 millones despus, Allstatc establcci una nueva f'echa lmite y estim un nuevo presupuesto de 100 millones de dlares. En 1988, la Westpac Banking corporation clecidi redefinir sus sistemas dc informacin. Planificaron un proyecto cle 85 nlillones de dlares para cinco aos. Tres aos ms tarde. despus de gastar 150 millones con poco xito, asumi sus prdidas. cancel el proyecto y elirrin 500 empleos de desarrollo (Glass, 1992). Incluso los combates de Las Vegas no son tan crueles. Hay una serie de mtodos de gestin de riesgos que pueden prevenlr dcsastres como stos, y que le harn aprender mucho de ellos antes de lo que aprcndera a contar las cartas en eI blackjack. De acuerdo que hay pcrsonas queJuegalt al blackjack sin haber aprendido a contar las cartas. y personas que planifican proyectos de software sin haber aprendido mucho acerca de la gestin de riesgos. Pero el hecho es el siguiente: si no controla los riesgos, no podr crear desarrollos rpidos. Como dice Tom Gilb, <si no controlas los riesgos, cllos te controlarn a ti>. E,l control de riesgos tiene una serie de problemas. Los proyectos que llevan un control de riesgos efectivo son menos excitantes que los proyectos que no lo hacen. Perder el rniedo que supone tener que decirle a su jefe que el proyecto tiene que retrasarse tres meses debido a un problema que nunca haba mencionado. Dejar de ser un hroe por trabajar noches y fines de semana durante seis meses sin descanso. Para muchos de nosotros, stos son problemas con los que se puede vivir. El control de riesgos en software es un tema relativamente nuevo, pero ya eriste infbrmacin suficiente como para estudiarlo con profundidad en este captulo. El estudio de este captulo se centra en los riesgos en la planificacin e ignora los riesgos sobre costes y produccin, salvo cuando af'ecten a la planificacin. Este captulo tambin se centra en los aspectos prcticos del control de riesgos de planificacin. La teora del control de riesgos es interesante e inrportanre. pero es menos til, por lo que la hemos evitado, mostrando en la seccin de bibliografa adicional al final del captulo dnde puede encontrar ms informacin.
aos
Captulo 5: Gestin de
ilesgos
91
Ejemplo
5.1.
<He recitrido el visto bueno para realizar Square-Plan 2.5>, le dijo Kim a Eddie. Kim y Eddie eran responsables de proyectos de Square-Tech, una empresa de software <prt--porter>. <Tengo cuatro meses para entregar la actualizacin, y creo que va a ser un bombazo.> Kim entreg su ltimo proyecfo, Square-Calc 3.0, con mucho retraso. Eddie ha realizado bien su primer proyectoo Square-Plan 2.0, y Kim est ansiosa por demostrar que la diferencia se ha debido a que su producto era mucho ms complejo que el
de tddre.
<Yo de ti estara ms preocupado>, le dijo Eddie a ella. <He visto la especificacin de 1a 2.5, y pienso que con el equipo actual te quedan ms de seis meses de trabajo. Has pensado en utilizar el equipo de la 2.0?> <S, claro. Y tambin he pensado en ajustar el plan de trabajo a cuatro meses. La semana pasada le un articulo sobre desarrollo externo, y he encontrado a alguien que se puede encargar de las actualizaciones de los grficos, 1o que reducira el plan en dos meses.>> <<Bueno, spero que sepas 1o que ests haciendo>, le dijo Eddie. <He visto a mucha gente fracasar por culpa del personal contratado. ,,Cul es tu plan para el control de riesgos?> <He contratado a una persona de prestigio>, drlo Kim. <He comprobado sus referencias y estoy segura de que har un buen trabajo. Le echar un ojo de vez en cuando. Esto es un negocio arriesgado, y algunos riesgos son inevitables. Cuando tengo tanto trabajo por hacer, no pienso perder mi tiempo en trabajos intiles.> Eddie pens que ella debera tener ms cuidado, pero Eddie y Kim ya pasaron por esto antes. l haba aprendido a no discutir cuando ella ya habia decidido lo que iba a hacer. <<Buena suerte), le dijo Eddie. Kim se reuni pronto con la persona contratada y le dio una especificacin para las acfualizaciones de los grficos. Chip, la persona contratada, le dijo que las especificaciones le parecian claras y que se pondra a
trabajar enseguida.
Seis semanas ms tarde, Kim llam a Chip para comprobar el estado del trabajo. <Todo va bien>, dijo 1. <He estado trabajando en un proyecto muy importante de otra empresa, por lo que todava no he podido avanzar mucho. Pero todavia tenemos tres meses y medio para realizar un trabajo de dos meses, as que no te preocupes.)) <<Eso suena bien>, 1e dijo Kim. <<Avsame si necesitas algo. Te volver' a llamar dentro de seis semanas para tratar la integracin.r Seis semanas ms tarde, Kim volvi a llamar para comprobar la evolucin del trabajo. <El ltirno proyecto me llev ms tiempo del que esperaba>, le do Chip. <<He comenzado la actualizacin de los grficos, y he estado trabajando como un loco, pero necesito analizarlos ms profundamente, pienso que tendr que dedicarle otros tres meses.)) ((ontinudl
Kim casi se ahoga. Esto hara que el tiempo de desarrollo total fuese seis meses en lugar de cuatro. <Tres meses? Me ests tomando el pelo? Necesito ese cdigo en dos semanas para empezar con la integracin. Se supone que ya lo tenas que tener hecho.> <<Lo sientoi;, dijo Chip. <<Pero no es culpa mia. Esfo tiene ms trabajo del que haba estimado. Lo terminar tan pronto como pueda.> Chip desanoll el software en tres meses, pero el proyecto se retras otro mes ms por los problemas de integracin con el cdigo del equipo propio. .41 final el tiempo total de desarrollo fueron siete meses, en lugar de los cu.atro meses previstos. Kim acab pensando que Eddie le habia hecho cargar a ella con un proyecto que l nunca hubiese podido llevar a cabo.
tln de riesgos. El objetivo de este captulo es describir cmo estudiar los riesgos de 1a planificacin software en 1os niveles 4 y 5, en lugar de en ros niveles del 1 al 3. Si est controlando riesgos al nivel 1,2 o 3, ya ha perdido la batalla de la planificacin. Generalmente, la gestin de riesgos se divide en valoracin de riesgos y control de riesgos. Adems, se compone de varias subcategoras. como se muestra en la Figura 5.1. Esto se explica en los siguientes epgrafes.
Tabla
5.1.
l. 2.
3.
Crntrol de crisis. Apagar el fuego; controlar los riesgos slo cuando se han convertido en problemas.
Mitigacin de riesgos. Planificar con antelacin el tiempo que necesitaria para cubrir riesgos en el caso de que ocurran, pero no intentar eliminarlos
inicialmente. Prevencin. Crear y llevar a cabo un plan como parte del proyecto sofiware para identificar riesgos y er itar que se conr iertan en problemas.
5.
Elintinar:i(n de lus causas principules. Identificar y eliminar los factores que puedan hacer posible la presencia de algn tipo de riesgo.
de la gestin de riesgos
Control de nesgos Resolucin de riesgos Monitorizacin de riesgos
Figura
5.1. La gestin de riesgos se compone de estimacin y control riesgos. Fuente: Software Risk Management (Boehm, 1989).
Estimacin de riesgos
La estimacin de riesgos se compone de identificacin de riesgos, anlisis de riesgos y asignacin de prioridades a los riesgos:
o o o
La identi.licac:in cle riesgos genera una lista de riesgos capaces de romper la planificacin del proyecto. El anlisis de riesgos mide la probabilidad y el impacto de cada riesgo, y los niveles de riesgo de los mtodos alternativos. La asignacin de prioridades a los riesgos genera una lista de riesgos ordenados por su impacto. Esta lista sirve como base para el control de riesgos.
Control de riesgos
El control de riesgos se compone de planificacin de la gestin de riesgos, resolucin de riesgos y monitorizacin de riesgos:
La plani.licacin de la gestin de riesgos genera un plan para tratar cada riesgo significativo. Tambin asegura que los planes para la gestin de riesgos de cada uno de los riesgos individuales son consistentes entre s y con el plan del proyecto. La resoluc:in de rie.sgos es la ejecucin del plan para resolver cada
o La monitorizacin
uno de los riesgos significativos. de riesgcts es la actividad del progreso de la monitorizacin dirigido a la resolucin de cada elemento del riesgo. La monitorizacin de riesgos tambin puede incluir la continuacin de la actrvidad de la identificacin de nuevos riesgos y volver a considerarlos en el proceso de la gestin de riesgos.
94
Los apartados dc la si-truiente seccin explican cada uno de estos aspectos de la gestin de riesgos en su aplicacin a la gestin de riesgos en la planificacin soltware.
inlitrntucitin soltra
riesgo.s, a.stti bu.scundo
pnthlenr us.
Tom Gilb
en un proyecto de clesarrollo rpido, que soll olvidar los tres pilares del desarrollo rpido, descritos en cl captulo 2, <E,strategia para el desarrollo rpido>:
El primer paso en la gestin de riesgos es la identiflcacin de los factores que introducen un riesgo en la planificacin. Hay tres riesgos generalcs
o . o
comcter uno de los errores tpicos clescritos en el captulo 3, <Errores claslcos). lgnorar las bases del desarrollo descritas en el Captulo 4, <Base,s del desarrollo de software>. Fallar en la gestin activa dc riesgos descnta en este captulo.
Una vez que haya superado cstos riesgos generales, habr encontrado
casi todos los tipos de riesgos de los proyectos software. Sin embargo. hay una scrie de errores que aparecen una y otra vez, y una de las formas ms l'ciles de identificar los riesgos es comprobar su proyecto frente a una lista dc riesgos de la planificacin. E,l apartailo siguiente proporciona una lista crhaustiva de los posibles riesgos en la planificacin.
Si los riesgos de esta tabla le son familiares. se debe a que cada untr de ellos ya sc coment en los errores clsicos del captulo 3. La nica diferencia entre un error clsico y un riesgo es que los errores clsicos se
cometen con mayor frecuencia. Los riesgos son menos colrunes o pueden
ser nicos en su proyecto. cada uno de los riesgos dc la Tabla 5.2 se describe con ms detalle en la Seccin 3.3, <Relacin cle errores clsicos)), y la forma de controlarlos se estudia posteriormente en este caDtulo. en la Tabla 5.6.
Captulo 5: Gestin de
riesgos
95
Tabla
5.2.
l. 2. 3. 4. 5. 6. 7. u. 9. 10.
Pclsonrl rncdioele.
Error en la contratacin.
Dif-erencias entre el
pe
untl Ctn-
199,1).
categoras, pero sin un orden concreto. Si la lista le parece abrumadora, concntrese en los riesgos ms comunes de la seccin anterior. Adems de la lista de riesgos de esta tabla, la mayora de los proyectos tienen riesgos que son caractersticos de ese proyecto: <Joe est dispuesto a abandonar, a mcnos que se pueda llevar su perro al trabajo, y la direccin an no ha decidido si va a pemitir que Bowser entre en la oficina.> Estc tipo de riesgos los tendr que identificar usted mismo. Tabla
5.3.
Crescin de Iu planificocitr
Las deflniciones de la planificacin, de los recursos r del producto han sido impuestas por el cliente o un directivo superior, v no estn equilibradas.
La planificacin se ha basado en la utilizacin de pelsonas especf-icas de un cquipo, pero estas personas no cstn disponibles. No se puedc construir un producto de tal envergadura en cl tiempo asignado. El producto es ms grande que cl cstirnado (en lneas de cdigo. en el nmero de puntos de funcin. o en relacin con el tamao del pro'ecto anterior). El esfuerzo cs lnayor que el estimado (por lineas de cdigo, nlrel'o de puntos de funcin. rndulos, etc.).
\( onltnltu
)
96
Tabla
5.3.
(Continuat.irjn)
La reestimacin debida a un retraso en la pranificacin es demasiado optimisre o ignora la historia del provecto.
La presin excesiva en la planificacin reduce la prodr.rctividad. La fecha final ha cambiado sin ajustarse al mbito der producto o a los recursLr: disponibles.
un retraso
en una tarea procluce retrasos en cascada en las tareas clependientes. Las reas desconocidas del producto llevan rns tiernpo del esperado en el dise.
y en la implernentacin.
Organizacin y gestin El proyecto carece de un promotor efectivo en los superiores. El proyecto languidece demasiado en el inicio difuso. Los despidos y las reducciones de Ia prantiila reducen la capacidad del equrpo. Direccin o marketing insisten en tomar decisiones tcnicas que alargan la planificacin. La estructura inadecuada de un equipo reduce Ia productividad. El ciclo de revisin/decisin de ra directiva es ms lento de lo esperado. El presupuesto varia el plan clel proyecto. La direccin toma decisiones que reducen la motivacin del equipo de
desarrollo. Las tareas no tcnicas encargadas a terceros necesitan ms tiempo del esperado laprobacin del presupuesto. aprobacin de la aclquisicin de material. revisiones legales. seguridad, etc.).
desarrollo ineficiente.
La direccin pone ms nf'asis en las heroiciirades que en informarse exacramente del estado' lo que reduce su habilidad para detectar y corregrr problernas.
Entorno de desarrollo
Los espacios no estn disponibles en el momento necesario. Los espacios estn disponibles pero no son adecuados (por ejemplo, falta de telfonos, cableado de la red, mobiriario. material d" oii.inu, .t..).
Los espacios estn sobreutiliza<Jos, son ruidosos o dlstraen. Las herramientas de desarroilo no estn disponibles en el momento
deseado.
Captulo 5: Gestin de
riesgos
97
Los usuarios no han realizado la compra del material necesario para el proyecto v por tanto no tienen la infraestructura necesana.
No
se ha solicitado informacin al usuario, por lo que el producto al final no se ajusta a las necesidades del usuario, y hay que volver a crear el producto.
Clienfe El cliente insiste en nue\os requisitos. Los ciclos de revisin/decisin del cliente para los planes, prototipos y especificaciones son ms lentos de lo esperado. El cliente no participa en los ciclos de revisin de los planes. prototipos y
especificaciones, o es incapaz de hacerlo, resultando unos requisitos inestables y la necesidad de realizar unos cambios que consumen tienrpo.
El tiempo de comunicacin del cliente (por ejernplo. tiempo para responder las preguntas para aclarar los requerimientos) es ms lento del esperado. El cliente insiste en las decisiones tcnicas que alargan la planificacin. El cliente intenta controlar el proceso de desarrollo, con lo que el progreso ms lento de lo esperado.
es
Los componentes suministrados por ei cliente no son adecuados para el producto que se est desarrollando, por lo que se tiene que hacer un trabajo extra de
diseo e integracin.
Los componentes suministrados por el cliente tienen poca calidad, por lo que
tienen que hacerse trabajos extra de cornprobacin, diseo e integracin. Las herramientas de soporte y entornos irnpuestos por el cliente son incornpatibles, tienen un bajo rendimiento o no funcionan de forma adecuada, con lo que se reduce la productividad.
ificaciones.
98
Tabla
5.3.
(('tn/intutt.in\
Personal confrutado El personal contratado no s,ministra ros cornponentes en el periodo estableciclo. El personal contratado propo.ci.ra rnaterial de una caridad inaceptable. por lo quc hay que aaclir rrn tientpr.r e\tra para ntejorar la calidacl.
Los pro"'ecdorcs no se irrtegran cn dc rCndilnir'nt() quc se ltcccsilr.
Req
c-r
uisitos
Los recluisitos se han aclaptado. pero continan cambiandcl. Los requisitos llo sc han deflnido correctaurcnte, y su reclefinicin aurnenta el intbito del proyccto.
Se aaden requisitos extra. Las paftes del proyecto que se no se han especifrcado crararnente consumen
Producfo
Los mdulos propensos a tener errores necesitan rns trabajo cre comprobacin. diseo e implementacin. Una calidad no aceptable rcquiere de un trabajo de comprobacin. diseo irnplementacin supcrior al esperaclo.
e
El desarrollo de una interfaz de usuario inadecuada requiere'or'er a disearra y a implernentarla. El desarrollo de funciones softr'vare innecesarias alarga ra planificacin, Alcanzar el mbito der procructo o ras restricciones de .,,elociclad requiere nr.
tiempo del espcrado. incruvendo el tiempo para'orver a disear i-pr.,n.nt' " unos requisitos rgidos de compatibilidaci con el sistema existente necesitan un trabajo extra de comprobacin. diseo e irnplernentacin. Los requisitos para crear intcrfaces con otros sistemas. otros sistemas cornprejo:. u otros slstemas que no estn bajo er control del equipo de desarr.llo suponei-. un diseo, irnplementacin y prueba no pevrstos.
der
El traba.io con un entorno software desconocido causa probremas no prevrstos. El trabaf o con un entorno hardrvare clesconocido causa problemas imprevistos. El desa'ollo de un tipo de cornponente nue',o para ra organizacin consume tns tier.npo del esperado.
Captulo 5: Gestin de
riesgos
99
Tabla
5.3.
(Conrinuutin)
planificacin. Fuerzas meyores El producto depende de las nonnatiras del gobierno. quc pueden carnbiar de forma inesperada. El producto depende dc cstndares tcnicos rror,'isionalcs. que pueden carnbiar de fonna inesperada. Personal
La contratacin tarda r.ns de lo espcrado. Las tareas prelirninares (por cjcmplo. forrnacin. finalizacin de otros pro-yectos. adquisicin de licencias) no se han cornpletado a tientpo. La falta cle relaciones entre la direccin ' el equipo de desarrollo ralentiza la toma de decisiones. Los nrierubros de I equipo no se irnplican en el provecto. y por lo tanto no alcanzan el nivcl de rendimiento deseado.
La falta de rnotivacin y de moral reduce la productividad. La f-alta de la especializacin necesaria aumenta los def'ectos repetir el trabajo.
herramientas cl entornos nuevos.
1'
la necesidad de
El personal neccsita un tienrpo r-xtla para acostulnbrarse a trabajar con El personal necesita un tieurpo extra para acostul-nbrarse a trabajar con
hardrvare nuevo.
El personal contratado abandona el proyecto antes de su finalizacin. Alguien dc la plantilla abandona el prol'ecto antes de su finalizacin. La incorporacin de nuevo pelsonal de desarrollo al prol,ecto ya avanzado. y el aprendizaje v conlunicaciones c\tra irnprer istas rcducen la eficiencia de los rnicnrbros dcl equipo e\istentes. Los uriernbros del equipo no trabajan bicn juntos.
Los conflictos entre los mier-nbros del equipo conducen a problenras cn la colnunicrcin y en el diseo. crrores en la intcrfaz y tener que repetir algunos trabajos. Los miernbros problemticos de un equipo no son apartados. influyenclcr negativamente en la rnotir,'acin de I rcsto del equipo. Las personas ms apropiadas para tlabajar en el prcll,ecto no estn disponibles.
(LIttlnt!Lt\
100
Tabla
5.3.
(Contintnt'in)
Las personas ms apropiadas para trabajar en el proyecto estn disponibles, pero no se pueden incorporar por razones polticas o de otro tipo.
Se necesitan personas para el proyecto con habilidades muy especificas y no se encuentran.
Las personas clave slo estn disponibles una parte del tiempo. No hay suficiente personal disponible para el proyecro. Las tareas asignadas al personal no se ajustan a sus posibilicrades. E,l personal traba.ja nts lento de lo esperado.
El sabotaje por parte de la direccin del proyecto deriva en una planificacin ineflciente e inefectrva. El sabotaje por parte del personal tcnico cleriva en una prdida de trabajo o en un trabajo de poca calidad, por Io que hay que repetir algunos trabajos. Diseo e implementacin
l.
que
Un diseo demasiado complejo exige tener en cuenta cornplicaciones innecesarias e improductivas en la implerr-rentacin. Un mal diseo implica volver a disear e implernentar. La utilizacin de metodologas desconocidas deri'a en un perodo extra de fbrmacin y tener que volver atrs para corregir los errores iniciales cometidos en la metodologa. El producto est implementado en un lenguaje de bajo nivel (por ejempio, ensamblador) y la productividad es menor de la esperada. No se puede implementar la funcionalidad deseada con el lenguaje o bibliotecas utilizados; el personal de desarrollo tiene que utilizar otras bibliotecas. o crearlas l mismo para conseguir la funcionalidad deseada.
Las bibliotecas de cdigo o clases tienen poca calidad, y generan una cornprobacin extra, correccin de errores y la repeticin de algunos trabajos.
Se ha sobreestimado
Los componentes desarrollados por separado no se pueden integrar de forma sencilla. teniendo que volver a disear z repetir algunos trabajos.
Proceso
La burocracia produce un progreso ms lento del esperado. La falta de un seguirniento exacto del progreso hace que se desconozca que el proyecto est retrasado hasta que est muy avanzado.
(continiru
t
101
Tabla
5.3.
(Continuac'in\
Las actividades iniciales de control de calidad son recortadas, haciendo quc sc tenga que repetir el trabajo.
Un control de calidad inadecuado hace que los problemas de calidad que afectan a la planificacin se conozcan tarde. La falta de rigor (ignorar los fundamentos y estndares del desarrollo de software) conduce a fallos de comunicacin, problemas de calidad y repeticin del trabajo. Un consumo de tiempo innecesario. El exceso de rigor (af'erramiento burocrtico a las polticas y estndares de software) lleva a gastar ms tiempo en gestin del necesario. La creacin de informes de estado a nivel de directiva lleva ms tiempo al
desarrollador de lo esperado.
(Jones. 1994).
Anlisis de riesgos
Una vez que haya identificado los riesgos de planificacin de su proyecto, el paso siguiente es analizar cada riesgo para determinar su impacto. Puede
ya haya elegido. Con los riesgos en general, esto puede ser difcil, pero cuando est interesado en los riesgos de planificacin, la estimacin es
ms sencilla.
Exposicin a resgos
Un mtodo til en el anlisis de riesgos es determinar la <exposicin a riesgos) de cada uno de los riesgos que haya identificado. La exposicin a riesgos a menudo se abrevia como (ER) (hay quien la llama <impacto del riesgo>). Una definicin de riesgo es <prdida no esperada>. La exposicin a riesgos es igual a la probabilidad de prdida no esperada multiplicada por la magnitud de la prdida. Por ejemplo, si piensa que la probabilidad puede ser del 25 por 100 y puede haber un retraso de cuatro semanas
102
sobre la duracin del proyccto. la erposicin al riesgo sera 25 por 100 multrplicado por cuatro semanas. es decir, una semana. Como slo est interesado en los riesgos de planificacin, puede erpl'esar las prdidas cn semanas o meses o en otra unidad de tiempo que fhcilite la comparacin. La Tabla 5.4 cs un e.jernplo de cstimacin de riesgos de planificacin que puede crear a partir dcl riesgo. la probabilidad de prdida, la magnitucl de la prdida y la exposicin a riesgos.
E,n el ejenplo de estimacin dc riesgos de la Tabla 5.4. el proyecto ha identificacio varios riesgos cuya grar.'cdad pucde estar entre I y 20 semanas,
Tabla
5.4.
Riesgo
Planificacin dentasiado
optiniista
5 20 8 4 15 ,1 2 I ,1
2,5
1"0
desde
2,8
fbrn.rato voll'er
1,0
2,25
rarda
1.0
disponibles de en
0,2
0.
El personal contratado
se retrasa
0.4-0,8
la entrega del subsisterna encargado de formatear los grficos Las nuevas herramientas de prograrnacin no producen cl ahorro
30o,i,
l.-5
pronletido
Captulo S: Gestin de
riesgos
103
Las probabilidades de que ocurra alguno dc los ricsgos oscilan entrc un y un 50 por 100. En un proyecto real tencira que iclentificar muchos rrs riesgos de los que se muestran en la tabla anterior. ,De dnde han salido las probabilidades y la nagnirud de la prdida? Estos nme.os hay que estimarlos, sin pretender que sean exactos.
5
' o
Disponer de la persona que cst ms familiarizada con cl slstelna para que estime la probabilidad de cada riesgo. y luego realizar una revisin de la estimacin. Usar tcnicas Delphi o de consenso en grupo. Con la tcnica Del-
phi, cada persona cstima individuahllente cada ricsgo, y luego se discute o se escribe el origerr de cada estimaci'. especialmente en las que haya nayores diferencias. Continuar con el proceso hasta
hacer conr,'erger las estimaciones. Realizar analogias con apuestas: <,Aceptarias esta apuesta? Si los recLlrsos estn disponibles en su momento ganas 125 dlares. Si no lo estn, yo gano 100 dlares.> Ajustar la apuesta hasta que los dos apostantes estn igual de seguros. La probabilidail de nesgo
104
Desarrollo y gestin de proyectos informticos sera la apuesta menor dividida entre la cantidad total en juego. En
el ejemplo, la probabilidad de que 1os recursos no estn disponibles en su momento podra ser 100 / (100 + 125)- 44 por 100. Utilice la <calibracin mediante adjetivos>. Primero cada persona elige el nivel de riesgo entre una serie de frases como muy probable, bastante probable, probable, improbable, muy improbable. Despus se convierte cada una de las estimaciones verbales a estimaciones cuantitativas (Boehm, I 989).
riesgos mostrados en la Tabla 5.4 es el hecho de que, en trminos estadsticos, estas exposiciones a riesgos son <valores esperados>. El riesgo de un diseo no adecuado le podra costar hasta quince semanas si ocurre ahora. Como no es seguro que ocurra al 100 por 100, no espera perder quince semanas. Pero como tampoco es imposible que ocurra, tampoco debe esperar no perder ninguna semana. Estadsticamente hablando, la cantidad que espera perder es la probabilidad por el tamao, o 15 por 100 veces quince semanas. En este ejemplo <esperara> perder 2,25 semanas. Como slo estamos hablando de riesgos en la planificacin, puede sumar todas las exposiciones a riesgos para obtener el retraso total del proyecto. Asi el retraso si no se hiciese ninguna gestin de riesgos estara entre 12,8 y
13.2 semanas.
La magnrtud del retraso total esperado permite intuir el nivel global de riesgo del proyecto. Si el proyecto del ejemplo es un proyecto de 25 semanas, y el retraso total estimado esperado est entre 12,8 y 13,2 semanas, necesitaramos hacer una gestin de riesgos activa.
REFERENCIA CRUZADA Para mayor informacn sobre los srgnos mas o menos en la planificacin, consulte "Estilos de presentacin de una estimacin", en la Seccin 8.3.
rado'l Creo que s. Vuelva a calcular la exposicin a riesgos total despus de haber realizado el plan de gestin de riesgos, y luego adalo a su planificacin con-Io un margen. Esto le dar un margen de retraso ms claro que la regla elemental que utilizan algunas personas para ajustar sus planificaciones. Otra manera sera crear una planificacin con signos ms o menos para cada riesgo, y ajustar la planificacin cuando se produzca un riesgo.
Se podra cambiar
Captulo 5: Gestin de
riesgos
105
-.4ue tos iraya calculado la exposicin a riesgos multiplicado la probabilidad de -' 'c/? /rs pe;dida por la magniiud de la prdida, ordene 1os riesgos segn la exposiqueda';:li::;l .iOn u .iesgos en su tabla de estimacin de riesgos' y vea cmo ha riesgos estimacin de .,,,l,{,r. do. La labta S.S es un ejemplo de una tabla de : l)rucker ordenada por la exposicin a riesgos'
, Uttitil el 80 por 100 de su presupuesto en arreglar el 20 por 100 de sus proble,tttttin,tr nrur, po. lo que es til poder centrarse en este 20 por i00 ms importante' 1os riesgos de slo ,,):,]),;l Una |ez-ms, el trabajo es ms fcil sitipos considera Una l'ez que de riesgos' todos los - ,i,','r'')|, planificacin que si se centra en
Tabla
5.5.
Riesgo
oe
Peroloa (semanas)
35%
r;tf
-rXl;[, t:T::'J:"
(scmanas)
2.8
50%
l5'l/
2.5
l5
))\
15
30%
5u.:i
20
1.0
25'k
25%
t0-209/
1.0
1.0
0.4-0.E
109i,
0.2
0.1
10%
106
ordenada aproximadamente por prioridades. Si consigue controlar los cinco primeros riesgos de la tabla, cabra esperar una reduccin de 9,8 semanas en el retraso total esperado de la planificacin. Si se decidiera a controlar
los cinco ltimos riesgos de la tabla slo podra esperar una reduccin enfre 2,J y 3,1 semanas sobre cl retraso total esperado del proyecto. En trmino medio, sera mejor concentrar el esfuerzo en el control de los cinco primeros riesgos de la lista. La razn por la que la lista slo est ordenada <aproximadamente) se debe a que quiz podra dcscar priorizar algunos de los riesgos que produciran una prdida grande, independiententente del lugar que ocLrpasel en la tabla. E,n la Tabla 5.5, el riesgo <Aadir el rcqtrisito de actualizacin
automtica desde el mainframe> es aproximadamente del 5 por 100" pero producira un retraso de 20 semanas. que es mayor que el de cualquier otro tipo de riesgo. Si se produjese un retraso de 20 semanas. podra suponer un desastre para su proyecto, por lo que debera gestionar los rresgos de esa magnitud para asegurar que no ocurriese ninguno de ellos. incluso aunque tengan una probabilidad pequea de ocurrencia. Asimismo, puede querer priorizar un grupo de riesgos encadenados en lugar de priorizar cada uno de los riesgos inclividualmente. Por ejemplo, la inestabilidad de la interfaz del subsistema de formato de grficos es un riesgo, y tambin es un riesgo 1a fecha en la que el personal contratado entregue el producto. El riesgo combinado que aparece al utilizar personal contratado y tener el cdigo desarrollado por ellos para crear una interfaz que parece inestable, es un poco mayor que si se considera cada uno de los riesgos de forma individual.
Una vez que haya identificado cada uno de los elementos de alto rie.go, tambin es importante realizar una priorizacin de riesgos para r-formar de los riesgos que se pueden ignorar. No nos preocuparenr. de la gestin de pequeos riesgos que adems tengan una probabilidad c. aparicin pequea. En el ejemplo anterior podra gastar ms tiempo en -, gestin del riesgo por que los recursos no estn disponibles en su mome:'to que si realmente no estuviesen disponibles en su momento. La plio: -
Captulo 5: Gestin de
riesgos
107
zacin de riesgos es un proceso crtico en el que hay que tener cuidado de no dedicar todo el esfuerzo a la sestin de riessos en si.
Control de riesgos
Una vez que haya identificado los riesgos de su proyecto, analizado sus probabilidades y magnitudes. y los haya priorizado. est preparado para controlarlos. Esta seccin describe los tres aspectos del control de riesgos: planificacin de la gestin de riesgos, resolucin de riesgos y monitoriza-
cin de riesgos.
Resolucin de riesgos
La resolucin de un riesgo concreto depende mucho del riesgo especfico. Los mtodos que controlan el riesgo de un diseo inadecuado no se adaptan bien ai riesgo de que su equipo sea expulsado de sus oficrnas. Supongamos que est encargado de la contratacin y est preocupado por los riesgos de la creacin de un diseo inadecuado en un rea nueva para usted y que su despacho va a ser cedido a otro grupo de trabajo de la empresa. A continuacin se describen una serie de mtodos para tratar los riesgos mediante ejemplos relacionados con los riesgos del diseo y del
lugar de trabajo.
Evite el riesgo. No realice actividades arriesgadas. Por ejemplo, tome responsabilidades en la mayor parte del diseo del sistema, pero no en las partes que no conozca. En cuanto al problema del lugar de trabajo, negocie con el grupo que pretende desplazarlo de su lugar de trabajo y convnzalos para que no lo trasladen. Traslade el riesgo de una parte del sstema a otra. A veces lo que es un riesgo en una parte del proyecto no lo es en otra parte del proyecto, por lo que puede trasladarlo a otra parte. Por ejemplo, en el rea de relaciones pblicas: lmagine que tiene que disear una parte del sistema en-
108
Desarrollo y gestin de proyectos informticos cargada al resto del equipo" que va a disear una parte con la que no esrfamiliarizado. O podra hacer que le revisasen y aprobasen su diseo, trasldndoles las responsabilidades. En el caso del espacio de trabajo, dispo-
ner de otro grupo cuya planilicacin menos crtica permita cambiar .. espacio en lugar de en el suyo. o esperar a que el sistema est preparaclc para el traslado. En general, aparte el riesgo del camino crtico. Planifique el proyectc de forma que si ocurre nn riesgo, el proyecto completo no se retrase.
Consiga informacin acerca del riesgo. Si no conoce el autntic. peligro del riesgo, avergelo. Por ejemplo, desarrolle un prototipo par. comprobar la viabilidad de su alternativa de diseo. Localice un asescr:. que evale su diseo. Utilice la planificacin de recursos para ver si pu,-.de permanecer cn su lugar de trabajo mientras dure el proyecto.
Elimine el origen del riesgo. Si el drseo de una parte del sistcma e > dcmasiado arriesgado, cambie la parte del sisterna a un proyecto de inr esrrgacin y climnelo de la versin que est desarrollando. Intente convence:' al grupo de trabajo que trata de ocupar su lugar de trabajo de que utilice otro espacio en donde puedan estar todosjuntos. U obtenga una confirmacin del grupo de planificacin de infraestructuras para quc le dejen permanecer en su despacho mientras dure el proyecto.
Asuma el riesgo. Acepte que el riesgo puede ocurrir, pero no prcu\j demasiado en ello. Si las consecuencias son pequeas y el esfuerzo qrii se requicre para evitarlo es mucho, hacer caso omiso puede ser la rnet: estrategia. Simplemente acepte las consecuencias de un diseo inadecuado o de que lo echen de su despacho.
Comunique el
riesgo.
keting y a los clientes la presencia del riesgo y sus consecuencias. Intentc suavizar el susto que se llevarn si llega a ocurrir.
Controle el riesgo. Acepte que e1 riesgo puede ocurrir y desarroll.. planes de contingencia para controlar el riesgo si no puede resolverlo Busque recursos extra para comprobar la parte del sistema con el diserio que le preocupa! y prepare un tiempo extra para corregir los problemas Planifique con antelacin el traslado de su despacho para evitar problemas: planifique la mudanza para un sbado por la noche para evitar molestias; y busque personal temporal para facilitar las tareas de empaquetar. y desempaquetar.
Recuerde el riesgo. Cree una coleccin de planes dc gestin de riesgos que pueda utilizar en proyectos futuros.
Captulo 5: Gestin de
riesgos
109
planiflcac in.
Tabla
Para ilustra'la forma cn quc puecle c.ntrolar algunos clc est.s r.icsgos. Ia Tabla 5.6 lista los mtodos cie co'trol de los ricsgos r.us conlures cn la
5.6.
Nttodos de control
|.
clcsalrollo incrcr-ncntal.
( ontrole cl conjunttr de
1-r'cstac
Captulo
C
ioncs.
apitulo
I c).
<rl)isco para
el ca'' bio,r.
2.
Requerrnrientos
Filtrado de
rccuc-rinr
,<Filtrado
cle
lr
supo'fluos n
pcrsonal dc
dcsan'ollcr
icntos.
nreticuloso
cic
conlunto de pre.slaciones>>. Capttrlo i6. ((Entrc0a por ctapirs). r' Secci(rn 7.6. ,,llntrega p0r etapasD.
l-so
clc tlototrpos
I
( littrltr .i\.
dcsec hab
I
..p1ro1tr1rr
dcsechab
Di ser-io
s.
es >.
il icac i(rn
>,.
Deje ticr.npo a Ias actir idades dcl control de calidud v pfestc atencin a las bascs del control de calidad.
control de calidacl>r.
.1. Planrflcacin
demasiado optintista
110
\ltodos de control
Utilizacitin
de
.1. Planillcaciin...
(ttnfittttuciittI
llegoclclC)lrcs
con\ enlcntcs.
p
( ittulo -. ,, Pllnrfre
del ciclo dc vida>.
rrcrirn
5.
rp itu lo 7.
.,
PII
ni
l'iclc rtln
Tcner inspeccioncs dc
clisco.
t-tspcccionc-s>>.
Sndrome de la
panacea
productir iclad.
C
onflglrrar un proqranra
productir idad>.
Dcsarro llo orientado a la
inr,esti-gac in
,<Desarrollo oric-ntaclo inrestigacin>. en la Seccrn 3.i. C'aptulo 7. <Planlfi,:.,, del ciclo de vicla,,. Este capitulo.
.,
8.
Personal mccliocre
f11
\Itodos de control
.. I
It ottI ittuuc in
C'ontratar y planificar los n-lie.lltbros clavc del equipo nrucho antes dc quc conrience cl pfo)'ecto.
Preparlcin.
Captulo 12. <Equipo clc trubrio,,. y ( rrptulo 13. <<Estructura del equipor>. Captulo 12. <Ecluipo de trabajori. y Captulo 13. ,, Fstruclul.u rlcl equipo,,. Captulo 28. <Desarrollo
e.\ te rn
t).
Problelltas
cc-rn
el re-rsonal
contrataclo
or.
10. Problerras
cl relsonal
c
entr.c dc
desarrollo I'el
lien te
Monitorizacn de riesgos
La l'icia cn cl n'undo clel softu'arc seria nrs fcir si los riesgos apareclcsen dcspus de que havarrros desarrolracro planes para tratalos. pcro los riesgos aparecer l" desaparece'r cn er crcsar-roilo crer proyccto. por lo que se neccsrta ura rroritorizacin de riesgos para colxprobar cmo progresa el control cle un riesgo e icrentifrcar ciiro apareccn lcls nue',os riesgos.
\y
s4-
4 ['["
""1
er la lista.
una de las herramientas.uris potcntes para ra rnonitorizacin de riesgos es la utilizacin cle urra lista de <<Los l ricsgos, creacla por uno mismo. La.l is.ta dc los l0 riesgos urs inrportartcs contienc la posicin crcl riesgo
su posicin
112
lista'
rcsltlrell c1c lts actttaciorles qltc 'a sc han llci'ado a cabo clestl ejcrnpl la ltinta reyisin. La Tabla 5.7 sigr-riente muestra una lista dc de los l0 riesgos PrinciPalcs'
" Lln
Tabla
E
5.7.
sta senla n a
Utilizar tcnica cle eutrega por etaps: explicacin de la tcnica al Pe'rstlllal clr
tttrrketing fl nales.
-Y
usuaritl'
Disco ittaclecuaclo.
se ncccsita volrcr
di scar.
a
Disco cn t-nal'cha
selecc
estalrtos a la csrcra.
lnestabilidad cle la
rntcrl-az dcl
sr.rbsisteuta dc
clc-
ttrmato de grhficos:
no sc ha terlnitladtl
el diseo. Negociar la
cooldinicin de contratados exPerto: Petici(rn al contratatl cle qrtc dcsigne un
tilnnato
encargado.
coordinador oficial:
tocla\ a no ha
lespondido.
Retl'aso ett
lr
entrega de las
hcrrarrientas de
cle
sarrollo.
El gnrpo dc adquisicitin de
hert'allretrtas na inlbrmado sobrc la neccsidad int-tlecllatlt clcl rcsto dc las herratnicntas.
113
Semanas en lista
Riesgo
cle la
lento.
En cr alr-rciirn.
Se
hr
tenrina(lo
optimist.
l0
actr-ral
izacin ntanual
tierrpo
danclcr
No tienc ir.nportanciit cl hecho dc qr,re la lista cle los l0 riesgos principales contenga exactamcnte l0 riesgris. Cor.r.ro se lrluestra en cl rltinlo clemento dc la lista. tarnbin pLlede coutencr riesgos qLlc hayan salido dc la lista clesde la ltirna rcr isin. En un proyecto cle dcsarrollo rpido. el adnlinistrador del proyecto ), cl-ief-e del administrador del pfoyecto cleben rer.isar semanahrentc la lista de los 10 ricsgos principales. La nrayor utilidad cle la lista de los l0 riesprincipalcs es qr.re fucrza a la rcvisin peridica de los riesgos v le -eos infoma de los cambios dc posicin que ha habido segn su importancia.
Comprobaciones intermedias
Aunque la lista dc los l0 ries-qos principales quiz sea la rne.jor fo'rra para la rnonitorizaciiin dc riesgos, uu proyccto acelerado tambin cleberr
incluir cor.nprobaciones intern.ledias durante todo el proyecto. Muchos rcsponsables del proyecto espcran al flnal para hacel la conrprobacin. Esto nos podra bencflciarpara el prrimo proyecto. pcro no serr,ir cuando reall.ncntc lo nccesitamos cu el trrroyecto actr.ral. Para una urayor cf-ectiii-
114
de,,-
Encargado de riesgos
Algunas el.ltpresas dcsi-{nan a un cucarsado de riesgos para estos caso. irl traba.io dcl encat'gac'lo clc riesgos es cstar alcrta sobre los ricsgos tl; pt'o)L-ctr) .\ r-\ itar tlttc los administraclclres y dcsarrolladores los ignor..: en la planifictcin. Al igual que las re"isiones y las comprobacic'lncs rurtnarias" se dcbera tcncr una persolla cuyo traba.jo sca cl de abogaclo ti. cliablo. bttscar todas lrs razones que hagan que cl provccto fhlie. En pr.,yectos grandcs (nts de 50 pcrsonas). el trabio dcl encargado c1e rrc:g,, pucde ocupar ttldo su tierttttt. Iin prol,ectos r-r.uis pcqr-rcos. puede oSr!n.: a otra persona clue tcltsa otras fur.rciones cn el troyccto para qr-rc rea1i..
este papel cuanclo scr neccsario. Por las razones psicolgicas urcnciolt,.c'las. la persona clesignacla no cleberia ser cl aclministrador del provecc
titrito tttt'
n?( (:.\tuilo.\ purLl
I
tt tlat i.s it tt c.t entpre.:uriuIe.s. Es .solre totlt el tito tlt, riesgo. Pot' ejenttlo.
,.c.s
t't r s g(
lu clu.sc de
) q It( tt ttl ettt o.t perntitir', t lu t lu.sc dc rre.tgo qu( no tod a nt o.s pcrnt f i r'.)
r'.e.s
intportunt( qu(
tto no.s tod<'ttto.;
in d
cp
nd
e n t t'
nt e ttt a
tle
Iu s ptt.ri bi I idu
dt's.'
Pc.ter Drllcker
En cl dcsarrollo rpido. llgunos provcctos son arriesgados. algr,rnos s nruy arriesgacios y otros son irrprcr.isiblcs. Es clifcil encontrar algirrr pr yccto que no intpliqLrc ningLrn riesgo..v los proyectos que son slo ((ni-gos)) soll los ms apropiados para alcanzar la r.uxima velocidad de cie.,rrollo. Estos rroyectos facilitan la eilciencia y consigucn que la lnea de:.., el inicio del proyecto hasta el flnal sea rccta. El dcsarrollo rapido, qLrc: es necesariancnte fcil de alcanzal'. es mcjor encargarlo ii uha pcrstrr' que domine las estrategias y prcticas qLrc se erplican en este librtt. L,l riesgo alto y cl clesarrollo rpido foman una contbinacin nten compatiblc. Los riesgos tiendcn a prolongar los planes de dcsarrollr.. los riesgos altos tienden a prolongarlos ms. Pero a veces la realiciacl c:: presarial le obliga a eucargarse dc un plan cle dcsarrollo ar.nbicioso. inclLicuando un proyecto implique ntuchos ricsgos (r'agucdad en los rcqursrt, , personal no cualilicado. reas dcsconocidas. elcmcntos de irtr,esti-rrat cluros. o todos los anteriorcs). Si se ve obligado a encargarse de un plan ambicioso en estas cir.cur .tancias. infrmcse de la naturaleza del compromiso. Con dos o trcs ar.r-,,cic alto ricsgo. inclusrr sLrs rrre-jorcs estirnrrciones cn la planificacin p;:.dern su sentido. Asegrrcse de cxplicarlcs a las personas que clepr-nc. dc usted que est disprrc'sto a tornal ricsgos calculados. incluso riesg,. altos. pero que probablemcute no \/a a ser capaz de cntregar a tiertrpo quc estn esperando. En cstos casos. una gestin de riesgos no slo actt. sino tambin enrgica le ayudar a resolr.er n.rejor una situacin coulf t. metida.
r
Captulo 5: Gestin de
ilesgos
115
A1 flnal dc la escala de riesgos. algurros proyectos sc planifican tan agrcsivamente que caen cn el azar. se parecen r.ns a la corr-rpra de un nmero de lotera quc a una decisin calculada. Sobre r-rn tercio de los proycctos tlencn una combinacin intposible de planificaciones, corrjuntos de caractersticas y rccursos. establecida antes de entpczar. En estas circunstancias. no hay ningn estmulo a la hora de rcalizar una gcstin de riesgos. porqlre antes de que el proyecto contience hay un 100 por 100 de probabilidadcs de f'allo. Sino hay posibilidadcs de ajustar las planificaciones nrediante alguna de las tcnicas de gcstin de riesgos, sera razonable apostar 1.000 a 1 por cl desarrollo con la tcnica dc codificar y corrcgir. E,stos proyectos, que necesitan la ve locidad de desarrollo mxima, paradjicamente se convierten cn los proyectos quc probablclnente tiren por la vcntana las tcnicas contrastadas orientadas a la velocidad. Los resultados son inevitables. La apuesta no ha funcionado. y cl proyccto sc ha entregado tarde. rl.tucho ms tarde quc si se hubiesen utilizado ricsgos calculados en lugar tle dcjarlo al azar. ,Un tercio dc los proycctos neccsitan realmente confiar en el azar'l ,Un tercio de los proyectos necesitan tomarse como apucstas 1.000 a l'l Creo que no. Tenga cuidado con el nivel de riesgo de su proyecto e intcnte mantenerlo en una categora de <riesgo> o <a1to riesgo>. Ejemplo
5.2.
La versin 3.0 de Square-Calc ha sido un desastre, superando su planificacin en un 50 por 100. Eddie decidi encargarse dcl proyccto de la versin 3.-5, y esperaba hacerlo mejor de lo de lo hizo el responsable anterior. <Colno ya sabis, Square-Calc 3.0 no sigui mu, bien la planificacin prevista), cont al equipo de desarrollo en la primera reunin de planificacin. <Estaba previsto realizarlo en 10 meses. y tardti 15. Necesitamos hacerlo meior. Tenentos cuatro meses para realizar algunas mejoras, y pienso que tenemos tiempo suf,rciente para poder realizar este trabajo. La gestin de riesgos va a tener una de las rnayores prioridades. Lo primero que voy a hacer es nombrar un encargado de riesgos, alguien que se dedique a buscar todas 1as cosas que podran ir mal en este proyecto. ,Hay
algn interesado?>
Jili haba trabajado en el ltimo proyecto mucho ms duro de lo que ella queria. y cstaba dispuesta a evitar que le ocurriera de nuevo, por lo que dijo: <Yo estoy dispuesta. Qu tengo que hacer?> <Lo prirnero que tienes que hacer es crear una lista de los riesgos conocidos>, le do Eddie. <Quiero que te renas esta maana con cada una de las personas del equipo de desarrollo y que encontris cules son los riesgos que se conocen. y lueeo quiero que te renas conmigo csta tal'de.
Estudiaremos los riesgos y partiremos de ese estudio.>
l( ()lllUtUU
\
116
Esa tarde, Eddie y Jill se reunieron en el despacho de Eddie. <Tod. incluida vo misma, pensanlos qr"re el mayorriesgo es el cdigo de Squar:. Calc 3.0. Es una autntica chapuza>, dijo Jill. <Ninguno de nosotr,-. quiere realizal rnodificaeioncs irrrportanrcs. y hay algunos rndulo. c.:
El siguiente riesgo imporrante es la planiticacin de la creacin cmanual de usuario. En parte. la entregarlos tarcle debido a que no nos crrr,:dinamos bien para crear el manual de usuario. Nos aseguraremos de q,-. esto no r'uelva I ocurril. El ltimo riesgo impoftante son los calnbios en los requerimientos. HaL:,_ varias caracteristicas que no entraron en la versin 3.0, por lo que ter.i,
que marketing intentar colarlas.> Jill sigui comentando una doce::-, de riesgos menos inrportantes. pero los tres primeros eran los ms ir:-.portantes. <De acuerdo. quiero qr.re preparis un plan de gestin de riesgos pa:.-. los riesgos principales>, cljo Ecldie. Le coment a ella la idea de los 10 riesgos principalcs y dijo que quera revisar semanalmente con el equipo ,. lista de los l0 riesgos principales. Para la gestin del riesgo del cdigo anterior, decidi analizar su ba:: de datos de errores para cltantos mdulos del sistema realmente tendian _ producir errores. Asignaron un mes de la planificacin de los cuatro mese: a dedicarse a volver a escribir el cdigo de los mdulos ms propensos :
errores.
Para el riesgo de la creacin del manual de usuario, decidieron cisarrollar un prototipo desechable de interfaz de usuario que utilizara ,-nisma interiaz que el cdigo que estaban escribielldo. No permitiran o.f'erencias externas con el prototipo. Tambin incluiran un inforrne de ,., documentacin de usuario en las reuniones semanales de gestin de rie.gos, que les ayudara a sincronizarse con el trabajo de la creacin de ,. docullrentacin. Para el riesgo de los cambios en los requerirnientos. Eddie se comprolneti a hablar con alguien del departan,ento de rnarketing. <S que su ob,jetivo principal es tener el producto a tiempo>, dijo. <Necesitamos recul:)irar la confianza del cliente despus de los problemas de planificacin de i" versin 3.0. Les explicar la importancia de la definicin clara de objetivos, y pienso que cortarn los carnbios en los requisitos.> Tambin invit ;, Carlos, del Departamento de Marketing, a asistir a las reuniones de riesgos, pensando que si alguien de nrarketing comprenda todos los riesgos ; los que se enfientaban, rnarketing podra evitar que se cayera en nue\,oi
nesgos.
Durante las cuatro semanas siguientes, la identificacin y sustitucin de los mdulos propensos a fallos marcharon segn lo previsto. Se vio que
Captulo 5: Gestin de
riesgos
117
tiempo previsto, lo que hizo que se sintieran bien, ya que el cdigo de la versin anterior podra soportar el resto de las modificaciones que se tenian que realizar para crear la versin 3.5. En la eunin de resgos semanal de la sexta semana, Jill apareci con una tarea nueva. <<Como ya sabis, he estado supervisando algunos de los riesgos de menor prioridad adems de la supervisin de los riesgos ms
impor'tantes, y uno de ellos es ms importante de 1o que se pensaba. Bob ha estado trabajando intentando optimizar algunas de las funciones de clculo cientfico, y me dijo hace unas semanas que no estaba seguro de cubrir las especifi caciones previstas. Aparentemente, haba investigado los mejores algoritmos disponibles, los haba implementado, y la$ funciones slo eran un 50 por 100 ms rpidas. Las especificaciones hablaban de una mejora en la velocidad del 100 por 100. por 1o que Bob est intentando encontrr otros algoritmos ms rpidos. Le he comentado que coloque un punto de alerta roja en el plan, para que si no lo realiza en el tiempo previsto, podamos dar una seal de alerta. Ayer alcanzamos el punto de alerta roja, y Bob dice que an necesita ms tiempo para terminar su trabajo. Bsicamente pienso que como est realizando un trabajo de investigacin, no hay forma de predecir el tiempo que va a necesitar.>> Carlos, del Departamento de Marketing, dijo algo. <He sido uno de los que han apostado por la mejora en la velocidad, y pienso que la cifra del "100 por 100" es flexible. Es ms importante terminar el producto a tiempo que seguir el requerimiento de velocidad al pie de la letra. Al menos podremos demostrar a nuestros clie ntes que somos personas responsables.> <Eso suena bien>, dijo Eddie. <Pienso que una mejora del 50 por 100 en el rendimiento es suficienteo por lo que le diremos a Bob que se dedique a hacer otras tareas. Eso har que tengamos un riesgo menos del que preocu-
parnos.)
Despus de esto, aparecieron otras sorpresas. Se produjeron algunos cambios pequeos que se pudieron controlar bien. Comparndolo con el ltimo proyecto, ste haba sido un poco aburrido, por 1o que nadie lo recordara. Algunas de las personas de marketing intentaron aadrr nuevas caractersticas, pero Carlos consider que 1o importante era el objetivo del plan y as mantuvo las quejas a raya, sin que llegara a escucharlas el personal de desarrollo. El equipo hizo un buen trabajo y entreg Square-Calc 3.5 en los cuatro meses previstos.
cliograf a adicional
Boehrn, Barry W.. ed.'. Sofiv'are Risk Management. Washington, DC: IEEE Computer Society Press, 1989. E,ste conjunto de trabajos se basa en la premisa de que los buenos administradores de proyectos son buenos administradores de riesgos. Boehm ha recopiiado un conjunto de trabajos a partir de fuentes tcnicas y empresariales. Una de las princi-
18
Desarro//o y gestin de proyectos informficos de este libro es lacontribucin de 70 paginas q... ha realizado el nrismo Boehm. ErLr zo pginas suponen una buei:inrroduccin a ra gestin a. .i.sgo, er softivare. p;;;;-ii"gr. a pe r:sar que un ruroriai pubricado .n lq's p"dri; il;.;;;r;: obsorer, pero en realidad presenta una visin
pares caractersticas
."Tl'":Hfi:r*:,ir:esrin c' nirt *, ces> rEiE sorrnyl;, enero reer, oo fiil:,iJ'fi1:1,:: iti,i.T;:. puntos clave de a sori,,, Rick Man,r";;,':;:;ffiH'ff.il: .]3;irffi.;LXjJ. Jones, Capers: A.s.yessment
Boehm, Barry W.: <,Softrvu..
riesgos que ra que puede encontrar
gravedaddelriesgo,fiecuencia.o.,,l3.^cadariesgo.ydescribe "rtnur'
vo. Iibros. public ,r: c h o s ct e' r, ul,, ir' 0".';:;:'J:'.', t i " de la base de" datos de JonJs,.on.r.4.000
bremas asociados, mtodos o.
to extraordinario para el tutorial sobre de riesgos de Boe h: No comenta .urinuau de la gestin o. 9"t"un
qnd Contro/
i", ,ii:::-,oll::Hi'"11.-i,liT,l;
o*".".i"- l;;lliiii"lili""lll;L
ffi "bff
:
que esta especialmente indicado para el tema de la estimacin cle r:..._ gos' Er mtodo de desarrolro . *rt'"u." que describe Gilb en el r:.del libro pone mucho nfasis g.rriO" de riesgos. Thomserr, Rob: Thirct "" (1ve!rolec, iri,rr"n/. Englewood Cliffs. \ Yourdon press, 1993. El fi6.o.onri.il un.u.rtionario con,t.l r:.._ guntas sobre Ia sesjin de riesgos, que puede utilizarpara hacers., ,.: idea de sj el nivel de riesgo O. ,u proy..to es bajo, medio o alio.
Gilb, Tom: principle,s Srtror" in-[in]nrirg Maragentenl. .oJ. Woki::_ham' Ingraterra: Addisonlw.rr.y, i. pr," Iibro tiene un capir'.
r#
f-
fe
#ffffiffiffi$
iffiffiffiffiffiffi
$ffi
,Eriste un modelo rnico'.'} ,QLr tipo de dcsarrollo rpido necesita'l Posibilidatl de tcrnlinal a ticmpo
6.8.
Pcrccpcin y rcalidad Distribucin del ticmpo ernplcado Equilibno de factorcs de la vclocidad de desarrollo Patrn tpico de mejora de la planificacin Canlino hacia el desarrollo rpido
Temas relacionados
Estrategia para el desarrollo rpido: Captulo
2
UNA VEZ QUE HAYA APRENDIDO A EVITAR los errores clsicos y haya asirnilado los fundamentos del desarrollo de softlvarc y la gestin de riesgos, estar preparado para centrarsc en mtodos dc desarrollo orientados a la planificacin. El prirner paso en csta dircccin es contprender ciertas cuestiones que radican en el ncleo de la mxima r.'elocidad de desarrollo.
que para desarrollar un sistema de control de int,entario para cintas de vdeo. Si un error dcl software hace que se picrda una cinta de cacla 1.000. puede que afecte levcmente a los beneficios. pero no irnporta. Pertt si un
121
122
error
hrce
pr.rr-
bler.nrs.
REFERENCiA CRUZADA Para ms rnformac n sobre la persona izacin de los procesos del software segun las necesidades especificas de los proyectos. consu te la Seccin 2.4. ,, Cul es la dimensin ms mportante?.
Dif crentes provectos ticnen dif'ercntes necesicradcs cle clesarrollo rpido. aunque toclos necesiten ser dcsarrollados <tan rpido cono sea posrble>>. En trminos -gencrales. los prodr-rctos ile gran clitusin neccsitan s..: clesarrollados con ms cuidacio que los productos con poca difusin. Lt,. productils crry'a fiabiliclad cs importante necesitin scr clesarrollaclos ct',: ms cuiclaclo que los procluctos cuva fiabilidacl no ticne r.nucha importancia. La Fisura 6.1 nruestra algunas cle las variaciclncs en distribucin. l'irrbilithLi. Las qrtraclas cspecficas cle la cuadrcula son slo meros cjemplo. Podra scr cliscutible por qLr un controlador de pantalla o un progronc trr iurpuestos necesitan scr ms flables. o si el software cle autoeclicin cl 1.. hoias dc cirlculo licnen mayor difirsin. Sc trata de ver que tanto el rr:brto clc clistribucin corro la l-iabilidad necesaria varan arnnlianrcnr; cntre dibrgrtes ti.ros dc soliri'arc. Un firllo dc- softnare pLrccle acarrc.rl pe!rcliclas de tienrpo. trabajo. clincro o vidas humanas. Algunos rntoilo. dc ciesarrollo oricntados a la planificacin, quc sou perfectalrente acetrtables cuanclo el tiempo de desarrollo es lo nico importante. seran abscIutame'te inaccptables cuando hay humanas dc por nrcclio. 'idas Por otra parte. los mtodos cluc pucderr considerarse rpidos chap/ ceros en ulr slstenra crtico para la rida pucderr resultar demasiado ri-cL.fosos para una aplicacin clc soft'ulare de ncgocios. El desarrollo rpi.: cle soltu'arc dc clistribucin linritacla puede constar de cosas qr.re consicler.,-
.F .=
't
N,4ercado
hri7^tal
""" oi",o.
. JflSiliTto
Hoj"
cre
.:fi:"3:
Mercado verltcal
E e
E
.:;,::3::i;
u1
"*,""
a orog'nd
crcuro,
oard
sistema operativo
..ff::::""i."
o
.:fi"il3"1:0""?"""'
gerp..
"
0""
';:?:'il: :f,:',i:""
t:::ii:"."
.;;l;1;5" "
vroeoclJo
Personalizado,
interno
Personal
IierPo'el
en
e5odcral
Sistemas
Fiabitidad requerida
Figura 6.1. Los diferentes tipos de software requieren diferentes tipos de soluciones. Mtodos que se consideran rpidos y bastos para un contt: de marcapasos pueden resultar excesivamente rigurosos para un libro de cocina interactivo.
rpido
123
ramos <<menudencias) cu sotiu'are cle mayor distribucin. Pegue hor. y no naalra, algunas piczas que resuell'an el problema dc hov. Maana podra ser denrasiado tardc: una solucin tarda podria rcsultar inrtil. Como resultado dc esta tremenda variaciin en los objetivos clc desarrollo. es inrposiblc dccir <Aqu est su solucin para desarrollo rpido> sln conocer las circunstrncias cspccficas del caso. Lt solucin corrccta depcnde de la posicin cn quc se encuentre en la grfica cle la Figura 6.1. Muchos productos no eucaiau claranrente er.r las categoras de la figura. y los prodr-rctos varan tarnbin en otras caracterstlcas clistintas clel grado de flabilidad y el n-rbito dc distribucin. Esto implica qLre la mavorr dc personas tendrn quc llcrsonalizar una solncin parr sLl propia situacin. Como muestra la Figurr 6.2. no eriste un nroclclo nico.
El tcrra plimordial
es deternrinar cuil es
fr.fr
Figura
6.2.
124
clescubren quc lo que realdicen que necesltan un desarrollo ms rpido mayor preclecibilidad (o simplemente necesitan es Lln menor coste o una mente una iorma c1e evitar un fallo catastrfico)' para ayudarle a determinar el tipo Pr-reclc plantearse varias preguntas de dcsan'ollo rlrritio qtte tlecesitlt:
o . o
de la restriccin de planificacin del producto'' ,Cul es la fuerza del proyccto ha surgido porque es
),Ef nf'asis en la planificacin rpido>'l realmcnte ltna cle las uapariencias del desarrollo por cualquier punto d-bil que podrla liniclo ,Stt proyecto cst xito'l impedir llcvar a cabo el clcsarrollo rpido con
cambio.conullprocluctoqu.ti."n.unafuerterestriccindeplanificacirl. precipitadamente hay un punttl en el que el ialor del producto disminuye Parautlprclcluctollorl-nal.eldcsarrollocficicnteofrecegeneralment.y rendirniento de 1a planilila mcjor conlbinacicin cle coste de clesarrollo
Tiempo
Figura
en una ianta urgencia en terminar un producto normal una fuerte restriccin de e x,-qlente para et caso de un producto con
6.3. Representacin det valor a lo largo del tiempo de No hay de planificacin' normales y productos cin fuertes restriccione fecha concreta con:
productos
: =-':acin
rpido
125
cacin. Pero es posiblc que su producto tenga qus estar listo para la tenrporada dc Na'idad. o si no" rcnga que espel'ar al ao siguicnte. puecle que necesitc el-cctnar un cambit'r cn el sistema de nntinas a tientpo para cr-rr.nplir la nueva normativa flscal. Puede quc su cmpresa est a purrto de quebrar. y necesite los ingrcsos de la r,enta del producto para salvarla. O puedc que nccesite enfl'cntarsc a un producto cornpetidor. y espere doblar sus beneflcios si pueclc adelantarse seis senranas a sLl courpelidor en vez dc sacar el producto dos semanas despus. Ccluro sugiere cl grfico. en estos proyectos pucde haber un pulrto i partir del cual si no ha terminado el producto es como si no hubiera hecho nada. E,n estos casos. plrede resultar apropiado centrarsc por cor.npleto er.r la vclocidad de dcsarrollo.
Evitar retrasos. Si la organizaci(rn dc soriu'are tiene un historial cle ercedcrse cu sus presupLrcstos y' planificaciones. cl cliente puccle pcciir <dcsarrollo rpido>. Sir.r embargo. en este caso. lo que er cliente c'lesea rcallurcutc es asegufarse de qr-re el proyccto se terminari ajustndosc a los pllzos y plcst-tl)uc:t0s t|cr istos. Puede distinguir cste aparente dcsa.'ollo rpido de la nccesicracl dc alcanzar la mxir.na rclocidad dc desarrollo cor.nprobanclo que no cxiste otro objetiro especfico de planificacin quc. tclminar (tau pronto conlo sca posiblc>. o bien. si hay un objetilo eslccfico. encontrando que naclie pucdc erplicar su inrportancia. Un historial dc proyectos retrasaclos puecie scr otra pista. En cste caso. la solucirin no consiste cu usar mtodos orientados a planificacin. sino usar uua mc-jor gestin de ricsgos, cstirnacin del proyccto y control de la directir,a.
Predecibilidad. E,n muchos casos. los clientes dcscan coorclinar la parte de desarrollo de soliware de ur.l proyecto con previsiones cle beneflcios. rurarkcting. planificacin dc personal y otrcls proyectos sofilvarc. Aunquc
126
pucden pcdir <desarrollo rpido)). reiilmelttc cstn dcltttrtdarlclo [lna prcclccibiliclad sutlcicntctnente bttena para ptldcr coorclittar los csfuerzos r.-lacionaclos. Si sus cliurtcs hacen nf'asis clt la rtccesiclad clc tcrnlitlat'c sclttu.arc <a tiem.ro>i. no tienen ningLrnr rcstriccin externa tal cttt.l'lt' una prescntacirT cn una l'eria. probablemctttc estn rtts preocttpados ptr: la prcclecibiliclacl c1r.rc ltor inclementar al mrirrro la r.clociclad cle clesarrollo. En estc caso. debe ccntru'sc cn el desarrollo cficiente. y haccr hirlcapi cn nrtodcls que recluzcan cl ricsgo de planificacin.
REFERENCIA CRUZADA Para ms nformacin sobre la reduccin de 1a p anificacin. consulte ,, Los costes se incrementan rpidamente al reducir
r^ ^.^^"^--^:^ ra v u9, a,,,ou,u, I ^^, Pul
Menor coste. No cs raro que los clicntcs deseen nrinin.rizat'el ctlstc cic Lln proyccto dc dcsarrollo cie sofi'ur,'arc. E,n estos casos. hablarn dc tclllr;nar pronto el sofiu arc. pclcl harn rlf'asis cn su preocupacitl por el pr.-supuesto r no sobre la trtlanificacin. Si la preocupacin principal de los clicntcs cs el coste cle un provecto. centrarse cn la planificacin dcl cicsarrollo resulta particulan.l.tcntc cle:afortunado. Attnque resulta lcigrco sLlponer quc 1a planiticacin trs cort., clc desarrollo es tambin la ms barata" actualtnentc los mtoclos qLte ttlintrnizan el costc y la planificitcitx son clilerentes. Alargar algo la planificaci(rn pclr encima de la inicial , clisnrinuir el tar.uao del equipo puetl; reducir el costc total de Lur pro-vccto. Algunos r.ntodos dc desarrollo rapiclo increnrcntan cl coste total.
Fecha fija de prdida de valor. Clorrro se mLrestra en la Figura 6.3. e:: ocasiones cI ralor cle un proclucto dismirluye patrlirtinamcnte a Io larg. ciel ticmpo. v cn ocasiotres clescicndc precipitaciamcltte pasado utl cic-rt. llunto. Si eriste un punto en el cual clcscieltde precipitadamente. parc.. lcigico decir: <Ncccsitanros toda la r.clocidaci posible de clcsarrollo. plr; cstar scguros dc quc cntregarentos el prodttcto antes de esc punto.) Sin crrbargo. lr rrecesidad clel dcsrrrollo rpiclo depcndc realmetlt: del ticrnpo c'lLrc se tenga para realizar el proyecto. y del tierrpo llcccs0l'lr para desan'ollarlo usanclo r"utoclos de desan'ollo cf icicntc. La Figura 6 nrucstra dos posibiliclacles. Si puede conrpletar el prol,ccto en el perodo I (antcs cle la f-echa d; prclida clc valor) usanclo nttodos de desarrollo cflcierltc. h-qalo. y ctltrc:; en la lcduccin de riesgos y no cn la velocidad dc desarrollo. Esto ofl-cccr., la r.nayclr posibilidacl de terminar el pro,vecto a tiernpcl. Al-guncls mtodtri de desarrollo rirpido clisnrinuyen el tierlpo dc desarrollo. pcro increnlentr: tunlbii'n la incel'tidtrnlhrc de lr pl.rnil'icaeitjn. ser'rr ttn crror usar lllct,'clos que increr.nenten cl riesgcl de la planificacin cn esta situacin. Si los mtodos dc dcsarrollo eflcicntc no pen.ttiten por s solos ternllnar cl pro;-ecto antes dc la fecha de prclida de ralor (por cjernplo. si stil' permiten terntinar el proyecto en el pcrioclo 2). etltonces necesitar us.,mtodos orientados a la vclocidacl para tcncr alguna oportunidad de tel'minar a ticrnpo el pro.vccto.
rpido
127
Tiempo
6.4. La necesidad del uso de mtodos de desarrollo rpido depende de Io pronto que necesite el software. Si puede desarrollarlo en el perodo 1 usando mtodos de desarrollo eficiente, debe hacerlo y mantener as los riesgos bajos, en vez de centrarse en tcnicas orientadas a la velocidad, que pueden incrementar el riesgo.
Figura Deseo de horas extras gratuitas. En escasas ocasioncs. el inters dcl clicntc (o directiro tor el desarrollo rirpido enntascara cl deseo de mcjorar la basc dcl desarrollo rapido sacancio todo cl tientpo crtra gratr-rito clc desarrollo posible. La scnsrcin dc urgencia creada por uua planificacin
ambiciosa ayr.rda a esta situacin. Esta circunstaucia es lcil cle distin-euir del verciadero clesarrollo rirpiclo. porque el clientc insistir cn la irlportancia dc la planificacin y, sinrultneamente. se negnrti a ofi'eccr cl soportc nccesalio para mejorar la rclociclad de desarrollo por cualcluict'otlcl ntcclio quc no sean las horas ertlas sin relrunerar. El cliente no insistiri cn tcner rns personal. mcjorar las hcrramientas hardu are" tencr r.nejclres hcrrarrientas softu are u otros tipos dc soporte. El clicnte no scri particlario cle analizar la posibilidacl cie reducir
las prestaciolrcs pafa alcanzar ob.jetir os de planificacin. En un vcrdaclercr
proyecto de dcsarrollo rpido. el clientc estar dispuestcl a considcral cualquier rredio para reclucir la planificacin. Si cumplir lir planilicaci(tn del proyecto es suflcientententc iutportante para ser presionaclo. tantbin es sullcicntenrente irnportunte para que el cliente increnrcnte el nivel de soportc al proycctct. Si la emprcsa ride a los er.r.rpleados que trabajen r.l.rs duro, tambin debe estar dispuesla a trabajar r.ns duro. Si se cncuentrl en Lrna situacin er.r la que su cliente est intentando simpleurcute hacerlc traba.jar gratis (incluyencio a su cquipo), es probable quc l.ro pueda haccr nada para rne.jorarla. Los clientes quc practican este estilo dc dcsarrollo cle softr,r'arc uo tielten preseltte lo ntcjor para los clerrs. Las opciones que le qr-rcdar.r son rehusar trabajar cn tales proyectos o cambial dc empleo.
128
los clientcs tarnbin son conscicntes cle los probler.nas qr-rc puedc causr.
coste cn poco ticrr.rpo. pero gencralnrcnte s<ilo rccogcri uno o dos cle es. tres dcscos. Dcsarrollar un producto cle baja caliclacl cn poco ticmpo:1.. ser la combinacin crrnca. Si entrcga a tier.ntrro un trrroclucto cle bl.jl .,. dad. la gente rccordar quc era cle poca calidad. no quc se entrcg(r a ric.,:-
actualizacitin dc un producto. Tenga presente que los clientes dcsean... equilibre el proclucto. el coste y la planrlicacin de la mejor nraner-a pr'ble. Por sullLlesto. le pedirn que dcsarrolle un trrroducto con un l.-,
-qran
Si cntrega con retfaso un procir-rcto que les cle.ic con la boca abicrta.. clicntes recclrdarn quc desarroll un prodr-rcto impresiorrante; al pas: , tiernpo. la entrega con retraso perder la irnportancir que parece tcrrr.r.: el mornento presente.
Para detem.rinar si las peticiones dc un clie'ntc justifican un esfucrzrr ..clesarrollo rpido total. intente clctcrminar si la lnea cle r,alor del nroclLr,ticnc el aspecto de la lrrea clc los productos nornrales o de Ios prodtictos c fucrtes restriccioncs" nrostradas cn la Fisura 6.3. Deternrine si la plan: cacin est controlacla por una f-echa externa. o si la f'echa cs sirrplcnrer: (tan pronto conro sca posible>. Por ultimo. cleter.mine si los altos cafs . clfi'eccrirn el niiel cle soportc neccsario para un esfuerzo cjc cjesarrollo r..,pido. Tiene poco scntido eslbrzarse si se r.a a carsar con todo el trabr. Si no est segufo dc clue la'clocidad clc desarrollo sca la prior.irr,,. nnrcro uno. trncse su tienrpo y desarrollc un softu'arc dcl quc pue.:, sentirsc orgr.rlloso. Desarrolle Lln programa por el que i,alga la pena csir,rar: los productos dc alta calidad son ms diflciles dc clesbancar quc 1,, prodr-rctos trediocres desarrollados con rapidez. La historia dc la inciustria dcl softrrn'arc para rnicrocor.r.rputadoras c:.. repleta de e.icmplos dc productos quc se tcrminaron tarclc. pero que h"adquirido una inmensa popularidacl. E,l desarrollo cre Microsofi worcl l
_
REFEBENCIA CRUZADA Para ms lnformac n sobre el desarrollo de Word para Windows. consulte .Un ejemplo de planificacln excesivamente optrm sta,,, en la Seccin 9.1
.
para windows fuc planificado originalmentc para hacerse cr.r un at,. . neccsit cinco (lansiti. 1991). Microsofi winclou,s 95 fue entregaclo L.rario y medio ms tarcle de la f-echa anunciada originalnrente (cusunrar-; y Selbr. 1995). y se ha convertido en uno cle los productos softrvarc'e1rdidos rns rpidanrente. un producto financiero en el quc trabaj ii: . entregado con un 50 por 100 dc retraso respecto a la planificacin ong nal de la empresa. pero se conr,'irti err el producto softrvarc nrs populr,: de dicha clr.)presa. Para cada uno de estos procfi-rctos. la entrega a tlemll, (segrr la pla'ificacrn original) ro era un fhctor clar.e. aunqne todo e mundo pcnsara que la planificacin del clesarrollo cra un factor crtico c:su lll()r-rlefrto.
rpido
129
.3,
Los proyectos softu'are contienen demasirdas variablcs couro parl poderdclinirplarrificacioncs con un 100 por 100 de exactitud. E,n lugar dc
tenef Llna f'eclra particular cn la que debe terrninarse un proyecto. para cualquier proyecto dado criste un rango de fechas dc finalizacin. dc las cualcs urlls son ms rrobables que otras. La distribucin de probabilidad dc cstc rango de fechas es similal a la cun'a mostrada en la Figura 6.6 (r'asc pgina siguiente). La fon.na de esta curn'a de probabrlidadcs expre sa valias hiptitcsis. Una de ellas cor-rsiste en quc eristc rLn lmitc absoluto sobre la r,elocidad a la que sc puede ten.r.rinar cualquier proyecto. Terminar antes no es silnplcmcn-
:
:
==ERENCIA CRUZADA
-: lrOrmaClOn
soore ras
:, res lo rns
' aac ones lo : -:as posrore-.
Secc n 8.6.
la
---+
Probabilidad de terminar
exactamente en la fecha programada
Figura 6.5. Un enfoque de la planificacin del software. Defiende que el proyecto tene un 100 por 100 de posibilidades de estar termnado en una fecha determinada.
130
Probabilidad de terminar
exactamente en la fecha programada
6.6. Forma de una planificacin de software. Debido a tas incgnitas que influyen en un proyecto software, algunas fechas de finalizacin son ms probables que otras. pero ninguna de ellas es totalmente cierta.
Figura
te clifcil: cs inrposible. otra hiptitesis consiste cn clue la fornra de la curva cn cl laclo <inicial> no cs la nrisrna quc en el lado <<flnal>. Aunque existc un Irrite estricto sobre la rapidcz con quc se pr-rccle terntinar un proyecto. no cristc tal lnritc para la lentitud con que se puede terminar. como es urs fcil terminar trrcie Lln proyccto quc ternrinarlo antes dc tienrpo. la forrra de lr curva en cl lado firal es ms graclual que er1 el lado inicial. Tor.n DeMarco pl'opLrso qr-rc los proyectos deben ser planificados para cluc la probabilidad de cntre-qarlos antcs de tiernpo sea la misma que la de
cntregarlos tarde (DeMarco. 1982). E,n otras palabras. dcflnir la planificacin del proyccto para tener un 50 por 100 de posibilicladcs de ternrinar' a ticnrpo. colro se lluestra en la Figura 6.7.
I
i
Planificacin
lProbabilidad de terminar
exactamente en la fecha programada
Probabilidad de terminar antes o en la fecha final prevista
"equilibrada" 50/50
6.7. Planificacin equilibrada. Existe un lmite en la velocidad mxima a la que se puede completar un proyecto, pero no para el tiempo que pueda prolongarse su desarrollo. Esta planificacn ofrece un 50 por 100 de posibilidades de terminar a tiempo.
Figura
rpido
131
La cstrategia dc planificacin ecluilibracla de DeMarco es ull pttnto til para avanzar en la cotllprensin del desarrollo lcnto. Ptrcde por dil'idir el grlico de probabilidades cll \'arlas zollas. feprcsencoltlellzar tando cada una de ellas una cliftrcrrte vclocidacl de desarrollo. colllo se nlucstra en la Figr.rra 6.8. La zona clcl crtrer.r.ro izquierclo dcl grfico cs ll (zotla de clcsan'ollo ilnposiblc>. L,sta zona reprcscnta un nivc'l de productiridacl quc no ha sido rlcaltzldo ltunca por ningitn proyccto. Los lroycctcls planificados cll esta zona estlt colldenados a salirse dc sLr progralllacin inicial. La zona de la izquielda dc la curva es la <zona dc desarrollo rpido>>. Un proyccto temriltado elt CSta zona eS collsiclcracltl rpido. ya cltrt- tiettc lreltos clc Lrn 50 por 100 de posibiliciaclcs dc tertlinar a tielllllo. Ut.t ctlurptr cle desarrollo que contpletc utt proyccto etl esta zolla tirlrrlil.la toclos los
cic particla
pronsticos. La zona central de la curva es la (zoua cle desarrolltt cllcier.rtc>>. Url proyecto que tcrlttina clelltro de esta zolla se considcra eficiente dcbiclo a que no ha ganado la apuesta. pero talllpoco la ha pcrdido. El proyccto se ha tenninaclo ccrca de str f'ccha estiltlacla cle llnalizacirl. Las elllpresas dc desarrollo dc sofiu'arc cficientes planilican y temtiltan sLts prodttctos de tin.na cousistentc en esta zona. que Icpresenta tula bLtctra cotlrbinacin
de plarrilicacin r coste.
El rca de la parte dcrecha dc la curva es ll (zolll cle clesarrollo lcnto>>. Un proyecto terrniado en cStl zolta Se Considera lentc'r lorquc- ttcltc ms del 50 por 100 de posibilidades clc terminar coll 111/ls rctraso. Ell lo qLle respccta a la plarlificaci11. un prOYecto qtle terlllina L-ll r'stu zona Slll intentarlo ha tl'acasado. Tener rito en la planificacitln al 50.50 dependc
Probabilidad de terminar
exactamente en la fecha programada
Zona de desarrollo
I
--)|.
desarrollo lenlo
6.8. Distintas zonas de una curva de planificacin. Muchos proyectos buscan la zona de desarrollo imposible (sin saber que es imposible)' y terminan en la de desarrollo lento (sin desearlo).
Figura
132
dc una estirnacin exacta y dc la obtencin de la lceptueiirn dc tnla cslimacin exacta. temas clescritos con dctalle en los Captulos 8 y c.).
estructura ni ningrn otro traba.jo. Llama a Honest Abe y le pregunta <,Cimo van las obras cle rli casa'l> Abe le contesta: <Hentos cr.lrpczadc poco a poco pofque estalnos ternrinando otra casa. He incluido un ticnr,, de resen,a cn mi estimacin dc su casa. as clue no hay por qLr preocuparse.
Est muy ocupado con su trabqo. y cuando tiene ur.r hueco para ir 11. nuevo a ver cl progreso de su casa. han pasado trcs meses. Llega cle nr"rer ,
rl
) csta \cz cncuenlra los eirnientos. pero no sc \c ninsn ot:' Llama a la enrpresa. y le dicen: <No hav ningn problenra. Iist.,traba.jo.
solur"
mos dentro dc 1o planificado.>> Sigue estancio nervioso. pero decide acel'tar la palabra de Abe. Pasan el cuarto 1' cluinto nlcscs. Llama a Atc varias \,eces parl cor'probar sLls prosrcsos. y sienrpre le dicc cluc toclo va bicn. Al principrtr.: sexto ncs. decide ir a ver la casa Llna vcz ms antes dc que est tenlir.,da. Est nervioso por vcrla. Pero cuando llcga al sitio. lo rrico que re .la estructura de la casa. No hay techo. niparcdcs. ni fbntanera. ni in:tr. cin clctrica. calefaccin ni aire acondicionado. Est nerl'ioso y tensr, clecide ir a comprobar algur.ras de las relercncias dc Honest Abe. C.,. prucba qlle para una casa qLrc Abe termina en el plazo comprorncticlo. inruchas que termina con un 25 a un 100 por 100 de rctraso. Est enf.,-,.do. <Han pasaclo cinco de seis nrcscs. y no ha hecho casi nada>. le g: <,Cundo vov a tener mi casa'l Nccesito mudarme a ella dentro tl; mes.> Abc lc contcsta: <Mi equipo est trabajando a tope. Tenclr sLr.... a tiernpo. Crarnc.> ,Decidc crccr a Abe'l Por supuesto quc nol No con su histolri progrcso que ha r,isto.
rpido
133
incluso con rns dinero en juego. cspefarnos que nuestros clicnres qrricran ver menos signos de progreso de los quc nosotros exigirantos a alguierr que nos cst construyendo una casa. Esperar.r.ros de ellos que acepten un conjunto de requerimientos. y luego esperen sentados semanas. nteses o incluso aos antcs de tener algo tangiblc para cnsearles. No rcsulta ertrao que los clientes se pongan nerviososl E,s pcrfectamente nonual que los clientes piensen que cl desarrollo de software requiere mucho tierrpo! Aunque est completamente dentro dc lo planificado. sea consciente de que la percepctn de un desarrollo lento puede afectar a su proyccto tanto como el desarrollo real. Aunque lo hagarnos siempre, no es razonablc esperar que los clientes csperen sentados durante mcses! y rnostrarles signtrs evidentes de progreso fbrma partc de nucstro trabajo.
Probabilidad de terminar
exactamente en la fecha programada
6.9. Planificacin tpica en relacin con la curva de planificacion del software. Debido a estmacones poco realstas, Ia mayora de proyectos parecen ir lentos aunque se terminen en las zonas de desarrollo
Figura
roido o eficiente.
134
clolomirsprolltOposibleconlosrecursosclequcclisponian.
o o
caclones \,1gel1tes. ciente" o clcl clcsarrollo etlciente al de sarrollo rpido' (.atttt.ttr.se en lu terc'ett'ip iel desut't'tllt 1'rl. Elirlinar las
tlt'l tlesttt'rollct lentr. Acortar las planitipasar.rclo clel clcsarrollo lento a1 desarrollo elliders
Lttcipicas.,vhaccrqttelasplar-rificacionesinicialcsseannlst.ealistas. alaigri'dolas para ccrrar el hueco cntt'e las f-echas dc fi'alizacinplanificadayactllal.Utilicemtoclosquedestaquenlavisibiliclacl clel progreso. E,n ocasiones. los clientes no deseen tant(r incrcrre'tar la ielociclacl cle clcsarrollo. sino que si*plcmente deseall cstar illfbrlnadcls.
La zona clc vclociclacl cle clesarrollo en la quc- sL- enctlentre determtnarll del desarrt''st clebe ccntrarse cn cl clesarrollo rirpicio cn s o en 1a perccpcin problema cn anlllo rpido. con urucha frecr-rencia habr clue rcsollcr cl
bos nivelcs.
rca en -', Urra estratcgia para lograr el clesarrollo rpido es detcrminar el clcl tiempo cn un proyecto tpico' y L'ntonc'i qlre se.nlpla,, la rnarora iitentar rcclucir clicho ticmpo. Puedc reclucir algu'ras tareas con ms fae inadrt':liclacl que otras. c llttclttar reducir algunas de ellas puede alargar tidarnentc lu plani l'icrcirl. de i':' Dentro clc un proyecto sofitvarc. el tiempo puede contemplarse vista producen diferentes prCc':ntas c-listintas. y 1os diferentcs pLlntos tlc el r' cioncs clel emplco clc clicho tienlpo. E1 siguierlte apartado presenta posterlores prcsentan oIl. to c1e r ista clsico (fase a thsc). y los apartados pLlntos clc vista.
La mayora
c1c
rpido
135
comicnza oflcialnlcnte cl dcsarrollo dc softr'i'are . Las actir idadcs posteriores a los rcquerir.nientos tienden a se r la rartc tnc-jor deflnida del proyecto. La Tabla 6.1 ofrece una idca aprorimada dc dnde se cnrplea el tienrpo en 1as actividades posteriores a los requerir.nientos cn pro,vectos grandes y peqi.reos bien ejecutados.
Las actir.idades que requicren nrs tieurpo clc un proyecfo pequt--rr son las tareas de construccin de diseo dctallado. codificacin.depuracin y prueba de unidades. Si pudiera elir.uinarlas por arte de magia. podra reducir el esfuerzo de su pro'eclo cn urr 65 ror 100. En un proycctcl grancle, las actir'idacles cie construccin rr.quir'ren IIcn()s partc' dcl esfuerzo global. E,lirninarlas de un plumazo stilo reduciria alrcdcdor dc Lrn 35 por 100 del esfuerzo reqr"rerido pol el pro_vccto.
La mayora dc nosotros ha aprendido a tra\'s de la clura expcncncra
a
no acortar arbitrariamcntc las actiridades inicialcs de arclr-ritectura 1, cliseo. Podcrros pclrsaf que reclucir el tiempo de diserio en un -5 por 100 puedc rcducir la planificacin del desarrollo en rrn 5 pol 100. pcro lo rrs probable es que cualquier tienrpo rhorrado por rcortar cl disco sca pagado posteriornrente con intercscs cn las ctrpas flnales del proyccto (actualrrente, la penalizacin suf ida pucdc accrcarsc r.ns a la usura cluc al intcrs). Dicho de otra fbnna. un dcl-ccto dc discr'lo que requicrc r-rr.ra hora y media para ser detectado cn la fasc cle discrlo puecle necesitar de dos cias a un nles para ser resuelto si no sc dctccta hasta la comprobacicin dcl sis-
.-]S
REALES
tema ( Fagan. 1 976 ) Una estrategia ms clcctiia quc la rcduccicirr arbitraria de las lascs iniciales consiste en realizarlas dcl moclo rrs eflcientc posiblc. o usar mtodos que requieran lnenos disco (con.ro ejcnrplo, podran-ros usar unr biblioteca de cdigo para Lrna partc'del sistema). Es ms probable reducir el tienrpo total de desarrclllo si se er.nrlea r.niis tienrpo cn Ias actividades iniciales. v no mcnos.
Tabla
6.1.
Actividad
Arqu itectura,,'cli seo Diserio dctallado
Prolccto pequeo
(2.500 lncas de cdigo)
I0'ln
20e.;
)
5(1,i,
0(1.;
209.u
( udille
re
irin tlcpLrrrcrrr
109.
50.i, 20,1.n l-5(f i)
)
2011
l5rti
I0,,,;
136
Puntos clave
Capers Jones informa que l'r Dcspus dc rcvlsar ms clc't'000 proyectos' l0{t inclustriaclel sofirvareengeneral puedetenerunaeficienciadeun35.por se gasta en actividades (.lones, 199'+). El 65 poi 100 de tiempo restante el uso de herramientas de productiperjudiciales o lnlprocluctivas' como de mdulos desarrollados de tbrma r,iclad que no funcronan. 1o "pur.utin la falta de control de configuracior' descuidacia, trabaio perditlo ebido a puede ahorrar tiempo'l Los siguientes subapartado' , clems. ,Dndc se derclibcn algtrnas de cttls arcas'
DATOS REALES
REFERENCIA CFUZADA Para rns informacin sobre la lmPortancia de evltar rePetlr el trabajo. consulie la Seccin 4.3, "Bases del control de calidad'
y cdigo defectut'Trabaio repetido' Repetir requerimientos' diseo por 100 de1 coste tot'r un 40 a un 50 sos puede consurltr generalmentt dt (Jones, l9g6b; Boehrn. 1987a). La correcciorr del desarrollo de softrvare
del trabajo, ofrece las corrccci.llcs evltall una repetlclon posterior proyectos' oportLrniclad potentc para reducir sus
REFERENCIA CRUZADA Para ms informacin sobre el cambio de prestaciones, consulte la Seccin 14 2, avanzado: " Proyecto control de camblos de las Prestaclones"
Cambiodeprestaciones'Elcambiodeprestaciot-rcs.puededeberse..
por parte deldesarrollador cambios en los requct'imientos o nleticulosiclacl de un 25 por 100 de cambit" Un proyecto norrnal expcrimenta alrededor lo que aade ms dc ttrl en sus requerimier.rtos a lo largo de su clesarrollo' (Bochn-r' 1981;Jones' 1994)' No limi25 por 100 cle csfucrzo ai proiecto estrictanlente necesarios es ttl' tar los cambios e,t los ,equerimientos a los y eliminar cl cam.bio de preserror clsico en la relociiacl c1e desarrollo,
tu.ion.,ayudarnuclroaeliminarlosretrasosglobalesenlaplanificaclr..
REFERENCIA CRUZADA Para ms informacin sobre e1 anl1ss de requertmlentos' consulte la Seccin 14 1 iniciado: " Proyecto reduccin del conJunto de Prestaciones"
Especificacinderequerimientos'-Laespecificacin{grequerimier.tosesunaactiviciaclqu.noestref.lcjaclaenlaTabla6'l.Mientrasquell. actir,idacleslistaclasenlaTabla6.lestnrelacionadascotrlasolucintl.
trnproblema.lacspecificacrncierequerimientosestrelacionadacot-ti'. especificacirrclclproblen]aens'Esr'rnaactir,.idadn-rsabicrtaqueotl.]: recogiendo rcquerintterractividades de desarrollo. y el tiempo empleado
tosnoguardalllngunarelacincleterminaclaconeltienrpototalempleatt. 12 meses ttt:il.::^1" requef:constrLiycndo ei prograrna' Pucclcn paslr i'' n-rescs para construirse O podl nrientos pal'a utl ,,rtaitu que necesitar 36 dedicar]osnllsmosl2nlesesrrrediandoentrevariosgruposp.aradefin::para su construccin' Gen"un sistellla quc slo requerir seis meses necesita entre un 101 t'r:' ralmente. la especrficacin de requerimientos ptoytcto (Boehm' 30 por 100 del trempo empleaclo tn.ttn '1981)' es una actividad tan abicrt' Como la recopilacin de requerimierrtos dc ticmpo innecesaLtanlcilt' cs posible ,.l..p.'Alti" grrndcs'cr.nticlades Urrlrroderadosenticiodeurgenciadurantelarecopilacindcrequerin-rier.' total de pnico al final del proyecto' tos pucde evttar una
"n'ut-in
rpido
137
Los r.ntodos de desarrollo rpido que se llcvan a cabo para cornbatir el tierrpo perdido durantc la especificacin de requerimientos incluyen el desarrollo conjunto de aplicaciones (.lAD. .loint Apphcation Der.'elopment), cl prototipado er"olutivo. la entrega por ctapas y diversos cnfbques de la gestin de riesgos. Estos nttodos estn dcscritos a io largo de1 libro.
El .,inicio difusor. Otro tipo de actividad que no est descrita en la Tabla 6.1 es el <inicio difuso>. El trempo total necesario para dcsarrollar un producto sofir,varc r,'a desde el pr.rnto en que el proyecto es sintplcnente una visin en la rrente dc alguien hasta cl ntomento en que el sofiware tenninado cst cn manos del cliente. Algn tiempo despus de que el proyecto es una visin cn la mentc dc alguien, se tolra la decisin de <contenzar>, 1, ernpieza oficialmente el proyecto softrvare. El tiernpo transcurrido entre la chispa inicial y la decisin dc <comenzar> puetle ser u.tuy largo. Este .iinicio difuso> puede consurnir sran parte del ticntpo disponible para poner un producto en el mercado. El E.jcntplo 6.1 describc un caso tpico.
Ejemplo
6.1.
Bill
es un directivo de la empresa de seguros Giga Safe. Estas son las notas que torn sobre el proceso de aprobacin del Giga-Quote 1.0, un programa de primas de seguros: I de octubre. Queremos desarrollar un nuevo programa de primas para
nuestros corredores. Queremos que el progranra descargue las primas de cada da en la oficina central cada noche. Harn falta unos 12 meses para terminar su desarrollo, as que no podremos tenerlo a tiempo para la subida de tarif'as de enero prximo, pero podramos tenerlo para la subida posterior (dentro de 15 meses). Deberamos intentar terminarlo para el I de noviembre (dentro de 13 meses), para tener tietnpo de formar a los agentes antes de cambiar las primas. Voy a proponer el proyecto en la reunin del comit ejecutivo a final de rres. 2 de enero. La propuesta de Giga-Quote ha sido retrasada dos meses en la agenda del comit ejecutivo. Finalmente, la he presentado a finales de diciembre, y he recibido la aprobacin para preparar un anlisis de be-
neficios.
de
est
rer,isado.
I de mur:o. Dos de los principales responsables de ventas estn de vacaciones. El anlisis de bene{'icios no puede ser aprobado hasta que Io revisen. I 5 de abr|. Ya estn todas las revisiones, y el proyecto est <en marcha>. El comit ejecutivo sigue queriendo que el proyecto est terminado el I de noviembre, as que el equipo tiene que empezar a codificar ahora
1111S1TIO.
138
C'onro no se realizur controles fbrnrales (no hal planificaci(rn. ni presupucsto. ni nretas. ni ob.jctiro-\). clurante este peroclo cl trrrogrcso cs dificil clc controlar'. Acienrs. la nrayora cle clirectivos ticlrclcn ir dal'poca prioridad a csla lasc. p()rqur'el inrpacto llnanciero cst lc-jos. En cl inicio clifuso. pLrcdc pclc'lcr tie'ttt1-rtr l)()l- estll\ r'irz()ltes:
a a
BIBLIOGRAFIA ADICIONAL Para ms informacin sobre el inicio dif uso. lea Developtng Products in Half the lme (Smith y
Reinertsen 1991).
El esfircrzo empleaclo en el inicio dc urr provcctcl suele scr ba-jo. pcr', cl coste lcsultantc clel retraso en el lanzanricnto al lnercaclo pucdc scf alt(l La nica lbrma de recuperar Lur lres percliclo en el inicio L-s acortar ulr nrci el ciclo dc dcsarrollo clel proclncto en su fhse final. Acorlrr en un nrL-s ! csfirerzo global de <lesarrollo cuestr bastante r.r.rs que abrcviar el inici, cn el misnro pcl'oc1o. El inicio presenta una de las oportLrnidacies rns ect'nn-ricrs y ef'ectil as dc dcsarrollo rpido.
rpido
139
ll)lIe\
nes plsa lo nrisnro. Si dcsea nrodillcal uno de los r'rtices clel triangulo. tenclrii cluc niodilicar al nrenos uno clc los otlos para urlutenello cclLrilibraclo. Para avudat'mc r llcnsar la opcitin a r.naniltular- clurante las reunioncs de plalril-icacilt nre gllstr llfcsentar un grau tringulo con sus r'r'tices rotulrclos cotro <planilicacitin))" (coslc) v <procluctor>. Los clientes cligcn cl r'r-
ticc o irtices que dcscan controlar'. Nuestro trabajo conro desarrollaclores clc sclljr"'rrc consistc en clue los clicntcs r.tos enseen los r'rtices a los clue ticnden. y cnscriarlcs lo cluc hay cluc haccl para ecluilibrar el tringulo. Si trn cliclttc se celtlrl crt los verrticcs ((llroclucto) y (coste)" le dircn.ros ct'rnlo rcsulta afcctaclo el rrticc <<planilicacirin>>. Si s(rlo se flian en el rrtice <productt'lir^ podcnros darles unr anrplia r,'ariedacl de cclmbinacioncs clccostc ), planif icacin. Pero cor.no desan'ol1rdores necesitan.ros tcucr couto mnit'nrt iur r't'ticc para controlar'. Si su clicntc no le pen.nitc cotltfolar Llll rcirticc clcl triiingulo. scneraln.cntc no podr c-jecutar el pfoyccto.
P lan if
icacin
Producto
Figura 6.10. Tringulo de equilibrio del software. Para tener xito en el proyecto, hay que mantener equiltbrados la planificacin, el coste y el
producto.
140
ERROR CLSICO REFERENCIA CRUZADA Para ms informacin sobre ta negociacin en entornos dif ciles. vase la Seccin 9.2, .Dtsminucin de la presn de la
ptan
if
icac i n,,
info'ra que en un soncleo infbrmal ha encontrado que 40 ror 100 de tocios los proyectos cle desarrollo adolecen de la irnposicin simultnea de prestacioncs. recursos y planifjcacin (Mccarthy. 1995). si no eristc un eqtrilibrio i.icialc.ntrc pianificacin. costc y proclucto. que gcneralmente no se cla. csto su_qiere quc entre ur.r 30 r, un 40 por 100 cle los proyectos dc cicsarrollo conrienzan sin posibiliclad dc cquilibrar las caractersticas de Ios proyectos para rercr exiio. cuanclo un cliente le pasa la deflnicir de un pfoducto^ un coste fijo y una planificacin fa. generalrnc'rtc est intcntanclo mcter urr producto cle l0 kilos en una bolsa para 5 kilos. Pucclc intentar fbrzar cl paqlrete de l0 kilos cn la bolsa, cstirar la bolsa y rornperla. pero ar final simplenrente se clesesperar.a. simplemerrte porquc no cabe. y seguir tcnicndo que decidir sr neccsita una bolsa ms {rande o poner lreros canticlacl en la bolsa que trene.
Jim Mccarthy
Lrn
cntre un -i0 y
Compromisos de calidad
REFEFENCIA CRUZADA Para ms detalles sobre la relacin entre la tasa de defectos y el tiempo de desarrolio. consulte la Seccin 4.3, "Bases del control de calidad.. REFERENCIA CBUZADA Para ms detalles sobre el uso de este trpo de calidad para reducir el tiempo de desarrollo. consulte ei Captulo 14. "Control det conjunto de prestacrones".
Los productos soft*'arc ticnen dos tipos de caliclacl. que afecta'a la planificacin de fbrmas. Un tipo de caliciad es una taja tasa de deicctos. Hasta cicrto'arias tener pocos clcf-ectos y Lrn tiempo corto de desarrollo punto, sor cosas rclacionadas, as que no hay fbrma de cq,ilibrar este tipo cie calidad pa.a planificar. El camino hacia la planificacin rns corta posrble consiste en obtenc'r cl proclucto correcto a la primera. para no percrer. tiempo volvienclo a trabajar en el diseo y la cocrificacin. El otro tipo de calidad incluye todas las resta'tes caractersticas cn las que piensa al inlaginar ttn proclucto softrvare cle alta caliciacl: usabiliclacl. eflcacia, robustcz y dems. centrarse en este tipo de calidad alarga ra planificacin del desarrollo, as q*e eriste la posibiliclacl de equilibrar esre tipo de calidaci flenre a la planificacin.
fo'na de maximizar la procir-rctir,.idacl por persona conslste en manreuei. un tamao de eqLripo reducido. una de las fbrmas ms fciles de rcclucrr. uua planificacin de software consistc en incrementar el tamao dcl equipo. lo quc i'rcrcnrcnta la productiviclad total. pero gc'eralmente hace que crclil persona sea menos eficiente. El ciesarrollo rpido no siempre es eficiente
pr
6.7.
rpido
141
Planificacin al 50/50
Probabilidad de terminar
exactamente en la fecha programada
Figura 6.11. Curva de planificacin en el desarroilo tpico. Los proyectos normales tienen planificaciones que carecen prcticamente de posibilidades de cumplir.
Entre los proyectos normales. el mbito del rendirniento clel proyecto es amplio, y muchos de los proyectos tienen rL.trasos significativos. Observe que gran parte de la curva de la Figura 6. I I est a la dcrecha de la lnea de planificacin inicial en proyectos normales. Hay pocos proyectos que se acerquen a sus objetivos iniciales de coste o pla:3_iOGFAFIA i]ICIONAL
:: : ;-l r oct.
ificac in.
Como muestra la Figura 6.12. entrc los proyectos con desarrollo cflcicntc la variacin de la planificacin es rrenor. y la mayora dc proyectos se acercan a sus objeti\.os de coste y planificacin. Casi la rnitad de los proyectos terminan antes de la fccha fijada, y casi la otra mitad ternrinan despr.rs. Las planificaciones iniciales son ms largas que en cl desarrollo
Probabilidad de terminar
exactamente en la fecha programada
142
tpico, pero las planificaciones reales son ms cortas. Esto se debe en parfe a aprender cmo definir los objetivos de un modo ms realista, y tambin a aprender cmo desarrollar el software con ms rapidez. Pasar de la imaginacin a la planificacin de proyectos con sentido es crucial para pasar del desarrollo tpico al desarrollo eficiente. Una vez alcanzado el desarrollo eficiente, el patrn de mejora depende de si desea mejorar la velocidad de desarrollo, la predecibilidad de la planificacin o ambas cosas. Idealmente, podra emplear mtodos que l.' conduciran a la compacta curva mostrada en la Figura 6.13. Desafortunadamente para nosotros, la curva iilel cle la Figura 6. l3 es tan utpica en el desarrollo de software como la reduccin de peso en las dietas milagrosas. Como se muestra en la Figura 6.14,la mayora de rnetodos de desarrollo rpido estn orientados hacia incrementar la velocidad de desarrollo o reducir el riesgo en la planificacin, pero no en ambos
sent idos.
Al seleccionar mtodos de desarrollo rpido, necesita decidir si desea mejorar las posibilidades de entregar antes un producto o reducir el riesgo de que el producto se retrase ms all de una cierta fecha. El resto de.
libro describe estos mtodos.
Probabilidad de terminar
exactamente en la fecha programada
Figura 6.13. Curva de planificacin ideal en desarrollo rpido. Si todo como est previsto, el resultado consiste en velocidad y predecibilidad
mayores.
va
rpido
143
Probabilidad de terminar
exactamente en la fecha programada
Aumentar
Reducir el riesgo
^'-
Figura 6.14. Opciones de planificacin. El desarrollo rpido puede centrarse en incrementar la velocidad de desarrollo o reducir los riesoos
relaconados con la planificacn.
o o . o .
productividad.
Algunos de estos ternas pueden considerarse como parte de lo que hemos descrito como <bases del desarrollo) o (desarrollo eficiente>. Como
creo que estos enfoques son bsicos para alcanzar la mxima velocidad
de desarrollo, estn descritos en esta parte del libro.
bliografa adicional
DeMarco, Tom: Contrclling Sry'in-are Projects. New York: Yourdon Press. 1982. Este libro contiene gran parte de la inspiracin de la parte de curvas de planificacin de software de este captulo. DeMarco dibuja una imagen vvida, humorstica y en ocasiones llena de pnico de los mtodos actuales de estimacin, que, en lo que puedo decir, no han cambiado desde que public su libro en 1982. Describe un mtodo para mejorar la estimacin y la planificacin. Martin, James: Rapid Application Det,elopmen. New York: Macmillan Publishing Company, 1991. Este libro presenta una perspectiva distinta de los temas fundamentaies del desarrollo rpido para aplicaciones de sistemas de inforrnacin.
144
Smith"
P.G.,y D. G. Reinertsen: Deleloping Procluc't.s itt Hal/'tltc 7., Neu' York: Van Nostrand Rernhold. 199 1. Aunque no est dedic"especficamentc al desarrollo de softrvare. este libro contiene ntu. ' infbrmacin relacionada con el desarrollo rrrs rpido de produ; softwarc. El Captulo 3 contiene una descripcin completa del .,in clifuso>.