de proyectos informáticos
-¡''.il) \'ega
Gálvez
- nir ersidad Nacional de Inseniería
oco ta
L L
Desarrollo y gestión
de proyectos i nform áli cos
Steve McConnell
Traducción
ISABEL M." DEL Ácuu.a cANo
ALFoNSo BoscH enÁN
Revisión técnica
ANToNro vAeuERo sÁNcHnz
Catedrático de Lenguajes y Sistemas Informáticos
Escuela Superior de Informática
Universidad Complutense de Madrid
SAMUEL rúNEz noonÍcupz
Departamento de Lenguajes y Computación
Universidad de Almería
McGraw-Hill
MADRID. BUENOS AIRES. CARACAS. GUATEMALA. LISBoA. MÉXIco
NUEVA YORK. PNruA¡¡Á. SAN JUAN . SANTAFÉ oe eocorÁ. SANTIAGo. SÁo PAULo
AUCKLAND. HAMBURGO. LONDRES. MILÁN. MONTREAL. NUEVA DELH¡. PRRíS
SAN FRANCISCO . SIDNEY. SINGAPUR . ST. LOUIS . TOK|O. TORONTO
t*__
DESARROLLO Y GESTIÓN DE PROYECTOS INFORMÁTICOS
esli permitida la reproducción total o parcial de este libro, ni su tratamiento
tico, ni la transmisión de ninguna forma o por cualquier medio, ya sea
electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso
previo y por escrito de los titulares del Copyright.
ISBN: 84-481-1229-6
Depósito legal: M. 26.902-1998
\_
F.
e
,F
3
F
I
3
F
Acerca del autor
Ejemplos xiii
Tablas de consulta xv
Prólogo xvii
PARTE I
DESARROLLO EFICIENTE
3. Errores clásicos 35
vlt
/3-E iÍl?
5. Gestión de riesgos 89
Elementos de la gestión de riesgos... 92
Identificación de riesgos 94
Análisis de riesgos 101
Priorización de riesgos 104
Control de riesgos... 101
Riesgo, alto riesgo y azar ......... 114
Bibliografía adicional ll7
PARTE II
DESARROLLO RÁPIDO
L
Bibliografia 17 5
Contenido IX
t71
8. Esti,mecidn
1:9
:. - l:.t..na de la estimación del software
188
!"- ,:,::o,jucción al proceso de estimación """""""""""""
189
!_: Esnrnación de1 tamaño
197
¡a r.s¡imación del esfuerzo 198
i{ Esdmación de la Planificación
201
s. r'" Estimaciones simples de planificación """"""
214
s.
-. Refinamiento de las estimaciones .""""""""
220
Bibliografía adicional..'..
223
224
9.1. Planificación excesivamente opttmtsta
239
9.2. Disminución de la presión de la planificación
251
253
10. Desarrollo orientado al cliente
254
10.1. Importancia del cliente en el desarrollo rápido
2s9
t0.2. Métodos orientados al cliente
264
10.3. Gestión de las expectativas del cliente
267
Bibliografía adicional .....
269
11. Motivación
11.1. Motivaciones típicas del desarrollador .......... 271
\t.2, Uso de los cinco factores principales de motivación """""""' " 274
I 1.3. Uso de otros factores de motivación.'............
283
11 .4. Destructores de 1a morai " 28'7
29s
12. Equipo de trabajo
297
12.1. Usos de 1os equipos de trabajo en el sofnvare """"""""
12.2. Importancia del equipo de trabajo para un desarrolio rápido 298
301
12.3. Creación de un equipo de alto rendimiento
12.4. Cawas de fa1lo de 1os equipos ..'......"".. 3t2
12.5. Configuración de equipos a largo plazo ....".... 3r6
12.6. Resumen de directrices para grupos de trabajo 318
Bibiiografi a adicional ...... 319
343
lmu'nr ü ctm[il¡mi üe pnestaciones....""'.....
.u -¡T r¡r*ffu r:-c--¡rJrr: reducción dei conjunto de presiaciones.........'.... 345
i - i:;*:¡ ¡r¿nzado: control de cambios de ias prestaciones 356
368
--t -: P::'.ecto a punto de terminar: recorte de prestaciones ..............
Biblioerafi a adicional....' 310
JIJ
15. Herramientas para aumentar la productividad.'..""'
15.1. papel de las herramientas de incremento de la productividad en el desarrollo
3',7 6
rápido
15.2. Estrategia de las herramientas para productividad""""""""' 381
382
\5.3. Aüquisrcibn de herramientas para $od\c\i\idtd """"""
15.4. Uso de herramientas para productividad .."""""""' 388
15.5. El síndrome de la panacea .............".. 393
Bibliografia adicional..... 400
PARTE III
MÉTODOS RECOMENDABLES
2ó E 503
27. h úirtura................ 519
2t" llerrr¡[o externo (Outsourcing) ................. 529
29. lYcariecnón conveniente 543
30. Erü¡rnos productivos 545
31. I-crguajes para desarrollo rápido (LDR) .. 555
32. Filtrado de requerimientos 565
33. Reutilización ................ 567
34. Compromiso (Signing AD.............. 581
Bibliografia 655
Índice 66s
Eiemplos
xilt
}{
Tablas de consulta
xvil
der algo útil; independientemente del estado en que se encuentre su pro-
yecto, encontrará metodologías que le permitirán mejorarlo'
Responsables técnicos
Este libro ha sido escrito principalmente pensando en los responsables
técnicos o de los equipos. Si ésta es su función, generalmente tendrá la
responsabilidad de incrementar |a velocidad de desarrollo de software, y
este libro le explica cómo hacerlo. Describe además los límites de la velo-
cidad de desarrollo, para que disponga de unos fundamentos sólidos para
distinguir entre programas realistas de mejora y puras entelequias.
Algunos de los métodos de trabajo descritos en este libro son radicalmen-
te técnicos. Como responsable técnico, no debería tener problemas al im-
plementarlos. Otros métodos están más orientados a la gestión, y podria
preguntarse por qué se incluyen en el libro. Al escribir el libro, he asumi-
áo la hipótesis de que el lector es el Superjefe Técnico: más rápido que un
hacker; más poderoso que Superman; capaz de mantener a raya problemas
técnicos y de gestión. Esto es algo utópico, ya lo sé, pero evita tener que
repetir constantemente: <Si es un directivo, haga esto, y si es un desarrolla-
dor, haga esto otro.> De todos modos, suponer que los líderes técnicos son
responsables de los aspectos técnicos y de gestión no resulta ningún dis-
parate. A menudo, los responsables técnicos son requeridos por los respon-
iables principales para hacer recomendaciones sobre cuestiones de gestión
con aspectos técnicos, y este libro le aludará a prepararse para ello'
Programadores individuales
Muchos proyectos software son llevados a cabo por programadores indi-
viduales o equipos autogestionados, y tienen participantes técnicos en
Prólogo xtx
Directivos
En orcusimes- krs di¡ectivos piensan que alcanzar el desarrollo rápido de
softrze es fudamentalmente un trabajo técnico. Sin embargo, si es un
directiru. gffirlmÉrte podrá ayrdar tanto como sus desarrolladores a
mejorrr h r',elail¡d de desarroll'o- Este Libro describ€ muchas técnicas
de desrrollo ripirto I uircl de dirección- Eridentsmen¡¿- tarnbién puede
leer los Eétodas de tipo Écili@ púr cmprErdsr lo qrc plre&n bacer los
programadores en s nirel-
todos recomendados y apoyar con cifras muchas & las afirmaciones rea-
lizadas en este libro.
¿Por qué es tan grande este libro sobre desarrollo rápido? Los
desarrolladores de los ámbitos de los sistemas de infortnación, paquetes
soítware, aplicaciones militares e ingeniería del software han descubierto
valiosas técnicas para desarrollo rrápido, pero las personas de estos distintos
ámbitos raras veces intercambian opiniones. Este libro recoge las técnicas
xxil aróbgo
Agradecimientos
\{is primeros asrade.-imientos van dirigidos a Jack Lites'ka. edr::: l:-
pro).ecto. por hacer de la r--reación de este libro una erpenenci: .'..rl-il---
tiva 1-dir-ertida. Quiero darles 1as sracias también a Kim Eggies:"-- ::: =
Prólogo xxilt
diseño del libro, a Michael Victor por los diagramas y a Mark Monlux
por sus terribles ilustraciones. Sally Brunsman, David Clark, Susanne Freet,
Dean Holmes, Wendy Maier y Heidi Saastamoinen también han contri-'
buido a la progresión de este proyecto. Hay literalmente docenas de otras
personas que han contribuido a este libro de un modo u otro; no he tenido
contacto personal con ninguna de ellas, pero aprecio su contribución (en-
tre ellas, me han dicho que están la dibujante Jeannie McGivern y el
jefe de producción Jean Trenary, de ArtSource, y el equipo de pruebas y
edición de copias de Microsoft Press, supervisado por Brenda Morris: Ri-
chard Carey, Roger LeBlanc, Patrick Forgette, Ron Drummond, Patricia
Masserman, Paula Thurman, Jocelyn Elliott, Deborah Long y Devon Mus-
grave).
La bibliotecatécnica de Microsoft Corporation ha ofrecido una ayuda
inestimable para recopilar los cientos de libros y artículos en que se basa
este libro. Keith Barland ha encabezado esta labor, haciendo que mis tra-
bajos de investigación hayan resultado mucho más rápidos y fáciles de lo
que hubieran sido sin ella. Otras personas de la biblioteca que también
han participado son Janelle Jones, Christine Shannon, Linda Shaw, Amy
Victor, Kyle Wagner, Amy Westfall y Eilidh Zuvich.
He destacado las virtudes de las revisiones en varios lugares de este
libro, y éste se ha beneficiado ampliamente de revisiones de compañeros.
Al Corwin, Pat Forman, Tony Garland, Hank Meuret y MaII Peloquin
han estado en el proyecto de principio a fin. Gracias a ellos, ¡el libro que
tienen en sus manos no se parece mucho al que iba a escribir en un prin-
cipio! También he recibido comentarios interesantes de Wayne Beards-
ley, Duane Bedard, Ray Bernard, Bob Glass, Sharon Graham, Greg Hit-
chcock, Dave Moore, Tony Pisculli, Steve Rinn y Bob Stacy (siempre
críticas constructivas). David Sommer (de 11 años) me dio la idea del
último panel de la Figura 14.3. Gracias, David. Y, por último, tengo que
dar las gracias a mi esposa, Tammy, por su apoyo moral y buen humor.
Tengo que comenzar a escribir mi tercer libro inmediatamente, ¡para que
deje de tirarme serpentinas y llamarme Gran Autor!
Bellevue, I4ashington
Junio de 1996
1
Bienvenido
al desarrollo rápido
Contenido
1.1. ¿Qué es el desarrollo rápido?
1.2. Cómo lograr el desarrollo rápido
Temas relacionados
Quién debe leer este libro: Prólogo
Beneficios fundamentales del libro: Prólogo
¿Por qué se ha escrito este libro?: Prólogo
Estrategia para el desarrollo rápido: Capitulo 2
Cuestiones fundamentales para el desarrollo rápido: Capítulo 6
Métodos orientados
a la planificación
L
Estrategia para
el desarrollo Épido
Contenido
2.1. Estrategia general para el desarollo ri1*b
2.2. Ctafto dimensiones de la r-elridad ¿g.hsÍotlo
2.3. Tipos generales de desarrollo rápido
2.4. ¿Cuál es la dimensión más imporunte?
2.5. Una estrategia alternativa para el desarrollo rápido
Temas relacionados
Errores clásicos: Capítulo 3
Bases del desarrollo de software: Capitulo 4
Gestión de riesgos: Capítulo 5
Cuestiones fundamentales para el desarrollo rápido: Capítulo 6
(continúa)
Capítulo 2: Estrategia para €:,J:-s..-cllo rápido 1i
(cont¡nuü)
L
,¿ -r Jeffr:r tr J-:rrefiüs mfurmáücos
Figura 2.1 . Los cuatro pilares del desarrollo rápido. EI mejor plan posible
depende de evitar los errores clásicos, las bases del desarrollo y la gestión
de riesgos, además del uso de métodos orientados a planificación.
7
14 Desarrollo y gestión de proyectos informáticos
La figura también sugiere que los tres primeros pilares ofrecen la mayor
parte del soporte necesario para obtener el me-ior plan posible. Quizás no
sea el soporte ideal, pero es la ma¡-or pane de lo que necesitamos. Debe-
mos ser capaces de obtener un plan óptirno sin métodos orientados a pla-
nificación.
¿Se podría obtener el mejor plan porible centrándose únicamente en
métodos orientados a planificación? Se @ria hacer. La gente yaharca-
lizado antes proezas como ésta. Pem coilo muestra la Figura 2.2, es w
difícil problema de equilibrio. Puedo mantener en equilibrio una silla
en mi barbilla y mi perro puede mentEnel'en equilibrio una galleta en su
nariz. Pero la elaboración de un pro!-ecto softw-are no es un truco de sa-
lón, y si confiamos en que los métodos orientados a planificación hagan
todo el trabajo. probablemente no ten&€mos todo el soporte necesario. Si
1o hacemos una \-ez. puede que no s€amos capaces de hacerlo de nuevo.
Los tres primeros pilares mostrados en la Figura 2.1 son básicos para
el éxito del desarrollo rápido, así se hani lo posible para clarificar qué
quiere decir evitar errores clásicos, bases del desarrollo y gestión de ries-
gos. El Capítulo 3 trata los errores clásicos. En la mayoría de los casos,
estar avisado simplemente de la naturaleza de un error será suficiente para I
evitarlo, así que en este capítulo se muestra una lista de los errores clási-
cos. El tema de las bases del desarrollo se trata en el Capítulo 4, y el tema r
de la gestión de riesgos en el Capítulo 5.
El resto del libro tata de métodos concretos orientados a planifica-
ción, incluyendo métodos orientados a velocidad, orientados a la planifi- I
Métodos
I
orientados a la
i
planificación
l_
Capítulo 2: Estrategia para el desarrollo rápido 15
Personas
Proceso Producto
Tecnología
Personas
Se conocen los resultados de experimentos concretos en temas de perso-
nal Qteopleware). Podemos estar famtliarizados con 1a tesis de que la di-
ferencia en la productividad entre diferentes desarrolladores es al menos
de diez a uno. O estar familiarizados con la aportación positiva que puede
tener una mejora explícita en la motivación.
Lo que es menos familiar de la mayoría de los desarrolladores, inclui-
da la mayoría de la gente de la industria, es que los resultados en las in-
vestigaciones sobre personal se han ido acumulando de forma estable
durante los pasados quince a veinte años. Ahora es posible hacer un reco-
rrido por muchas de las conclusiones en estudios concretos, y sintetizar
algunas conclusiones globales según las tendencias en la investigación.
La primera conclusión es que ahora sabemos con seguridad que los
temas relacionados con personas tienen un mayor impacto en la produc-
Capítula 2: Estrategia para e! desarrollo rápido 17
tividad del software y por tanto en la calidad del software. Desde t-rna-
les de los sesenta, estudio tras estudio se ha descubierto que 1a producti-
la-:_: ==irES vidad de programadores concretos de similar nivel de experiencia pue-
de variar en un factor de al menos de diez a uno (Sackman, Erikson y
Grant, 1968; Curtis, 1981; Mills, 1983; DeMarco y Lister, 1985; Curtis
et al., 1986; Card, 1987; Valett y McGarry, 1989).
Los estudios también han descubierto variaciones en la eficiencia de
equipos completos del orden de 3, 4. o 5 a I (Weinberg y Schu1man,l9l4;
Boehm, 1981; Mills, 1983; Boehm. Gray y Seeu'aldt, i984). Después
DATOS REALES
de 20 años de experimentar en proyectos reales. los investi-eadores del La-
boratorio de Ingeniería de1 Software de la NASA han llegado a 1a con-
clusión de que la tecnología no es la respuesta; los métodos más efectivos
son aquellos que sacan partido al potencial humano de sus desarrollado-
res (Basili et aL.,1995).
Puesto que está claro que todo 1o relacionado con peopleware influye
fuertemente en la productividad, ahora también queda muy claro que cual-
quier organización que trate seriamente de mejorar la productividad pri-
mero debe ocuparse de temas relacionados con pelsonal, como la motiva-
ción, equipo de trabajo, selección del personal y formación. Hay otras
formas de meiorar la productividad, pero la gestión de personal ofrece 1os
mayores beneficios potenciales. Si nos interesa e1 desarrollo rápido, debe-
mos preocuparnos de las personas. Conjuntamente, los temas relaciona-
dos con el personal son más importantes que el proceso, el producto o la
tecnología. Tendremos que tenerlos en cuenta si buscamos el éxito.
Este resultado es contundente, pero no debe tomarse como base de
cualquier iniciativa relacionada con peopleware en cada átea. Los resul-
tados de la investigación simplemente dicen que los efectos de la habili-
dad y motivación individuales, y habilidad y motivación del equipo son
pequeños factores que influyen en 1a productividad. No dicen específica-
mente que las camisetas. los refrescos -eratis. las oltcinas exteriores, re-
compensas de productir,idad o la cen-eza de ios viernes por la tarde mejo-
ren la motivación, pero hay una relación clara: una empresa que quiera
mejorar la productividad debe uttlizar estos medios.
Este libro incluye varias formas de maximizar el potencial humano y
reducir los planes del software.
aliadomásfuertequetenemosparaeldesarrollorápidodeunproyecto'
Proceso
el proceso incluye tantas
Tal y como se aplica al desarrollo del software '
técnicas. El efecto que tiene
metodologías de gestián como metodologías que el que
el proceso.n .t ptur-t J. desarrollo -át fácil de calcular
"'
Capítulo 2: Estrategia para et ffis¿--.,to ráp¡do 1g
REFERENCIA Bases del desarrollo. La mayor parte del trabajo realizado durante
CRUZADA
Para más información
los pasados 20 años en el campo de la ingeniería dei software está rela-
sobre las bases del cionada con desarrollar software rápidamente. Muchos trabajos se cen-
desarrollo, consulte la
tran en la <productividad> más que en el desarrollo rápido en sí mismo, y
Sección 4.2, "Bases
técnicas". por esto algunos de ellos se han orientado hacia obtener el mismo trabajo
hecho por menos gente, en vez de conseguir hacer el proyecto más rápida-
mente. Sin embargo, podemos interpretar los principios subyacentes des-
de el punto de vista del desarrollo rápido. Las lecciones aprendidas a lo
largo de 20 años dando tropezones pueden ayudar a que su proyecto se
desarrolle tranquiiamente. A pesar de que los métodos estándar en inge-
niería del software para el análisis, diseño, construcción, integración y
prueba no van a acelerar por sí mismos el pian de forma fulgurante, pue-
den evitar que los proyectos se queden fuera de control. La mitad del de-
safío del desarrollo rápido consiste en evitar el desastre, y ésta es un área
en la que sobresalen los principales estándares de desarrollo del software.
REFERENCIA Planificación del ciclo de vida. una de las claves parala asignación
CRUZADA
Para más información
efectiva de 1os recursos es utilizarlos dentro de un ciclo de vida definido
sobre la planif icación que tenga sentido para el proyecto concreto. Un modelo de ciclo de vida
del ciclo de vida, es útil porque describe un plan de gestión básico. Por ejemplo, si tenenros
consulte el Capítulo 7,
.Planificación del ciclo un proyecto arriesgado, es recomendable un ciclo de vida orientado al
de vida-. riesgo; si los requerimientos no están claros, funcionará mejor un modelo
de ciclo de vida incremental. Los modelos de ciclo de vida hacen que sea
más fáci1 identificar y organizar las muchas tareas necesarias en un pro-
yecto software, y así poder realizarlas con la mayor eficacia.
Capítulo 2: Estrategia para e¡ dese..ello rápido 21
= i=
*¿: rlf r-á: : - rroilo de software tradicional sobre mainframes y los modernos esriios de
s:r:r=:-É--E::- a desarrollo es el giro hacia las necesidades y deseos del cliente. Los desarro-
: É-t= : :r-s_:: ¿
:.:; :- : :3. lladores han aprendido que desarrollar el software apartk de 1a especifi-
cación supone sólo la mitad del trabajo. La otra mitad es ayudar al cliente
1 ct tLeD.
-
a definir el producto que desea, ylamayoria de las veces es necesaria una
aproximación diferente a la tradicional especificación en papetr. Ponerse
en su lugar es una de las mejores lonnas de evitar 1as vueltas atrás masi-
vas provocadas por el cliente que decide que e1 producto correcto no es el
que se está desarrollando desde hace 12 meses. N{étodos como la entrega
por etapas, entrega evoiutiva. prototipado er olutir o. prototipado desechable
y negociación conveniente aportan ventajas a este área.
Producto
La dimensión más tangible de1 cuarteto gente/proceso/producto/tecnología
es la dimensión producto, y ocuparse del tamaño y características del
producto plantea enormes oportunidades de reducir la planificación.
,A1 reducir el conjunto de prestaciones del producto reducimos el plan.
Si el conjunto de prestaciones es flexible, se puede aplicar la regla 80/20
y desarrollar el 80 por 100 del producto empleando sólo el 20 por 100 del
tiempo. Más tarde se desarrollará el 20 por 100 restante. Si hacemos que
el aspecto, ias características de rendimiento y las características de cali-
dad de1 producto sean flexibles. podemos ensamblar el producto empleando
componentes preexistentes y escribir la mínima cantidad de código espe-
cífico. E1 total en 1a reducción sobre el plan que se obtiene al ajustar en el
tamaño y las características del producto sólo se ve limitado por ei con-
cepto de producto que tiene el cliente y la creatividad del equipo.
n 1e sroyectos informáticos
Tecnología
REFERENCIA Una forma rápida de mejorar la velocidad de desarrollo es pasar de usar
CRUZADA
herramientas menos efectivas a otras más efectivas. En la historia del desa-
Para más información
sobre herram¡entas de rrollo de software, uno de los cambios con mayor influencia fue el paso
productividad, véase el de lenguajes de bajo nivel, como el ensamblador, a lenguajes de alto ni-
Capítulo 15,
.Herramientas para vel, como C o Pascal. La actual tendencia hacia componentware (VBX y
aumentar la OCX) puede producir resultados igualmente espectaculares. La selección
Productividad-.
de herramientas efectivas y la gestión de 1os riesgos asociados son aspec-
tos claves en una iniciativa de desarrollo rápido.
Sinergia
Hay un momento en que ocuparse de la gente, el proceso, el producto y
la tecnologia se convierte en un todo. Neil Olsen rcalizó un estudio en
DATOS REALES el que descubrió que pasar de una inversión baja a media en personal,
Capítulo 2: Estrategia para el desarrollo rápido 23
Desarrollo efi ciente (desarrolio Mucho mejor Algo mejor Algo mejor
efi ciente orientado hacia que la media que la media que la media
e1 mejor plan)
Desarrollo eficiente
3E-FIEI+CIAS Tal como se ve en la Tabla 2.1. er método medio es... medio. Er segundo
CRUZADAS
3a-É r,er un ejemplo enfoque mostrado en la tabla se etiqueta como (desarrollo eficiente)), y.
re los beneficios como muestra la Figura 2.4, es la combinación de los tres pilares de la
del desarrollo velocidad máxima de desarrolio. Este enfoque es el que genera mejor
ráp¡do, consulte la
Sección 4.2, .Bases resultado que la media en cada una de las tres categorías. Mucha gente
técnicas", y de forma alcanza sus objetivos de planificación después de poner ros tres primeros
general el Capítulo 4,
pilares en su sito. Algunas personas descubren que después de todo no
"Bases del desarrollo
de software.. necesitaban el desarrollo rápido; ¡sólo tenían que organizarse! para mu-
chos proyectos, el desarrollo eficiente supone una optimización notabre
del coste, plan y características del producto.
¿Se pueden consesuir planes cortos sin alcanzar primero el desarrolro
eficiente? Es posible. Podemos elegir métodos efectivos y orientados a
la planificación y evitar métodos lenros e ineficaces sin ocuparnos del
desarrollo eficiente en sí. Sin embargo, aunque se obtenga el desarrollo
eficiente, las posibilidades de éxito en el uso de métodos orientados
a planificación son inciertas. Si empleamos métodos concretos orienta-
dos a planificación sin una estrategia general, emplearemos más tiempo
mejorando la capacidad de desarrollo global. por supuesto, sólo nosotros
Desarrollo eficiente
Métodos
orientados a
Figura 2'4. Desarrollo eficiente. Los tres primeros pasos para lograr e!
mejor plan posible conforman el
"desarrollo eficiente,. Muchos eluipos de
proyectos descubren que el desarrollo eficiente ofrece toda Ia vetocidad de
desarrollo que necesitan.
Capítulo 2: Estrategia para e) 5e-<;-'l . ráp¡do 25
A la c¡udad
de máxima
sat¡sfacc¡ón
del usuario
\¡-
Capítulo 2: Estrategia para et oesar¡or¡o rápido 29
Fuente: Inspirado en <Rewards oftaking the Path Less Traveled>> (Davis, i994).
(continua)
.r
(M¿ parece bien,r. di-;,, :::-: \:::-=i. .-¡¡¡r QUr- en este proyeclo la
::r1,fuIlcionalidad debe ser má-i l¡rlrrrÉr1¡3 que ei plan. Déjamq habfar csn al-
guna gente y te llamare. ''
,,,, Óuáirdo Eddie llamó a Sa¡¿- ie dijo que la compáiía tenía la'vaiuntad
dg fOrzar,a'que el plan ,Jei scirrrare fuese de 14 areses para conseguir las
j ,pigslacioces desead¿s. terú para may'or segurida.d:deberí¿emplear el plan
de enlregas er oluiir a-r- Sara se rranquilizó y d¡o que ella pensaba que éste
era un objetir o más realisra.
',,,', Duranfe las prineras semanas del proyeótó, el equipo desarrolló un
prototipo de la i¡rerl-az de usuario detallada y con aspeclo holl¡woodense.
, , La <lista de errores> de vez en cuándo indjeába,qqe el esfuerzo en e1 proro-
tipado podia suponeÍ una vida en si mismo, así que se l-ijó una venrana
temporal rígida.para ei tnrbajó,,enpl pro(atipado que evitase consrn¡ir un
prototipo excesivamer¡t.e,,metiCu1oso'. ,El prototipo se ufilizó para realizar
entre"istas con los posibles clientes acerca de las utilídades can,lidaras. v
el prototipo se revisó varias veces en respuesra a las indicaciones de mejo-
ra de los usua¡ios.
*ánt
,,,1'l,,,:,',:.Saiat,'siguió la lista de riesgos y determinó que los tres
- riesgos claves para el "iendo
proyecto eran la bala calidad. que podria provocar
ercesiras rueltas atrás r el alargamiento del plan. la agresividad del plan,
v la' prestaciones quc añadina la competencia desde ahora hasta la linali-
zación del prol'ecto. Sar¿ creia que el plan de en*egas ev:slutivas se había
aplicado por el riesgo de la calidad- Deberíal entr,q$ár lalprime¡a vefsión
del softqa¡e al grupo de conirol de calidad, QA" en el límlte de los 8 me-
ses. 1' QA podria ir evolucionando los casos de prueba con el software.
El equipo coatroló el riesgó en'el¡plaa cieanda una,1lqia dq p¡eslaci.o-
nes priorizada. Debían desarrollar lo más que pudiesen en l4 meses, pero
llevando el producto a un estado comercializable cada dos meses. y debían
asegurarse de tener algo que entregar cuando fuera el momento. También
tomaron decisiones de diseño para varias preslaciones que estaban especí-
ficámente indicadas para ahorrar riempo de implementación. El menor tiem-
po consumido en las implementaciones no era una tra.pa, pero era acepta-
ble, y supuso una reducción en el riesgo del plan.
EI equipo gesrionó el riesgo de las prestaciones de los competidores de
dos formas. Emplearon cinco meses en desarrollar un diseño que incluyese
un entorno capaz de soportar todas las prestacioaes que habíaa prototipado
v unas üuantas más que creían que debían iaeluirse ea 1a vers;ón 3.0r. Su
diseio prefendÍa que se pudiese adaptar a los cambiss con poea,dificultad.
También asigtaron tiempo en el mes l2 para revisar,fol produclos dq.loS
comperidores. rer.isa¡ el prototipo e irnplemenlar las preslaciones nqcesa-
rias para ser competitivos en los últimos dos meses.
En el se.rro mes, con el diseño completo, el equipo lijó un conjunto de
hitos miniarura que indicaban el camino a seguir para obtener la primera
versión comercializable que pudiese iér probada en el octavo mes. La ver-
sión del octavo mes no hacía muchas cosas, pero la calidad era buena, y
(contin úa)
s4 -ka-sllo y gestión de proyectos informáticos
Los siguientes libros ofrecen información sobre los procesos del -r::-
ware, el pii-.to a nivel organizacional, el segundo a nivel del equipo i l-
tercero a nivel individual.
(continira)
Capítulo 3: E'":'es clásicos 37
, ,,..;,;;1:;,i:::iii1,:,11111;,..:;.11,:,, t,,.1,.::
,.... ,...,..
come-,r*é,e,i¡rll: {deiáslili**.;piod*ctivc que'coriie,,j:Xr$LP.,1+-s se acsrtara en
""a,:li
illn s;>rt(. Vtite {e pareció bien. Ca#'t*,,4ffi.3eaccia una he-
rramienta de elaboración de informes que supuestamente acortaba el tiem-
p,,i*eldc óttc.,a,la milad, Ei prgyeiio tenía,''$4ftaq1gl.rin 1 ro¡
. ,,,,tá.qioi:$eóá dcs,cárnbios los {levárían
has!3 fos p neses{onsigu}o+,,9$.har-f-
y más raeláét,t ¿¡1o,lei'aho¡raba un par de ¡le*;pnasl¡fi1ffi,.
,.i.,*a¡ar:;a'wo
,:lmentéti*a¡eclutar a desarrolladores de primerísima categorla;¡$*l$'baja1
a 7 meies. Esto era suf'¡cienlemenre ajustado. Mike comentó sus progresos
a Bill.
<Mira>, dijo Bill, <dejar el plan en 7 meses esrá bien' pero no es sufi-
ciente. E,l comité dejó claro que el plazo de entrega eran seis meses. No me
dieron opción. Puedo daros el hardware que necesitáis. pero tu y tu equipo
,,,,,,.L€n j&,qq$.,s{tc4R1{4r.,¡l$$,,ftC!q*d!.1ád¡leir el
plen ¡ seis meses, o tendréis
que hacer algúnas horas extfá para paliar la diferencia>.
Ict¡ntinúa)
3€ =::*_ _ ' .- :a :',--,ec¡os informáticos
(conrinúul
Capítulo 3. crásicos 39
\LotltnlLto I
+U )esarrollo y gestión de proyectos informáttcos
(conrinúa)
CaPitulo 3: i-':=s : :sicss 41
ItonrinLia)
-fuuuqr*o y gestión de proyectos informáticos
(contintia)
Captir c i =
-'-- -=_i
-- :_: ::s
t
-=
-==r.-
t=r=
-.-. Uso de técnicas modernas de prograr-aeón
(porcentaje de.i sstema toár
r a-ia s.s
-Es EJtado Porcentaje de
* es*e gráfico la planificación Baja Media Atta
:s'ErEPo_ coalsulie la nominal (0-25%) (26-75%\ (76-10tr.)
Sdn 4.2, *Bases
técnicas".
+200
Leyenda
+1 00
f-l Máximo
Prercentll del 75=.
0 (media) I 'ÉJ...J*i,
-1 00
! o"' zr==
-as. El equipo de Giga-Quote dei Ejemplo 3.1 cometió muchos de los errores
que han plagado el desarrollo de software desde los tiempos más remotos
de Ia informárica. El camino del desarrollo de software está lleno de ba-
ches, y los baches en que caigamos determinan la rapidez o la lentirud
con que desarrollamos el software.
En el softwarel una manzana podrida puede estropear todo el barril,
pequeña. Para caer en el desarrollo lento, todo 1o que hay que hacer es
cometer realmente un gran errori para conseguir el desarrollo rápido te-
nemos que evitar cometer algitn gran error. La si-uuiente sección enumera
1os grandes errores más habituales.
Personas
A continuación aparecen algunos de los errores clásicos relacionados con
las personas.
REFERENCIA 12: Política antes que desarrollo. Larry Constantine indicó que si
CRUZADA hay cuatro equipos hay cuatro tipos diferentes de orientaciones políticas
Para más información
sobre las políticas de (Constantine, 1995a). Los <políticos> están especializados en la <gestión>,
seguridad, consulte la centrándose en las relaciones con sus directivos. Los <investigadores) se
Sección 10.3, "Gestión
de las expectativas del centran en explorar y reunir información. Los <aislacionistas> están so-
cliente". los, creando fronteras para el proyecto que mantienen cerradas a los que
no son miembros del equipo. Los <generalistas> hacen un poco de todo:
establecen relaciones con sus directivos, realizan investigaciones y ex-
ploran actividades, y se coordinan con otros equipos como parte de su
modo de trabajo. Constantine indicó que inicialmente los equipos políti-
cos y generalistas están bien vistos por los directivos de alto nivel. Pero
después de un año y medio, los equipos políticos llegan a la muerte súbi-
ta. Primar la política en vez de los resultados es fatal para el desarrollo
orientado a la velocidad.
ti
I
I
,,\inguno de los miembrú: :-, ::-i.:-- ::;: ::¡lmente que pueda com-
pletarse el proyecto de a"-¡.:: - - . : '- -.-: :lenen. pero piensan que
-- quizás si trabajan duro. r n::. ".:: '-.:' :--:ral un poco de suerte, serán
capaces de concluir con érii,'.
<Nuestro equipo no hace:t-::-- :::r:-- iara la coordinación de las
interfaces entre las distintas p:::;. :. ::- ¿;cto. pero tenemos una buena
comunicación para otras cosas. i -,= ' ---:---.¡¡s son relativamente simples,
así que probablemente sólo nec¿:l:.::: -. -:; dia o dos para eliminar los
erfores.))
<Sabemos que contamos con ur ¡:.'::':i,ador externo de poco talento
para el subsistema de la base de da¡os. '. r--3 3s dificil ver cómo va a acabar
el trabajo con los niveles de personal gu: i:: especificado en su propuesta'
No tienen tanta experiencia como algun.rs de los demás desarrolladores
externos, pero puede que compensen con energia lo que les falta en expe-
riencia. Probablemente acaben a tiempo.,'
<No necesitamos reflejar 1a última lista de cambios en el prototipo para
el cliente. Estoy seguro de que por ahora sabemos lo que quiere.>
,,El equipo está diciendo que realizará un esfuerzo extraordinario pat'a
curnplir ccrn 1a fecha de entrega, y que no han llegado a su primer hito por
po.Lrs dias. pero creo que alcanzarán éste a tiempo.>
Proceso
Los errores relacionados con el proceso ralenfizan los proyectos porque
malgastan el talento y el esfuerzo del personal. A continuación se mues-
tran algunos de los peores errores relacionados con el proceso.
a veces contratan la
HEFERENCIA 16: Fallos de los contratados' Las compañías para
CRUZADA realizaciónde partes á" ptoy"cto cuando tienen demasiada prisa
Fara más información "
hacer el trabajo en casa' Pero los contratados
frecuentemente entregan su
sóre contratados, al no coincidir con
consulte el trabajo tarde, con una calidad inaceptable o que falla
como requerimientos inesta-
CaPítulo 28'
.Desarrollo externo". la especificación (eoehm, 1989)' Ri"'got un contratado
ser enoñnes cuando
bles o interfaces mat definidas pueden
contratados no se gestionan cui-
entra en escena. Si las relacioné' to"
los
externos puede talenttzar
REFERENCIA dadosament e, la utllizaciá" ¿" desarrolladores
CRUZADA
flara más información
el proyecto envez de acelerarlo'
sobre la Planificación,
planificamos para conseguir un
consulte
*Planificación ",
17: Planificac¡ón insuficiente' Si no
obtenerlo'
en la Sección 4. 1. desarrollo rápido, no podemos esperar
El <inicio difuso> es el
19: Pérdida de tiempo en el inicio difuso'
el proyecto; este tiempo
tiempo que transcurre antes de que comience pt"t.l,p--Yl,tto' No
tl
normalmente se pierde;;i;;d" de
aprobar y hacer
desperdicie meses o años en un inicio
difu-
es poco común que un ñ;il
so, y entonces se está u't^uíp""'tut de
o" plan agresivo' Es mucho más fácil
po"u* o meses del inicio
y barato y menos urrr",guaá suprimir unas '"-uttas
difuso envezO" eiplan de desarrollo en ese mismo tiempo'
REFERENCIA
"o*p?i*ir
Los proyectos que
20: Escatimar en las actividades iniciales'
CRUZADA se
ka rÉs infomación
gúre €scalimar en las aceleranintentandou"o,tu'lasactividadesnoesenciales'ypuestoqueel
ilivifades in¡dales. producen código
el diseño no
análisis de requerimientos, la arquitectura Y
E'!s¡.üe .Efeclos cle la
En un proyecto desastroso en el
Paaniñcadort directamente, son los .urrá¿uto* fáciles.
El responsable del equipo
etc€s¡Yarnefrte que participé, pedí q". ;; enseñasen el diseño'
opiiñ*sla-- en la
S€cciin 9'1 ' á" ái¡ot Ño ñ"*o, tenido tiempo de hacer el diseño'>
52 Desarrollo y gestión de proyectos informáticos
Puesto que
ha,v una tendencia a fotzar prematuramente la convergencie'
del producto cuando':
no es posible forzat 7at""t"iÁtttia 1:'^t1 :i="not
media do-
forzar la convergencia
proyectos de desarrol;"t¿pl¿? intentan
se produzca. Los intentos
cena de veces o .,'a, u*"i J"
q.r" finalmente
al producto' Só1o son una pér-
adicionales o. .onu"ti"^"Ju "o f"ttn"ian
drda de tiemPo Y Prolongan el Plan'
guar-
la estimación' Si la gente no
25: Omitir tareas necesarias en tareas me-
anteriores' olr'ida 1as
da cuidadosamente datos de provectos omitido
se han de añadir' El esfuerzo
nos visibles, p"ro ,oi t"ur; ;"t (\¡an Genuch-
en un 20 o 30 por 100
suele aumentar e1 plan ¿. ¿.rurrollo
ten,1991).
Producto
.\continuaciónsemuestranlosefroresclásicosrelacionadosconlafor-
¡il en 1a que se deline e1 Producto'
54 lEsa-d,ro _y !resri6,- F l"*ec¡us ,rfuma?ire
&* Em de requerimflenb_ -lJ_emm rrma-ecros tienen más reqrc-
rmemrs ée Io> üue róü$l:rE_ O¡r¡e *¡ nriqtlo inicio. La ef,icienciá ¡c
ñ-i¡ mt' r¡c:ri:iti -.Eli e Erenod' de lo que es necesario, y puede
¡nra
ger*rr
plenificacim del softn-arc imecesariamente rarga. Los usuarios tier,-.
den a interesarse mer')s en ras prestaciones complejas que
en ras de r¿s
secciones de marketing o de desarrollo, y las presiaciones
comprejas alar-
gan desproporcionadamente el plan de áesarrollo.
Tecnología
con el uso correcto o
El resto de los errores ciásicos están relacionados
incorrecto de la tecnología moderna'
ejemplo' se. confió demasiado
REFERENCIA 33: Síndrome de la panacea' En e] no se habían usado antes
que
CRUZADA en las ventaja, proclu'lradas de tecnologías
Para más información
(generadore* ¿" lnt¡''-JiJi-*" ori""ádo aobjetos y C++) y demasiada
sobre el sÍndrome de serían en éste entorno de desarrollo
la panacea, consulte la poca información sobre lo buenas que
sólo a una nueva téc-
Sección 15.5, 'EI
concreto. Cuando el equipo del proyecto se aferra con
síndrome de la tíqiqo,' y
Panacea". nica, una nueva tecnoiogía o un procesg "t1"1i..:::"]ver (Jo-
inevitablemente equivocado
ello sus problemas ¿" lrá?ln"""ión, está
nes, 1994).
comomuchounl0porl00degananctaenproductividadporlaul\líza-
""n
ción de las nuevas iáoi"giur ,",
que estarían cerca de
de asumir
duplicar su Productividad'
de las mejoras se produce cuan-
REFERENCIA Un caso especial de sobreestimaciones
E'ste tipo de reutilización
CRUZADA do se reutiliza código de proyectos anteriores'
Para más información
ser una técniía muy eiectiva' pero
el tiempo que se gana no es tan
sobre la reutilización, ;;"d.
ionsulte el CaPítulo 33' grande como se espera'
" Reutilización' '
proyecto' - -Es un viejo
35: Cambiar de herramientas a mitad del
puede tener sentido actualizar
recurso que funciona raramente' A veces
55 --,=se--p;c _r !€SiÉ- .F 31a9CrOS infOrmátiCOS
Una lista completa de los errores clásicos ocuparía muchas más página_<"
pero los que se indican son los más comunes y los más serios. como indico
David Umpress, de la Universidad de Seattle, la vigilancia que la mal,oria
de las organizaciones realiza para evitar estos errores es como ver una \
otra vez La islq de Gílligan. Al principio de cada episodio, Gilligan. el
capitán o el Profesor llegaban con un plan tonto para salir de la isla. El plan
parecía funcionar inicialmente, pero, como revelaba el episodio, algo iba
mal, y al final de1 episodio los náufragos volvían donde habían empeza-
do, perdidos en la isla.
De igual forma, la mayoría de las compañías descubre al final de cada
proyecto que han cometido otro error clásico y que han entregado otro
proyecto fuera de plazo, con mayor coste, o ambas cosas.
Bibliograf ía adicional
Aunque algunos libros tratan sobre errores de código, no conozco libros
que describan los errores clásicos relacionados con los planes de desarrollo.
En el resto de este libro se incluyen referencias sobre temas relacionados.
Bases del desarrollo
de software
Contenido
Bases de gestión
Bases técnicas
Bases del control de calidad
Seguir las instrucciones
Temas relacionados
Estrategia para el desarrollo rápido: Capítulo 2
Resumen de inspecciones: Capitulo 23
59
l:sr--: c t, gest,tó. Je cicyectos informát),c.>
\ormalmente las personas S*-_-:, :-:::_: --_: ,:: t;3nos rne:a:_,: .:tr
ingeniería del software porque esra:- :,- , :.:r;3 Jontribuii: : i!-
mentar la calidad. Sus consejos pareia:. :a:.:: - - r.r. -:Jrrrr.lüs rii:_i-. :-
Pero no piense en esto como una cuesiión o¿ := s- -.. ::cnicas ñlr;,- ;r.
utilícelas. Si no funcionan, ¡no lo haga! \Ii rrltl,:::s que se iet-rir
utllizar los métodos fundamentales de ingenieria ,le- s,¡l-r*are ,Je.;: _,,
en este capítulo, no porque estén <bien>>, sino porqu-::,iucen e1 .::::
el tiempo de comercialización.
Todos desean estar Esta postura es menos teórica de lo que se podrían imaginar. F:.
en un equipo -.:
análisis de 10 proyectos software, que las organizaciones s;1ecc1.r:: :
cctmpeón, pero nadie
desea realizar el como <los mejores proyectos>, Bill Hetzel llegó a la conclusión :- ;-.r:
esftrerzo para <si había que buscar una conclusión que destacara por encima de -'. :1.-
llevarlo a la más, se podía decir que los mejores proyectos 1o eran porque s- l:,:::,n:
práctica.
en los fundamentos. Todos conocemos los fundamentos para un i: .. -
Bobby Knight
ware; la diferencia está en que la mayoría de los proyectos n.-
-.-
_- :-rr
bien, y entonces tienen problemas> (Hetzel, lgg3).
El mejor lugar para comenzar a buscar información sobre 1cs --
mentos del desarrollo del software es un libro de texto de inse:,¡:.. -- ::
software en general. Este libro no es un libro de texto de ingenieria ü¡ :,. --
ware, de forma que este capítulo se limita a identificar los lunc":-=.:
del desarrollo, explicar cómo afectan a la planificación de1 ie.,::-
cuantificar el impacto de su efecto (si es posible), y proporcion¿- - - -i-
ciones para poder obtener más información.
En este capítulo, los métodos se dividen en métodos de gesric,_--. :=:- _
cos y de control de caHdad. Algunos de los métodos no se encuad:.:- _. - -
tro de una categoría, de forma que podría hojear tod.as ias cateso::;: :*-*
que esté más interesado en una en particular. pero primero sería col'. ;r,:- . :
ver el Ejemplo 4.1 para situarse dentro del contexto.
62
rolver a revisar del l0 a1 15 por lr,tr.r ie. s::::-';. l-:¡ -: _:ri: :-:::i- :lr
la planifi cación, donde tenian que inclui¡ i¿-. -,¿re¡-. ¡. :.;-:;i 1 -l rj, .- .,1
Terminqron el'tlabajo, encontrando unos cu¿rnrlrs problemas ¡nás- sii-:-.r
otro reiraso,'y finalmente entregaron.el producto Ea ,iü por 10ü t¡:¿: ::
este momento aprendimos a añadir un 30 por 100 de margen dc s:r-: -.:
a las planificaciones.>
(Y flitonces, ¿la versión 3 iue bien?r¡, pr€gunfó Charles
<Desde luego>. agregó Bill.
<Según he entendido, ¿se utilizó el mismo código base en 1as
nes de la I a la 3?', pregunló Charles.
(Si,).
<¿Trabajaron 1os mismos miembros del eq*ipo en las r,e¡siones de .¿
a lz 1;>>
<Si. pero muchos se marcharon ai tereiaar la r-ersión 3. de lbrma q',:=
ia mavoría de1 equipo de la reisión J no habia irabajado en el pro-\3J::
aate¡ic¡rmente. t
dijo Charies. "H¡ siio úe srar ar-ud¿."
<qGracias'.'.
Charles pasó el resto dei dia hablando con el equipo de desarrti..-- .
par la noche se enconlró de nuevo con Bill. <Lo que tengo que de¿1rr:
pSgde .que no sea{ácil para usted). dijo Charles. tqComo corisejero técnicc.
he,-visto,docenas de pfoyectos en tLn año, y en toda mi profesién he vlsto
cientos de proyecfos en rnás de cien organizaciones. El proceso seguido
por las versiones de la I a la 4 del PPV es bastante cornún.
An\enormente. me dio a entender que \os desarro\\adores no comiol:: . -
el código fuente de forma automática. y esta tarde lo confrrmé i::,::¡.
con ellos. También confirmé que el equipo de desarrollo no re:.:.-::. -.-
visiones del código o del diseño. La organización confia más e¡ ..:; -:- -
:,ción que se hace a ojo'- aunque se tengan disponibles métodos de ¡s.'-':,:: :,1
más fiables.r,
<De acuerdo>,. dijo Bill. <Todo eso es cierlo. Pero. ¿que rifli¡:i: i-:
hacer para que no nos ocurra lo mismo con otros proyectos coñri .'. L:
verslon 4-'))
: :<Eso es ¡rarte'de 1o. que puede ser duro de oír>,,dijo Charles.
:: "\¡' -:-
cesita hacer nada. Necesita meiorar en los fundamentos del des¡::.-- -
del soltware o se encontrará con lo mismo una y otra vez. Necesii¡:..--
solidar los fundamentos. En la parte de gestión, se necesita una mar or :::--
tividad en la programación, planificación, seguimiento y medidas. F: :
parte técnica, necólit¿ más ,efectlvidad en la gestión de requisitos. disel,: "
construcción y configuración. Y además necesita un mayor control d: :,-
lidad. r'
<Pero la versión 3 la hicimos bien>. objetó Bill.
<Desde luego>, agregó Charles. <.Lo hicieron bien de vez en cuar¿..
cuando trabajaron con un producto con el que estaban lamiliarizadtr:..,.:
miembros de un equipo con el que habían estado trabajando anies er:-
mismo producto. La mayoría del equipo de la versión 3 habia traba.iado e:
Cltpíffio4: Bases del desarrollo de software 63
P\anrtrsairón
Como Philip \\r. \{etzger señaió en su c1ásico }fanaging a Progranin'..*;
Project (Gestrón de un Provecto de Pro_sramación), 1a mala planificac:-:
se manifiesta como tuente de problemas más a menudo que cualquier ,-:.
causa (Metzger, 1981). A continuación se enumera la lista de probl;:,,.
que aparecen en el desarrollo softu.are que é1 propone:
¡ Mala planilicación.
¡ Contrato mal definido.
o Mala planificación.
. Definición del problema inestable.
o Mala planificación.
ERROR CLÁSIco . Falta de experiencia en la gestión.
. Mala planificación.
o Presión política.
o Mala planificación.
o Control de cambios poco efectivo.
o MaIa planífícación.
o Plazos poco realistas.
¡ Mala planificación.
REFERENCiAS En 1a revisión que hizo de los mejores proyectos, Bill Hetzel en-
CRUZNDAS
Para más información
contró que \os melores proyectos de la tndustrta se caracterizab¿l f r.r _r_:
sobre estos temas. luerte planificación anticipada para definir las tareas y program¿.-.':--:
véanse el Capitulo 12. (Hetzel. 1993). La planificación de un proyecto softu,are incluve las ¿; - -
"Equipo de trabajo,,:
el Capítulo 13. r,idades siguientes:
.Estructura del
equipo"; el Capítulo 7, a Estimación y planificación.
"Planificación del ciclo
de vida"; el Capítulo 5, a Determinar el número de personas que deben participar en ei :;* -
"Gestión de riesgos". po de1 proyecto, qué habilidades técnicas son neces¿ne-i. :*'---- -
y el Capítulo 14.
"Control del conjunto
aumentar el número de personas y quién participará.
de prestaciones". Decidir cómo organizar el equipo.
I
Capítuto 4: Bases del desarrollo de software 65
Seguimiento
IJnavezque se haya planificado el proyecto, hay que seguir el proceso
de
REFERENCIA
plan previsto: que
CRUZADA desarrollo para comprobar que se está cumpliendo el
Para más detalle y calidad' Normalmente el
sobre un método del satisface sus objetivos de planificación' coste
gestión inclu¡'e listas de tareas'
seguimiento de control de seguimiento en el nivel de
proyectos, véase el hitos. informes de pre-
Capítulo 27, "Hitos reuniones e informes sobre el estado, revisiones de
miniatura". Supuestosydemásgestiones.Elcontroldeseguimientoenelniveltécni-
y las en-
.o norrnuláente incluye las intervenciones y revisiones-técnicas
terminados.
tradas de calidad, quá controlan si los hitos se
consideran
era evi-
Bill Hetzel descubrió clue en todos <los mejores proyectos> del
y seguimiento del estado
dente la realizaciónde una estricta medición
del proyecto
ptoye"to. La medición del estado para mantener la
gestión
planifica-
ipur"." como un subproducto naiu191 de un buen trabajo de
y es un factor clave de éxito (Hetzel, 1993)'
pro-
Cá*o sugiere la Figura 4.1, en un proyecto típico la gestión-del
"'iórr,
conoce 1o que se
yecto es cusilrna función de caja negra. Difícilmente se
resultado
va a hacer durante el proyecto, y sólo hay que quedarse,con^el
100 por 100 de
final. En un proyecfoid"ál, .n todo momento se tiene el
un poco
visibilidad. -En un proyecto eficiente, siempre se tiene uJ T::9t
de visibilidad, siendo.más normal el tener una buena
visibilidad que no
tener ninguna.
lnicio Final
Visibilidad de un
proyecto eficiente
Progreso
Visibilidad de un del proyecto
proyecto con el
modelo de ciclo
de vida en cascada
bien desarrollado
Visibilidad de un
proyecto típico
Medidas
REFERENCIA una de las formas de progresar en una organización software. a larsc., f -.-
CRUZADA
Para obtener más
zo, es recoger datos métricos para analizar la calidad y productividac c;
información sobre las software. Prácticamente todos los proyectos recogen datos sobre los ,-¡.-
medidas, véase el
tes y la planificación. Pero estos datos son limitados y no ayudan mucl-,,:,
Capítulo 26,
.Medidas". a reducir los costes o a disminuir la planificación.
Recoger más datos puede suponer mucho tiempo. Si además de datos
de coste y planificación se obtienen datos históricos, como el tamaño ,j;
los programas en líneas de código, o cualquier otra medida, se tendrán las
bases para la planificación de proyectos futuros, que siempre es me_irr:
que el instinto. cuando eljefe diga: <¿podéis desarrollar este producro er
nueve meses?>, podremos decir: <Nuestra organización nunca ha desa-
rrollado un producto de ese tamaño en menos de 11 meses, y el tiemp..
medio paratal producto es de 13 meses.))
Para rcarizar el desarrollo de forma eficiente, se necesita tener unurs
conocimientos básicos sobre las medidas o métricas del software. Se nece-
sita conocer 1os temas a los que afecta 1a recogida de medidas, incluyendc
qué cantidad o cuánto tiempo se necesita para recogerlos y cómo hacerlo.
Se
deberían tener conocimientos sobre métricas específicas y utilizarlos para
analizar el estado, la calidad y la productividad. rJna organización que
desee implantar el desarrollo rápido necesita recoger las medidas básicas
para saber cuá1 es la velocidad de desarrollo y si es mejor o peor a medida
que transculTe e1 tiempo.
L
Capítulo 4: Bases del desarrollo de software 67
I
pi¡niticación del software. \- muchLrs ¿¡ -¡s -:-e:urirf,S guü se :-.;__--, -T
en este libro están catalogados como meiüdL1s r-cünendable:.
DeMarco, Tom'. Controlling Software Projects. Nes \-ork: Yourdon }¡-..
1982. El libro de DeMarco no parece en absoluto anticuado. T:¿-, ::
1982 con los mismos problemas con los que nos enfrentamos ::,
directivos que 1o quieren todo y clientes que desean todo al mome:-:.
Presenta éstrategias de gestión de proyectos, prestando especial a:e--
ción a las mediciones.
Mefzger, Philip W.: Managing a programming project,2d Ed. Ene.¡-
wood Cliffs, N.J.: Prentice Hall, 1981. Es un libro de texto clásic;
que hace una introducción a la gestión de proyectos. Está basran::
desfasado, ya que presta especial atención al modelo de ciclo de r-ic.
en cascada y a métodos de desarrollo dirigidos por documentos. per¡
alguien que lea el libro con intención de ser crítico encontrará q:,;
Metzger aún tiene cosas importantes que decir sobre los proyectos de
hoy, y además lo dice bastante bien.
Grove, Andrew S.: High Output Management. New York: Random House.
1983. Andy Grove es uno de los fundadores de Intel y tiene grandes
conocimientos sobre cómo gestionar una compañía en una industria
técnica competitiva. Grove usa un enfoque altamente cuantitati'o de
la gestión.
I
Capítuto 4: Bases del desarrollo de software 69
Porcentaje de
la planificación Baja Media Alta
nominal (o-25%) (26-75%) (76-1oo%)
?==ERENCIA
CRUZADA
Para obtener +200
,níormación general
sobre este tipo de Leyenda
gráficos, véase la +1 00
Sección 3.2, "Efecto
de los errores en la
programación de un 0 (media)
desarrollo".
!l:**:l;,;
-1 00
L
t-
7ll W y gÉtun e n:syrr.tas informátiss
Gestión de requerimientos
REFERENCIA La gestión de requerimientos es el proceso que consiste en reunirre{Fcm-
CRUZADA miJntos; plasmailos en un tlocumento, correo electrónico, cuadern &,
Para más información
sobre los métodos tnlerfaz di usuario, prototipo ejecutable o cualquier otro formam: b*rm
tradicionales de la un seguimiento del dise¡o y del código; y gestionar los cambios rm. i
gestión de
requerimientos, véase resto del proyecto.
el Capítulo 14, ts muy común que los desarrolladores se lamenten de los probltmm"
"Control del conjunto asociados a los métodos de gestión de requerimientos tradicionales- w-
do la mayoría de ellos demasiado rígidos. Algunos métodos puedeu ro
de prestaciones".
demasiado rígidos, pero la alternativa que ofrecen suele ser peor' La ar-
tudio realizado en más de 8.000 proyectos encontró que las tres re-aGt'
principales por las que los proyectos eran entregados tarde, por elL:M[
áel presupuesto y con menos funcionalidad de la que se esperaba err¡m
debidas a los métodos de gestión de requerimientos: falta de inform¡"u¡'
DATOS REALES
del usuario, requerimientos incompletos y cambios en los requerirnitmmm
(Standish Group, 1994). Un estudio realizado por el Instituto de Ingrm
iiu ¿"t Software llegó a la misma conclusión: más de la mitad de loe pur-
yectos que se estudiaron tuvieron una gestión inadecuada de los requun*
mientos (Kitson y Master, 1993).
REFERENCIA El éxito en la gestión de requerimientos depende del conocimien¡g dc
CRUZADA
suficientes métodos diferentes, de forma que sea posible escogef los m¡m
apropiados para un proyecto específico. A continuación se muesrran h*
Para más información
sobre el control de
problemas en las bases de la gestión de requerimientos:
prestac¡ones, véase la
Sección 14.2,
"Proyecto avanzado: o Metodologías de análisis de requerimientos, incluyendo análiqi*
control de cambios de
las prestaciones..
estructurado, análisis estructurado de datos y análisis orisnrado ¡
objetos.
o Métodos para crear modelo del sistema, como diagramas de clascs.
e1
parado con otras actividades dei ie:.-.-¡11o del software. Si este paso se
acelera sin perjudicar a la calidad. se li:-ü- drsminuir en conjunto el tiempo
de desarrollo.
En segundo lugar, obtener un requelir-t¿:t:¡ ;omo es debido en el pri-
mer paso normalmente cuesta de 50 a l[r,l','--' :]e nos que si se espera a
-,
las fases de construcción o mantenimient¡ ' B ¡;:::: Papaccio, 1988). Un
proyecto normal tiene un 25 pot 100 de ca:ri-':s;:' -os requerimientos.
Algunos métodos de gestión de requerimiel:¡s :::::-l:er reducir e1 nú-
mero de cambios. Otros métodos de desarrt-¡li¡ :;:::-:::: re-l';clr e1 coste
de cada cambio en los requerimientos. Irn¿¡l:e ii ¡=ci.. ctrmbinado
que produciría por un lado reducir el número ¿e cambios de un 15 a un
DATOS REALES
l0 por 100, y simultáneamente reducir el coste de cada cambio en un f'ac-
tor de 5 o 10. El desarrollo rápido podria estar a su alcance.
Diseño
Del mismo modo que tiene sentido crear una serie de bocetos antes de
construir una casa, tiene sentido crear una arquitectura y un diseño antes
DATOS REALES
de construir un sistema software. Un error de diseño que no se detecta
hasta la fase de comprobación, necesita 10 veces más tiempo para arre-
glarlo que si se detectara en la fase de diseño (Dunn, l9B4).
¿Está preparado cualquieraparahacer un buen diseño? No'
Mi opinión
es que el buen diseño es un tema de conversación común en el desarrollo
del software, y que realmente pocos desarrolladores hacen algo de dise-
ño. Un diseñador que trabajabapara Microsoft dijo que en 6 años de en-
rrevistar a más de 200 candidatos para el puesto de desarrollador del
ERROR CLASICO softu'are. só1o había entrevistado a 5 que pudieran describir exactamente
los conceptos de <modularidad> y <ocultamiento de informaciónn (Ko-
hen.1995).
Los conceptos de modularidad v ocultamiento de información son ias
bases dei diseño. Ambos son pañe de las bases de1 diseño estructurado y
del diseño orientado a objetos. Un desarrollador que no puede discutir sobre
los conceptos de modularidad y de ocultamiento de información es como
unjugador de baloncesto que no sabe regatear con el balón. Cuando consi-
deramos que Microsoft examina rigurosamente a sus candidatos, incluso
antes de que sean entrevistados, llegamos a la espantosa conclusión de
que la situación en el mundo del desarrollo del software está consi-
derablemente peor de 1o que se creía, que de 200 desarrolladores, 195
tienen lagunas importantes en sus conocimientos sobre las bases del diseño.
A continuación se muestran los temas básicos sobre la arquitectura y
el diseño:
-!-
72 Dwnolto y gestion e pffic informátias
Construcción
En el momento en que se llega a ra construcc ión, ya se ha rlevado
a cabo la
mayor parte del trabajo para el éxito o fracaso del proyecto.
Tanto la gestión
de requerimientos como el diseño ofrecen una mayor influencia
en la pla-
nificación del desarrolro que la construcción. En estas actividades,
ros
cambios pequeños pueden marcar una gran diferencia en la pranificación.
En la planificación, la construcción no ofrece muchas áportunidades
de reducción, pero el trabajo de construcción es tan detallado
y laborioso
que es importante hacerlo bien. Si en un principio la
calidad del có-
digo no es óptima' es casi imposible volver hacia airás y
me¡oárta. Reat-
mente no es efectivo hacerlo dos veces.
Aunque la construcción es una actividad de bajo nivel, se presenta
ra
posibilidad de perder el tiempo en cosas poco eficientes
o de áerpirtarse
en tareas que, aunque no son críticas, consumen tiempo. por
ejemplo,
se puede perder el tiempo en funciones que no tienen
que ser brillantes,
depurar código inútil o ejecutar.on.r-"io pequeñas secciones
del siste-
ma antes de saber si realmente es necesario afinarlas.
Capítulo 4: Bases del desanotp ce ür.Írnáre
Los malos métodos de diseño pueden forzar a que se tengan que rees-
cribir las principales partes del sistema; los malos métodos de construcción
no pueden forzar a que se tenga que hacer esto. Sin embargo, los malos
métodos de construcción pueden introducir errores sutiles que pueden re-
querir días o incluso semanas para encontrarlos y coregirlos. A veces, se
puede tardar tanto tiempo en encontrar un error en la declaración de un
vector como en tener que volver a diseñar o implementar un módulo ma1
diseñado. El trabajo total que se indica en la depuración es un <<*1>, y no
varias páginas de código nuevo, aunque la penalización en la planifica-
ción es la misma.
Las bases de la construcción incluyen los temas siguientes:
tu
)* La falta de control automático sobre el código fuente es bastante co-
rnún e ineficiente. En las organizaciones analizadas entre 1981 y 1993. el
Instituto de lngeniería del Software encontró que más del 50 por 100 ne-
cesitaban mejorar la gestión de configuración del software (Kitson ¡
lüasters. 1993). En los proyectos pequeños, la carencia de la gestión de
ERROR CLÁSICO confisuración aumenta un poco el porcentaje del coste del proyecto. En
Capítulo 4: Bases del desanotto de software 75
Gestión de requerimientos
Yourdon, Edward: Modern Structured Analysis. New york: yourdon
Press, 1989. El libro de Yourdon contiene un estudio sobre la especifi-
cación de los requerimientos y el análisis hacia el año 1989, incluyendo
herramientas de modelización, proceso de recogida de requerimientos
y temas relacionados. Observe que una de las secciones más intere-
santes se encuentra oculta en un apéndice: <<Técnicas de entrevista y
recopilación de datos>.
Hatley, Derek J., y Imtiaz A. Pirbhai: Strategies for Reat-Time System
Specification New York: Dorset House Publishing, 1988. Hatley y
Pirbhai prestan especial atención a los sistemas en tiempo real, y ex-
tienden la notación gráfi.ca utllizada por Yourdon al entorno en tiem-
po real.
Gause, Donald C., y Gerald Weinberg: Exploring Requirements: euality
Before Design. New York: Dorset House, 1989. Gause y Weinberg
presentan un curso poco común en el terreno de la gestión de requeri_
mientos. Trata sobre la ambigüedad, reuniones, resolución de conflic-
tos, represiones, expectativas, razones por las que las metodologías
no son suficientes y otros temas. Ellos evitan principalmente los te-
mas que incluyen otros libros de requerimientos y tratan los temas
que otros libros evitan.
Diseño
Construcción
McConnell, Steve: Code Complete. Redmond, Wash.: Microsoft Press, 1993.
Éste es e1 único libro conocido que trata sobre todos los temas claves
en 1a construcción, identificados en ia sección <Construcción>. Contie-
ne listas de control de gran utilidad en algunos aspectos de la construc-
ción, así como datos que hacen más efectivos los métodos de cons-
trucción. El libro contiene varios cientos de ejemplos de código en C.
Pascal. Basic. Fortran y Ada.
Capítulo 4: Bases del desanofro de software 77
j
78 -l ei-p c ! gesi',}'r oe prryectos informáticos
Planificación más
rápida ("msje¡"
planificación)
= 95o/" 1
cesario cuando se aplica a sistemas críticos para la vida. ta1 como los
sistemas de soporte vital de una lanzadera espacial-, pero no cuando se
aplica a desarrollo de software no crítico para la vida.
IBM fue la primera compañía en descubrir que la calidad y la planifi-
cación del software estaban relacionadas. También descubrieron que los
productos con menor número de defectos eran 1os que tenían una menor
planificación (Jones, 1991).
En la actualidad, muchas organizaciones han desarrollado software
con un nivel de defectos que 1e asigna una planificación mayor de la necesa-
ria. Después de realizar un estudio de más de 4.000 proyectos software,
=EALES
Capers Jones informa que una calidad baja es una de las principales razo-
nes del retraso en la planificación (Jones, 1994). También dice que labaja
calidad es una de las razones por las que se cancelan más de la mitad de
los proyectos. Un estudio del Software Engineering Institute descubrió
que un 60 por 100 de las organizaciones tenían un control de calidad ina-
decuado (Kitson y Masters, 1993). En la curva de la Figura 4.3, estas
organizaciones son las que están al lado izquierdo de la línea que indica
el 95 por 100.
Algunos puntos alrededor del 95 por 100 son significativos por-
que ese nivel de supresión de defectos parece ser el punto en donde
los proyectos generalmente alcanzan la planificación más baja, el menor
]ATOS REALES
esfuerzo y el nivel más alto de satisfacción del usuario (Jones, 1991).
Si después de lanzar el producto se tienen más de un 5 por 100 de defec-
tos, será vulnerable a los problemas asociados a una calidad baja, y
probablemente se tardará más tiempo del necesario en desarrollar el
software.
Los proyectos que se reahzan con prisas son particularmente vul-
nerables a engaños en cuanto al nivel de calidad del desarrollador. Cuan-
do se tienen prisas, se hacen recortes porque <só1o laltan 30 días para la
entrega>. En vez de escribir un módu1o de impresión completamente
cLAStCO distinto, se hace a partir de1 módulo de visualización en pantalla. Se
==;oR
sabe que el diseño es maio, que no es ampliable o de mantenimiento
fácil, pero no hay tiempo para hacerlo bien. Se tienen prisas por terminar
el producto, de forma que uno se siente obligado a tomar el camino
más corto.
Tres meses más tarde, el producto aún no se ha terminado, y empie-
zan a aparecer los problemas derivados de esos recortes. Se encuentra
con que los usuarios no están contentos con la forma de imprimir, y que
1a única manera de satisfacer sus requerimientos es aumentando significa-
tivamente la funcionalidad del módulo de impresión. Desafortunadamen-
te, desde hace tres meses el módulo de impresión y el de visualización
en pantalla se han ido entrelazando. Rediseñar el módulo de impresión y
separarlo del de visualización es una operación difícil, que consume tiempo
y es susceptible a errores.
Eü _-E_r-<:-:r _-
--:-.: :- :t :'.,'ectos informáticos
ffi
implementación del módulo de impresión.
E,ste ejemplo es bastante común. El número de defectos que se presentan
cuando los programadores lanzan productos bajo una excesiva presión en
la planificación es hasta cuatro veces mayor (Jones, 1994). En los proyectos
DATOS REALES
que tienen problemas de planificación, se suelen obsesionar por trabajar
más duro, en vez de trabajar de forma más ingeniosa. Prestar atención a la
caiidad es como si fuera un lujo. El resultado es que los proyectos suelen
funcionar mal, dando lugar incluso a problemas graves de planificación.
Decidir al inicio del proyecto no centrarse en la detección de errores
equivale a la decisión de posponer la detección de defectos hasta más
tarde, cuando será mucho más cara y consumirá tiempo. No es una deci-
sión racional cuando el tiempo apremia.
Si se pueden prevenir o detectar los defectos y eliminarlos pronto, se
obtiene una ventaja significativa en la planificación. Los estudios han
demostrado que revisar errores de requerimientos, diseño y código nor-
DATOS .qEALES
malmente consume del 40 al 50 por 100 del coste total del desarrollo del
softrvare (Jones, 1986b; Boehm, 1987a). Como regla empírica, cada hora
que se emplea en prevenir defectos reduce el tiempo empleado en la recu-
peración de 3 a 10 horas (Jones, 1994). En el peor caso, revisar un pro-
biema de requerimientos software, una vez que el programa está eje-
cutándose. normalmente cuesta de 50 a 200 veces más de 1o que costaría
rer-isar e1 problema cuando está en la fase de requerimientos (Boehm y
Papaccio. 1988). Dado que más de1 60 por 100 de los errores se dan en
tiempo de diseño (Gilb. 1988), se pueden ahorrar grandes cantidades
de tiempo detectando los errores antes de hacer la prueba del sistema.
Capítulo 4: Bases del desanollo de software 81
@
DATOS REALES
Los módu1os con tasas de defectos elevadas son más costosos y
consumen más tiempo para ejecutarlos que los módulos menos propensos
a effores. El desarrollo de módulos normales cuesta de 500 a 1.000 dólares
por punto de función. Los módulos propensos a errores cuestan de 2.000
a 4.000 dólares (Jones, 1994). Los módulos propensos a errores tienden a
ser más complejos que los demás módulos del sistema, menos estructu-
rados e inusualmente grandes. Suelen desarrollarse bajo una fuerte pre-
sión de planificación, y no suelen estar completamente probados.
Si 1a velocidad de desarrollo es importante, identificar y rediseñar los
módulos propensos a errores es prioritario. Si la tasa de errores de un
módulo alcanza los 10 defectos por cada 100 líneas de código, habrá que
revisarlo para determinar si debería volverse a diseñar o implementar. Si
el módulo está mal estructurado, es excesivamente complejo o largo, ha-
82
-i 4 -J: rr
. - -i -- : --:----.- ¡;:":¿ ¿- ir:i"-io. Se ahorará tiempo
¡ ir *r:" -;- :ú: -l;- :l:r:,;:,:,-
P'nreba
EI métrrrlo más común de control de calidad es indudablemente la prueba de
ejecución: encontrar effores al ejecutar el programa y ver lo que hace. Las
dos clases más comunes de pruebas de ejecución son las pruebas individua-
les, en las cuales el desarrollador comprueba su propio código para verificar
que funciona correctamente, y las pruebas del sistema, en las que un pro-
bador independiente comprueba si el sistema funciona como se esperaba.
La efi.cacia de las pruebas varía enormemente. La prueba individual
puede encontrar del 10 al 50 por 100 de los defectos en un programa, y
DATOS REALES
la prueba del sistema del 20 al 60 por 100. Al unir las dos, la tasa acu-
mulada de la detección de defectos suele ser menor del 60 por 100 (Jo-
nes, 1 986a). Los errores que no se localizan se pueden encontrar por otras
técnicas de detección de errores, como las revisiones o los usuarios fi-
nales, después de que el software se haya puesto en funcionamiento.
La prueba es 1a oveja negra en lo que respecta a los métodos de control
de calidad, y en 1o que respecta a la velocidad de desarrollo. Realmente
se puede hacer tan mal como para retrasar la planificación de desarro-
llo, pero su efecto en la planificación suele ser indirecto. La prueba des-
cubre que la calidad del producto es demasiado baja para lanzarlo, y e1
producto tiene que retrasarse hasta que se pueda mejorar. De esta manera.
la prueba se convierte en el mensajero que comunica las malas noticias
que afectan a la planificación.
La mejor forma de fomentar la prueba, desde el punto de vista del
desarrollo rápido, es preparar un plan antes de obtener las malas noticias:
establecer la prueba de forma que si se dan malas noticias, la prueba per-
mita lanzar el producto tan pronto como sea posible.
Revisiones técnicas
Las revisiones técnicas incluyen toda clase de revisiones que se utilizan
para detectar defectos en requerimientos, diseño, código, casos de prueba
o cualquier otro artefacto del proyecto. Las revisiones varían en cuanto a1
nivel de formalidad y eficacia, y juegan un papel más crítico en la veloci-
dad de desarrollo que las pruebas. Las secciones siguientes resumen los
tipos de revisiones más comunes.
Reuniones
Las reuniones informales son el tipo más común de revisión. El término
DATOS REALES <reunión> se define aproximadamente y se refiere a cualquier reunión en
Capítuto 4: Bases del desarrctio de software 83
el obietivo
revisen el trabajo técnico con
la que dos o más desarrolladores rápido'
son útiles para el desarrollo
;;;;;;;t";es
de mejorar su calidad' antes de la prueba Por
eriores
porque se pueden utilizar para detectar
detectar un defecto en los
pueda
eiemplo. en el caso d;;";l;prueba
de que éstos se hayan especificado'
requerimientos. lo h;;i;;t;"is
puede detectar un defecto en los
diseñado y codificadi'-U"""*""fón antes de que se el
requerimientos, en tt;p"o';t "sp""ificutión'encontrar entre el 30
^realice
y el 70
p"ed"n
diseño o se codiflqut' f-i"t"tione' 19'79: Boehm' 1987b; Your-
por 100 de los errore' * ulp'og'u-ulMyt" '
don,1989b)'
lnspecciones
Lasinspeccionessonuntipoderevisióntécnicaformal'quehademos- un proyec-
en la detección de errores en
trado ser extremadamt"t" "i"ttluo reciben una preparación
to. Con las inspecciá"Lt, l"l ¿tsarrolladores las mismas' El <mode-
y juegan ;;;;ti-;tl.ecífico dllante
especial antes de la
el producto para inspeccionarlo
rador> se vuelca en trabajar en el producto antes de
reunión de inspecció"' io' u"ui'o'""
examinan
REFERENCIA
para estimular su revisión' Durante la
CRUZADA la reunión y utilizan listas de control ins-
)z',,ver un resumen nármalmente comenta elm¿terial
le los beneficios reunión de inspecció;l;;;;t; guarda
los errores y el <secre'tario>
derivados de las peccionado, lo, t"ui'it' identifican sobre
el moderador genera un informe
los errores. Después i"l" tá""iOt'
-sDecciones en la
: a-'cación consulte 1o que se
t"¿" de los defectos e indicando
el CaPítulo 23. 1a inspecciór., ¿","'iiil"á" ""o de inspección' se recogen datos
hará con ellos. A 1"'i;;;; á"i *"t":".
..!-sPecciones"
sobredef.ectos,seempleanhorascorrlgrendoestosdefectos'ySeemplean
que se pueda analizat la efectividad
horas en las inspecciones, de forma
y meiorarlo'
á.r fro..ro de áesarrollo del software se pueden utilizar para
\l igual que en tus las inspectiontt
"uniones' para de-
la prueba' Se pueden
detectar delectos
"";;;;'**o'con "]\t:it
prototipos de interfaz de usuarios'
diseño'
iectar errores .n
'eqt'erimientos'
;c,jrgo )"otros artefactos del pro.vecl... Lr: -::::::,-::: -:-;-au::::_ ;a -:
60 a un 90 por 100 de defectos en un pra,:::::_.- ,_ :-.. :. JJiisrJ-::r,:-
mente mejor que las reuniones o las ¡irueba=. -== ....:=-:tLrles qa:-::--
una planificación neta, ahorrando de un 10 a un -1t-r ;".: - , ¡. \ a que s- :---
den utilizar en el ciclo de desarrollo (Gilb y Graham. r yy-1 En un e s:-;, :
realizado sobre un programa grande, se encontró que cada hLrra emple :J:
en las inspecciones producía una media de 33 horas de ahorro. r' las ::,.-
pecciones eran 20 veces más eficientes que las pruebas (Russeli. 199,
r#Lrl
EWtr
@ffi
Figura 4.4. ¡No permita que le suceda esto! Cuanto más tiempo permanezca
oculto un defecto, más tiempo necesitará para corregirlo. corrija los defectos
cuando están en un estado inicial y son fáciles de controlar.
Capítulo 4: Bases del desarrollo de software 85
Prueba
Myers, Glenford J.: The art of software Testing. New York: John wiley
& Sons, 1979. Es un clásico de la prueba del software, y aún hoy si-
gue siendo uno de 1os mejores textos disponibles. Los contenidos son
ólutor' 1a psicología y rentabilidad sobre la prueba del programa; diseño
de casos de prueba; prueba de módulos; prueba de orden superior;
depuración; herramientas de prueba; y otras técnicas. El libro es corto
pre-
Q17 páginas) y entretenido. La encuesta que incluye al principio
tende hacerle pensar como un probador y demuestra exactamente las
formas en las que el código puede tener defectos.
Hetzel, Blll: The complete Guide to software Testíng, 2d Ed. wellesley,
Mass.: QED Information Systems, 1988. El libro de Hetzel es una buena
alternativa al libro de Myers, ya que trata sobre el mismo tema, pero
/
Revisiones e insPecciones
y Dorothy Graham:
Gilb, Tom,'Áddison-Wesiel'. So-fntare Inspecfion' **i1911*'U*
gtunO' 1993' Este libro hace un tratamlento muy
minuciososobretas-inspecciones'Tieneunenfoqueprácticoeinclu-
establecido progra-
ye ejemplos de muchas organizaciones que han
mas de insPección.
t., y Gerald M' Weinberg: Handbook of Walkthroughs'
Freedman, Daniel
New York: Dorset Hou-
Inspections and Technical Reviews' 3d Ed'
a revisiones de toda clase'
se, 1990. Es un libro excelente en cuanto
es el promotor original
incluyendo ,"nnio,t., e inspecciones' Weinberg
de la <programación anóni'oa', la base de
la mayoría de las revisio-
nes prácticar. g, á,to'-emente práctico. e
incluye much11--listas de
en varlas com-
contiol útiles, informes sobre el éxito de las revisiones
de pre-
pañías, y anécdotas entretenidas' Se presenta con un formato
guntas Y respuestas.
Losdosartículossiguientesestánescritosporeldesarrolladordeins-
una inspección, incluyendo
pecciones. contienen 1úecesario para ejecutar
ios formularios de inspección estándares'
to Reduce Errors in
Fargan, Michael E: <Design and Code Inspections
Journql' vol' 15' nitm' 3' 79-/6'
Program Developmenti, Bn't Systems
pp.1B2-211.
IEEE Transac-
furiun, Michael E: <Advances in Software Inspections>>'
iiow o, Software Engineeting, July 1986' pp' 144-151'
Como adulto, suelo ver que los proyectos software fallan stmplemente
porque los programadores y directivos que trabajan en e11os no siguen 1as
instrucciones, las bases del desarrollo de software descritas en este capíru1o.
Es cierto que se puede desarrollar software sin dominar los fundamentos.
a veces incluso rápidamente. Pero a juzgar por los resultados de la mayo-
ría de 1as personas, si 1os fundamentos no prevalecen al principio' no se
tendrá el control necesario sobre el proyecto para desarrollarlo rápida-
mente. Incluso 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 instruc-
ciones siguientes en la lata de pintura:
Si va a pintar la
¿Qué sucedería si no se siguieran las instrucciones?
del perro un martes por la noche, después del trabajo, sólo tendría
"ur.1u
dos horas para pintarla, y Fido necesita dormir esa noche. No hay tiempo
para seguii las instrucciones. Podría decidir saltar directamente al paso 3,
y aplicar en el paso 4 una capa gruesa de pintura enYez de una fina. Si el
ii.-po es bueno y la casa de Fido es de madera y no está demasiado su-
cia, es probable que todo vaYa bien.
Después de unos pocos meses, la pintura se podría agrietar, al ser la
capa de pintura demasiado gruesa, o se podrían desconchar las superficies
de metal de los clavos al no estar preparadas adecuadamente, y habría que
voiverla a pintar otfaYez el próximo año, pero realmente no tendría dema-
siada importancia.
¿Qué sucedería si en vez de la caseta del
perro se estuviera pintando
un Boeing 74'72 En este caso, sería conveniente seguir 1as instrucciones
de la lata. Si no quitara la capa de pintura previa, incurriría de forma sig-
nificativa en la seguridad y en 1a eficiencia: una capa de pintura enunT4J
pesa de 200 a 400 kilos. Si no prepara la superficie adecuadamente, el
viento y la lluvia atacarían la pintura al ir a 600 millas por hora, y ten-
drían efecto mucho más rápidamente que un viento y una lluvia suaves en
la caseta de Fido.
una caseta de un
¿Qué sucedería si se pintara algo que estuviera entre
perro y un747, por ejemplo una casa? En este caso, 1as consecuencias de
l
88 l*sa--r/ir: r ;¡:snr:r/- ;¡r Jr-J*q¡íEs rrrgn*anul:*
Bibliografía general
La sección bibliografía adicional del final de este capítulo presenta
un
listado de libros de ingeniería del software. El motivo de leeiun
libro de
conocimientos generales sobre ingeniería der software no es
adquirir un co-
nocimiento profundo sobre un tema específico, sino u., u grund"s
rasgos
el desarrollo del software, dentro del cbntexto. Los siguienles libros
des-
criben una visión de los métodos que este capítulo déscribe como
bases
del desarrollo del software.
Contenido
Elementos de la gestión de riesgos :
I
Identificación de riesgos
Análisis de riesgos
Priorización de riesgos
Control de riesgos
Riesgo, alto riesgo y azar
Temas relacionados
Estrategia de desarrollo rápido: Capítulo 2
Errores típicos: Capítulo 3
Bases del desarrollo de software: Capítulo 4
Resumen del filtrado de requisitos: Capítulo 32
Resumen de los diez riesgos más frecuentes: Capífulo 41
<He recibido el visto bueno para realizar square'plan 2.5x, le dijo Kim
a
Eddie. Kim y Eddie eran respoisables de proyectos de Square-iech, una
Qmpre sa de softr.r'are <prét-á-porteo. <Tengo cuatro freses para
entregar 1a
actualización, y creo que va a ser un bombazo.> Kim entregó su úItimo
proyecto, square-calc 3.0. con mucho ret¡aso. Eddie ha realiiadobien
su
prinrerproyecto, square-P1an2.ü, v Kim está ansiosa por demostrar que
la
dilerencia se ha debido a qLre sLr proclucto era mucbo más complejo que er
de Eddie.
' <Yo de ti estaria rnás preocupado>. ie dilo Eddie a e1la. <He
la especificación de la 2.5. y pienso que con e1 equipo actuai re 'isto que-
dan más de seis meses de trabal'0. ¿Has pensado en utilizar el equipo
de la 2.0?r
<<sí, clars. Y también he pensado en ajurtar el pran de tralrajo a cuatro
meses. La semana pasada ieí un artículo sobre desarrollo externo, y he en-
cofltrado a alguien que se puede encargar de las aciualizaciones de los grá-
ficos;1o que reduciría el plan en dos m€ses.)l
' (Bueno, espero que sepas lo que estás haciendo>, le dijo Eddie. <He
visto a mucha gente fracasarporculpa ds1 pe¡sonal eontrátaáo.
¿cuál es tu
plan para el control de riesgos?>
<<He contratado á rrna persoía de prestigio>r, dijo Kim. <He
comproba_
dé sus referencias y estoy segura de que hará un buen trabajo. Le echáré
un
ojo de vez en cuando. Esto es un negocio arriesgado, y algúnor riesgos
son
inevitables. cuando tengo tanto trabajo por hacer, no piinsdperder rnñi.*po
en trabajos inútiles.)) ,
Fddie pensó que ella debería tener más cuidádo, pero Eddie y Kim
ya pasaron pm esto antes. Él había aprendido a no discutir cuando
ella va
había decidido 1o que iba a hacer. <<Buena suerie,), le dijo Eddie
' Kim se reunió pronto con Ia persona contratada y ie dio una especifi-
cación para las actualizaciones de Ios gráficos. chip. la persona.on,ru,u-
da, le dijo que las especificaciones le parecian claras y que se pondria
a
trabajar enseguida.
seis semanas más tarde, Kim tlamó a chip para coqrprobar er estado
del Jrabaio. <Todo va Lrien>, dijo él- <He estado trabajandi en un proyecto
muy irnporlante de otra empresa, por lo que todavía no he.podido
avanzar
rriucho. Pero todavia tensmos tres meses y medio pura ,"uiir", ún
trab4jo
de dos lneses. así que no [e preocupes.>
<<Eso suena bien>. le <iüo Kim. <Avísame si necesitas
argo. Te vorveré
a llamar clentro de seis semanas para tratar 1a integración.u -
,
sgis semanas más tarde, Kim volvió a rlamar para comprobar la evo-
lución del trabajo. <El último proyecto me llevé más tiemio del que
es_
peraba>, te dijo Chip. r<He eome¡zado la,actualizaciénrde
los grádcor. ¡-
he estado trabajando eomo un loco, pero necesito analizarloJmás pro-
fundamente, pienso que tendré que dedicarle otros ffes meses.>i
lcontinuctJ
E2 :. :'Jt'ectos informáticc s
Estimación de riesgos
La estimación de riesgos se compone de identificación de riesgos, análi-
sis de riesgos y asignación de prioridades a los riesgos:
Control de riesgos
El control de riesgos se compone de planificación de ra gestión de ries-
gos, resolución de riesgos y monitorización de riesgos:
S - reffiiñcación de riesgos
g ¡¡; pi"le El primer paso en la gestión de riesgos es la identificación de los factores
generales
¡wd¡rro¡:'-:¡¡r soár¿ q,rá irrt.od,,.en un riésgo en la planificación. Hay tres riesgos
.:¿SSAS- eStó
huscando
* un proy"cto de desarrollo rápido, que son olvidar los tres elpilares desa-
problemas. ¿et ¿esanóllo rápido, descritos en el Capítulo 2, <<Estrategiapata
Tom Gilb rrollo rápido>:
1. Cambio de requisitos.
2. Meticulosidad en requerimientos o desarrolladores.
3. Escatimar en la calidad.
4. Planificaciones demasiado optimistas.
5. Diseño inadecuado.
6. Síndrome de la panacea.
7. Desarrollo orientado a la investigación.
8. Personal mediocre.
9. Emor en la contratación.
10. Diferencias entre el personal de desarrollo y los clientes.
Fuentes: Adaptado de Software Risk Managemenl (Boehm, 1989) y Assessment and Con-
trol of Software Rls/rs (Jones, 1994).
Creación de la planfficación
Las definiciones de la planificación, de los recursos y del producto han sido
impuestas por el cliente o un directivo superior, y no están equilibradas.
Planificación optimista, <mejor caso> (en lugar de realista, <caso esperado>).
La planificación no incluye tareas necesarias.
La planificación se ha basado en la utilización de personas específicas de un
equipo, pero estas personas no están disponibles.
No se puede construir un producto de tal envergadura en el tiempo asignado.
El producto es más grande que el estimado (en líneas de código, en el número de
puntos de función, o en relación con el tamaño del proyecto anterior). I
(conrinLia )
gr5
-*5l.,65-3. Cqnrinuación)
Orgunización y gestión
El proyecto carece de un promotor efectivo en los superiores.
El proyecto languidece demasiado en el inicio difuso.
Los despidos y las reducciones de la plantilla reducen 1a capacidad del equ
Dirección o marketing insisten en tomar decisiones técnicas que alargan la
planificación.
La estructura inadecuada de un equipo reduce la productividad.
El ciclo de revisión/decisión de la directiva
es más lento de lo esperado.
El presupuesto varía el plan del proyecto.
La dirección toma decisiones que reducen la motivación del equipo de
desarroll o.
Las tareas no técnicas encargadas a terceros necesitan más tiempo del esper;_
(aprobación del presupuesto, aprobación de la adquisición de material.
revisiones legales, seguridad, etc.).
La planificación es demasiado mala para ajustarse a la velocidad de desarr¡
deseada.
Los pla'es del proyecto se abandonan por ra presión, ilevando ar caos y
desarrol lo i neficiente.
La dirección pone más énfasis en las heroicidades que en informarse exactarr-.-:
del estado, lo que reduce su habiricrad para detectar y corregir problemas
Entorno de desawollo
Los espacios no están disponibles en el momento necesario.
Los espacios están disponibres pero no son adecuados (por ejernplo, fali, :.
teléfonos. cableado de la red, mobiliario, material ¿. oficinu, et..).
Los espacios están sobreutilizados, son ruidosos o distraen.
Las herramientas de desarrollo no están disponibles en el momento
deseado.
Las herramientas de desarrollo no funcionan como se esperaba; er persona.
:,
desa¡rollo necesita tiempo para resorverro o adaptarse a las nuevas hirramier-.
.
(.cort;i ,:
t .'kmamut $ .@síiltr¡ .re;!Íqrms ,:rci".-nalcos
;'e 53 I :a:tluitcton )
Nta*rlr, cont¡atado
=- srsonal contratado no suministra 1os componentes en el período establee-ic..
El personal contratado proporciona material
de una calidad inaceptable, por io
que hay que añadir un tiempo extra para mejorar ra
calidad.
Los proveedores no se integran en el proyecto,
con ro que no se alcanza er nirer
de rendimiento que se necesita.
Requisitos
Los requisitos se han adaptado, pero continúan
cambiando.
Los requisitos no se han definido correctamente,
y su redefinición aumenta er
ámbito del proyecto.
Se añaden requisitos extra.
Las partes del proyecto qu_e se no se han
especificado claramente consumen
más tiempo del esperado.
Prodacto
Los módulos propensos a tener errores necesitan
más trabajo de comprobación.
diseño e implementación.
una calidad no aceptable.requiere de un trabajo
de comprobación, diseño e
implementación superior al esperado.
utilizar lo último en informátic
a alargara planificación de forma impredecible.
El desarrollo de funciones software erróneas
requiere vorver a diseñarras y a
implementarlas.
El desar¡ollo de una interfaz de usuario inadecuada
requiere vorver a diseñarla
y a implementarla.
El desarrollo de funciones software innecesarias
ararga lapranificación.
Alcanzar el ámbito der producto o ras restricciones
de verocidad requiere más
tiempo del esperado,incruyéirto er tiempo para volver a diseñar e
imptementa..
unos requisitos rígidos de compatibiridad
con er sistema existente necesitan un
trabajo extra de comprobación, diseño e implementación.
Los requisitos para crear interfaces con
otros sistemas, otros sistemas complejos,
u otros sistemas que no están bajo er control
der equipo ¿. ¿.ru..olio suponen
un diseño, implementación y prueba no previstos.
El requisito de traba.iar con varios sistemas
operativos necesita más tiempo del
esperado.
El trabajo con un entorno software desconocido
causa problemas no previstos.
El traba-io con un entorno hardware desconocido
causa problemas imprevistos.
E1 desarrollo de un tipo de componente nuevo pararaorganización
más tiempo del esperado. consume
(continúal
Capítulo S: Gestión de riesgos
99
Tabla 5.3. (Continuación)
Faerzas mayores
El p^roducto depende de las normativas
del gobierno, que pueden cambiar de
forma inesperada.
El producto depende de estándares técnicos
provisionares, que pueden cambiar
de forma inesperada.
Personal
La contratación tarda más de lo esperado.
Las tareas preliminares (por ejemplo,
formación, finalizaciónde otros
proyectos, adquisición de licencias)
no se han compretado a tiempo.
La falta de relaciones entre la dirección y
el equipo de desarroro rarentrza ra
toma de decisiones.
Los miembros del equipo no se implican
en el proyecto, y por lo tanto no
alcanzan el nivel de rendimiento deseado.
La falta de motivación y de moral reduce
la productividad.
La falfa de la especiarización necesaria
aumenta los defectos y ra necesidad de
repetir el trabajo.
El personal necesita un tiempo extraparaacostumbrarse
a trabajar con
herramientas o entornos nuevos.
El personal necesita un tiempo extra para
acostumbrarse a trabajar con
hardware nuevo.
El personal necesita un tiempo extra para
aprender un lenguaje de
programación nuevo.
El personal contratado abándona er proyecto
antes de su finarización.
Alguien de la prantilra abandona el proyecto
antes de su finalización.
La incorporación de nuevo personal
de desarrollo al proyecto ya avanzad,o,
aprendizaje y comunicaciones extra y el
imprevistas reducen ra eficiencia
miembros del equipo existentes. de ros
(contintia)
nll[ .:mwm¡,nmru il {rgslrrí$rr .rc ría€cF}- -t:-o-:g..;s
rü 5.I. -,t.r:i¿ciónt
Diseño e implementació n
Un diseño demasiado sencillo no cubre las cuestiones principales, con 1o que
hay que volver a diseñar e implementar.
Un diseño demasiado compiejo exige tener en cuenta complicaciones
innecesarias e improductivas en la implementación.
Un mal diseño implica volver a diseñar e implementar.
La utilización de metodologías desconocidas deriva en un período extra de
formación y tener que volver atrás para corregir los errores iniciales
cometidos en la metodología.
E1 producto está implementado en un lenguaje de bajo nivel (por ejemplo,
ensamblador) y la productividad es menor de la esperada.
No se puede implementar la funcionalidad deseada con el lenguaje o
bibliotecas utilizados; el pe-qonal de desarrollo tiene que utilizar otras
bibliotecas, o crearlas él mis?ro para conseguir la funcionalidad deseada.
Las bibliotecas de código o clases tienen poca calidad, y generan una comprobación
extra, corrección de errores y la repetición de algunos trabajos.
Se ha sobreestimado el ahorro en la planificación derivado del uso de
herramientas para mejorar la productividad.
Los componentes desarrollados por separado no se pueden integrar de forma
senciila, teniendo que volver a diseñar y repetir algunos trabajos.
Proceso
La burocracia produce un progreso más lento del esperado.
Lafalta de un seguimiento exacto del progreso hace que se desconozca que el
proyecto esté retrasado hasta que está muy avanzado.
(continúa)
Capítulo 5: Gestión de riesgos 101
Exposición a riesgos
un método útil en el análisis de riesgos es determinar
la <<exposición a ries-
gos> de cada uno de ros riesgos que haya
identificado. ri
riesgos a menudo se abrevialo*o upú (hay "*p"rr"ro. "
quien ra ilama'<impacto
del riesgo>). Una definición de riesgo ,<peioiáu no esperadarr. ru ."_
", de pérdida
posición a riesgos es igual a la probabilidad
no
tiplicada por la magnitud dela pSrdida. por -ut-
ejemplo, si piensa"rf..uau
que ra proba-
bilidad puede ser del 25 por I 0Ó y puede haber
un retraso de cuatro semanas
rn ,fummmmru ü,mmll¡, re ,,ryl@s nÉr"ta¡¡ffi
t_
l
Capítulo 5: Gestión de riesgos 105
5.5.
1
Resolución de r¡esgos
La resolución de un riesgo concreto depende mucho del riesgo específi-
co. Los métodos que controlan el riesgo de un diseño inadecuado no se
adaptan bien al riesgo de que su equipo sea expulsado de sus oficinas.
BIBLIOGRAFIA Supongamos que está encargado de 1a contratación y está preocupado
ADICIONAL
A veces, la resolución por los riesgos de la creación de un diseño inadecuado en un área nueva
efectiva de riesgos para usted y que su despacho va a ser cedido a otro grupo de trabajo de la
consiste en encontrar
una solución creativa empresa. A continuación se describen una serie de métodos para tratar los
para el riesgo riesgos mediante ejemplos relacionados con los riesgos del diseño y del
aspecífico. Una buena
fuente de ideas de
lugar de trabajo.
cómo resolver muchos
de los riesgos de un
proyecto software es
Evite el r¡esgo. No realice actividades arriesgadas. Por ejemplo, tome
Assessment and responsabilidades en la mayor parte del diseño del sistema, pero no en las
Control of Software partes que no conozca. En cuanto al problema del lugar de trabajo, nego-
Blsks (Jones, 1 994).
cie con el grupo que pretende desplazarlo de su lugar de trabajo y con-
vénzalos para que no 1o trasladen.
-.¿-
'1rü fnwr¡¡nfu r ¡mrmr rc 4ra:+,os informáticas
rffi:ryn ¡I resto del equipo, que va a diseñar una parte con la que no está
*nrmir¡riz¡do. O podría hacer que le revisasen y aprobasen su diseño, trasla-
ói:lri.oles las responsabilidades. En el caso del espacio de trabajo, dispo-
ner de otro grupo cuya planificación menos crítica permita cambiar el
espacio en lugar de en el suyo, o esperar a que el sistema esté preparado
para ei traslado.
En general, aparle el riesgo del camino crítico. Planifique el proyecto
de forma que si ocurre un riesgo, el proyecto completo no se retrase.
t
Capítulo 5: Gestión de riesgos l0g
Para ilustrar la forma en que puede controlar algunos de estos riesgos.
la Tabla 5.6 lista los métodos de control de los riesgos más comunes
en la
planificación.
(continúa I
I
364 Desarrc;;a J, Eest¡ón de proyectos informáticos
detalles sobre los a menudo se encuentra laraiz del problema: el hecho de que los c1,._-.
prototipos
desechables, consulte no saben lo que quieren hasta que 1o ven. Los prototipos desechabi;_. :=-
e{ Capítulo 38, sultan generalmente el método más eficaz en este aspecto, y olrec- i
. p rototi pos
desechables".
mayor resistencia a cambios en los requerimientos (Jones, 1994).
Versión 2
A la hora de decir <No> frente a una modificación del producto actual,
resulta de gran ayuda poder decir <<Sí>i a incluir dichos cambios en algún
producto futuro. Cree una lista de futuras mejoras. La gente debe com-
prender que estas mejoras no van a incluirse forzosamente en la versión 2
simplemente porque no encajan en la versión 1, pero no necesita hacer
hincapié en este punto. Lo que tiene que dejar claro es que está escuchan-
do las preocupaciones de la gente, y piensa atenderlas en el momento ade-
cuado. En un proyecto de desarrollo rápido, el momento apropiado suele
ser <El proyecto siguiente>.
Como complemento efectivo de la estrategia de la versión 2, puede
crear un <plan de tecnología multiversión), que se corresponda con una
estrategia plurianual para su producto. Esto contribuye a que las personas
_ .¡L--
Capítulo 14: Control del conjunto de prestaciones
Seis semanas aites de:14 fecha de qntrega previsfa de Square-Calc 4'0, Kim
fue,d despacho de Eddie, rrEddie, tenemos un problema. Nuestros compe-
lidores acaban de lanzar una nueva versión. r tiene varias prestaciones
*,rrqvu, tqug n0 tenenl}os eü nu€stro producto. Necesltamos añadir algunas
prestasio¡es ¡o.v¿5 ¿n{es:de entregar este produclo >
Ecldje asintió. <De acuerdo. Haz una lista de las nueras prestaciones.
y la discutiremos en la reunión del grapo de ccetrol de cambios de esta
laide.l Klm ásuvo de acuerdo, y votvió a su despacho para preparar 1a
li sta.
I ,'
E1l la reunién del,grupo de control de cambios, Kim propuso una doce-
na de nuevás prestaiiones,i*rcorporad¿s en eJ producto do 1a competencia
qrrt"; ;-t.d incluidas en su producto. Eítat¡a rüy :afeetada'porque los
conrpetidores.haüían simpliiicado nruóhir los melús, pasando muchos ele-
mento* a,msnús céntéxfuales. DeCiaque eslo:par€Cia $i1e granmejora de la
in,..fu, de usuario. y su producto parecería desfasado si no incorporaba
menús de ese estilo.
una vez que Kim lerminó de describir las nuevas prestaciones, Eddie
cónrerri* a haü1ar. liEn primer l*gai, puede,que nós retfasemos un día sólo
para estinrar tantos cambios. ¿El grupo piensa querestas modificáciones
son suficientemen{e importantes para;justififar ei tiempo de estimación?))
Hl grupo acordó que eran sufiiientemente importanter' <Bien>, dijo Eddie'
,,v-oy a distribuir estas nuevas prestaciones como peticiones de cambios_a
torlós ios grupos afeetados- No quiero interrumpir su ritmo de trabajo más
de 1o necesaiio en esta etapa crítica de1 proyecto, así que les da¡é algunos
días para respónder. Vamos a planificar Ia decisión de estos cambios en
,r,r"riru reunión habitual de coatrcl de cambios de la prórima semana.> E1
grupo asintió. y se dio por finalizada la reunión'
En la siguiente ,*urrión, las estimaciones estaban preparadas' '<Según
estas estimaiiones preliminares. áos fetlasafíamos 3 o 4 msses si imple'
mentáramos todos estss cambios:>, dijo Eddie. <Desaffollo considera, que
son cambios relafivamente pequeños, y ettilia qu€ podrla irnplemé¡rtarlos
en unas suatro $9man¡s, pero,la prueba y ia doctmellación se verían lras'
tantemá afectadas, El ca¡:nbio a lss menús contqxtuales es el más eostoso
ya que cambia iignificativamente la interfaz ile usua-
' "n'tétminog de plazor,
rio del prograáu. fa r-""¡¿o de prueba dice que este cambio por sí solo
exigiria ieescfibir atrededor de un tercio de los casos de prue,ba, lo que
requeririil unas 6 semanas, La seoción de docqmentación nesesita bastante
,
tiempo paia conrenzar a, imprirair, y,teaián previsto enviAr .su trabajo a la
impienta al finai de esta $emaria. T"{ecesiiaríaa ciambiar el 80 pol 100 de sus
pagiaas y 'panfallas de'ay-ilda, rvolver a captular prácticarnente tados los
, volcadoslde pantalla y volver a repetir eL ciclo final ds revisión. Esto retra-
saria s, plaáificacién áe 3 a 4 meses? dependiendo de la rapidez co'* que
puedanl,cOntiatar un escritor exteJno. 51 grupo,de facilidad de uso opina
I ¿ aiil !ili!í0 I
-
370 .lesa--:r,,o '¡,gestión de proyectos informáticos
Bibliografía adicional
carroll, Paul B.: <creating New Software was Agonizing Task for Mitch
Kapor Firm>, The Wall Street Journal, ll de mayo de 1990, Al, A5.
Es un estudio fascinante del desarrollo de on Location 1.0, e ilustra 1o
que pueden suponer los cambios a ciegas en las prestaciones.
Gibbs, w. wayt: <<Software's chronic crisis>, scientífic American, sep-
tiembre 1994,86-95. E,ste artículo describe algunos proyectos software
recientes que han estado plagados de cambios en los requerimientos.
incluyendo el software de gestión de equipajes der aeropuerto de Denver
y el software de control de tráfico aéreo para estación de trabajo de
FAA.
Jones, Capers: Assessment and Control o.f Software Risks. Englewood
cliffs, N.J.: Yourdon Press, 1994.Elcapítulo 9, <<creeping user Requi-
rements>>, contiene un tratamiento detallado de las causas fundamenta-
les, problemas asociados, impacto en el coste y métodos de preven-
ción y control de cambios en las prestaciones.
Mcconnell, steve: code complete. Redmond, wash.: Microsoft press.
1993. Las secciones de la 3.1 a la 3.3 describen el incremento de los
costes cuando se aceptan cambios en los requerimientos en un pro-
yecto avanzado. También contienen argumentos para intentar obtener
unos requerimientos precisos tan pronto como sea posible.
Capítulo 14: Control del coniunto de prestaciones 371
Contenido
15.1. Papel de las herramientas de incremento de la productividad en el
desarrollo rápido
15.2. Estrategia de las herramientas para productividad
15.3. Adquisición de he$amientas para productivrd,ad
15.4. Uso de herramientas para productividad
15.5. El síndrome de la panacea
Temas relacionados
Lenguajes para desarrollo rápido: Capítulo 31
Reutilización: Capítulo 33
Diseño por heramientas: Sección 7.9
Resumen del grupo de herramientas: Capítulo 40
373
374 .js-.a'-o,,,'o y gestión de proyectos informáticos
(.continúa)
Capítulo 15: Herramientas para aumentar la productividad 375
\ t,))1 tl tiIlLl )
376 üesarroi¡,o y gestión de proyectos informáticos
capturarelconocimientodeundesarroliadorexperto(Brooks,l911).
con todas esas reglas en un
Cu'p,.rrut el producto final obtenido a1 pensar
del software'
lenguaje de programación es la parte fácil de1 desarroilo
Pen"sarias inicialmente es 1o que resulta dificil'
extremadamente precisos
El hecho de que lo, prog'u-as sotlware sean
software son
y tengan muchos detalies io t'u u cambiar' Los programas
y no menos' Alguien tiene
cadavezmás precisos, detallados y complejos'
conceptuai de cualquier nuevo programa informá-
que pensar er-, lu
"sen"ia antiguo programa informático' Esta
ii.o'o .outquier cambio a c"álq"ier de1 progra-
persona tiene que comprender tudu d"tull" de la funcionalidad
cómo están relacionados todos esos detalles
ma, y tiene q.t.
"o-p,""der
entre sí. Comprender esto resulta difícil, es propenso a errores y requiere
uno
necesario paraalcanzar este conocimiento es
-rr"fto tiempo. El tiempo necesario para completar un
de los componentes principales de1 tiempo
proyecto de desarrollo de software'
reducción drástica en ei
Fred Brooks sostiene que para alcanzar una
tiempodedesarrollo,deberíasurgirunanuevatecnologíaquesimplifica-
ralaesenciadeldesarrollodesoftware;estoharíamuchomásfácilformular
que configuran un programa
el conjunto de conceptos interrelacionados
más incida una tecno-
informático. Como r.gtu A" sentido común' cuanto
de software, mayor será
logía en las dificultadls esenciales del desarrollo
el esfuerzo que Podrá ahorrarse'
mucho esfuerzo'
REFERENCIA Un compilado, J" un lenguaje de alto nivel ahorra
CRUZADA porqrr. lleva el conjunto de conceptos sobre los que tiene que
"o*pt"to a lo largo de
Para más información
sobre lenguajes de i"rrpur.. a un nivel'más alto' Ésto es 1o que se ha conseguido
mayor nivel'
desarrollo ráPido, los años con ei.u,,'UJo a los lenguaj., á. ptogtumación-de
consulte el CaPítulo 31'
E1 cambro de lenguajes de bajo
el ensamblador' a los lengua-
.Lenguajes Para "iu"i, "o*o
desarrollo ráPido jesdealtonivel,comoelCy"Pascai,ieliberadetenerquepensarsobrelo
ejecuta su programa' El
(LDR)"
que está haciendo lu -aquiáu subyacente cuando
como Delphi' PowerBuilder
iuro u 1os lenguajes de programaciónrisual
'y permitiéndole ol-
iiruut gusiJ oi."c. u" rip-o similar de simplificación.
vidarsedemuchasdelastareasrealizadasenunentomodel.entanascuando
ejecuta un programa en un entorno gráfico'
conceptual (la parte
Las herramientas que no se dirigen a la esencia
Un editor de programas sólo
dura de la programacibn) no ayudan tanto'
rápido; es útii'
ayuda un po"o, po.-qrr" t" pt'Áitt escribir e1 código más
pero no se centra.niu de aquello que hace difícil el de.sarrollo de
""""iu
software. Esto mismo es cierto pu'u1u' herramientas
de control de código
herramientas automá-
fuente, depuradores, controladtres de ejecución'
ofrecen incrementos de
ticas de prueba, erc'; estas herramientas sólo
productividad Por la misma razón'
y bibliotecas de códi-
Las herrami",'tu, tul", como herramientas CASE
lenguajes de alto
go o de clases están en un punto intermedio entre los
nivelylasherramientasdecodificaciónensucapacidadparameiorarla
378 l:,.a".s,,: y gest¡on de proyectos informáticos
-G\
]les€rro,irro y gestión de proyectos informáticos
Aumento
del uso
y del ahorro
Adopción lenta
Tiempo
Figura 15.1. Una estrategia efectiva de trabajo puede rnaximizar las ventajas
mediante una adopción rápida y sistemática de nuevas herramientas. Pero
también debe evitar pérdidas de productividad debidas a la adopción de
he rra m ie ntas in ef icace s.
Plan de adquisición
Una organización que espera para buscar una herramienta hasta que la
necesita ha esperado ya demasiado tiempo. La evaluación y búsqueda de
herramientas debe ser una actividad continua.
Grupo de herramientas
Un método efectivo y continuo consiste en identificar una persona o grupo
como responsable de la distribución de información sobre las herramientas
software. Dependiendo del tamaño delaorganización, esta persona o grupo
puede tener asignadas responsabilidades sobre las herramientas a tiempo
completo o parcial, y debe ser responsable de las siguientes actividades:
I
384 )esa,rotio y gestión de proyectos informáticos
Coordinación.Losdistintosgruposdeunaotganizaciónpueden::'*
probar todt-: 'ü
bar nuevas herramientas' pero sin coordinación podrían
misma herramienta. Puedó haber seis nuevas herramientas prometed¡:hi
que sólo se p:-i-
y seis grupos para probarlas, pero sin coordinación puede
grupos podrían ha:::
úen trJs de lai seis herramientas. Algunos de estos
encontrado perfectamente satisfactoria una de las tres
herramientas ::
debe coordinar la experimentación ¡:
fráuuAu.. Ei grupo de herramientas
las mismas lecc::*
herramientas, para que estos grupos no aprendan todos
nes de forma tan dura, y qrr" lu otgunización aprenda el
máximo posir.=
de forma eficiente.
que todos los grupos deben ]gltilizar únicamente las herramientas que han
(aprobado)).
El grupo de herramientas debe estructufarse como una organización de
servicios en lugar de un organización de normativas. El trabajo del gru-
po de herramientas consiste en ayrdar a aquellos que trabajan en pro-
yectos reales para que hagan mejor su trabajo. Las personas que trabajan
al pie del cañón en sus proyectos saben mejor lo que necesitan. El grupo
de herramientas puede elaborar recomendaciones, dar consejos y ofrecer
soporte, pero sus ideas sobre las herramientas a utilizar no deben prevale-
cer Sobre las conclusiones de las personas que tienen que uSaI realmente
las herramientas.
El grupo de her:ramientas necesita estar formado por personas cuyas
recomendaciones sean escuchadas. Si el grupo tiene poca prioridad y está
compuesto por desarrolladores frustrados, las recomendaciones del grupo
pueden ser ignoradas y posiblemente por muchas razones.
Criterios de selección
REFERENCIA Esta sección contiene criterios a usar en la adquisición de sus herramien-
CRUZADA
tas. Puede utlTizar estos criterios en el contexto de un grupo de herra-
Las consideraciones
sobre la selección de mientas, o paru la evaluación de una herramienta específica para un pro-
heframientas se yecto determinado.
solapan con las
consideraciones a la
hora de seleccionar BeneficioS estimados. Lo más importante para un proyecto de desa-
desarrollo externo.
Para ver estos rrol1o rápido es estimar la eficiencia que se espera ganar usando una herra-
criterios, consulte el mienta determinada. A menudo esto resulta dificil de medir, y por fazones
Capítulo 28,
descritas detalladamente a lo largo de este capítulo, debe estimarse de
"Desarrollo externo".
forma conservadora.
Una buena noffna consiste en suponer que cualquier vendedor que
diga que puede mejorar la productividad en más de un 25 por 100 a1 año
usando una única herramienta no es consciente de lo que dice, o está
mintiendo (Jones, 1994). Puede decidir lo que debe hacer con un vende-
dor que proclama tales cosas; algunas personas evitan totalmente tratar
con ellos.
REFERENCIA
CRUZADA
Aplicabilidad. ¿La herramienta es realmente aplicable a su trabajo, o
Dara más información tendrá que forzar su adaptación? ¿Puede aceptar los compromisos que
sobre el diseño por implica una estrategia de diseño por herramientas? Usar una estrategia de
herramientas, véase
la Sección 7.9,
diseño por herramientas está bien. Sólo tiene que asegurarse de hacerlo
"Diseño por con los ojos bien abiertos.
herramientas".
I
I
I
)es..'3, a l, gestión de proyectos informáticos
los escritores de la revista los tienen en sus listas. Lo más probable es ;r,r
ni siquiera la mitad de las cosas mencionadas en un informe típico d; -:ru
revista sean de interés para cualquiera de sus proyectos individuales
Compromiso
Unavez que haya realizado la selección de las herramientas, comprc-:-
tase con ellas. No siga mirando sobre su hombro y preguntándose si al,¡-:u
otra herramienta hubiera resultado mejor. ¡Olvídese de las otras he=:¡
mientasl Como dice Larry O'Brien, <cuando el proyecto sufre su pr::-r
gran contratiempo, es natural preocuparse porque se está desperdicia-:l
esfuerzo. Todos los proyectos y todas las herramientas tienen un pr::r
gran contratiempo inicial> (O'Brien, 1995). No tiene que disfrutar ;-nr
los contratiempos, pero conciénciese de que encontrará algunos, sin -:-
portar lo buena que haya sido 1a selección de sus herramientas. Camb-¡r
de herramientas a mitad del proyecto sólo le garantiza que volverá a re:r-
otro gran contratiempo.
Duración
Nivel de productiüdad
\- antes (]e
¿ürles introducir
de rfrtr(ruuqr
\ la nueva herramienta
ltA
Productividad
Productividad
Perdida
\* Productividad
N¡vel de productividad
con la nueva herramienl
(caída inicial debida a la
curva de aprendizaje)
Tiempo
k
Importancia de la formación
Cuanto más potente es una herramienta, más dificil puede ser utilizarla de
forma efectiva. Sin la formación adecuada, las herramientas que podrían
ofrecer una productividad significativa se quedan en las estanterías, sin
utilizarse. Wayne Beardsley lo cuenta de esta forma:
eRRoR clÁsrco Piense en nuestra empresa de software como en üla empresa de construc-
ción. Nuestro trabajo consiste en cavar una zanja desde la calle hasta una
casa de campo situada a cinco millas. Hemos comprado el último adelanto
390 Desai'ro/io y gestión de proyectos informáticos
Ahorro en la planiJícación
Planificación 10,3 g% q{
esperada
(duración
en meses)
::rrl i.
¡,,.1.'
392 ):sz": : ',' gestión de proyectos informáticos
(personas-mes)
Ahorro en la
planíficación
1q
Planilicación 10,3 23o/o
esperada
(duración
en meses)
---
Capítuto 15: Herramientas para aumentar Ia productividad
ldentificación de panaceas
Puede ignorar cualquier afirmación de poder mejorar la productividad más
de un 25 por 100 al año porque no es realista. A medida que pasa el tiem-
po, por cada herramienta presentada como panacea, la gente gana expe-
396 Desa,r"oilo y gest¡ón de proyectos informáticos
4GL. Los 4GL (lenguajes de cuarta generación) pueden ser aliados pc-
derosos parala productividad del software, pero ofrecen ganancias incre-
mentales, no revolucionarias. Los beneficios reales se aproximan a 1o.
descritos en la Tabla 15.2 d,e la página 392. Como dice Fred Brooks. i¡
última mejora realmente grande se obtuvo al pasar del ensamblador a los
3GL (lenguajes de tercera generación), cuando se pudo dejar de pensar er
los detalles del hardware de las máquinas específicas (Brooks, 198-r.
Cualquier ganancia adicional debida a mejoras en los lenguajes está des-
tinada a ser más modesta.
"
Capítuto 15: Herramientas para aumentar la productividad 397
ffi
DATOS REALES
Programación orientada a objetos. Las tecnologías orientadas a ob-
jetos no han evolucionado de la forma en que esperaba la -qente que las
adoptó. Hay un informe que indica que los proyectos orientados-a objetos
habianbajado de un 92 por 100 de éxito en i991 a un 66 por 100 de éxito
dos años áespués. La explicación del cambio consistía en que los proyec-
G
)esa"s ,c ',' gestión de proyectos informáticos
lir- --
=r
hay magia. No vale la pena esperarla. Cuanto más esperemos, más nos
privaremos de métodos valiosos e incrementalmente mejores para mu-
chos de nuestros problemas. No existen soluciones fáciles, pero sí hay
soluciones mas fáciles, que pueden aportar modestas mejoras de forma
individual y grandes mejoras de forma colectiva'
El libro completo, en cierto sentido, es un conjuro para detener la com-
pra de habichuelas mágicas y buscar panaceas. Como industria, necesita-
mos apretar los dientes, ignorar 1as panaceas y hacer el trabajo necesario
para alcanzar realmente ganancias en la productividad.
\ C O¡itttltttt )
-..l&F
400 Desarrollo y gestión de proyectos informáticos
Bibliografía adicional
Brooks, Frederick P., Jr.: The Mythical Man-Month, Anniversary Eti:;":w,
Reading, Mass.: Addison-Wesley, 1995. Este libro contiene los e:s,n-
yos <No Silver Bullet-Essence and Accident in Software Engineer--c'
y (No Silver Bullet Refired>. El primer título es el famoso ensa). tr
Brooks reimpreso a partir del número de abril de 1987 de la rer:-om
Computer. Brooks afirma que no habrá, y lo que es más impona:=
que no puede haber, ningún método individual capaz de producir::-
ducción de un orden de magnitud en el esfuerzo necesario párÍl crn:*-
truir un sistema software en el período de 10 años que se inicia en 19i:
<No Silver Bullet Refired> es un nuevo estudio realizado 9 años ti.;r-
pués de las afirmaciones vertidas en el primer ensayo.
Glass, Robert L.: <What are the Realities of Software Productivity/Qu,:--
ty Improvements>>, Software Practitioner, noviembre de 1995, i. +;
Este artículo estudia 1a investigación de evaluación realizada soL'::
muchos de los métodos-panacea, y concluye que prácticamente en :c*
dos los casos hay poca investigación que soporte las pretendidas lri-
joras en productividad o calidad.
Jones, Capers: Assessment and Control of Software Risks. Engleu'oo:
Cliffs, N.J.: Yourdon Press, 1994. Este libro contiene una discusiri-
detallada de los riesgos asociados con la adquisición de herramient:-.
(<malas inversiones en tecnología>), el síndrome de la panacea, )-" ie-
mas relacionados, como la mejora de planificaciones a corto plazo.
Jones, Capers: <Why is Technology Transfer So Hard?> IEEE Compure"
junio 1995,86-87. En este artículo se profundiza en la razónpor
'z
que se tarda tanto en poner en práctica nuevas herramientas y metodo-
logías en una organización.
O'Brien, Larry: <The Ten Commandments of Tool Selection>>, Sofhrar;
Developmenl, noviembre 1995,38-43. Es un breve resumen de direc-
trices para seleccionar herramientas con éxito.
\: -4
402 Desan,ollo y gestión de proyectos informáticos
, ,.<¿Me cstáis tomandc el: p€lobr, bufo de célera, Car3, <<Jonnifer, me di-
jiste que te lallaban 5 o 6 semanas de trabajo. y de eso hace 3 semanas.
¿Cómo puedes decirme hoy que te faltan 5 o 6 semanas?>
<,Algunas cosas me han llevado rnás tiempo del que esperaba>. dijo ella.
,<Ademas. Kip y Keiko no tienen la culpa. pero conseguir que trabajen a
buen ritmo me ha llevado mucho tiernpo. Ellos no sabian cómo manejábamos
nueslros archivos de código fuente. y Keiko sobreescribió algunos de
nnestros archivos principales. Volver a crearlos aosrllevó a Joe y a mí va-
ilos dias.D
<,¿Cómo pudo sobreescribir esos archivos?'>. preguntó Carl. <¿Estáis
utilizando el conlrol del código fuente au{omatizado y hacéis copias pe-
ri ódi cas? ¡
La paciencia de Jenniler se estaba aeotando. Esraba cansada y se había
enlregado por entero al proyecto. "Escucha. nos hemos entregado durante
más de 2 meses. Hemos dado lo mejor de nosotros. Nadie ha tenido tiempo
para establecer el control automatizado de rersiones, y tuvimos un par de
contratiempos. Mira. te dije que lo terminaría en 4 o 5 semanas. y asi lo
haré.> La reunión se disclvió y,Cail le dijo'optirrrist+,qqg1e,,a,¡8.i1I quo el
Óuatro semanas más tarde. el equipo informó que habían hecho gran-
des progresos. pero pensaron que uún l.r faltaban otras 3 ,.rnunu. ñá, o
menos hasta que terminaran. Unas cuantas semanas después, Jennifer y Joe
se dieron cuenta de que habia algunos flecos del diseño que no podian
codificar y tenían que volver a diseñar una parte importante del sistema.
Cada error corregido parecia dar origen al doble de defectos detectados, y
ét liempo de finalizasi,én estimado por el grup_o oom€nzó a escapárseie en
lrez de acerqarsé: Carl: ádmitió que no sabia realinénte cüáldo estaría te¡-
minado el proyecto.
Dos meses más tarde, después de tres retrasos de tres semanas en la
planifieación, :Bill cancéló el prof¡ecto..ñqtificó a los usuarios que ren-
drían que continuar utilizando SCI 1.0 o buscar un sustituro en el mercado.
404 Desarrollo y gestión de proyectos informáticos
Filosofía
Cuando está en modo de recuperación de un proyecto, es fácil cenl:::r: ilu
el tema erróneo: ¿cómo fermrnar rápidamente, cómo lo conseguíre"-. :. . *ri
difícilmente el problema rea1. Para los proyectos que tienen este::::::
ma, normalmente el probiema principal es simplemente cómo ten:.-:r-
En un plan de recuperación se pueden tomar muchas direccit-:,:; l
plan de este capítulo se centra en recuperar el control del proyecto. - :"
trol> puede tener una connotación negativa, principalmente para 10! :.. *
rrolladores con mentalidad independiente, pero no creo que sea :. - - *
recuperar un proyecto sin centrarnos en é1. En mi propia experien; t'
'
como en las experiencias recogidas de auditorías del Instituto de In..-
'
ría del Software y otros informes publicados e informales, la caus, : ;.
común de que los proyectos tengan problemas es principalmente i. -' ¡
de un control adecuado. El deseo de obtener la máxima velocidad de ::,",
rrollo conduce a los proyectos a tomar atajos poco aconsejables, e in.: .*
tidamente sacrifican a cambio la velocidad de desarrolio real. A1 f-r:, :
control es tan pequeño que ni desarrolladores ni directivos coflocer .,:: *
qué punto sus proyectos están fuera de control.
Es difícil recuperar el control que se perdió, de forma que e1 mc::--.
en el que usted y su equipo se ven obligados a hacer frente a 1a re.-,*,;
sobre la necesidad de la recuperación representa una singular opc:t-
dad de tomar el liderazgo. Le ofrece fundamentalmente la oportunic=: -,-
redefinir el proyecto,1o cual no puede hacerse si el proyecto sóL- ..:-:
pequeños problemas.
Capítulo 16: Recuperación de proyectos 405
esta isla'
"Estoy realmente contento de que hayamos encontrado
Por un momento ta situación parecía estar fuera de control.'
tL
Capítulo 16: Recuperación de proyectos 407
te una fuerte dosis de lucidez para dirigir e1 proyecto con realismo. Cuan-
do comience la recuperación de su proyecto, admita que no sabe cuánto
tiempo Iardará en finalizar. Explique su plan para conseguir volver a en-
carrilar el proyecto, y luego dé una fecha con ia que pueda comprometer-
se como 1á nueva fecha límite. No se comprometa con una nueva fecha
límite hasta que tenga buenas razones para pensar que puede cumplirla.
Personal
Las personas son las que más influyen en el desarrollo rápido. y necesita
porr", orden esa habitación del desarrollo rápido en su casa antes de
"r,
pasar a las áreas de proceso y de producto.
REFERENCIA Haga todo lo que sea necesar¡o para recuperar la moral del gru-
CRUZADA
Para obtener más
po. Durante larecuperación del proyecto, la moral desempeña un papel
detalles sobre la i-portunt. en la productividad del equipo. Los altos cargos quelrán conocer
motivación, véase cómo motivar más al grupo. Ésta es una idea falsa durante la recupera-
el CapÍtulo 11,
.Motivación". ción del proyecto. Si el grupo ha estado trabajando duro, la cuestión no es
cómo mótivarlos al máximo, sino cómo recupelar su moral, de forma que
estén motivados del todo.
Una de las mejores formas de recuperar la moral es tomar una acción
simbólica que muestre que usted está detrás de los desarrolladores, y una
de las mejores formas de hacerlo es sacrificando a una de las vacas
BIBLIOGRAFIA sagradas lela organización. Esto muestra a los desarrolladores que la com-
ADICIONAL
Para obtener más puáíu 1". apoya e ilustra la importancia del proyecto. Sus acciones dicen:
información sobre la <Estamos comprometidos a entregar este producto, y 1o haremos sin im-
dinámica de grupo de
sacrificar a las vacas portar 1o que tengamos que hacer.>> Las vacas sagradas varían según las
sagradas, véase la ái*tintu. oiganizaciones, pero mientras se esté rompiendo un precedente,
los desarrolladores captarán el mensaje. Déjeles llegar a trabajar más tar-
regla núm. 48 en
Software Project
Dynam¡cs (Mccarlhy , de que el resto de la organización. Déjeles irse a casa temprano. Suspenda
1 995).
temporalmente el uniforme. Cómpreles los nuevos monitores grandes que
querían. Tráigales la comida. En resumen, hágales sentirse importantes.
En lo que respecta a su proyecto, 1o son.
Una de las más sagradas de las vacas sagradas pala un proyecto retra-
sado es el no permitir tomarse tiempo libre. Si se ha estado trabajando
durante meses con la presión de que quedan 3 semanas parala entrega del
producto, los desarrolladores no sólo apreciatán el tiempo libre, sino que
además será necesario para mantener al equipo sano y productivo. Un fin
REFERENCIA
CRUZADA de semana libre puede parecer toda una vida para un desarrollador que ha
Para obtener más estado trabajando sin ver el fin.
detalles sobre los
factores que Hay que asegurarse de que se están proporcionando al equipo factores
deterioran la moral, de higiene. Elimine una presión excesiva en la planificación, las malas
véase "Destructores
de la moral", en la
condiciones de trabajo, la manipulación por parte de la directiva, y otros
Sección 11.4. destructores de la moral.
408 ,?Si'ri,,a y gest¡ón de proyectos informáticos
no resuelr.en ,. i r-l.i *
blemas causados por los miembros
-oi.rio, del equipo. Si cree q.- , .,,,, *,
una persona problemática, hágale frente al momento
y elimine el p:, : , ....,u,
Sustituya a aquellos miembros del equipo que no estén
aunque sean colaboradores claves. La pérdida qua
dispuer,o. . ,,*. .
en ra n_- i¡* .
reagrupando ü: - ,
equipo no compensa su aportación técnica. Los está"uurun
r$i:
modos, de forma que es un buen momento para elimrnir
las péri:'-.,
Elimine los probremas principales con ros responsabres.
E1
sable que ha llevado el proyecto al borde del desastre podría
.¡: -.
no ter-r , x.ri,
ciente credibilidad como pararealizar los cambios necesarios
proyecto tenga éxito. En algunos casos, ei responsable
par; :-:
I
ineficazes er :-.. - ,,¡,,
técnico; en otros casos, es ei director del proyecto.
Si ocupa ur t_:,1,
que le permita hacerlo, considere cambiar uior
r.rponrables de1 pr. .:,
una de las opciones es sustituir al responsabre, pero si usted
es er re.. -
,*,
ble técnico, probablemente no podrieriminar a un director
rn.nci..-.. I
usted es el director, eliminar al responsabre técnico
forma de actuar. Afortunadamentq hay muchas opciones
no es siempre 1a
= : ¡nn
disponib;. :,o
sutiles y que sueien ser más efectivas que
¡eueda despedidál:
ayuda*in -or.str.= ,
Capítulo 16: Recuperación de proyectos 409
REFERENCIA Permitir que los miembros del equipo sean diferentes. Algunas
CRUZADA
Admitir diferentes
personas ascenderán debido al desafío de recuperación de un proyecto y
niveles de compromiso se convertirán en héroes. Otras estarán demasiado quemadas, y rechaza-
es diferente al
comienzo de
rán entregarse completamente. Eso está bien. Algunas personas quieren
un proyecto. Para ser héroes y otras no. En los últimos estados de un proyecto, hay lugar
obteneÍ más para las personas discretas, colaboradores constantes que no quieren lle-
detalles, véase
el Capítulo 34, gar a héroes, pero que conocen muy bien el producto. Para quienes no hay
"Compromiso lugar es para los charlatanes vulgares que critican a sus compañeros de
(Signing uP¡".
equipo por ser héroes. Durante la recuperación de un proyecto la moral
es frágil, y no se puede tolerar a personas que se la hagan perder al resto
REFERENCIA del equipo.
CRUZADA
Para obtener más Permitir que los desarrolladores marquen su propio ritmo. Los
información sobre cómo
los desarrolladores corredores van a velocidades diferentes, dependiendo de la distancia a la
marcan su propio ritmo, meta. Los corredores corren más rápido cuando la meta está próxima que
véase la Sección 43.1,
cuando faltan varias millas. Los mejores corredores aprenden a marcar su
"Uso de horas extras
voluntarias". propio ritmo.
410 Desarrolia y gest¡ón de proyectos informáticos
Proceso
Aunque encontrará mayores ventajas en la parte relacionada con e- :,:-
también debe ordenar el proceso si desea salvar un proyecto ;-:
problemas.
resultados de su trabajo?
\¡¡---
Capítulo 16: Recuperación de proyectos 411
tos. Si los usuarios finales o los clientes han estado añadiendo cambios
sin control, establezca un gmpo de control de cambios. Si el equipo no se
ha podido concentrar debido a un desfile continuo de interrupciones, cám-
bielos de sitio, haga que los separen fisicamente en su área, o defina su
propia frontera desde el suelo hasta el techo con cajas vacías. Si las per-
sonas no han ido tomando las decisiones oportunas, establezca un cuartel
general: reunión a las 5:00 de la tarde cada óía. y prometa que todos los
que necesiten una decisión la tendrán.
II
¡
412 Desa,,ro¡'¡o y gestión de proyectos informáticos
Anotar las razones por las que no se han alcanzado los hitos -r-
ner anotadas las razones por las que se haperdido cada uno de i,:,: : L,ni
puede ayudar a detectar las causas subyacentes. una anotación p..;, **
dicar la necesidad individual de formación de un desarrollador o re r,-.:-*"tr
la dinámica organizacional que hace que algunos desarrolladores:-_ :rrs-
dan hacer bien sus estimaciones. Puede ayudar a distinguir entre prc,:_:::rc
relacionados con 1a estimación y otros problemas relacionados ..,. _. r *.
nificación.
No cambie nunca No se comprometa con una nueva planificación hasta que pueda
unafecha errónea crear una significativa. No dé una nueva planificación a los altos car-
por otra igual de
gos hasta después de que haya creado una planificación de hitos miniatura,
errónea. Ése es un
mal negocio. Si ésta haya funcionado durante al menos una o dos semanas, lahaya recali-
hace esto, estará brado y haya ido bien durante más de una o dos semanas para comprobar
desperdíciando su la recalibración. Dar una nueva planificación a la directla rcahzada de
credibilidad.
otra forma es equivalente a reemplazar una planificación mala por una
Jim McCarthy
diferente, pero igual de mala. Si sigue primero estos pasos, tendrá unas
bases más sólidas para sus compromisos futuros de planificación.
Producto
A menudo no es posible recuperar un proyecto hasta que se actúa sobre el
conjunto de prestaciones del producto.
pre-
REFERENCIA Recorte del conjunto de prestaciones. El modo de recuperación
al conjunto mínirnt'
CRUZADA senta una oportunidad para reducir los requerimientos
Para obtener más
información sobre el aceptable. Éh*itr. las prestaciones de baja prioridad de forma implacable
No necesita corregirlo iodo, ni tampoco es necesario que implemente
recorte de tod¿-¡
requerimientos, véase este puntt-'
las prestaciones. Establezca prioridades. Recuerde que llegado
"Filtrado de posible. r''
requerimientos", en la el pioblema real no es desarrollar el producto en el menor tiempo
para la sr
creur el mejor producto posible: es terminar el producto' Deje
Sección 14.1-
REFERENCIA Eliminar la basura. Averigüe si hay algunas partes del producto que
CRUZADA todos saben que tienen una calidad extremadamente baja. Cuando encuentre
Para obtener más
detalles, véase muchos defectos en un segmento en particular del código, resulta tenta-
"Módulos propensos dor pensar que ha encontrado el último. Pero los módulos problemáticos
a erfores>, en
la Sección 4.3. tienden a pioducir una continua y asombrosa cascada de defectos. Los
módulos propensos a errores son los responsables de una cantidad de tra-
bajo desproporcionada en un proyecto, y es mejor eliminarlos y comenzar
de nuevo que continuar trabajando con ellos.
Capítulo 16: Recuperación de proyectos 415
REFERENCIA
CRUZADA
Para obtener más
detalles sobre por qué
este gráfico reducirá
defectos, véase
el Capítulo 26,
"Medidas". Defectos
----- Detectados
f_-l Resueltos
Fl7il Corresidos
ffiRoiertos
Tiempo
Temporización
De forma sorprendente, el mejor momento para aplicar un plan de recupera'
ción de un proyecto podría no ser el primer momento en el que se adviertc
que el proyecto tiene problemas. Necesita asegurarse de que la directir-a r
el equipo de desarrollo ya han captado el mensaje, y están preparados
para llevar a cabo los pasos necesarios para recuperar verdaderamente el
proyecto. Esto es algo que necesita hacer bien 1a primera vez.
Hay que tomar una posición entre dos consideraciones. Si el plan de
recuperación se emprende demasiado pronto, el personal aún no cree quÉ
haya necesidad de hacerlo. No conviene gritar ¡el lobo! antes de que los
demás puedan ver que el lobo está ahí. Si empieza demasiado tarde. es
probable que se vea envuelto en una serie de correcciones o miniintentos
de recuperación, que no funcionarán completamente, y disminuirán su
credibilidad de cara a reaTizar un esfuerzo de recuperación más efectivo-
a mayor escala. Tendrá que gritar <¡el lobo!> demasiadas veces.
No le recomiendo que consienta que su proyecto vaya mal simplemen-
te para que pueda hacer un mejor trabajo de recuperación. Sin embargo. si
el proyecto ya tiene problemas, le recomiendo que temporice la presenta-
ción de su plan de recuperación, de forma que todos los participantes en
el proyecto estén suficientemente receptivos y pueda tener éxito.
<Nosolros teniamos tantá prisa la.última vez que utilizamos toda clase de
:.rlrucss de baja caiidad, Necesitame¡'s volver,átráb:y elirninar átrgunás cosas
del producto. Esta vez no deberíamos añádir personal nuevo.t Carl asintió.
No deseaba cometer dos veces los mismos errores.
Charles tomó la iniciativa. <Me gustarÍa que todos elaboraran una lista
lconrintia )
It18 -lesa':o.,o y gestión de proyectos informáticos
(contintia)
T I
Capítulo 16: Recuperación de proyectos 419
Jennifer se quedó tarde una noche. pero le diio a Carl que principalmenle
se quedó porque había perdido pane del día. no porque ruriera mucho tra-
bajo que hacer. A] final de la semana. todos habian cumplido la planific,a-
ción. Más importante aún. todos estaban lelices. Jenniler habia pensado en
un principio que se iba a sentir presionada por la microgesiión de lo" hitos
miniatura, pero eo e$ter momento tenía'la buena impresióa de que era posi-
ble terminarunataree oada día, y decir a todos q*e estaba progresando. La
rnoral babía me.jorado.
Carl y Charles le dijeron a Billque terminarían en 9 semanas. Bill drjo
que eran buenas noticias y que había merecido la pena esperar. tn el resto
del proyeeto, Charles y Carl tontinuaron-aomprobando los progresos a diario,
Todos se quedaban algunas noches hasta tarde para mantener sus planifi-
eaciones de los minihitos, pero al final de las 9 semanas tetminaron ¡eal-
rnente del todo, Entregaron ql software a,lot usuarios finales y se lo comu-
,nicarsn a Bill. Todos consideraron el proyecto como ul éxito.
Bibliografía adicional
McCarthy, Jim'. Dvnamics of Software Development. Redmond, Wash.:
Microsoft Press, 1995. Es un conjunto de lecciones muy entretenidas
que McCarthy aprendió a 1o largo de su experiencia trabajando con
Visual C++ de Microsoft y otros productos. McCarthy describe con
mucho entusiasmo 1a visión del desarrollo del software en Microsoft,
pero es realmente inflexible. Describe 1os proyectos de Microsoft como
si emplearan casi todo su tiempo haciendo 1o que en este capítulo se
ha llamado <recuperación de prol'ectos>. Si reconoce que eso es 10
que McCarthy está escribiendo y lee su libro desde ese nir e1. tiene
cosas importantes que decir.
Zachary, Pascal: Showstopper! The Breakneck Race to Crectte ll'indotrs
l¡lT and the Next Generatíon at Microsoft New York: Free Press, 19911.
E,s una descripción del desarrollo de Windows NT 3.0 de Microsoft.
De acuerdo con la descripción del autor, el proyecto NT estuvo más
tiempo en modo de recuperación que en el desarrollo normal. A1 i-gual
que el libro de McCarthy, si se lee como una lectura de recuperación
de proyectos, se pueden obtener algunas lecciones interesantes. Una
vez que haya ieído el libro, ¡estará feliz de no aprender estas leccio-
nes con su propia experiencia!
Boddie, John'. Crunch Mode. New York: Yourdon Press, 1987. Este libro
no es específico sobre recuperación de proyectos, pero trata sobre cómo
420 D€se:rs,ti,'s y gestión de proyectos informáticos
---:ü¡--...-.--..-------.--.*-'-- -
-:
lntroducción a los métodos
recomendables
422
-l
100
Ef icacia
Reducción potencial Ninguna (=0%), Media (0-10%),
de la planificación Buena (10-20%), Muy buena
nominal (20 -30'/.), Excelente (30%+)
Riesgos principales
o Esta sección resume los riesgos principales añadidos
por este método en el resto del proyecto. No incluye los
riesgos para tener éxito con el propio método.
423
424 5esa,'re¡io y gestión de proyectos informáticos
Los capítulos de esta parte del libro describen los métodos recom*-
dables para desarrollo rápido. Estos métodos representan el estado o¿:
arte acfual en la velocidad de desarrollo. Algunos de ellos Son rue'tx
otros han sido utilizados durante 20 años o más. Algunos de elros pa=-
cen cuestiones de sentido común (¡ojalá se utilizara en general el sentiü
comúnl). otros puede que no parezaan métodos recomendables hasta qu
lea el capítulo correspondiente.
Estos métodos no están pensados para ser usados todos simultáne-
mente. Algunos de ellos son mutuamente excluyentes. pero probablemen::
encontrará algunos que puede usar en sus proyectos en curso sin modifr-
car radicalmente su enfoque para el desarrollo de software. otros mét.*
dos pueden parecer tan atractivos que deseará modificar radicalmente s*
enfoque de desarrollo para poder utilizarlos.
I
I
I
1
-_
428 )es..-3 :s ,,, gestión de proyectos informáticos
l
lntroducción a los métodos recomendables 429
(continúa)
.F
br-
lntroducción a los métodos recomendables 431
ii
Application Development, JAD)
Planificación conjunta No es un método recomendable. Véase ii
Liderazgo Fundamento.
Selección del modelo de ciclo Método recomendable descrito en
de vida otro capítulo. Véase el Capítulo 7,
<Planificación del ciclo de vida>, y el
resumen del Capítulo 25.
Medidas Método recomendabie. Véase el Capítulo 26,
<Medidas>.
Reuniones eficientes Fundamento.
Hitos principales No es un método recomendable. Véase
el recuadro <Hitos principales>, en la
página 522.
Hitos miniatura Método recomendable. Véase el CapitltIo 27,
<Hitos miniatura>-
Especificación mínima No es un método recomendable. Véase
<Especificación mínimar>, en la Sección 14. 1 .
(contínúa)
432 Desarrollo y gestión de proyectos informáticos
\conItilt;
Es_
:
Comprobación Fundamento.
(continúa)
!f$4 l:,.¡.-s e y' gesl¡ón cie proyectos tniormáticas
(continúa
t-
lntroducción a los métodos recomendables 435
lconrinúa)
436 D€-.aíro"''o y gestión de proyectos informáticos
Riesgos principales
. Aprobar demasiados cambios o aprobar muy pocos'
Para más información sobre los grupos de control de cambios, réase u Gru-
po de control de cambiosr, en la Sección 14.2
437
18
Construcción
y prueba diarias
Éi.i$]ffi:l Eficacia
Reducción potencialde la planificación nominal: Buena
Mejora en la visibilidad del progreso: Buena
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Muy buena
Posibilidad de éxito a largo plazo: Excelente
É¡S1¡.i!fl,li Riesgos principales
. Presión para entregar versiones intermedias de un programa con
demasiada frecuencia.
439
440 -ls-<er:o'ig y, gestión de proyectos informáticos
Mejora la moral. Como dice Fred Brooks, ver un producto que funciona
representa un impulso increíble para la moral. Prácticamente no importa lo
que haga el producto; ¡los desarrolladores pueden estar emocionados
sólo con que presente un rectángulo! Con la construcción diaria, cada dia
funciona un trocito más del producto, y esto mantiene a\tala moral.
tu
Realizar la construcción y la prueba incluso bajo presión. Cuano;
se intensifica la presión de planificación, el trabajo necesario para reai:-
zar la consfrucción diaria puede parecer una pérdida de tiempo extra\'¡-
gante. Lo contrario es cierto. Bajo presión, los desarrolladores pierde:
parte de su disciplina. Se ven presionados a tomar atajos para el diseño 1
ERROR CLÁSICO la implementación que no tomarían en circunstancias menos exigenre=
Revisarán y comprobarán su propio código con menos cuidado del hat:-
tual. El código pasa a un estado de entropía con mayor raptdez de la norm¡-
en períodos más tranquilos.
Frente a esto, el proceso de construcción y prueba diarias refuerza l¡
disciplina y mantiene alineados los proyectos bajo presión. El código si-
gue tendiendo hacia un estado de entropía, pero esta tendencia se manrie-
ne a raya cada día. Si construye diariamente y la construcción falla. l:
identificación del desarrollador responsable y la búsqueda de una coffec-
ción inmediata del código es una tarea asequible. Devolver el código haci:
atrás desde un estado de entropía es un trabajo relativamente simple. S:
espera dos días (hasta que haya el doble de defectos en el código), tendr:
que vérselas con el doble de defectos, y con los efectos multiplicativos de
la interacción de dichos defectos. Hará falta más del doble de esfuerz"'
para diagnosticarlos y corregirlos. Cuanto más tiempo espere entre opera-
ciones de construcción, más difícil será devolver el producto a un estadr
controlado.
Bibliografía adicional
Cusumano, Michael, y Richard Selby: Microsoft Secrets: How the lilorld's
Most Powerful software Company creates Technology, shapes Mar-
kets, qnd Manages People. New York: Free Press, 1995' El Capítulo 5
-+_
450 Desarrolto y gestión de proyectos informáticos
Eficacia
Reducción potencial de la planificación nominal: Media
Mejora en la visibilidad del progreso: N¡nguna
Efectos sobre el riesgo de la pánificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo" Excelente
Riesgos princiPales
. para
Basarse demasiado en el uso de lenguajes de programación
diseño
resolver problemas de diseño, en lugar de en métodos de
orientados al cambio'
451
452 Desarrallo y gest¡ón de proyectos informáticos
ffi
cal o Delphi, y así sucesivamente'
La téónica de ocultar las decisiones de diseño susceptibles de modifi-
cación dentro de sus propios módulos, conocida como <<ocultación de infor-
mación>, es una de ias pocas técnicas teóricas que han demostrado fuera
DATOS REALES que David
de toda duda su utilidad en la práctica (Boehm, 1987a). Desde
ha encontrado que los gtandes
Parnas introdujo inicialmente esta técnica, se
programas qué utilizan ocultación de información resultan más fáciles de
*oáifi"u, (hasta 4 veces más) que los programas que no lo hacen (Korson
y vaishnavi, 1986). Además, la ocultación de información forma parte de
4g Desarollo y gest¡ón de proyectos informáticos
...,qrrlE?|C"
Capítulo 19: Diseño para el cambio 455
Producto
base
Versión
interna
Versión
inglesa
Versión
OEM
Versión
europea
Versión para
el Lejano
Oriente
tecnología orientada a objeás (O-O) ha visto frenada su implantación por la siguiente razón:
objetos, véase
.ldentificación de
Panaceas', en la La orientación a objetos ha sido ligada a una gran variedad de lenguar:s
Sección 15.5.
complejos. En lugar de enseñarle a la gente que la orientación a objeto= 3*
un tipo de diseño, y darle los principios básicos de este diseño, la ger::
cree que la orientación a objetos consiste en el uso de una herramier-
particular. Podemos escribir programas buenos o malos con cualquil:
herramienta. A menos que enseñemos a la gente cómo diseñar, los lengi::-
jes importan muy poco. El resultado es que ia gente realiza malos disei¡*
con estos lenguajes, y obtiene muy poco rendimiento de ellos. (Parnas ::
Brooks, 1995.)
Bibliograf ía adicional
Las tres publicaciones de Parnas citadas a continuación sientan 1as b':--:s
de las idéas de la ocultación de información y el diseño para e1 c3:::riI
Siguen siendo parte de las mejores fuentes de información dispon-:.:r'
sobre estas ideas. Pueden resultar difíciles de localizar en sus fuentes or-
ginales, pero los artículos d,e l9'72 y 1979 han sido reproducidos en Tttro'
i¡ol o, Software Design Techniques (Freeman y Wasserman, 1983), ,v el
artículo de 1972 también ha sido reproducido en Writings of the Revoit''
rion (Yourdon. 1982).
Riesgos principales
¡ Cambio de prestaciones.
o Disminución del control del proyecto.
. Expectativas poco realistas de presupuesto y planificación.
. Uso ineficiente deltiempo de desarrollo por pafte de los desarrolladores.
-L_
e62 Desarrollo y gestión de proyectos informáticos
Orden de entrega
REFERENCIA La entrega evolutiva se utiliza cuando no se está completamente seguro
CRUZADA
de 1o que se desea construir. Pero a diferencia del prototipado evolutivo, se
Para más detalles
sobre el valor de tiene al menos alguna idea, de forma que se podría organizar un conjunto
organizar pos¡bles preliminar de entregas al comienzo del proyecto, mientras se están desa-
cambios en un sistema
en tiempo de diseño, rrollando la arquitectura y el núcleo del sistema.
consulte .Definición de La planificación inicial de entregas probablemente contendrá alguna
familias de
programas". en Ia funcionalidad que claramente estará en el sistema final, alguna que pro-
Sección 19.1 . bablemente estará, y otra que podría no estar. Sin embargo, se identifica-
rán otras funcionalidades y se añadirán posteriormente.
Asegúrese de estructurar su planificación de entregas, de forma que
desarrolle antes las funcionalidades más importantes. Puede mostrar el
Capítulo 20: Entrega evolutiva 465
-e-=a__
468 Desarrollo y gestión de proyectos informáticos
Bibliografía adicional
Gilb, Tom: Principles of Software Engineering Management.Wokingham.
England: Addison-wesley, 19gg. Lo, .upítulo,
tivamente la entrega por etapas y la entrega
I y rc ftatan exhaus-
evolutiva.
Mcconnell, steve: code Comptete'. Redmond, wash.:
Microsoft press.
1993 ' El capítulo 27 describe el método
^
cusumano' Michaer, y-Richard Selby: MicrosoJi
de la entregu
"uor*uu.
secrets: How the worrd,s
Most Powerful Software Company Creates
Technology, Shapes Mar_
kets, qnd Mqnages people. New york: Free press, 199"i. El
Clpítulo a
describe el proceso de hitos de Microsoft, qu"
similar-a la entrega evolutiva. cusumano y
.. podría .orrri¿..u.
sétuy ,on pror.*ores en er
MIT y la uc Irvine' respectivamente, y presentan
la vrsión der proce-
so desde fuera.
McCarthy, Jim: Dynamics of Software Development.
Redmond, Wash.:
Microsoft press, r995. Mccaithy describe
una visión desde dentro del
proceso de hitos de Microsoft. Desde
el punto de vista de ra entrega
evolutiva, este libro es particurarmente interesante
porque se
centra en
visual c++, un producto <prét-á-porter)) por
suscripción que se entre-
ga cada cuatro meses.
;I
i'l
l
21
Prototipado evolutivo
Eficacia
Reducción potencial de la planificación nominal:
Excelente
Excelente
M;i;tt;" lá visibilidad del progreso: . .
Efecto sobre el riesgo de la plJnificación: Disrninuye el riesgo
Posibilidad de éxito inicial: Muy buena
Posibilidad de éxito a largo plazo:
Excelente
Riesgos PrinciPales
. Expectativas poco realistas de presupuesto y planificación'
. Usb ineficiente deltiempo de prototipado'
. Expectativas poco realistas de rendimiento'
. Mal diseño.
. Dificultades para el mantenimiento'
lnteracciones y equilibrios principales
.Sacrificaunareducciónenelcontroldelproyectoparaaumentarla
realimentacióndelusuariofinalydelclienteymejorarlavisibilidad
del progreso'
ttantintia\
469
-*¡--
4m Desanollo y gestión de proyectos informáticos
*--
176 Desarrollo y gestión de proyeetos informáticos
Riesgos principales
. Pérdida significativa de motivación si cambian los objetivos.
(conrinúa)
481
Desarrollo y gest¡ón de proyectos informáticos
Las inspecciones son un tipo de revisión técnica formal, en las que los
participantes en la revisión están bien formados en métodos de revi- ffi
sión y tienen asignadas tareas específicas. Los participantes comprue- ffi
ban el material de la revisión antes de la reunión de la revisión, utili-
zando listas de errores comunes. Las funciones desempeñadas durante ffi
la reunión de la revisión ayudan a estimular el descubrimiento de erro- ffi
res adicionales. se ha descubierto que las inspecciones son mucho
más efectivas para encontrar errores que las pruebas de ejecución, ffi
tanto en el porcentaje de defectos totales encontrados como en el tiempo ffi
empleado en cada defecto. sus ventajas para el desarrollo rápido provie-
nen de detectar errores al principio del proceso de desarrollo, lo cual
evita volver a repetir el trabajo posteriormente. Las inspecciones prácti-
ffi
camente se pueden utilizar en cualquier tipo de proyecto, tanto para
nuevos desarrollos como para mantenimiento.
Eficacia
Reducción potencial de la planificación nominal: Muy Buena
Mejora en la visibilidad del progreso: Media
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
Ninguno.
483
24
Desarrollo coniunto
de aplicaciones (JAD)
Eficacia
Reducción potencial de la planificaciÓn nominal: Buena
Mejora en la visibilidad del progreso: Media
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
. Previsiones de productividad poco realistas tras las sesiones JAD.
. Estimaciones incorrectas y prematuras del trabajo pendiente tras
las sesiones JAD.
485
486 Desarrollo y gestión de proyectos informáticos
-€
I
JAD saca estas cuestiones a la luz en la fase inicial del proyecto, cuando
aún pueden ser resueltas correctamente y antes de que haya transcurrido
tiempo para que puedan hacer mucho daño. -l
24,1. Uso de JAD
JAD consta de dos fases principales, una fase de planificación JAD y una
fase de diseño JAD. Ambas fases trabajan con 1o que tradicionalmente se
conoce como los requerimientos del sistema, pero a niveles diferentes. En
ambas fases, JAD se centra más en el problema de diseño del concepto de
la aplicación que en los detalles puramente técnicos.
Durante la fase de planificación JAD, se hace hincapié enla organiza-
ción de las posibilidades generales del sistema software. Se hace más énfa-
sis en 1o que concierne al concepto de la aplicación que en 1o que concierne
a los detalles técnicos. El resultado principal de la fase de planificación JAD
son los objetivos del sistema, las estimaciones preliminares de esfuerzo y
planificación, y la decisión sobre la continuación del desarrollo del produc-
to. La planificación JAD también configura la fase de diseño JAD.
Si se toma la decisión de seguir adelante con el producto, se continúa
con la fase de diseño JAD. El diseño JAD obtiene requerimientos más
detallados, y su objetivo es crear el diseño del software a nivel de usuario.
A pesar de llamarle <diseño>, no se centra en el diseño funcional del sis-
tema, que es lo que cabe creer cuando se piensa en el término <diseño>.
El diseño JAD utiliza prototipos de forma extensiva, y el principal obje-
tivo de esta fase es un diseño detallado de la interfaz de usuario, un esquema
de la base de datos (si es conveniente), y unas estimaciones refinadas de
la planificación y el presupuesto. Al final de esta fase, el proyecto debe
aprobarse de nuevo antes de poder continuar.
Como sugiere la Figura 24.1 , fanto la fase de planificación como la de
diseño están divididas en tres partes:
I
,¿l8g Desarrollo y gestión de proyectos informáticos
,.\ Revisa
:lG;;
materi¿
Aprobación
Planificación JAD
La planificación JAD se- centra en requerimientos
y pranificación. Sus
objetivos son identificar ros requerimientos
de alto nivel, definir y deli_
mitar los límites del ámbito der iistema, planificar ra
actividad del diseño
JAD, publicar el documento del plan JAb, y
obtener la aprobació n pan
actividad del diseño JAD. En ocasiones,
u tu rur. de planificación JAD,
'a
también se le denomina pranificación conjunta
de requerimientos. o JRp
Capítulo 24: Desarrollo conjunto de aplicaciones (JAD) 4gg
(Martin, 199 l). Las secciones siguientes describen las subfases de perso-
nalización, sesión y la generación de documentación.
Personalización
El objetrvo de la actrvidad de personarización es adaptar la sesión de pla-
nificación JAD a las necesidades específicas del próyecto. Las activida-
des principales durante 1a personalización son:
Sesión
La sesión JAD es lo que establece la diferencia entre JAD y otros méto-
dos de recopilación de requerimientos. Las partes críticas de ra sesión
JAD incluyen el liderazgo por parte de un responsable JAD cuarificado,
la participación de un promotor ejecutivo y otras personas claves en la
toma de decisiones, el uso de un proceso estructurado y la posibilidad de
trabajar sin las interrupciones habituales.
Duración
REFERENCIA como se dijo anteriormente, una sesión JAD puede tardar de 1 a 10 días.
CRUZADA
Para obtener más
JAD es una actividad en equipo, de forma que se apiican las directrices
información sobre los habituales para el trabajo en equipo. Normalmente se necesit an2 días paru
factores que hacen que un equipo JAD se consolide (Martin, 1991). Si la sesión JAD dura
que los equipos se
consoliden, véase 5 días, el equipo realizará la mayor parte de su trabajo a partir der ter-
el Capítulo 12, "Equipo cer día.
de trabajo".
Sin tener en cuenta la duración de la sesión JAD, los participantes
deben estar siempre presentes. Si algunos participantes sóro asisten a par-
te de las sesiones, se pierde tiempo informándoles y poniéndose al co-
niente de los acontecimientos. Para conseguir la sinergia de grupo de una
sesión JAD, todos los miembros del grupo tienen que estar presentes.
490 Desarrollo y gestión de proyectos informáticos
lnstalaciones
La sala de reuniones JAD debe estar situada fuera de1 lugar de tr:::-:
idealmente en un hotel o en un lugar apropiado para conferencias. -:-*
participantes JAD son normalmente personas claves en la organizsct--
1as personas claves tienen habitualmente docenas de posibles disirac;-:-
nes. La instalación deberá liberar a los participantes de sus distraccic:=t
normales y permitirles centrarse exclusivamente en la sesión JAD. P--
mitir que los participantes respondan a las interrupciones durante una ..-
sión JAD sugiere que la sesión JAD no es importante.
La sala JAD debería incluir aparatos de medios visuales, compute;:-
ras, fotocopiadoras, bloc de notas, lápices, cámara Polaroid para gra-r--
contenidos delapizarra, tarjetas de identificación (si se necesitan). L'e:'-
das y refrescos, tanto para la planificación como para el diseño. Es;
combinación de recursos lanzaun mensaje importante a los participanr;=
JAD: <Este trabajo es importante,y la organización está detrás de usteri¡:
con su apoyo.)
Funciones
sables para cada uno de los proyectos. El resultado es que cada proyecto
utlliza un responsable no especializado, y obtiene resultados poco satisfac-
torios. Una organización que desee utilizar JAD debería formar a uno o
más responsables JAD, y esperar que se queden en este puesto durante
dos o más años. Normalmente se necesitan unas cuatro sesiones JAD para
que un nuevo responsable se convierta en un experto.
Problemas comunes
Las sesiones JAD están sujetas a varios problemas comunes:
de poi;:'-
Las sesiones JAD dan a una organi zación la oportunidad
ciarelrendimientodesustrabajadoresmásbrillantes'Losemp':'-
una sesión J-\l
dos brillantes pueden trabalar de maravilla durante
producir resultac:';
mientras qu" io* empleados mediocres pueden
mediocres. A veces vna organización escatim a alahota
de desiS-
JAD' Es esenc:'
a las personas más destacadas para participar en
puede
la participución de todas 1as personas claves' Si no
cons3-
J-\-tl
guir que una persona clave paiticipe' no lleve a cabo la sesión
iu p-UuUitiáad de éxito se reduce enotmemente' y las person¿:
hayan pe:-
cluv"s que asisten a la sesión no asimilarán bien que se
dido muchos días, en el caso de que la sesión falle'
JAD po:-
Los observadores constituyen un riesgo en las sesiones
que normalmente no logran limitar sus funciones a las
de obsei-
vadores.Siesnecesarioqueasistan,tratealosobservadorescomi
participantes, y asegúrese de que asisten a las mismas sesione'
á. pr"putu.lórrque los demás participantes y están perfectament:
preparados.
bemariados participantes pueden impedir que el equipo
JA?.:'
consolide, lo cual perjudicará el avance del grupo' El grupo. JAD
personas o menos (Mar-
completo debería 1.n"t u.t total de 8
tin, i99t;. Algunos expertos han obtenido un gran éxito con hasta
15 participantes (August, 1991), pero es difícil
que un equipo se
tiene
consolide cuando tiene más de 8 personas' Si su organización
experienciaenelusodeJAD,podríaaproximarseallímitesuperior
de 15 participantes, pero hay que hacerlo con cuidado'
-.-Ga
Capítulo 24: Desarrolto conjunto de aplicaciones (JAD) 4g3
Generación de documentación
La generación de documentación viene tras la sesión JAD y genera un
documento JAD, el cual debe ser un reflejo lo más fidedigno
ioJiut" o" tu
información generada durante la sesión. La salida de la slesión de planifi_
cación incluye:
Desarrollo y gestión de proyectos informáticos
Diseño JAD
El diseño JAD se centra en los requerimientos y el diseño de la interfaz
de usuario. Sus objetivos son definir los requerimientos con detalle' definir
el ámbito, diseñar los formatos de pantallas e informes, desarrollar el pro-
totipo, y recoger los requerimiento de edición, validación de datos, proce-
samiento e interfaces del sistema. También debería generar un diseño para
el esquema de la base de datos, si es necesario. El resultado de una sesión
de diseño JAD es un documento de diseño JAD, el cual se utlTrza parc
obtener la aprobación de la implementación.
Personalización
Las actividades principales durante la personalización del diseño son las
mismas correspondientes a la planificación. La preparación para la sesión
incluye el disponer de una habitación, equipo y suministros para la sesión;
preparar formularios y herramientas visuales; preparar software y perso-
nal para la documentación y el prototipado; y preparar el lugar paru \a
sesión. El responsable de la sesión también debería preparar una lista de
especificaciones posibles antes de la sesión. E,stas especificaciones deberían
tratarse como (propuestas>.
Capítulo 24: Desarrollo conjunto de aplicaciones (JAD) 4gs
Sesión
Las partes críticas de una sesión de diseño JAD son similares a las de la
sesión de planificación: dirección por parte de un responsable JAD capaci-
tado, participación de personas claves parala toma de decisiones, uso de
un proceso estructurado y ausencia de interrupciones. La sesión de diseño
es muy visual, utilizando pizarras de rotuladores, gráficos, proyectores de
transparencias y monitores o proyectores con pantalias grandes.
Generalmente, las sesiones de diseño JAD son más largas que las
sesiones de planificación JAD, durando desde algunos días a 10 o más
días, siendo una semana la duración más habitual. Las instalaciones nece-
sarias son idénticas a las utilizadas en la planificación JAD.
Las funciones del responsable de la sesión, del representante de
desarrollo, del secretario y del especialista son similares a las desempeñadas
en la planificación. Los representantes de desarrollo están más ocupados
porque tienen que participar en las sesiones durante el día y construir
el prototipo por las tardes. E,l promotor ejecutivo no necesita estar en la
sesión JAD, pero puede pasarse de vez en cuando para responder a pregun-
tas y ofrecer ayuda. En vez de implicar a un único representante de los
usuarios finales, deberían estar presentes un grupo de usuarios finales clave,
usuarios finales que puedan dedicar tiempo suficiente para trabajar en los
detalles del producto desde el diseño JAD hasta el diseño, implementa-
ción, prueba y entrega del programa. El director del proyecto también
podría estar presente, pero no debería dirigir la sesión, ya que el respon-
sable JAD debe ser absolutamente imparcial.
REFERENCIA tulos 7, 20,21 y 36), que entrega parte del software relativamente pronto
CRUZADA
después de la sesión de diseño JAD.
Para obtener más
información sobre los JAD y prototipado (capítulos 21. 38 v 42) parecen ser métodos sinér-
métodos de desarrollo gicos, y la combinación puede reducir 1os cambios de requerimientos por
incremental, véase
el Capítulo 7, debajo de un 5 por 100 (Jones, 1994).
"Planificación del Si el entorno técnico lo admite, realice el trabajo de prototipado y di-
ciclo de vida".
seño durante la sesión de diseño JAD de tal forma que pueda transferirlo
-*---=[E+ a la fase de implementación. Esto es mucho más fácil en el desarrollo de
lÚtll
ll¡#iT
IHttf
SI que en otros tipos de desarrollo. JAD es una parte rntegral de la meto-
r'iil t44 Gif:\ dología RAD de James Martin, y algunas organizaciones integran JAD
DATOS REALES dentro del ciclo de vida RAD apoyado por herramientas ICASE. Si tiene
sentido hacer eso dentro de su entorno, planifique esa integración durante
la personalización de 1a planificación JAD.
Un ciclo de vida del software es un modelo que describe todas las ac-
tividades que conlleva la creación de un producto software. Los estilos de ffi
desarrollo del producto varían tremendamente entre las diferentes cla- ffi
ses de proyectos, necesitando diferentes clases de tareas y distintos
órdenes Oé las mismas. La elección de un modelo de ciclo de vida ffi
erróneo puede dar lugar a la omisión de tareas y a una secuenciación
inapropiada de las mismas, lo cual va en contra de la planificación y
ffi
eficiencia del proyecto. La elección de un modelo de ciclo de vida apro- ffi
piado tiene el efecto contrario, asegurando que todo el esfuerzo se
utiliza eficientemente. Todo proyecto utiliza un ciclo de vida de un tipo
u otro (explícita o implícitamente) y este método asegura que la elección
W
ffi
se hace explícitamente y que maximiza las posibles ventajas.
Eficacia
Reducción potencial de la planificación nominal: Media
Mejora en la visibilidad del progreso: Media
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Muy buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
. La selección de un ciclo de vida no contiene en sí misma ningún ries-
go. Los modelos de ciclo de vida específicos pueden contener riesgos
adicionales.
lnteracciones y equilibrios principales
Ninguno.
501
26
Medidas
ilitiiltt!:,í; Ef icacia
Reducción potencial de la planificación nominal: Muy buena
Mejora en la visibilidad del progreso: Buena
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
503
504 Desarrollo y gestión de proyectos informáticos
Las medidas ofrecen visibilidad del estado. La única cosa peor qur
irretrasado es no saber que se va con retraso. La medida del progreso
puede ayudarle a saber exactamente en qué punto se encuentra.
Las medidas sientan las bases para la meiora del proceso a largo
plazo. El beneficio más significativo de las medidas no puede verse a
corto plazo en un solo proyecto, sino que se verá a 1o largo de 2 o 3 años.
Si mide su proyecto de forma consistente, sentará las bases para comparar
-FtI---
Capítulo 26: Medidas 505
proyectos y analizar los métodos que funcionan y los que no. Un programa
de medidas le ayuda a evitar perder tiempo con método, qn" no ,on
rentables. Le ayuda a identificar las metodologías presentadas como pana-
ceas que no están cumpliendo las expectativas prometidas. Le ayuda a acu-
mular una experiencia que soportaná una estimación miás precisa de proyec-
tos y una planificación más significativa. I¿s medidas son la piedra angular
de cualquier programa de mejora del proceso a largo plazo.
Grupo de medidas
Algunas organizaciones definen un grupo separado de medidas, y general-
mente esto es una buena idea, porque las medidas efectivas requieren un
conjunto especializado de habilidades. El grupo puede constar de desa-
rrolladores típicos. pero el grupo de medidas ideal debe tener conocimientos
sobre las siguientes áreas (Jones, 1991):
i
h
i
506 Desarrollo y gestión de proyectos informáticos
Aspectos a med¡r
Cada organización necesita decidir lo que va a medir basándose en su5
propias prioridades (sus propios objetivos y preguntas). Pero, como min:-
mo, la mayoría de organizaciones desearán guardar datos históricos sobre
tamaños de proyecto, planificaciones, requerimientos a nivel de recursos \
características de calidad. La Tabla 26.1 lista algunos de los elemenro:
de datos recogidos por diferentes organizaciones.
Unavez que haya comenzado a recoger incluso unos pocos elementos de
datos, puede obtener conclusiones de los datos recogidos, y también puede
combinar elementos de datos para obtener otras conclusiones. Aquí tiene
algunos ejemplos de combinación de elementos de datos que puede crear:
l- ----
Capítulo 26: Medidas 507
Granularidad
Uno de los problemas relacionados con los datos recogidos por la may or:.
de organizaciones consiste en que los recogen con una granularidad dem¿-
siado grande como para que resulten útiles. Por ejemplo, una organizaciLa:
podría acumular datos sobre el número total de horas empieadas en el prc"-
yecto FooBar, pero no distinguir entre el tiempo empleado en la especifica-
ERROR CLASICO ción, el prototipado, la arquitectura, el diseño, la implementación y demás
Estos datos globales podrían resultar útiles a nivel de auditoría, pero no son
útiles para alguien que desee analizar datos de planificación y estimación. c
datos que sean utilizados para mejorar el proceso de desarrollo del software.
La Tabla 26.2|istaun conjunto de categorías y actividades para control
de tiempo que ofrecerán la granularidad necesaiapara la mayoría de los
proyectos.
Categoría Actividad
BIBLIOGRAFIA
ADICIONAL Gestión Planificación.
Para ver otra Iista
Gestionar las relaciones con el cliente o
de actividades que
puede usar como usuario final.
base para el control
Gestión de los desarrolladores.
de tiempo, consulte la
Tabla 1.1 de Applied Gestión del control de calidad.
Software Measurement
(Jones, 1 991 ). Gestión de los cambios.
Administración Tiempo de preparación.
Preparación del laboratorio de desarrollo.
Desarrollo del proceso Creación del proceso de desarrollo.
Revisión o inspección del proceso de
desarrol I o.
Repetición/corrección del proceso de
desarrollo.
Formación de 1os clientes o miembros del
equipo sobre el proceso de desarrollo.
(continual
Capítulo 26: Medidas 509
Categoría Actividad
EspeciJícación de requerimientos Creación de la especificación.
Revisión o inspección de la especificación.
Repetición/corrección de la especifi cación.
Informe de defectos detectados durante la
especificación.
Prototipado Creación de prototipos.
Revisión o inspección de prototipos.
Repetición/corrección de prototipos.
Informe de defectos detectados durante el
prototipado.
Arquitectura Creación de la arquitectura.
Revisión o inspección de la arquitectura.
RepeticiórVcorrección de la arquitectura.
Informe de defectos detectados durante la
arquitectura:
Diseño Creación del diseño.
Revisión o inspección del diseño.
Repetición/corrección del diseño.
Informe de los defectos detectados durante
el diseño.
Implementación Creación de la implementación.
Revisión o inspección de la
implementación.
Repetición/corrección de la
implementación.
Informe de defectos detectados durante la
implementación.
Adquisición de componentes Investigación o adquisición de componentes,
bien comerciales o de la casa.
Gestión de la adquisición de componentes.
Comprobación de los componentes
adquiridos.
Mantenimiento de componentes
adquiridos.
Informe de defectos sobre componentes
adquiridos.
(continúa)
510 Desarrollo y gestión de proyectos informáticos
Categoría Actividad
'I
prueba del sistema.
Entrega del producto Preparación y soporte de entregas
I intermedias.
Preparación y sopofte de la versión alfa.
Preparación y soporte de la versión beta-
Preparación y soporte de la versión final-
Métricas Recoger datos medidos.
Aralizar datos medidos.
Análisis Pareto
REFERENCIA
CRUZADA
Si le importa la velocidad de desarrollo, una de las cosas más potenre>
Para ver detalles sobre que puede hacer con los datos recogidos es realizar un análisis Parer".
la distribución del (buscar el 20 por 100 de las actividades que consumen el 80 por 100 de-
tiempo empleado en
los proyectos en tiempo). La optimización de un proyecto software para una mayor veloci-
general, consulte la dad es similar a la optimización de un programa software para obtenei
Sección 6.5,
velocidad. Mida dónde emplea su tiempo, y entonces busque métodos para
"Distribución del
tiempo empleado". hacer más eficientes las áreas que consumen más tiempo.
il
I
I
i
L__
'!
Realimentación
unavez que haya definido un programa de medidas, es importante comu-
nicar a los desarrolladores y directivos los resultados de las medidas
ofrecer realimentación a ros desarroiladores suere ser argo poco
DATOS REALES usual e:
una organización; las organizaciones tienden a remitir losáatos
a los direc-
tivos, pero suelen ignorar a los desarrolladores. En un estudi o,
er 37 por 10r.i
de los responsables pensaban que se daba realimentación
sobre los datos
medidos, y en cambio sóro un r 1 por 100 de ros desarroiladores pensaban
1o mismo (Hall y Fenton, 1994).
Los desarrolladores tienden a ser suspicaces respecto al uso de
1os
datos medidos. Tanto los responsables como los desárroiladores
piensan
que los directivos manipulan los datos obtenidos al
menos una de cada
tres veces (Hall y Fenton, rgg4). cuando ros desarrolladores
no pueden
ver 1o que se hace con los datos, pierden conftanza en el programa
de
medidas. un programa de métricas mar implementado pueáe
p"er¡udicar
realmente la moral del desar¡ollador.
cuando una organización ofrece realimentación sobre los datos
-., me_
didos, los desarrolladores están entusiasmados con er programa
de medi-
DATOS REALES das. Al tener realimentación, éstos opinan que el progiu*i
de medidas es
<Bastante útil) o <Muy útil> aproximadamente en un
90 por r00 de ras
ocasiones. cuando una organización no ofrece rearimentación,
éstos opi-
nan que el programa de medidas es <Bastante útil> o
ntrtuy útii> só10
alrededor de un 60 por 100 de las ocasiones (Hali y Fenton,
iOO+¡.
. otro método para incrementar el entusiasmo de los desarroliadores
con_
siste en solicitarles que participen en el diseño de ros
formularios de recogi-
da de datos. Si 1o hace, los datos que recogerá serán
mejores, y su invitación
mejorará la posibilidad de su .o*pto-iro (Basili y McGairy, r995).
lnforme de estado
un tipo especial de realimentación ofrecido por ras organizaciones
que
usan medidas es un informe anuar de estado
del softwaie. El informe ie
estado es similar al informe anual financiero, pero
describe er estado de r¿
capacidad de desarrollo de software de ra organización.
Incluye resúme-
nes de los proyectos ejecutados durante el año; puntos
fuertes y débile.
Capítuto 26: Medidas 513
Limitaciones
¿Dónde está la Las medidas resultan útiles, pero no son una panacea' Tenga presentes
esperanza que estas limitaciones.
hemos perdido en el
conocímiento? Exceso de Confianza en las estadíst¡cas. Uno de los errores inicia-
¿.Dónde está el
conocimiento que les cometidos por el Laboratorio de Ingeniería del Software de la NASA
hemos perdido en la (SEL) era suponef que obtendrían el máximo de información mediante el
información? análisis estadístico de los datos recogidos. Conforme el programa de me-
T. S. Eliol didas del SEL iba madurando, descubrieron que obtenían alguna infor-
mación de las estadísticas, pero que obtenían más todavía hablando de las
estadísticas con las personas implicadas (Basili y McGarry, 1995).
Para evitar estos problemas, tenga cuidado con las anomalías al com-
parar métricas entre diferentes lenguajes de programación. Hay formas
más rápidas y hábiles de hacer las cosas que pueden producir menos códi-
go. Considere también el uso de puntos de función para algunas medidas.
Esto ofrece un lenguaje universal que se adapta mejor a algunos tipos de
medidas de productividad y calidad.
Bibliografía adicional
Software Measurement Guideboofr. Documento número SEL-94-002.
Greenbelt, Md.: Goddard Space Flight Center, NASA, 1994. Es un
libro excelente a nivel de introducción que describe 1os conceptos
básicos de cómo y por qué establecer un programa de medidas. Entre
otras cosas, incluye un capítulo de directrices basadas en la experiencia,
muchos datos de ejemplo de proyectos de la NASA, y un amplio con-
junto de formularios de recogida de datos. Puede obtener una copia
gratuita escribiendo a Software Engineering Branch, Code 552, God-
dard Space Flight Center, Greebelt, Maryland 20771.
Grady, Robert B., y Deborah L. Caswell:. Software Metrics: Establishing a
Company-Wide Program. Englewood Cliffs, N.J.: Prentice Hall, 1987.
Grady y Caswell describen sus experiencias con el establecimiento de
un programa de métricas del software en Hewlett-Packard, e indican
cómo establecer uno en su organización.
Grady, Robert B.: Practical Software Metrics for Project Management
and Process Improvement. Englewood Cliffs, N.J.: PTR Prentice
Hal1. 1992. Este libro es la continuación del anterior libro de Grady
1'Casrveli, y amplía el tratamiento de las lecciones aprendidas en
Capítulo 26: Medidas 517
Eficacia
Reducción potencial de la planificación nominal: Media
Mejora en la visibilidad del progreso: Muy buena
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
Ninguno.
519
=
1
¿Cómo es posible Control de granO f ino. E1.Roger's Version, John Updike describe una
dieta en la que una mujer se pesa cada lunes por la mañana. Es una mujer pe-
,Y;::::7;:;";;
a clía,. queña, y desea pesar menos de 50 kilos. Si un lunes por la mañana descubre
Frederick p. que pesa más de 50 kilos, come solamente zanahorias y salvado hasta que
Brooks, Jr. vuelve a pesar menos de 50 kilos. Su razonamiento es que no puede ganar
más de un kilo a la semana, y si no gana más de un kilo, no ganatá 5 o 10.
Con su método, su peso estará siempre cerca del valor que desea.
El método de los hitos miniatura aplica esta misma idea al desarrollo
de software, y se basa en la idea de que si su proyecto nunca se va a
retrasar más de un día o dos, es lógicamente imposible que se retrase una
semana, un mes o más.
Los hitos también ayudan a rcalizat el seguimiento del personal. Sin
hitos a corto plazo, es muy fácil perder la visión general. La gente pierde
tiempo en distracciones que parecen interesantes o productivas de forma
vaga, pero que no hacenavanzar al proyecto. Con un seguimiento de grano
grueso, los desarrolladores se retrasan algunos días o una semana, y no le
ponen atención.
Con los hitos miniatura, todo el mundo tiene que cumplir sus objeti-
vos cada día o dos. Si alcanza la mayoría de sus hitos trabajando todo un
día (y cubre el resto trabajando un día extra), alcanzará los hitos globales
al igual que los pequeños. No hay posibilidad de que aparezcan errores.
a' ---€:
Capítulo 27: Hitos min¡atura S23
Defina hitos binarios. Defina los hitos para que estén hechos o no he-
chos. Los únicos dos estados serán <hecho)) y (no hecho>. No use porcen-
tajes. Tan pronto como la gente pueda decir que tiene algo <hecho en un
90 por 100>, los hitos pierden su capacidad para contribuir a una visión
clara del progreso del proyecto.
REFERENCIA Algunas personas no pueden resistir la tentación de drfuminar ios in-
CRUZADA
Para ver otro ejemplo,
formes de estado en los hitos miniatura. Usted pregunta: <¿Ha terminado?>
consulte .siga <¡Sí!>, 1e dicen. <¿Ha terminado al 100 por 100?>. pregunta. <<Bien. hum.
meticulosamente el
progreso de la
realmente ¡he terminado el 99 por 100!> <¿Qué quiere decir eso de un
planificac¡ón", en la 99 por 100?)), pregunta. <Bien, hum. quiero decir que todar.ía necesito
Sección '16.2. compilar, probar y depurar el módulo. ipero ya lo he escritol>
Sea intransigente respecto a la interpretación estricta de 1os hrtos.
524 Desarrollo y gestión de proyectos intormáticos
en la Secc¡ón 8.7. pueden consistir en recortar el conjunto de prestaciones del producto, elimi-
nar distracciones para que los desarrolladores puedan concentrarse mejor.
reasignar partes del proyecto a desarrolladores que parecen estar cumplien-
do sus hitos fácilmente, y demás.
Si un desarrollador ha ido cumpliendo la planificación a base de tra-
bajar grandes cantidades de horas extras, recalibre la planificación de este
Capitulo 27: Hitos miniatura 525
Bibliografía adicional
Gilb, Tom: Principles of Software Engineering Managemenr. Woking-
ham, England: Addison-Wesley, 1988. Gilb no usa el término <hitos
miniatura>, pero la mayoría del método que describe es similar. Su
libro contiene una discusión particularmente interesante sobre la
recalibración en respuesta a la experiencia obtenida al cubrir hitos mi-
niatura.
28
Desarrollo externo
(Outsourcing)
Ef icacia
Reducción potencial de la planificación nominal: Excelente
Mejora en la visibilidad del progreso: Ninguna
Efecto sobre el riesgo de la planificación: Aumenta el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo'. Muy buena
Riesgos principales
o Transferencia de experiencia fuera de la organización.
. Pérdida de control sobre desarrollos futuros.
. Compromiso de información confidencial.
r Pérdida de visibilidad y control del progreso.
que no parezca que haya nada sobre 1o que comunicarse. Aigunos prc,-
yectos software utilizan <gestión por reuniones>; cuando usa desarroi,¿
externo debe planificar hacer <gestión por teléfono>.
En ocasiones, las compañías de desarrollo externo remotas ofrecen un
enlace de datos dedicado para el intercambio de correo electrónico, archi-
vos de computadora y demás. En un caso, la existencia de un enlace vía
satélite dedicado de 64 Kilobits fue considerado como una clave para el
éxito del proyecto. Los clientes informaron que el enlace de comunicaciones
supuso el 25 por 100 del coste total del proyecto, y que sus ventajas supe-
raron con creces el coste derivado (Dedene y De Vreese, 1995).
Tipos de contratos
Los tipos básicos de contratos son por tiempo y materiales, de precio fijo
y progresivos. El tipo de contrato determina muchas características de la
relación que va a tener con la empresa de desarrollo.
Los contratos por tiempo y materiales ofrecen la mayor flexibilidad y
no necesita tener muchos conocimientos técnicos. Puede decir simplemente
<Quiero un foobar>, y la empresa trabajará en el foobar hasta que 1o consiga
o se agote el dinero. Puede cambiar de opinión en 1o que entiende por
<foobar>, siempre y cuando siga pagando. La desventaja consiste en que
los contratos por tiempo y materiales superan generalmente sus esti-
maciones. Además, las empresas requieren generalmente un pago inicial
importante antes de comenzar a trabajar (hasta un 50 por 100), por 1o que
cuando empiezan a exceder sus estimaciones, sentirá que ya no tiene la
opción de rescindir el contrato.
534 )'esar:c'to y gestión de proyectos informáticos
Los contratos de precio fijo son una alternativa a los contratos por
tiempo y materiales. Con el precio fijo, tiene una garantía de que el
vendedor no excederá su estimación, o por io menos que conerá con el coste
si 1o hace. Pero esta garantía puede incrementar el precio hasta en un
50 por 100 respecto al de un proyecto equivalente por tiempo y materia-
les. Los contratos de precio fijo también requieren que especifique con
cierto detalle 1o que quiere decir cuando dice <Quiero un fooban. Los
cambios de requerimientos exigirán que negocie para obtener más tiempo
y dinero. Si piensa que negociar los cambios de prestaciones con sus pro-
pios desarroiladores era duro, espere hasta que tenga que hacerlo con un
tercero. Generalmente, los contratos a precio fijo requieren un fuerte pa-eo
inicial, por 1o que rescindirlos también será costoso. Algunas empresas
ofrecen ahora un tercer tipo de contrato: contrato progresivo. Este tipo de
contrato tiende a ser más económico que los contratos por tiempo y mate-
riales o a precio fijo. Generalmente sólo se paga un 20 por 100 al princi-
pio, y no se hace ningún pago adicional hasta que el desarrollador alcanza
un hito significativo. Este hito se define de forma que cuando el desarrolla-
dor 1o alcance, puede tener ia con{ianza de que el proyecto tendrá éxito.
La única desventaja de este tipo de contrato consiste en que el desarrolla-
dor puede insistrr en que pern-ranezca implicado activamente a lo largo
de1 proyecto. Realmente csto no es una gran desventaja,ya que la ejecu-
ción con éxito de los otros tipos de contrato requiere también lo mismo.
Hay muchas variaciones de estos tipos básicos de contratos, incluyendo
los contratos con coste adrcional (básicamente contratos de precio fijo
con un incentivo para premiar la entrega a tiempo). Generalmente desea-
rá negociar los detalles de un contrato específico de desarrollo externo.
Desarrollo en el extran¡ero
ffi
DATOS REALES
Una de las opciones de desarrollo externo que se está haciendo cadavez
más popular es el desarrollo externo en ei extranjero. Las compañías ex-
tranjeras ofrecen menores costes laborales de los que podría encontrar
localmente, del orden de un 35 por 100 menos (Dedene y De Vreese, 1995),
y algunas ofrecen una calidad del orden de la encontrada en empresas de
E,stados Unidos. Hay que tener en cuenta varias cuestiones en este caso.
ficación que puede alcanzar en la propia empresa, será mejor que de*--
rrolle el proyecto dentro de su empresa.
La Tabla 28.1 lista las consideraciones a tener en cuenta al eval;,r
vendedores.
Consideraciones de gestión
o ¿Cuál es la capacidad del vendedor para cumplir sus compromisos de
planificación y presupuesto? ¿Cuál es su historial de cumplimiento de
compromisos?
B ¿Cuáles son los niveles de satisfacción de ios clientes actuales del
vendedor, incluyendo clientes a largo plazo? ¿El vendedor tiene algún
cliente habitual?
tr ¿Cuáles son las capacidades de gestión de proyectos del vendedor? ¿Tiene
experiencia en todos los aspectos de la gestión de proyectos software,
incluyendo estimación de tamaño, estimación de costes, planificación de
proyectos, seguimiento de proyectos y control de proyectos?
tr ¿Puede confiar en la confidencialidad del vendedor? ¿Trabaja también el
vendedor con sus competidores?
tr ¿Quién va a ofrecer el soporte del producto? ¿Usted o el vendedor? ¿Desea
que el vendedor lleve el soporte a sus clientes?
O ¿Hay alguna denuncia presentada contra el vendedor?
Consideraciones generales
tr ¿La situación financiera del vendedor es estable? ¿eué le pasaría a su
proyecto si el vendedor se encuentra con un severo revés financiero?
tr ¿El vendedor ha desarrollado software por encargo en otras ocasiones? ¿La
construcción de software por encargo es la actividad principal del vendedor?
¿cuál es el nivel de compromiso del vendedor con el desarrollo externo?
l{..
---.
Capítulo 28: Desarrollo externo (Outsourcing) 537
tr ¿Cuáles son los productos (aparte del propio software) que se derivarán de
la eiecución del contrato (descripción de la arquitectura, descripción del *
diseño, código fuente, documentación en línea, documentación externa,
plan de prueba, casos de prueba, resultados de las pruebas, métricas de t
calidad, documentación de usuario, plan de mantenimiento)? I
i
E ¿El contrato contiene puntos sobre las revisiones periódicas y la
comprobación del progreso del vendedor? t
B ¿El contrato incluye una especificación detallada de los requerimientos? t
D ¿El contrato permite cambios en los requerimientos? hd
(continúa)
538 Desarrollo y gestión de proyectos informáticos
se le entregan?
tr ¿Son los desarrolladores de su organización los que interaccionan con el
vendedor para firmar los acuerdos? ¿Cuáles son las implicaciones de que e
vendedor haga esto? ¿Esto restringirá la capacidad de su organización de
desarrollar sus propios productos en un futuro?
tr ¿E1 vendedor tiene prohibido contratar desarrolladores de su
organización?
tr ¿Su organización tiene prohibido contratar desarrolladores de los
vendedores? ¿Aun en el caso de que el vendedor se declare insolvente?
tr ¿El vendedor pide que haya un mensaje de licencia que contenga su
nombre en la pantalla inicial, en la ventana Acerca de, en las pantallas de
ayuda y/o en la documentación impresa?
tr ¿Cuáles son los criterios de aceptación del producto final? ¿Quién es el
responsable de determinar la aceptabilidad? ¿Qué mecanismos protegen a
ambas parles frente a desacuerdos respecto de la aceptabilidad del producto
entregado?
tr Si el software se va a dar bajo licencia, ¿cómo se van a controlar las cuotas
de licencia? ¿Se permitirá al vendedor incrementar las licencias para
versiones futuras del producto? Si es así, ¿en qué cantidad?
Bibliografía adicional
Marciniak, John J., y Donald J. Reifer: Softwctre Acquisition Management.
New York: John Wiley & Sons, 1990. Marciniak y Reifer exploran
detalladamente las consideraciones existentes por parte del contratan-
te y el contratado en las relaciones del desarrollo externo de software.
El libro tiene un fuerte enfoque ingenieril, y describe cómo facturar el
trabajo, escribir contratos y gestionar proyectos de desarrollo externo
desde el principio al fin.
Humphrey, W. S., y W. L. Sweet: A Method for Assessing the Software
Engineering Capabilíty* of Contractors. SEI Technical Report CMU/
SEI-87-TR-23, Pittsburgh: Software Engineering Institute, I 987. Este
informe contiene más de 100 cuestiones detalladas que puede usar para
estimar la capacidad de una empresa de desarrollo de software. Las
preguntas se dividen en las categorías de estructura de la otganiza-
ción, recursos, personal y formación, gestión de la tecnología, están-
dares y procedimientos documentados, métricas del proceso, análisis
y control de datos, control del proceso y herramientas y tecnología.
La evaluación de empresas de desarrollo ha sido uno de los trabajos
fundamentales del Software Engineering Institute, y este informe tam-
bién describe un marco de trabajo interesante que puede usar para
evaluar las capacidades de desarrollo en general de un vendedor.
Humphrey, Watts S.: Managing the Software Process. Reading, Mass.:
Addison-Wesley, 1989. El Capítulo 19 está dedicado a la contrata-
ción de software. Contiene directrices interesantes para establecer una
542 Desarrollo y gestión de proyectos informáticos
Eficacia
Reducción potencial de la planificación nominal: Ninguna
Mejora en la visibilidad del progreso: Muy buena
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Muy buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
Ninguno.
543
30
Entornos productivos
Riesgos principales
. Pérdida de productividad por mejoras en los despachos orientadas
al estatus.
o Tiempo de transición.
. Repercusiones políticas del trato preferente a los profesionales del
software.
545
Desarrollo y gestión de proyectos informáticos
REFERENCIA Despachos con ventanas al exterior. La vista no tiene que ser es-
CRUZADA
Para más detalles pectacular, y la ventana puede estar tranquilamente enfrente de otra
sobre otros informes ventana externa, pero debe ofrecer la sensación de acceso al mun-
publicados sobre
entornos product¡vos, do exterior fuera del despacho, y debe permitir que el desarrolla-
véase la sección dor pueda fijarse periódicamente en aigo que esté a una distancia
"Base de los entornos superior a 24 pulgadas. En un despacho. miré por 5 ventanas bus-
productivos", ¡ncluida
poster¡ormente en esle cando una vista exterior, y esto era suficiente para descansar mis
capítulo. ojos y ofrecer un respiro en el uso de la computadora. E1 trabajo
con altas tecnologías requiere un entorno <sofisticadoll para cuidar
la moral (Naisbitt, 1982).
a Unapizarra de aproximadamente 1,2 metros cuadrados.
a Un tablón para notas de aproximadamente 1,2 metros cuadrados.
a Un acceso conveniente al resto de los miembros del equipo del pro-
yecto. El equipo debe tener oficinas cercanas; situarlos en distintas
plantas puede introducir demasiada <distancia> entre los miembros
del equipo.
a Un acceso conveniente a una impresora de alta velocidad.
a Un acceso conveniente a una fotocopiadora con alimentación auto-
mática de originales.
Un acceso conveniente a salas de reuniones. Los despachos priva-
dos parecen estar muy lejos de la necesidad de salas de reuniones,
pero las salas de reuniones siguen siendo necesarias siempre que
se reúna un grupo de tres o más personas.
Acceso conveniente a material común de oficina: bolígrafos, lápices,
minas, rotuiadores de marcar, ciips, gomas, grapas, cinta adhesiva,
blocs de notas, cuadernos, archivadores de anillas, disquetes en blan-
co, rótulos para disquete, cintas para copias de seguridad, notas
adhesivas de diversos tamaños, sobres estándar, sobres grandes,
sellos, archivadores, ca{petas archivadoras, carpetas colgantes, quita-
grapas, toallas de papel, rotuladores parapizarra blanca, limpiador
para pizarra blanca y limpiador para pantallas.
L
Capítulo 30: Entornos productivos 553
Tabla 30.1 . Diferencias en entornos de trabajo entre los mejores y los peores
participantes en una competición de programación
Fuente: Tomado de Developer Performance and the Effects of the I4torkplace (DeMarco y $
Lister,1985).
Bibliografía adicional
DeMarco, Tom, y Timothy Lister: Peopleware: Productive Projects an;
Teams. New York: Dorset House, 1987. Este libro trata de los factores
humanos que influyen en la ecuación de la programación, incluyendr
la necesidad del tiempo de concentración y los efectos en la producti-
vidad de los entornos de trabajo.
McCue, Gerald M.: <IBM's Santa Teresa Laboratory-Architectural Design
for Program Developments>, IBM Systems Journal, vol. 17, núm. 1.
1978,4-25. McCue describe el proceso usado por IBM para crear el
complejo de oficinas de Santa Teresa.
f":*--,-
31
Lenguajes para
desarrollo
rápido (LDR)
"Lenguaje para desarrollo rápido' es un término general que se refiere
a cualquier lenguaje de programación que ofrezca una implemenia-
ción más rápida que la tradicional de los lenguajes de tercera generación,
como c/c++, Pascal o Fortran. Los lenguajes para desariollo rápido
(LDR) producen su ahorro reduciendo la caniidad de trabajo necesario
para construir un programa. Aunque el ahorro se obtiene durante la
construcción, la posibilidad de acortar el ciclo de construcción tiene
implicaciones en todo el proyecto: los ciclos de construcción más corlos
hacen viables los métodos de ciclo de vida incrementales, como el pro-
totipado evolutivo. como, a menudo, los LDR no tienen un rendimiento
de alto nivel, restringen la flexibilidad y están limitados a tipos especí-
ficos de problemas, generalmente se adaptan mejor para el desarrollo
de software de gestión interno y de software de disiribución limitada
más que a software de sistemas o
"prét-á-porter,,.
Eficacia
Reducción potencial de la planificación nominal: Buena
Mejora en la visibilidad del progreso: Ninguna
Efecto_sobre el riesgo de la planificación: Aumenta el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Muy buena
Riesgos principales
. Síndrome de la panacea y sobreestimación del ahorro.
¡ Fallo al escalar a proyectos grandes.
. Refuerzo de malos hábitos de programación.
555
556 Desarrollo y gestión de proyectos informáticos
Basic, CIC++, Cobol, Pascal y Fortran. Éstos son los tipos de enton- ¡ -c
los que estoy hablando:
sobre los puntos de gran parte de la industria del software está pasando a usar una:-;- :;
función, véase
denominada <puntos de función> para estimar los tamaños de 1os ::- -- ii*
"Estimación de los
puntos de función", en mas. Un punto de función es una medida sintética del tamaño del prr-;. _-
la Sección 8.3. basada en una suma ponderada del número de entradas, salidas. cf i! -J,
y archivos. Los puntos de función resultan útiles porque le permire: - ::-
5.
Capítulo 31: Lenguajes para desarrollo rápido (LDR) 557
Tamaño
en puntos Fortran Cobol C C++ Pascal Visual
de función Basic
l 110 90 125 50 90 30
100 I 1.000 9.000 12.500 s.000 9.000 3.000
500 55.000 45.000 62.500 25.000 45.000 15.000
1.000 1.0000 1 90.000 125.000 50.000 90.000 30.000
5.000 550.000 450.000 625.000 250.000 450.000 150.000
Fuente: Tomado de los datos incluidos en <Programming Languages Table> (Jones. I 995a).
558 Desarrollo y gestión de proyectos
DATOS REALES
Instrucciones por
Lenguaje punto de función
Ensamblador I 320
Ada 83 4,5 70
AWK l5 25
C t< 125
C++ 6,5 50
Cobol (ANSI85) ?5 90
dBase IV 9 35
Excel, Lotus 123, Quattro Pro =50 6
y otras hojas de cálculo
Focus 8 40
Fortran 77 J 110
GW Basic 1 ){ 100
Lisp 5 65
Macroensamblador 1,5 215
Modula 2 4 80
Oracle 8 40
Paradox 9 35
Pascal ?5 90
Perl l5 25
Quick Basic 3 55 60
SAS, SPSS y otros paquetes 10 30
estadísticos
Smalltalk 80; Smalltalk/V l5 20
Sybase 8 40
Visual Basic 3 10 30
Fuente: Tomado de 1os datos incluidos en <programming Languages Tables> (Jones, 1995a).
usuarios finales que le vean dando respuesta o sin responder a sus deman-
das. Para obtener el máximo beneficio del uso de un LDR, utilícelo junto
con un modelo de ciclo de vida incremental e iterativo (Capítulo 7).
Si está trabajando en software <prét-á-porteD). en tiempo real o en
otro tipo de software que no se adapta bien a su implementación con un
LDR, sigue pudiendo utllizar los LDR para el prototipado de la interfaz
de usuario (Capítulo 42)y paraprototipos desechables (Capítulo 38). Uno
de los objetivos del prototipado es emplear el mínimo esfuerzo posible, y
los LDR pueden contribuir a este objetivo.
Riesgos principales
r Eliminación de requerimientos que posteriormente serán recupe-
rados.
565
'f
33
Reutilizacion
Eficacia
Reducción potencial de la planificación nominal: Excelente
Mejora en la visibilidad del progreso: Ninguna
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Baja
Posibilidad de éxito a largo plazo: Muy buena
Riesgos principales
. Pérdida de esfuerzo si los componentes preparados para su reutili-
zación no son seleccionados cuidadosamente.
567
568 Desarrollo y gestión de proyectos informáticos
lización:
o Reutilizaciónplanificada.
o Reutilización oportunista.
¿Adaptar o recuperar?
Si desea hacer una reutilización oportunista. riene dos opciones: adaptar
el viejo sistema para el nuevo usol o diseñar ei nuero sistema desde el
principio y recuperar componentes del antiguo sisterna. Desde mi punto
de vista, es mejor crear un nuevo diseño para el nui\ü sisrema r-lue-eo
recuperar partes de sistemas existentes. Este enl-oque ñ;nciu¡na me-ior porque
sólo requiere que comprenda pequeñas panes aisla'Ls del antiguo siste-
ma. Adaptar un antiguo programa para un nue\o,r-..-;equiere que com-
prenda todo el programa, 1o cual es una tarea ba-.Ie:le ¿:iua. Prrr Supues-
to, si las personas que escribieron ei antiEuL-r prüSl-¿:¿ s¡n l¿s mismas
que están trabajando en el nuevo, o si el nuer... ¡s er:e::¿i¡:rec.te similar
al antiguo, es posible que sea mejor adaptar i- rrr.-er¡:-' ::lr_r-u'l.
El enfoque de recuperar partes es ollortri:r-i-Li Srrra_-: - :e--¡siia aleu-
na suerte para poder reulilizar diseño r co*jiI-l-'s;:r.- ;i - :.:iiuti antcrior
sin haberlo planificado previamente. Pue,je:3-i: i-\-:a s::- =-::s:¿t¡ siste-
ma estaba bien diseñado e implementa,jtr. Er;: ='.-." :-: ¡: an:iouo
sistema utilice modularidad y ocultación de ia ln:c:= =::;c. T¡':-bren puede
tener éxito si hay solapamiento ent¡e la-s pia¡::, .l.s ,i: ¡¡-::¡--¡ ,iei anti-
guo y del nuevo sistema. Sin algún soiap¡n:r::;-r- :-::.:=- :i---:¿r par-
tes de un antiguo sistema puede ser más bisr -.:- i-:-:::;:- tr3 Jt-tiur{raia
que de reutilización.
__*_J
570 Desarrollo y gestión de proyectos informáticos
anteriores.
una de las ventajas de este tipo de reutilización es que no rec*:rli
necesariamente un compromiso por parte de los altos directivos. c.:,.-"
Jones informa que a menudo los desarrolladores individuales reui:-*-J:
su propio código, 1o que puede suponer de un 15 a un 35 por 100 c: ;:
programa dado (Jones,1994). podría alentar a los desarrollad.ores:i*'
que reutilicen la mayoría de código posible, tanto a nivel de respon¡:: r
técnico como a nivel de contribución individual.
Reutilización externa
No existe ninguna razon técnica para hacer el desarrollo propio c; _:
componente cuando se puedq comprar un componente externo ya p:-_
-,
DATOS REALES rado, pero sí puede haber una razón de e*pr"io, como desea. .on,._ ,,
una tecnología que es crítica para su empresa. Desde un punto de . ,
técnico, es posible que un vendedor externo pueda pon",
-á, r€curSt- ! :-
un componente prefabricado de los que podamos disponer internar:.;:::
y con un menor costo. Generalmente, 10s módul0s de código reutiliz,: :
Capítulo 33: Reutilización 571
se ofrecen con un precio que oscila del I al 20 por 100 del esfuerzo que
requeriría su desarrollo para el cliente (Jones. 199.+).
REFERENCIAS Para muchas personas, el mercado libre se está orientando rápidamente
CRUZADAS
Para más informac¡ón
hacia la reutilización. Ha sido objeto de inr.estigación indusrrial y académi-
sobre las bibliotecas ca durante años, y los vendedores llevan ofreciendo desde hace tiempo
comerciales de código,
bibliotecas comerciales de código para dominios especificos de las aplica-
consulte el Capítulo 31 ,
"Lenguajes para
ciones, tales corno interfaces de usuario. bases de datos. funciones matemá-
ii
!I desarrollo rápido ticas y demás. Pero la reutilización comercial comienza a imponerse en la
* (LDR)", y el
plataforma PC con Microsoft Visual Basic r- \TlX {c-onuoles de \.isual
ii Capítulo 15,
"Herramientas Basic). Reconociendo su popularidad. Microsoft ha ret-orzado el soporte
para aumentar la
productividad". de la teutilización con OCX (controles OLE). La: emp*as de lcnguajes de
programación, como Borland, Gupta, Microsoftl- Pos-erSoft- hen comenza-
do a soporlar tanto VBX como OCX en los lenguajer q.le oirecen.
Los problemas citados tradicionalmente como ósárüh's para la reutili-
zación también están siendo controlados porel mercado libre" Por ejemplo.
las empresas no necesitan crear sus propios repositorios de ccrmpronentes
reutilizables, porque los vendedores de VBX lo hacen por ellas" El eúto de
los vendedores depende parcialmente de lo bien que oryznicea- caraloquen
y den publicidad a sus productos para reutilización. de modo qrc l.cl> u-lientes
puedan encontrar los componentes que necesiten 1-comprarlos"
Cuando veo un Algunas personas no comprenden el éxito de los \BL pero ürel.-I que
control la raz6n es aparente. Los VBX ofrecen una encapsrlacion f.. rrn¡ c¡r--ulta-
personalizado VB,
pienso: <Ahí hay ción de la información extremadamente buenas- qrrc srrn X¿s clar es pn¡a
1.000 horas de mi una reutilización con éxito. La reutilización prometida por lengua-ies de
vida que no voy a programación orientados a objetos, como C-. se ha',ict(t crmprnmeuda
tener que pasar por el diseño de los propios lenguajes. Por ejemplo. eo C- ior dsarro-
delante de una
computadora.> lladores de código pueden hacer una interfaz de cla-se q{¡€ erpr.loga el tj¡¡-
Al Corwin cionamiento interno de la clase. Esto constituve un s¡bot¿le ftenre a la
ocultación de la información y la encapsulación. O predÉn rc¡¡ nonnbres
de función que no den ninguna pista al posible u-suario sotre h forme de
utilizar la clase. Como el lenguaje no exige que lcrs dsarrollaJor* ent¡e-
guen documentación, puede resultar dificil que alguien comprenda rrna
clase lo suficientemente bien como pam reutilizarla
Por contra, el desarrollador de un \BX no tiene o,tr¿ opcran grr sumi-
nistrar una hoja de propiedades, que ss€¡gielmente hrce gue la interfaz frl
VBX sea autodocumentada.La hoja de propiedafu oculta c¡rmpletameore
la implementación del VBX, lo que refuerza ta ocrrltacién ds informacion
y la encapsulación. Los VBX han tenido érito simplemente porque otre-
cen un buen soporte para la encapsulación del presente en mrchos len-
guajes orientados a objetos. La modularidad ¡- ta ocultación de inf,orma-
ción ofrecen el soporte que buscaba la gente para la reurilización- Este
hecho es consistente con los informes de organizaciones que han prepara-
do sus propios programas de reutilización planificada- que veremqs pos-
teriormente.
572 Desarrollo y gestión de proyectos informáticos
Consideraciones de gestión
La reutilización vincula proyectos que anteriormente podrían haberr.
zado de forma aislada, 1o que amplía el ámbito de las decisiones sl'ri-t
proyectos. Implica que diferentes proyectos tendrán que estanda:::-:r:
pro..ror software, lenguajes y herramientas. La reutilización ele;:' L
quiere una inversión a largo plazo en formación, y un plan multip:;','
fara la construcción y el mantenimiento de componentes reusable¡
:
cuestiones plantean todo un desafío, y prácticamente todos los :':
sobre programas de reutilización o informes sobre un program3 :
fico dicen que el compromiso de la directiva es mucho más in,l:':
para el éxito que la capacidad técnica (Card y Comer, 1994: Jt'c¡
Jones, 1994; Griss y Wosser, 1995).
Éstas son algunas de las tareas de gestión implicadas en la
de un programa de reutilización:
. Designar un responsable de la directiva (pero entre los alt¡s ::
vos) para el programa de reutilización. Los directivos ¡' :
nivel no tienen incentivos para el desarrollo de compone::x
sables en un único proyecto, ya que esto repercute sobre -¡
imagen del proyecto, y no hay ningún incentivo para que e - s-:
proyecto salga mejor.
. Asegurar un compromiso a largo plazo con el programa. F. mmuum-
tante que la reutiiización no sea tratada como algo pasaler. 'ir ü[ur
pueden pasar dos años o más para que el desarrollo de c.'::-:flfllüflü*
tes reutilizables empiece a ser rentable (Jones, 1994).
c Hacer que la reutilización sea una parte integral y explíci:. -1: I!1lr&-
ceso de desarrollo. La reutllización no aparecerá por sí s.'-' ' iruü-
poco aparecerá como subploducto de otros buenos proc:=-: limu
dejar clara esta prioridad, haga que el soporte de la reuti-:-.: irü !$[
convierta en una actividad más de revisión de los emple.;:*
o Transformar los programas de medida de productir idac ¡" "rrrt*
ware de la organización para que en lugar de medir e- --- -rr iúH
hF-*
Capítuto 33: Reutilización 573
Consideraciones técnicas
REFERENCIA El grupo encargado del cuidado y recogida de componentes reutilizables
CRUZADA tendrá mucho trabajo. Éstas son algunas de sus tareas:
Los grupos de
reutilización tienen
muchas cosas en Evaluar si las arquitecturas actuales del software de la otganiza-
común con los grupos ción soportan la reutilización, y desarrollar arquitecturas que la
de herramientas de
productividad. Para soporten si es necesario.
más información sobre Evaluar si los estándares actuales de codificación soportan la codi-
éstos, consulte "Grupo
de herramientas", en
ficación, y recomendar nuevos estándares si es apropiado.
la Sección 15.3. Definir estándares de lenguajes de programación e interfaces que
soporten la reutilización. Es prácticamente imposible reutilizar com-
ponentes si están escritos en lenguajes distintos, usan interfaces de
llamada a funciones completamente distintas y usan diferentes con-
venios de codificación.
Definir procesos que soporten \a rculllización. Recomiende que en
cada proceso se comience buscando los componentes que podrian
ser reutilizados.
Crear una biblioteca formal de componentes reutilizables- 1' ofre-
cer algún medio para examinar la biblioteca buscando los compo-
nentes que podrían ser reutilizados.
'"
I
574 Desarrollo y gestión de proyectos informáticos
ADICIONAL
Esta opinión es objeto
centrar sus esfuerzos de reutilización sobre estos últimos. Utiliza-.: r-:
de algunas lenguaje de diseño estructurado,.f'actoríce completamen le cualquie: : ir
controversias. Para ver ponente que intente reutllizar. No presente grandes componentes : , :l
una discusión completa
del debate de RISC entidades individuaies y monolíticas. Con componentes más pequ;. . ,
f rente a CISC apl¡cado precisos, proporcionará la esperanza de resolver el problema de l¡. --:"
a la reutilizacrón del
software, véase ros usuarios de una vez, aunque de todos modos esta esperanza _q-:.:-!l
Confessions of a Used mente es poco realista. A1 menos, con componentes más pequeños :.-_ . -"
Program Salesman
(Tracz, 1 995). las posibilidades de ofrecer aigo de valor.
DATOS REALES
formación y la encapsulación, el núcleo del diseño basado €fl t,r-:
(McGarry, Waligora y McDermott, 1989; Scholtz et al., 1994: Hc::
Faller, 1995). La mayoría de los proyectos de reutilización existen¡-: -'r-i
han tenido éxito han usado lenguajes tradicionales, tales como _\;
Cobol y Fortran (Griss y Wosser, 1995). Un estudio sobre 29 org: _-
ciones ha encontrado que los programas desarrollados en lengua_i;. _,.
generalmente se piensa que facilitan la reutilización (como Ada r _
-
*i-c
Capítulo 33: Reutilización 575
-<-¡-
-
576 iasala'!,io y gestión de proyectos informáticos
{
CaPítuto 33: Reutilización 577
parecidos, este
que no desarrolla una gran can¡ida,j de slstemas reaimente
punto de equilibrio puede resultar dii-íci1 de alcanzar'
podria ser implementar
Una estrategia piáctica que reduce e-'te de sqo I
una<regladedos>:implementarcadactt¡nf'on'niecomocomponenteúnico
segunda t'ez. considerar
la primáa vez, y luego. si es necesario usarit-r una
hacerloreusable.EnestepuntosabeüL]e\'3els¿iio.-omo.mínimootra
lnenor rlesgo sl cree
vez, con lo que implícitamente está 3t'ifl3Iiitr in
q,,.,utgunureutilizaciónactualimpliCaunaÍI¿\-Lrlreutilizaciónposterior'
É.ro tltgu cuidado. Algunos "tpitot adrie-e: ";e =r
ro ha construido
tres sistemas reaies en in dominio parricular. nroba'¡;e nente. todar ia
no
conocelosulrcientedelmismoparaclesre-LrliiDüEeflI3srsulilizSb]eicon
éxito (Tracz, 1995).
reutilizacic-'n p1a-
cambios en la tecnología. uno de los riesgos en la
una estrategia a largo plazo'-\o sólo
nificada se debe al hechote que es
necesitareuliliZarun.o,npon.ntevariasvecesparafecuperarlainler-
,órl, ,ino que necesita usarlo antes de que la tecnología en ia
que está
<puede emplear mucho
basado quebe obsoleta. Como dice Chris Peters'
sólo para ver como queda ob-
tiempo haciendo qr" utgo sea compartible,
mundo en que las cosas cambian con
soleto al cabo de dos alñor. En un
díganme cuál es la parte que tiene que ser com-
ianta rapidez y violencia,
partida>i (Peters en Cusumano y Selby, 1995)'
REFERENCIA Sobreestimacióndelahorro.Nosupongaquelareutilizacióndecó-
CRUZADA
digoleharáahorrarmuchotiempo.Sisóloreutilizaelcódigo,sóloaho.
proyecto'
,rírá ,i"-po de codificación. Si reutiliza otros elementos del
Para más información
sobre la estimación del
tiemPo ahorrado' podrá ahorrar tiempo en otras facetas'
consulte.Reducción
Tenga presente que reutilizar un componente tiene
un coste debido al
realista del Plan", en la
y a usarlo' Pla-
Sección 15.4. tiempo i"""rurio pira localizar el componente aprender
nifiqueemplearparalareutilizaciónd.u''ulíneadecódigoalrededor
de una quinta parte del esfuerzo necesario
para desarrollarla desde cero
(Tracz,1995).
DATOS REALES
Mejoradelrendimiento.Loscomponentesreutilizadosmejoran¡.:¿:l-
dimiento en dos aspectos. A menudo. están mejor diseñados
r mi'i: =J'-
bados que los componentes individuales, 1o que a menudo imJ:;: rue
también hace que
,on -¿, rápidos 1Éfleeger, lgg4b;)' Esto 'os -s:-i:-I--rs
sean montados con mayor tapidez, lo que permite
montar en:3> -¡: siste-
-+:
578 Desarrollo y gestión de proyectos informáticos
Bibliografía adicional
Tracz,Wlll: Confessions of a L:sed Program Salesman. Reading, Mass.:
Addison-Wesley. 1995. Este libro contiene una serie de artículos es-
critos por Tracz para IEEE Computer y otro material, escrito todo e11o
580 Desarrollo y gestión de proyectos informáticos
Riesgos principales
. lncrementar la ineficiencia.
. Reducción de la visibilidad y control del estado.
. Disponibilidad de menos personal cualificado para el proyecto.
. Agotamiento.
581
582 Desarrollo y gestión de proyectos informáticos
Compromisoaniveldeequipo.Latécnicadelcompromisoparece
identi-
funciánar mejor en equipos suficientemente pequeños para tener una
dad de equipá. Es diticit que alguien se comprometa con una sran org3nr-
zación. Álg.tnu* han usado esta técnica con érito en sÍ.i-i¿'s
"-pr.tui
proyectos, creando pequeños equipos dentro de 1os grandes pltr\ 3u-iurS i
haciendo que la gente se comprometa con ellos'
Las personas necesitan identificarse con Lln -grr-lpt'r lu:-i;:3'-:3¡:13::e
pequeñocomoparaquesepanquesucontribucióneslil'1..Í:i:¿'C:-i'.
iur^p"r.or,u, todas 1' carja una 'ie el':-' 'E se:':-:ár
"rián "ó-ptometidas,
responsables personalmente de terminar el prt-rCuctc''' C'¡a¡ic e' ;:"c-i:t'
esté terminado, cada persona sentirá que ha sido ¡a persona cl¿"e -\i:
1a
a menos que deje que el equipo juegue solo. Señale la dirección.:-:, lur¡
luego a toda máquina hacia atrás. La única excepción a esta reql. s: rrrrltr-
duce cuando e1 equipo en sí es responsable de la definición de r:l!is!fr*
mientos. En estos casos podrán tolerar numerosos cambios de d-:-:'lunm
sin perder la motivación.
tl
34.2. Gestión de los riesgos del comprom¡so
üt
E
35
Modelo de ciclo
de vida en espiral
Eficacia
Reducción potencial de la planificación nominal: Medra
Mejora en la visibilidad del progreso: Muy buena
lfecto sobre el riesgo de la planificación: Disminuye e riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
Ninguno.
Para obtener mayor información sobre el tnodelo de ciclo ije-;:.j; ¿,: ¿s-
piral, consulte la Sección 7.3, <Espiraltt.
589
*ll---
't
36
Entrega por etapas
Riesgos principales
. Cambio de prestaciones.
591
-?-----
592 Desarrollo y gestión de proyectos informáticos
La entrega por etapas es un modelo de ciclo de vida en donde e1 s,, . r' ,stl
se desarrolla en etapas sucesivas, y bien se muestra al cliente o se -::*5ru1
al final de cada etapa.La Figura 36.1 muestra una descripción gr.- :; ror
este modelo de ciclo de vida.
Como sugiere la Figura 36.1, con la entrega por etapas se pas3.:'-- r,m{ii
pasos de definición del concepto del software, análisis de requeri::-,=rnmr
y creación del diseño de la arquitectura del modelo en cascada. - -'r;u
se procede a hacer el diseño detallado, codificación, depuración \ ::-uimnuL
con cada etapa, creando un producto para entregar al finai de cad" -;¡¡:ulii
La entrega por etapas mejora más la planificación percibida :-: rulL
planificación real.
Concepio
del software
Análisis de
requerimientos
Dir reno
gl ¡bal
\-.:"
I
Capítulo 36: Entrega por etapas 593
Dependencias técnicas
En una sola entrega larga, el orden de la entrega de los componeni_: :
importa mucho. Muchas entregas pequeñas de un producto requierel _:
mayor planificación que una única entrega grande, y tiene que
asegu:i:)ü
de que no ha pasado por alto ninguna dependencia técnica de la pne: -.-
cación. Si planifica implementar el guardado automático en la enrre :.
-'
será mejor que se asegure de que el almacenamiento manual no
está p,.:_ _
ficado parala entrega 4. Asegúrese de que er equipo de desarroilo re\
-.:
:
plan de entregas con el ojo puesto en ras dependencias técnicas
antes de : .-
meter a los clientes prestaciones concretas en un tiempo específico.
*-
Capítulo 36: Entrega por etapas 599
Bibliografía adicional
Gilb, Tom: Principles of Sofnuare Engineering Management. Wokingham,
England: Addison-Wesley, i988. Los capítulos 7 y 15 hacen un pro-
fundo tratamiento sobre la entrega evolutiva y la entrega por etapas
(Gilb no hace distinción entra ambas). Gilb fue una de las primeras
personas en hacer hincapié en el valor de los métodos de desarrollo
incremental como los citados. Ha tenido una experiencia directa utili-
zando el método en grandes proyectos, y gran parte del enfoque
de gestión descrito en el resto de su libro está desarrollado partiendo de
su uso.
]
37
Gestión Theory-W
',1'ji::t:,,.
Riesgos principales
Ninguno.
603
{ÉF-
604 Desarrollo y gestión de proyectos informáticos
REFERENCIA objetivos más claros del proyecto. Los ob-ie¡i"'t'rs del proveu-ttr e stár
identi-
CRUZADA
claios desde el principro. )-a que un prLr'e cto The'rn -\\- cLlmienza
Para obtener más de los rrrplicados La ne-
información sobre la ficando las condiciones de ,,éritc-¡" de "-aúa'¿no
reiuerza v documenta
importancia de tener gociación que tiene lugar al comienzo de1 prol ecto
clara es pro-
ios objetivÁs del prol'ecto. Establecer los objeti'os de tbrma
objetivos claros,
consulte -Definición de
obietivos", en la bablemente 1a clar'e más importante para moti\'ar a los desarrolladores. 1.
Secc¡ón 11.2
lamotivacióndelosdesarroliadoresesprobablementelaclal.emásim-
portante para ei desarrollo rápido.
Mejoresrelacionesconelcliente.Muchosproyectosseconfigurande
forma qrr" proporcionan ganancias para los clientes y pérdidas
para 1os
cuando
d"rar.oiludores, o viceversa. Es difícil mantener buenas relaciones
mejoran por su
una de las partes está perdiendo. Los proyectos Theory-W
propia naluralezalas rólaciones entre los desanolladores y los clientes, por-
que todos están ahí Pata ganar.
la
REFERENCIA Hay varios ahorios en la velocidad de desarrollo que se deben a
CRUZADA
mejora de las relaciones con el cliente:
Para obtener más
detalles sobre la
utilización de las . Mejora de la eficiencia, debido a 1a mejor comunicación y la mejor
relaciones con los en
clientes para meiorar la coÁprensión por parte del cliente de la función que desempeña
velocidad de el proYecto.
desarrollo, consulte el
CaPítulo 10,
. Disminución del trabajo repetido, porque se realiza mejor la tarea de
.Desarroilo orientado analizar los requerimientos. Las negociaciones sobre los detalles
centra-
de las prestaciones llevan menos tiempo porque todos están
al cliente".
---Gp
605 Desarrollo y gestión de proyectos informáticos
\F
-=F-
Capítulo 37: Gestión Theory-W
l
608 Desarrollo y gestión de proyectos informáticos
Hacer que las personas vean los temas desde los puntos de '.,::; üfu
los demás.
REFERENCIA Relacionar las expectativas de las personas con la experienci" _.tu$tu
CRUZADA
Para consultar las referencia a hechos históricos o a la opinión de expertos para ;=i:m
tablas de las 1o que es realista y 1o que no. Si su cliente o su jefe desea des.::: ,lLllu¡
planificaciones más
cortas posible para
un producto en menos tiempo del empleado por la organ: r: ium
proyectos de dislintos normalmente en el desarrollo de un producto de tamaño sil;::,- ¡uL
tamaños y tipos, expectativa es probablemente poco realista. Si desea desarr.-i,; m
consulte la Sección 8.6,
"Estimaciones simples
producto en menos tiempo del empleado hasta ahora en des"::" lirr
de planificación.. un producto de ese tamaño en la industria en general. dei-t:-_:'t¡-
mente es poco realista. Utilice referencias históricas para cü:,:: lil¡[:
las expectativas poco realistas sobre la planificación, funciol", - ru¡r
coste y otros atributos del proyecto o del producto.
o Relacione 1as expectativas de las personas con modelos bi::. :irt-
brados. Si su organización no ha recogido datos de su exper-=::,riL
o si las personas no toman en serio esos datos, utilice los res*_-;u'+,
de un modelo de estimación del software. Esto puede ser es:..:.i,!r!*
mente efectivo porque permite a los implicados ajustar los :.:-:re-
lE.*
Capítulo 37: Gestión TheorY-W 609
por ello.
sus condiciones de éxito. Luego controle ese riesgojunto con los re:
riesgos de su proyecto.
I
t-
612 Desarrollo y gestión de proyectos informáticos
vrrq condición
Una vvr¡vrervrr uE pérdida lrega
de pcrr.¡rua inevitable. La premisa
llega a ser rnevrtabrg. premi d; ,L
gestión de proyectos Theory-w rr es
wr que
vuv convertir
lurrvsltll ad todo gl Inunoo en ganac,
LUuu el -u.rdo gana( 't-
es una condición suficiente y necesaria para
el éxito de un proyecto. si ,i-_
la cerfeza de que el proyecto va a fallar, párelo tan rápido
,.u posib,-:
"o*o
37.3. Efectos secundarios de la gestión Theory-w
Dependiendo de las condiciones de éxito de ros impricados,
Theon,-\\
q""-d" proporcionar grandes ventajas de mayor alcance qu" iu eficie::,1
de la planificación. Puede proporcionar mejoras en la faciridad
de *¡:
mantenimiento, satisfacción del cliente y moral del equipo.
Theory-W también proporciona unas bases excelenles para adapi" , ,
Bibliografía adicional
Boehm, Barry, y Rony Ross: <Theory-W Software Project Managi?d:
Principles and Examples>>, IEEE Transactions on Software Ens:
ring, julio 1989. Este artículo trata sobre Theory-W. Va acompri
de conclusiones sobre principios de negociación adecuados y la ¡
logía de las relaciones con el cliente. Contiene un ejemplo ercai
que describe un proyecto software típico y analiza cómo se le p;
aplicar Theory-W.
l*- .-
38
Prototi pos desechables
Con los prototipos desechables, se desarrolla código para explorar fac- #ffiTffi
tores críticos para el éxito del sistema, y posteriormente se desecha ffi*hffi
este código. La implementación de los prototipos usa lenguajes de pro- ffi
gramación y/o métodos de desarrollo más rápidos que el lenguaje y
ffi
los métodos definitivos. La interfaz de usuario es generalmente el ele- ffiHWffitrffi
mento más prototipado habitualmente de un sistema, pero hay otras ffi"Yffi
partes de algunos sistemas que también pueden beneficiarse del proto-
ffi
tipado. Usado como herramienta auxiliar de la especificación de requeri- É#"*51i&C!üt!üSl**i*fi g
mientos, el prototipado desechable puede acelerar los proyectos basa-
dos en modelos de ciclo de vida tradicionales, como los proyectos DoD. WEffi
.*ffif"ffiÍgf{*
Puede iniciarse a nivel de directiva o a nivel técnico.
Eficacia
Reducción potencial de la planificación nominal: Media
Mejora en la visibilidad del progreso: Ninguna
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Excelente
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
o Mantener un prototipo desechable.
. Uso ineficiente deltiempo de prototipado.
. Expectativas poco realistas de planificación y presupuesto.
615
616 Desarrollo y gestión de proyectos informáticos
que permiten un desarrollo más rápido del ofrecido por ios i;:;;;r ll
técnicas definitivos de la implementación. Aquí tenemos algunos
=
¡nterfaz de usuario..
o una biblioteca de gráficos.
Organización de bases de datos. Prototipe usando un leng;. ; ;s
diseño de bases de datos, un 4GL o una herramienta CASE
Rendimiento de bases de datos. Prototipe usando un 1en-s-'_.: is
diseño de bases de datos, un 4GL o una herramienta CASE
Capítulo 38: Prototipos desechables 617
Reducir los riesgos del proyecto (puesto que las áreas con riesgi
exploran pronto).
Mejorar la facilidad de mantenimiento.
Capítulo #: Prototirys desechables 619
Bibliografía adicional
Para más información sobre el prototipado, consulte e1 Capítulo 21.
tipado evolutivo>.
+-=-rE
39
Desarrollo en ventanas
temporales
Eficacia
Reducción potencial de la planificación nominal: Excelente
Mejora en la visibilidad del progreso: Ninguna
lfecfo-sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Excelente
Riesgos principales
. lntentar aplicar ventanas temporales a productos donde no resulta
adecuado.
. Sacrificar la calidad en lugar de las prestaciones.
621
622 Desarrallo y gestión de proyectos informáticos
Resulta curioso ver la cantidad de cosas que puede hacer el día a:-:'¡
l'
salir de vacaciones. Puede recoger la ropa de la tintoreúa, pagar li; " *-*
recoger el correo y el periódico, comprar ropa nueva para el via-ie '
:-- --
el equipaje, comprar carretes de fotos y dejarles la llave a 1os re' :
tguui O" impresionante resulta ver todas las cosas que no hace a:-'=' -,
salir. Parece que no necesitaría pasar tanto tiempo en la ducha esa ::-'*'
na, o leer el periódico con tanta tranquilidad por la noche. Podri.
.=--:
muchas otras cosas que deseaba hacer ese día. Pero algunas de estas
:- "
ridades diarias caen repentinamente.
El desarrollo ,rantunu, temporales es un medio para trasladar ¡ - -
"n : ::
mo sentido de urgencia que acompaña a la preparación de unas vacac' -
prepara para un trabajo duro! C 'r;
¡exceptuando que generalmente se
,. rigu. e1 método de desarrollo en ventanas temporales, se especr-':- -
cantidad máxima de tiempo que va a dedicar a la construcción de -:- ¡ -
el desarrollo rápido.
-
duránte meses o incluso años. Muchos proyectos pasan una cantida¡ -,.
bida de tiempo en agujeros negros que no hacen avanzar el proyect,;'. :,:'
consumen grandes cantidades de recursos. Primero construye ufls l;--L:
ña versión, y 1a construye rápidamente para pasar a la versión 2 E: :::
de construir una primera versión rica en prestaciones, a menudo:.:-- l.;
más eficaz tener una versión básica funcionando, aprender de l: - :,
.
eRRon clÁstco
riencia, y construir una segunda versión sobre la primera'
ffi
DATOS REALES
Controla el cambio de prestaciones. El cambio de prestaciones es
generalmente una función del tiempo, y se lleva alrededor del 1 por 100
del esfuerzo en muchos proyectos (Jones, 1994). El desarrollo en ven-
tanas temporales le ayuda a controlar el cambio de prestaciones en dos
sentidos. En primer lugar, acorta e1 ciclo de desarrollo, reduciendo el tiempo
de1 que dispone e1 personal para pensar en nuevas prestaciones. En se-
gundo lugar, algunos cambios de prestaciones aparecidos en proyectos
largos se deben a 1os cambios en las condiciones del mercado o en el
entorno de funcionamiento en el que se va a implantar el sistema infor-
mático. Al recortar el tiempo de desarrollo, se reduce el tiempo durante
el que puede cambiar este entorno de mercado o de funcionamiento, y por
tanto se evita la necesidad de los cambios correspondientes en su software.
-.*-r
624 Desarrollo y gestión de proyectos informáticos
prototipado consulte el ye una fuerte implicación del usuario final, y revisiones constel:::: l@l
Capítulo 21,
Prototipado sistema en desarrollo.
Las ventanas temporales suelen abarcar entre 60 y 120 días' C - nt*
"
evolutivo".
ríodos más cortos generalmente no se pueden desarrollar siStemas s'=rlí*
cativos. Con períodos más largos, no Se crea la sensación de u:'=lr;¿u
Propuesta
Necesidad de una
mejora del sistema
a gran escala
lmplantar sistema
Las personas que er.aiúan ei sister:: -:-:.: tt:=:,"< :.a: -r:t *st-upo que
incluye el promotor ejecutiro. uflü Lr
=1i _-i:- := : .,:.:. i t-ilrisen-
tante de mantenimiento o control rie ca-:-l :- r:p-i:::: j:--,t '" e, personal
de auditoría también pueden eSt3r r':-:-,;¿.i.-,i :: : :-L:- ::',-,-
lndependientemente del resu-t.i¡- :.:: -- --.-::- - ,-:=c' ;lazr-r del
desarrollo en ventanas temporaler:¡.---;:--::: J-=:- s.::-:-:e ei pe-
ríodo de tiempo. La fecha i-lnal d¿ -. --::--::---=r;::- --.- -: .t:l3.rbú/¡ú
comprometida. Es un pla:o lín:::¿. i- ;: ':.- -- :---:- --: ;:- -.3ai3nas
temporales tiene que tener ciaro üi; -u- lri::¡--.: :f::-'-'j:
"- -l;:¿. i.el
período será lo que se ponga ¿n -*:;:-:-1-'-::; : :;:.-.i,: -.: .¡..r{J-
nización ha excedido sus fecha-. -:-::¡ :: ;=:--¿:¿-i ::::.-:"-;s iii rtrtr&S
ocasiones, los desarrolladores lrr] rü3irir- i: r:.: -.
método perderá gran parte de s:: ...-¡:
=;-. -::::r:e. i'el
Its=--..-.
Capítulo 39: Desarrollo en ventanas temporales 627
No use los consejos de Martin al pie de -:' -=z s-- tc--: tinelrr la
interacción con su entorno de los tema-. des.'r:;r ;- C.=::*,¡ -,- ,.\fo-
=
tivación>.
parte explícita del método, pero tras los primeros años iniciales ¿- lm*
cionamiento, DuPont no ha rechazado ningún sistema desarrollac,: : ¡m
ventanas temporales. Scott Shultz, creador de la metodología en Du-::mr*
dice que <todas las aplicaciones fueron terminadas en menos tieni:.: ry
que se habría necesitado sólo para escribir las especificaciones ;. -mui
aplicación en Cobol o Fortran> (Shultz en Martin, 1991).
Bibliografía adicional
Martin, James: Rapid Application Developmenl. New york: Macmi--,-
Publishing company, 1991. El capítulo 1r trata específicament; .
desarrollo en ventanas temporales. El resto del ribro eiplica el conre::::
RAD en el que Martin sugiere el uso de ventanas temporales.
40
Grupo de herramientas
Eficacia
ffi
Reducción potencial de la planificación nominal: Buena
Mejora en la visibilidad del progreso: Ninguna
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Buena
Posibilidad de éxito a largo plazo: Muy buena
Riesgos principales
. Exceso de control burocrático sobre la información y la implantación
de nuevas herramientas.
Para más información sobre los grupa-i ,ie h¿r.¿mientas. consuite ,.Gru-
po de herramientasD, en la Secció¡¡ J-i.-1.
631
41
Lista de los diez
riesgos principales
633
42
Prototipado
de la interf az de usuario
Eficacia
Fleducción potencial de la planificación nominal: Buena
Mejora en la visibilidad del progreso: Media
Efecto sobre el riesgo de la planificación: Disminuye el riesgo
Posibilidad de éxito inicial: Excelente
Posibilidad de éxito a largo plazo: Excelente
Riesgos princiPales
. Pulido del prototiPo.
. Riesgos del prototipado evolutivo o de los prototipos desechables,
dependiendo de si el prototipo de interfaz de usuario es utilizado
como base o desechado.
635
636 Desarrollo y gestión de proyectos informáticos
REFERENCIA Sistemas más pequeños. Uno de los efectos inesperados del p:-: , r. "
CRUZADA
pado de latntetfaz de usuario es que tiende al desarrollo de sistem:¡::;*
Esta ventaja puede
verse restring¡da por el pequeños. Las prestaciones que ios desarrolladores piensan que J:-:-r:
riesgo del cambio de los usuarios no son siempre las mismas que desean los usuarios. t:, .':
prestaciones. Para
más detalles, consulte siones, los usuarios insistirán en tener una prestación que parece :-:
la Sección 14.2, sobre el papel, pero no trabaja bien en el sistema en funcionamie:::-
" Proyecto avanzado: prototipado de la interfaz de usuario puede revelar estas prestacio:-. ::T
control de cambios de
las prestaciones". fases iniciales del proyecto, facilitando el recorte del conjunto de::..;-
ciones y la reducción del tiempo de desarrollo.
h¡.- €
Capítulo 42: prototipaoa c. . -:r-.1 :e u,suario 697
Desechar o evoluc¡onar
Los prototipos evolutivos y desechables van cambiando en res:
cambios del conjunto de prestaciones o del diseño de la interfaz de
Generalmente deseará que el prototipo sea flexible, de forma q;= :
refinarlo en respuesta a la realimentación del usuario. IJna vez;_.
explorado la funcionalidad del sistema con los usuarios, el prototi:: :
servir como una especificación operativa de los requerimientos :r-r
aspectos visibles del programa.
En algún punto, comenzará a construir el sistema real, y en es:: :
desechará el prototipo de interfaz de usuario y comenzará a conr:iLun
sistema real, o bien irá haciendo evolucionar el prototipo de in¡e:tl;
usuano para que se convierla en código definitivo. La primera de;.; L
Decorado de Hollywood
otra clave para tener éxito es recordar que se está prototipando, no desa-
rrollando el sistema real. Existe la posibilidad de que todo el trabajo de
prototipado sea desechado si no les gusta a sus usuarios. Hasta que esté
seguro de la parte del sistema que será implementada o no, intente con-
centrar el 100 por 100 de su esfuerzo en las partes visibles del sistema.
No gaste tiempo en partes que el usuario no puede ver. Trate el prototipo
como el decorado de una película de Hollywood: parece real desde cier-
tos ángulos, pero fuera de elios no es real.
Cuanto más cartón piedra empiee, mejor. Si el prototipo tiene que
mostrar gráficos en color, no implemente ei soporte para gráficos en co-
1or en el código, aunque sea relati-,'amente fácir de hacer. En lugar de ello,
intente buscar una forma más fácil de presentar gráficos .tr .olo, predefi-
nidos. cree los
-eráficos usando un programa de dibujo comercial, y car-
gue cada gráñco predefinido en el momento adecuado. El prototipo debe
ofrecer a los usuarios finales el aspecto de programa definitivo. No tiene
por qué funcionar. Si funciona, es probable que haya empleado n:is tiempo
del necesario. Los cá1culos no tienen que carcurarse: muestre simptremente
los mismos resultados cadavez, o conmute entre dos conjuntos de resul-
tados. Los cambios de formato no tienen por qué reformatear nada, cam-
bie simplemenre un r.oicado de pantalla adecuado por otro. El botón de
imprimir no tiene que realizar la impresión; copie simplemente un archi-
vo de impresión preexistente a la impresora. La conversión de datos de la
antigua versión del producto no tiene por qué convertir los datos; active
simplemente el cursor de espera y muestre la sarida predefinida. Haga
que su grupo piense en formas creativas de ofrecer el aspecto deseado de
la aplicación mientras escribe la menor cantidad de código posible.
640 Desarrollo y gestión de proyectos informáticos
una pura fachada, que no estaba pasando nada deeás del escenario y que
los gráficos necesitarían más tiempo del que estaban tardando en ese mo-
mento.
Si realiza un buen trabajo prototipando el aspecto fi¡al de su produc-
to, es posible que los usuarios se sientan abrumados por una demostración
del software en vivo, estarán tan impresionados qtr no pensarán sobre si
el prototipo incluye toda la funcionalidad deseada- Si es¡i rrsando el pro-
totipo para educir los requerimientos del usuario" asegtrese de que los
usuarios estudian con suficiente detalle el prototipo para criticrto- Erpli-
que algunos de los compromisos de diseño que ha n€cesitado tomar. )-_
asegúrese de que comprenden estos sacrificios y esfrán de rrsdo con
ellos. Desarrolle una lista de comprobación de forma qrc peda Etter tma
entrevista estructurada con 1os usuarios que utilizan el pomripo- Ass-sti-
rese de que observan todo 1o que queremos que obserr-en-
IJnavez haya obtenido una realimentación significarir: & lm usnrftx-
haga evolucionar suficientemente el prototipo para cmfrrmrF he m'
prendido lo que le han dicho. Una de las formas rnáq efecrirx & rrrma
que se han recibido y comprendido sus comentarioscmbccr nr¡+rra{es
un prototipo actualizado con la realimentación recibide Afuis & cmtri-
buir a las buenas relaciones con 1os usuarios, esto ayuda atboefu*r
problema de mala comunicación; le da la opornrnid¡¡l el usrb & &cfu:
<No, esto no es lo que yo quiero decir.>>
El producto terminado
La creación de un decorado de película es una gran es¿tcgia dc fototi-
pado, pero un producto no puede quedarse siempre en r¡m k¡fu- En
algún punto, tendrá que decidir cómo pasar del prototipo d profun final-
En ese momento dispondrá de tres opciones:
ii
-
Capítulo 42: Prototipado de Ia interfaz de usuario
ffi
DATOS REALES
El prototipado de la interfaz de usuario es un remedio ei-icaz tiente
cambio de prestaciones cuando se usa con otros métodos. Har-un estudio
que ha encontrado que la combinación del prototipado 1 JAD (Capíru-
lo 24) puede mantener el cambio de requerimientos por debajo de un
5 por i00. Los proyectos experimentan habitualmente niveles cercanos
al
-
644 Desarrollo y gestión de proyectos informáticos
Bibliografía adicional
Para más información sobre el prototipado, consulte el capítulo i-
totipado evolutivo>.
p
'ti
t;
ffi
Ifi
#
ffi
t_
m
43
Horas extras voluntarias
Riesgos principales
¡ Penalizaciones sobre la planificación resultantes de una excesiva
presión en la planificación y un exceso de horas extras.
. Reducción de la capacidad de responder a una necesidad de emer-
gencia de más horas de trabajo.
645
w
646 Desarrollo.y gestión de proyectos informáticos
Nivel medio
de motivación Zona óptima
MUY alta
Alta
Motivación
deldesarrollador Media
Baja
Muy baja
Presión de la Planificacion
Figura 43.1 .
Zona óptima de la presión de planificación. con un ligero
inóremento se alcanza la mayor motivación posible' Fuente: Adaptafu &
Applied Software Measuremenls (Jones, 1991).
<Evidentemente la motivación
disminuye al incrementar lai
tras. pero ios desarroliadores
trabajará" ,íá. ,r"'.".,';';,il1.
extra compensará de sobra la pérdida ::,
de motivación. El rendirn
seguirá siendo mayor.> -tl
Motivación
Muy alto
Muy alta
Rendlmiento
total
Alto
Medio
-Y .,üi
:.|
l
]
AIta
Motivae,¡,r
Media del desar.o¡@¡¡
Bajo
Baja
Muy bajo
Muy baja
IF---
650 Desarrollo y gestión de proyectos informáticos
Exija una cant¡dad rearista de horas extras. Hay diversaS rri= r,*
nes sobre el tiempo que los desarrolladores pueden
dedióar al traba-ii .-. ms
Boddie, autor de Crunch Mocle, dice que unavezque el proyecto
e>-:¡ tF
marcha' cabe esperar que los miembros del equipo trabajen
hasts r- lirr
ras a la semana, e incluso 100 horas en algunas a.-uná,
determi:,¡,¡ur
(Boddie, 1981). Por otra parte, Steve Maguire, veterano en Micr,:s:':
apunta que la gente que trabaja tantas horas tiende a incluir
sus :::iidri
personales en la jornada laboral. Tardan más tiempo
en comer, hacei . v
cicio, pasean , pagafi facturas, leen revistas informáticas: en otras pai;:_*,
hacen muchas cosas en er trabajo que normalmente harían
,u ,--**'
libre si trabajaran sólo 8 horas al día. Maguire concluye que"n ras pers-:ru:
que pasan 12 horas diarias en la oficina raramente trabajan
realmeni; :ir¡r
de 8 horas, aunque reconoce que una persona motivada por
sí mism. :-1'".
bajaú más ocasionalmente (Maguire, rgg4). otros expertos han coi. ,.,*
do que no pueden esperar tener un promedio superior a g horas
dr;-u,rr,,
(Metzger, 1981; Mills en Metzger, 19g1; DeMaróo y Lister,
19g7: B--¡:r'
y DeMarco, 1994).
Desconozco el efecto de ra presión de pranificación sobre la
can:- r*r
de tiempo empleado por las personas en su trabajo. He visto
a menuc: rr
que describe Maguire. He visto a personas que trabajan
durante 50
a la semana durante meses. ocasionalmente he visto personas
h.r
que ti:r,.h-
jaban tanto como describe Boddie, aunque
sólo por una o dos **u.-.
Si está pidiendo a los desarrolladores que trabajen horas extras , r*
luntarias, observe el tiempo que trabajan en ese momento.
Si las c¡- *
das comienzan a alargarse y la gente iomienza aregar tarde a ras ::;*
niones y anda perdida por ahí, ha pedido más horal extras
BIBLIOGRAFIA de las ;r,:
los desarrolladores están dispuestos a trabajar. Retroceda.
ADICIONAL Está il,;;
Para más información do la motivación de los desarrolladores fuera de la zona
sobre el uso de esle óptima c= ;
tipo de realimentaclón
Figura 43.1.
para geslionar un una alternativa simpre para volver atrás es permitir a ros
proyecto software, desarrc.-r-,
dores cortar en las 40 horas de trabajo, insistiendlo
consulte Ouallfy en que t.uuu¡."
cada una de esas horas. Esta posición es suficiente-.nt"
toi,i
Software Management,
uu.nál-.u.o-,-u-
Vol. 1: Systems ble en un proyecto de.de.sarrollo rápido, y creo que a menudo
Thinking (Weinberg, proc_:,1
1 992), espec¡almente
más horas reales de trabajo que pedii horas extras.
el Capítulo 6,
"Feedback Effects". Tenga cuidado con erexceso de horas extras, independientemen*
del mo_tivo. El mayor problema asociado con ias horas
extras : ¡¡sds¡¿: r
es con diferencia su tendencia a llegar a un exceso
de horas extras. Este
blema es sistemático en cualquiei tipo de horas extras,
::-*
ya sean volu:::-
rras u obligatorias. sin importar si ra presión para
trabajar muchas h¡:',
3": :_ : -lj - j-=s -,:-zs ,,ctiJntar¡as 651
Tras meses de un extras es intema o externa. ii --\--J:. ::- : r:i
estrés en aumento, el - i ,.r-:: , ., _.r._-¡sir.a presión
de planificación que le acompaia if iü*--1 :
entLtsiasmo inicial se - - : :,i_-::,.-i ¡:oblemas de
ha convertido en planificación;
agotamíento y por
último en amargo . Aumento del número de defectos.
cinísmo. Al final, las
personas
o Aumento de las posibilidades de asumit -3j-:-! :__,
desarrollan una o Reducción de la creatividad.
actitltd de disgusto . Incremento del desgaste.
frente a la entrega . Incremento de la movilidad de personai.
en cLrerpo y alma a
un prolecto. r Dispontbilidad de menos tiempo para la formación i
Ruth Wiener Ia organización.
o Reducción de la productividad.
10,0
400 M
9,0
Velocidad
lmetros oor
'segund'o) 8'0 l:800 M
'it ooau
I An;il^
7.0
Bibliografía adicional
DeMarco, Tom, y Timothy Lister: Peopleware: Productive Projects an;
Teams. New York: Dorset House, 1987. El Capítulo 3 describe direc-
tamente problemas relacionados con el exceso de horas extras, y grar
- parte del resto del libro trata el tema desde diferentes ángulos.
Maguire, Steve: Debugging the Development Process. Redmond, Wash-
ington: Microsoft Press, 1994. El Capítulo 8 explora la debilidad de
los argumentos dados más a menudo para exigir grandes cantidade=
de horas extras.
Weinberg, Gerald M.: Quality Software Development, Volume l: Systeni:
Thinking. New York: Dorset House, 1992. Los Capítulos 16y 17 descn-
ben lo que les sucede a los desarrolladores irresponsables cuando esrán
en situaciones de estrés, y qué hacer para resolverlas.
Jones, Capers: Assessment and Control of Sofnvare Risks. Englewood
Cliffs, New Jersey: Yourdon Press, 1994. El Capítulo 13 describe al-
gunos de los problemas asociados con e1 exceso de horas extras.
B¡bliografía
rf tk Joint
Albrecht, Allan J. (1979): <Measuring Application Developmem rrofurry'}-F'lcañg'
S H A R E / G U I D E / I B M Ap p I i c ati o i nii e t o p m ent S¡'mpo sí¡a- ocrú¡e F{1
of Co&- ri lbeüper Effort
Albrecht, A., y J. Gaffney tiSa:)' <Software Functión. Source Lines
Prediction: A Software Science Yalidation>>,IEEE Transactins
orS@u''rErylEq¡' SE-9 t6t:
639-648.
Andriole, Stephen (1992): Rapid Application Prototqlping- Mass': aD Lúrrrylo-teErs- mruo:
Andriole, Stephen tf SSí), nÉust, éh.ap Requirements: Proto't1pe
s Elscl¡ @ SAñP'E-
85-87.
August, Judy (1991): Joint Application Design' Englewood Cliffs-
\J-: Yc¡'fu D¡em
Detcfop F:mgm;- ü4irre
Augustine, Norman R. (1979j:'(Augustine's Laws alnd Major S¡-stem
Systems Management Review: 50-76' Citado en Boehm'
1981'
gabich,w.(l9s6):SoftwareConfigurationManagement.Reading;}-l¡ss.:.{@.
Bach,James (1995): <Enough atát
pro."ts: What We Need -{¡e llero.*r,- EEf Srü*ry¿ rtrrz€r:
96-98.
Baker, F. Terry (1972): <chief Programmer Team Management of
Proüm ltqrugr' IBlls-'s-
tems Jotrnal, vol' 11, núm. l: 56-13.
Baker, F. Terry, y Hartan o. Mills (1973): <Chief Programmer Teamsr.
IMh. lol 19. rLn l]
(diciembre): 58-61.
Basili, Victor R., y Albert J. Turner (1975): <Iterative Enban¡m -r fM Tcrliqr for
Software Development>>, IEEE Transactions on So-ffii'are frgú*.gnrg Sl¡-t- rfu" 4lÓcinnbrel:
390-396.
\-iúü Strrc,Eügine€
Basili, Victor R., y David M. Weiss (19Sa): <A Methodolog¡- fq- Coüctt! -3-ji.8'
, ring Data>, IEEE Transactions on software Engineering sE-10- 6 rmrr*r
--
Basili,iictor R.; Richard W. Selby y David H. Huichens ( 198ór: rEryrrrG¡¡n i S¿*rre Fng;r-
- t¡úc'r T-a--4i-
neering>, IEEE Transactions in Software Engineering SE-l1
Basili, Victor R., y Frank McGarry (1995): <Thi Experience Fectq- Ear
-- n hlú d Rn Ooe''
Tutorial M I , I 7th International Conference on Softn'are Engi&, (.rd¡ tFcfiEr' úlÚil :1'
Baumert, John (1995): (SEPG Spotliglts Maturing Softs-are t¡¡nfvr- trE¡. lúcz' $cFtiÉúbfE:
1 03-104.
Bayer, Sam, y Jim Highsmith <RADical Softr¡-are Dnelqrrcrr- -tb¡Ú &ogmar' ¡u-
nio: 35-42.
Beardsley, Wayne (1995): Comunicación privada: l7 de mrieÑa
Bentley,ion (iSSO): Programming Pearls. Reading' ltas: Afurcsfry
Bentley, Jon (1988): uoí" rrog,;mming Pearls: Conflrs'],r,ts q t C*- fl.@- l{¡sr: -{ddiscn-
Wesley.
Bersoff, Eáward H., y Alan M. Davis (1991): (Impasts ofliftcyct lÚo*
m Softr.a¡e cmfigE-&ron
Management>>,CommunicationsoftheAC\t-rol.}{.nh.tll8u!¡ot:lo4-ltE.
655
I
I
¿tt t_t¿, á d
for (
Bibtiografía 657
carnegie Mellon University/Software Engineering Institute (1995):
The capability Maturíty Model;
Guidelinesfor Improving the softw,are process. Reading, Mass.:Addison-wesrey.
^
carroll, Paut B' (1990): <creating Nerv Software was Agónizing Task
for Mitch iaporFirm>>, The
Wall Street Journal, l1 de mayo: A1. A5.
Chow, Tsun S', ed' (1985): Tutorial; Softv'are
Quality Assurance: A practical Approach. silverspring,
Md.: IEEE Computer Society press.
Coad, Peter, y Edward Yourdon (1991): object-oriented Design.Englewood
cliffs, N.J.: yourdon press.
Connell, John, y Linda Shafer (1995): objecr-oriented Rapid"Protot"yping.Englewood
Cliffs, N.J.: your-
don Press.
constantine, Larry L. (1990b): <objects. Functions, and Program Extensibility
>>, computer Language,
enero: 34-56.
Constantine, Larry L. (1995a): Constanrine on Peopleware. Englewood
Cliffs, N.J.: yourdon press.
constantine, Larry (1995b): <under pressure>. Softw'are Develápment,
octubre: lll_112.
Constantine, Larry (1996): <Re: A¡chitecnne>r. Softu,are Developmenl,
enero: g7_gg.
Conte, S' D'; H' E. Dunsmore y V. Y. Shen ( 1986): Software Eigineering
Metrics and Models. Menlo
Park, Calif. : Benjamin/Cummings.
Costello, Scott H. (1984): <Softw-are Engineering Under Deadline pressure>>, -tu
ACM Sigsoft SoJtware 'o¡
Engíneeríng Notes, 9..5 octubre: l_í-19.
Curtis, Bill (198 1): <Substantiating Programmer \¡ariability>>, Proceedings -9r
of the IEEE, vol. 69, núm. 7
fiulio): 84ó. -{If
curtis, Bill (1990): <Managin-e rhe Real Leverage in soflware productivity of3
and euality> , American
Programmer, vol. 3, núms. 7-8 tjutio_agosto): 4_14. -lu
Curtis, Bill (1994): <A Mafure \"ier-of the C\L\f)>. American programmer,
septiembre: l9-2g.
Curtis, Bilr, et a/. (1986): <Softxare Pwcholog,w: The Need for anlnterdisciplinary program>, procee-
ea!
díngs of the IEEE, vol.74. núm- g t2gosroi: 1092_l106.
Cusumano, Michael, y fuchard Selb¡- t1995 lr sor
-l,ficrosoft Secrets: How the World,s Most powerJül u3
Software Companl' Creates Technologr- Shapes JIarkets. and Manages people. york: New Free (ol
Press.
Davis,AlanM.(1994):<Rew-ardsofTrkinsrhepaúLessrj¡a:-eleú>.IEEESofnare,julio: SOI
100_101, 103.
Dedene, Guido, y Jean-pierre De Vreeseitgs¡,, *Realities of Off_Shore Reengineering>, IEEE Soft_ ep
ware, enero'.35-45. U?I
DeGrace, Peter, y Leslie stahl (1990): ll-icked Problems. Righreous
Solutions. Englewood cliffs, N.J.:
Yourdon Press.
DeMarco, Tom (I 979): Structured Analysis and Slstens
Wciticarion. Tools and Technique-s. Englewood -ed
Clifls, N.J.: Prentice Hall.
-oI
DeMarco, Tom (1982): Controlling softv'are projecrs- \-eq-york: yourdon press.
DeMarco, Tom, y Timothy Lister (1985): <<Programmer Performance 'ug
and the Effects of the Workplace>, olq
Proceedings of the 8th International Conference on Iv2ftx'are
Engineering. washington, D.C.: IEEE
Computer Society press, 26g-272. soa
ottu:?:' Tom, y Timoty Lister (1987)'. Peopleo*are: Producrire projects and Teams. eu':
New york: Dor-
set House. sol
DeMarco, Tom, y Timothy Lister (1989): <Software Development:
State of the Art vs. State of the
Practice>, Proceedings ofthe Itth International Confereice
on Sofware Engineering; 271-275.
Dreger, Brian (1989): Function point Analysis. Englewood -F
Clitrs- N.J_ prentice Hall.
Dunn, Robert H. (1984): Software Defect Removal. New york:
McGraw-Hill. ue
Dyer, W. G. (1987): Teambuilding. Reading, Mass.: Addison_Wesley.
Emery, Fred, y Merrelyn Emery (1975): Paiticipative Design-work
ott
and community. Canbena:Cenrer -ar
for C ontinuing E ducati on, Australian Nati ónal Univeri=iry,.
ou
a6 I
'a-n
sil!
€FE Fg
4,,-i-
-íd-=
t ali i"e
Bibliografía 659
3 c, xgrafia
"!:::,3::3- Lurz -{. (1990): <Software Size Estimation of Object-Oriented Systems>, IEEE Trans¿;-
":r..: :r. So.Ínrare Engineeríng, mayo.
i:{- Carl E.. y Frank M. J. LaFasto (19g9): Teamwork: What Must Go Right; 14/hat Can Go
\:abury Park, Calif.: Sage.
¡,jer:r. -\lbert L., y Jayesh prasad (1992): <Nine Management Guidelines for Better
Cost Estimatins
Communications o;f the ACM, febrero: 5l_59.
Lr.ons. vichael L. (1985): <The Dp psyche>, Datamatir¡n, r5 de
agosto: r03-r09.
\faguire, Steve (1993): wríting sotid code. Redmond, wash.: Miciosoft press.
\laguire, Steve (1994): Debugging the Development Process. Redmond, Wash.:
Microsoft press.
\'larciniak, John J., y Donald J. Reifer (1990): Software Acquísition Managemenr. york:
New Joh:
Wiley & Sons.
lvlarcotty, Michael (1991): software Implententation. New york: prentice
Hall.
'\f artin, James ( i 99
I ) : Rapid Apprication Deveropment. New york:
Macmilan.
\fcCarthy, Jim (1995a): Dynamics of Software Development Redmond, Wash.:
Microsoft press.
McCarthy, Jim (1995b): <Managing Software Milestones at Microsoftr>, American programmer,
febre-
ro: 28-31.
McCarthy, Jim (1995c): <21 Rules of Thumb for Delivering
Quality Software on Time> (disponible er
cinta de audio o vídeo). Copia de una conferencia(.717) zis-oiso (Sesión
04, Conf. #69gD).
Mcconnell, Steve (1993): code comprere. Redmond, wash.: Microsoft press. :.:-.
McCue, Gerald M. ( 1978): <IBM's Santa Teresa Laboratory-Architectural
Design for program Der elt-- -;::- ;
pment), IBM Systems Journal, vol. 17, núm. 1: 4_25.
McGarry, Frank; Sharon waligora y Tim McDermott (1989): <E,xperiences in o:tqz
the Software Engineenns
Laboratory (SEL) Applying Software Measurement>>, Proceidings of the
Fourteenth Anluat So¡¡-
ware Engineering workshop, November 29. Greenbelt, Md.: cÑdard
ment SEL-89-007.
Space Flight c"rrt.., Á.r- p:i r
Metzger' Philip W. (1981): Managing a Programming Project.2d ed. Englewood SOIOU
Cliffs, N.J.: prentrc¿
Hall. ua ¡JC
Millington, Don, y Jennifer stapleton (1995): <Developing a RAD Standar d>>,IEEE
software, enero: 54-5 j (<o\tr
Mills, Harlan D. (1983): software productívíty. Bosion, Mass.: Little, Brown. sounS
71-g1.
Myers, Gienford J. (1978): <A Controlled Experiment in Program testing
and Code walkthrougs,Ins- 3P au
pections>, Communications of the ACM, vol.21, núm. 9:-760-:'6g.
Myers, Glenford J. (1979): The Art of software Testing. New york: u¿i{ s(
John wiley & sons.
Myers, ware ( I 992): <Good software Practices ray oif--or Do They?>,
IEEE software, marzo: 96-9- .
Naisbitt, John (1982): Megatrentls. New york: Warner Books.
-r*aisbitt, John, y Patricia Aburdene (1985): Reinventing the Corporatio¡r. New york: -ed sot
warner Books.
NASA (1990); Manager's Handbookfor SoJtware Developmeni, revisión -OISJE.\
l. Documenro número SEL- .UOIJEl
84-101. Greenbelt, Md.: Goddard Space Flight Center, NASA.
NASA (1994): software Measurement Guidebook. Documento número orque:
sEL-94-002. Greenbelt, Iv1d..
Goddard Space Flight Cenrer, NASA soJOI Ji
o'Brien, Larry (1995): <The Ten commandments of Tool Selection>, ¿u-l
soJtware Development. noviem- s(
bre:38-43.
soganb
o'Grady, Frank (1990): Rude Awakening>, American programmer,.¡ulio/agosto : 44-49.
-<A
olsen' Neil C' (1995): <Survival of the Fasteit: Improving seriice vetocty>, t"tcz so¡t.ore, septiern-
bre:28-38.
Page-Jones' \feilir (1988): The Practícal Guícle to Structurerl -Fc olei
systems Design. Englewood Cliffs. N.J..
Yourdon Press. ua sorql
Parnas, DaYid L' r 1912 ): <on the criteria to Be used in o31e op
Decomposing Systerns into Modules >>, contnr,-
níccttiors o,r'ri¡e -iC-rÍ. r.o1. 5, núm. r2 (diciembre): r053-1'05g. -aJJO3 u
ou SSUO
¡S OU SC
'3J¿.!!JC
\s$\La
-t,¡s}]
O:-iioG
A I !{E >
=
<i.r
Bibtiograf ía 661
-Parnas,DavidL.(1976):<ontheDesignandDevelopmentofProgramFamilies>,IEEETransactions
*-"on'
So1r*ore EngineerinC SE-?' lm:rzol: :-9Ease of Extensron ancI Contraction> , IEEE Transac-
1
d'esigning Software for
Parnas, David L' (f SlSl:
':::K:;^;V!fli¿:.f::XJ,'i 'ü:ií?;Jii;lii, S,ruc'fure orcomplex Svs'fe'
",n:X".l*"r
matzo" 259-266'
ms>>,
Soft**' Eng-íneerin*'
IEEE l''on'o'"'¡ol'- on 183 (8 de manzo' e22-32'
parsons, H. M. (1e74),:;ffi; róened at
Maturitv Modet' version 1
"";il;i;;,"iri"*r",,.,t' /' Software
paulk, M. c.,
*-e"elt..ringet at' ó;;;:'¿;;;;"i:: "!.ii')"ó"p"tttu'
Institute' cMUisEI e3-llii;it*i"11; G. votta (1eea): <People, organizations' and
^
Standenmayer y
e.rry. ó.*uyn. E't Nuntu A'
Process trrrp.o"t*t"ó '
IEEE Soflwye.', julio" 36-45 '
york: A,rred A
íÍ|,"r,ment Revotu,on New
i1*:klil.,ffTf:;#:,:;:IJiIIiiili);l]|:,T
Inc'' abtt'l" 80'
'iíi"árrl
Revista
,*"TJTil (198s): <Letter to the Editon' York: Warner Books'
peters, Tomas J., y R";;;. w;;;*"r,
,;. ttJtrl'
e (199.4a¡:"llttl:Tt?iJáiSott*ut"
Mtutu"tt"t '93: Report from an Ob-
"l.n.celt'ence'New A
-uJg
Pfleeger, Shari Lawrenc
'.,*::'Jki.',flffi:::'r';:;;Xíi,ff,','."".t# at rcSE> (mavo' en So-
'0;¡l
rown, Practitioner value up 'g¡e:
A practitioner's Approach
id ed \et York: \rcGrai¡' u¿r.l f
."i,g",*;lS*;;lU*; ::";:;i:::::r:
Hill.
the"sEl Scale>' )Ianaging s-r'sren¡
Pressman,RogerS.(1993):AManager,sGuidetoSoftwareEngineering.Ner*'York:\fcGrarr'-Hil1. -ad sc
putnam, Lawrence i. ltol+,, urt. ¡,.orro*iJlJ".lrMovinfup -orsJa
DeveloPment' julio: 1-6' Reliable Softv'are on Time' .UOIJI
(1992 ): Measures for Excellence:
putnam, Lawrence ii- ,'ñ1.. Myers
'::**":;:^,ití';xi,;liTLi;,'Y;#l'"-"iiyy1'^yptiembre:contraportada olqilE
sü¡cri
Prospects>>' IEEE
,Áto*utic Programmi"g' It{vtltt and E_l
Ricn, cnarles, , *r".iiri"ó."rvíárJ irsasf
i
É
o $-sۃrtr Te
f/ -a
ar u)
cd
t ", -.{-
áE v.-s I
n ffiaa
kE, H.- Y/- J- Erikson y E. E. Grant (1968): <Exploratory Experimental Studies Comparing Online
dOffiine Programming Performance> , Communications of the ACM, vol. 11, núm. 1 (.n..ó;, :-t t. €
9
$-c'¡rr, Hmsein, y Scott Hamilton (1995): <Case Studies of Hughes and Raytheon's CMM Efforts>, *
:.
IFFF Computer, enero: 20-21. ¡
Scferr, Allen (1989): <Managing for Breakthroughs in Productivity> , Human Resources Management, I
i
vol.28, núm. 3 (otoño): 403-424.
fr;l'ola.et al. (1994): <Object-Oriented Programming: the Promise and the Reality>, Software practitio-
ner, enero'. 7, 4-7.
Sherman, Roger (1995a): <Balancing Product-Unit Autonomy and Corporate Uniformity>>, IEEE Soft-
ware, eÍero'. 110-111.
Sims, James (1995): <A Blend of Technical and Mediation Skills Sparks Creative Problem-solving>,
IEEE Software, septiembre : 92-95.
smith, P. G., y D. G. Reinertsen (1991): Developing products in Harf the Time. New Van Nos-
trand Reinhold.
Sommerville, Ian (1996): software Engineering,6th ed. Reading, Mass.: Addison-wesley.
Standish Group, The (1994): <Charting the Seas of Information Technology>, Dennis, Mass.: The Stan-
dish Group.
-{rr"3
S¡rmons, Charles (1991): Software Sizing and Estimating: Mk II FPA (Function Point Analysis). Chi- -o3l¡l
chester: John Wiley & Sons.
'9rsr¿
Tesch, Deborah B.; Gary Klein y Marion G. Sobol (1995): <Information System Professionals' Attitu-
des>>, Journal of Systems and Software, enero: 39-47. -ürg i
Thayer, Richard H., ed. (1990): Tutorial: Software Engineering Project Management Los Alamitos, ofeqr
Calif.: IEEE Computer Society Press. -n:3 ¡
Thomsett, Rob (1990): <Effective Project Teams: A Dilemma, A Model, A Solution>, American pro-
grammer, julio-agosto: 25-3 5. eas s
Thomsett, Rob (1993): Third Wave Project Management Englewood Cliffs, N.J.: Yourdon press. sorqu
Thomsett, Rob (1994): <When the Rubber Hits the Road: A Guide to Implementing Self-Managing u3 3lq
Teams>>, American Pro grammer, djciembre: 37 -45. (oND
Thomsett, Rob (1995): <Project Pathology: A Study of Project Failures>, American programmer, julio:
souni
8-16.
Townsend, Robert (1970): up the organization New york: Alfred A. Knopf. eP 31J
Tracz, Will (1995): Confessions of a Used Program Salesman. Reading, Máss.: Addison-Wesley. u?q s(
Udell, John (1994): <Component Software>, Revista Byte, mayo: 45-55.
Valett, J'' y F. E. McGarry (1989): <A Summary of Software Measurement Experiences in the Software
Engineering Laboratory>, Journal of systems and software, 9 (2): r37-14g. -ed sol
Van Genuchten, Michiel (1991): <Why is Software Late? An Empirical Study of Reasons for Delay in -oIs.¡eá
Software Developmentr>,IEEE Transactions on Software Engineering, uoi. 17, núm. 6 'rg!"el
fiunio): 5g2-
590. orqlu¿:
Vosburgh, J ' 8., et al. (1984): <Productivity Factors and Programming Environm ents>>, proceedings
of sosol Ji
the 7th International Conference on Software Engineering, Los Álamitos, Calif.: IEEE Computer
¿un's(
Society: 143-152.
Weinberg, Gerald M. (1971): The Psychology of Computer Programmíng. New york: Van Nostrand souanb
Reinhold.
v/einberg, Gerald (1982): Becoming a Technicar Leader, New york: Dorset House.
weinberg, Gerald M. (1992): Quarity software Management, vorume r: systems Thinking. New -l.rJ of¿i
Dorset House- u3 sorqt
Weinberg, GeraldM- (1993): Quality Software Management, Volume 2: First-Order Measurement.New o8¡e op
York: Dorset House. -3JJOJ U
ou seuo
35 OU sc
'are,tgc
\q\Ñ\IA
-tes31
€!)
"d_ Bibliografía 669
Weinberg, Gerald M. (1994): Qualitl, SofÍware Management, Volume 3; Congruent'Action. New york:
Dorset House.
Weinberg, Gerald M., y Edward L. Schulman (1974): <Goals and Performance in Computer program-
ming>, Human Factors, vol. 16, núm. 1 (febrero): 70-77.
whitaker, Ken (1994): Managing Softv,are Maniacs. New york: John wiley & Sons.
Wiener, Lauren Ruth (1993): Digital I|loes; l{hy Lí¡e Shoulcl Not Depend on Software. Reading. Mass.:
Addison-Wesley.
wirth, Niklaus (1995): <A Plea for Lean Software>, IEEE Computer, febrero:64-6g
Wítness (1985): Paramount Pictures. Producida por Edward S. Feldman y dirigida por Peter \\-eir.
Wood, Jane, y Denise Silver ( 19951: Joint Application Development, 2nd ed. New York: John \\'iler &
Sons.
Yourdon, Edward (1982), ed.: Writings of the Revolution; selected Readings on Softt+,are Engineering.
New York: Yourdon Press.
Yourdon, Edward (1989a): Modern structured Analysls. New york: yourdon press.
Yourdon, Edward (1989b): structured Ll/alk-Throughs, 4th ed. New york: yourdon press.
Yourdon, Edward (1992): Decline & Fall of the American Programmer. Englewood Cliffs. \.J.: \-our-
don Press.
Yourdon, Edward, y Constantine, Larry L. (1979): Structured Design; Fundantenrals o.f-a Distipline o.l
Computer Program and Systems Design. Englewood Cliffs, N.J.: you¡don press.
Yourdon, Edward, ed. (1979): Classics in Software Engineering. Engleu'ood Clilfs. \.J.:\-ourdon Press.
Zachaty, Pascal (1994)'. Showstopper! The BreakneckRace to Creare II'indots J-T and the \-e¡r Gene-
ration at Microsoft. New York: Free Press.
Zahniser, Rick (1995): <Controliing Softu'are Projects u'ith Timeborin_s,,. So/hr'a¡e Detelopnent.marzo.
Zawacki, Robert A. (1993): <Key Issues in Human Resources l\fanasement>t.InJbrmatíon Stsfems J[a-
nagement, invtemo:'7 2-7 5.
Zelkowitz et al. (1984): <Software Engineering Practice in the US and Japan>, IEEE Computer, jumo:
5'7 -66.
ñG é-n 7
872ۃ:
4.._-{-i
ü Érta"v¿
O-?irc¡cú
O=l5ot>
_ :1:;
lndice
F^
Applied Software Measuremenl (Jones)- control de calidad (téase calidad, control -OISJ:
221, 511 de) 'uoI3l
apreciación (reconocimiento) e-iemplo: falta de fundamentos, 60-63 olqur
fallo de los equipos y falta de, 313 gestion. 63-68 soJoi
falta de, como destructor de la moral.
289
seguir las instrucciones sobre, 86-88
técnicas. 68-75
I eull'
sogJr
motivación y gestos de,284-285 Basili- \'ictor R., 17, 19, 84, 390, 505,
Art of Software Testing, Zfre (Myers), 85 511.599
Assessment and Control of Software Risks Baumert. John. 66
(Jones), 1 18, 175, 221, 210, 400, 654 Ba1-er. Sam. 310 & $c{
asumir riesgos, 108 Becoming a Technical Leader (Weinberg), drm I
É
*s
,1r
i
:: :.:. l,le:edith. 306
fundamentos del, 78_g6
: =-:. : C.. 175 bibliografia adicional sobre. g5_g6
-::-:_;-,'. lon, 77, 472
comprobación, g2
-i -:_¡.. ti Edward H., 7 7
3::inan. James M., 467, 471, 472, módulos propensos a errores. g l
474, revisiones técnicas, g2_g4
175,419,479,617,643
Biggerstaff, Ted, 576 tasas de defectos, 7g_g0
bloqueos, solución en negociaciones objetivos del, l9
cambio
conveniente s, 246
Bock, Douglas, 390
s-- diseño paru (véase diseño para
el
Boddie, John, 339, 365,41g.650 cambio)
gestión de un equipo de alto rendimiento
Boehm._Barry W., 16. t7 . 46.
5l . 52. 7 l, y,3tt-312
gg-83, 93, 104, 117, 136, 175,
cambio de personal
196_199, 209, 220,231, 236,
269, 278, configuración de equipos a largo plazo
2_93, 295, 2gg, 361, 453, 49ó,
52í, y, 317
552, 559, 604,613,64g _*1,
planificación demasiado optimista
Boeing,277 y, 236 'l:.-
cambios, análisis de, 364_365
Booch, Grady,76
Brady, Shelia,585, 650 cambios, grupos de control d,e, 366-36g,
Brodman, Judith G., 512 437
c¿ncelación de proyecto s, 344
Brooks, F¡ederick p., Jr., 47,225,241
, Capability Maturity Model, The (Carnesie
329, 336, 342, 376, 37g,396, 400,
409,446,454, 575 Mellon UniversirylSoFtware
e:s E
Brooks, Ruven, 376 ^ Engineering Institute), 34, 67
Card, David, N., 17, g3,269,'572,5i3
so¡o..1
Bugsy (película), 371 u3 3i(
Building Qualiry Sofrware (Glass). Carnegie Mellon University, 34
(o\i))
Burlton, Roger, 63.464
85 Carroll, paul B., 29,370, i2l
souni
cascada, modelo de ciclo de
búsqu¡la V rescate, modelo de equipo, vida, l4g_l52 ap 31J
332_333
modificado, 155_t59
uuq s,
Butler Cox Foundation, 317 con reducción de riesgos, 15g_159
Bylinsky, Gene,224 con subproyectos, 157_15g
modelo sashimi, 156
-ad so
ventajas e inconvenientes. 170
-oIsJ31
caída de rentabilidad, fecha CASE. herramienras. 393, 3g5.396
fija de, 'uotJ€:
126 casos. estímación basada en.
calidad 196
baja Caswell. Deborah L., 516 _ . ^,- -
a
categorías, estimación por, 193
como enemigo de la moral,29l : -.-- :
coxstrucción y prueba diarias y,440
ciclo de vida, planificación (modelos : --:
de
equrlibrio de factores y, 140 ciclo de vida), 20, 145_i55, lAq-iá5,
medidas de líneas de código, 259. Véanse tqmbién modeios
515 específicos
plan i ticac ión ercesivamen"re '1
¡a r 1. -
optimista Y, codificar y corregir (code_and_fix),
1J- i \ ry
L¡¡dLA. IAts'I
e.l)J¡):.-X-O-
índice
efectos secundarios. 5 i-
231 a----
y construcción y prueba diarias, 441
en diferentes entomos' 5!J
clientes
gestión de los nesg.'s 'ie' 585--;86-
entendimiento entre desarrolladores y, -
interaccioneS itlii otros métodos' 5S-
350
pUntOS Ci':;::;¡S SObre' 587
expectatir-as de los, 264-266
infundadas. 133-134, 264, 265 requiit:rienl¡s inciertos' 5 8-1
\iSrr-rrt r. iSl
fricciones entre desarrolladores y, 48
^ -- : , -71,-gg¡-2 írt
a ::
ar
ó:-"
o¿
lndtce
cLrmrpromiso. enfoque basado en. Véctse área de reserva para el código a añafu
codificar a destajo (code-tike-heil), al desarrollo,444
método (método basado en claves para el éxito,449
compromiso) construcción diaria del producto. -l-:-
comunicación construcción y prueba diarias inclu_*:
entre miembros de un equipo, 309 bajo presión, 446
estructura del equipo y,326 entrega del desarrollo por la mañane_
fallo de los equipos y,313 445_446
Confessions of a (Ised program Salesman exigir a los desarrolladores que
(Tracz), 579 realicen la prueba mínima antes ¡:
confianza añadir código al sistema,444
entre miembros del equipo, 308 fallos de construcción, comprobacior-
fallo en los equipos y falta de,314 441-442
confianza, estimación y factores d,e, l9j grupo de desarrollo, configuración de
confianza mutua, equipo de trabajo y, 30g ,¿n,443
configuración del software, gestión de la -n-F
penalización por fallar al construir.
(scM) 444_445
bibliografía adicional sobre, 77 prueba minima diaria del producto,
:--l
la¡.Éti+j:i¡¿.i:;¡i.rii!,*rpri:¡Ltil.,tiiii,:..1:t;:
índice
d*t¡
:a
o
Cr
670 lrúi@
-t:::==t:..,*+i-,1,:=:::.:i:,:::::¡1t-:.:i:!:
=i1:.::i:',:,r::i:t.:i]::1'¡f:i.r-'i;
v t - J !ü
O=aLoCc
d *,'É >
=l
LTAdLA
(6 o
indice 673
Ét)
indice 675
resumen de, 63 I
bases, 653-654 soJol Ja¡
Herzberg, Frederick, 274, 2g7, 2g4
bibliografía adicional, 654 eu¡'sod
Hetzel, Bill, 60, 64,65, g5, 3g0
efectos secundarios de, 652 soganbar
H-igh Output Management (Grove), 6g
gestión de riesgos, 652
Highsmith, Jim,3l0
interacciones con otros métodos. 653
higiene, factores de
resumen, 645 -¡rc oleqr
entornos de productividad y, 547 _54g uso,646-651 ue sorqul
moral y, 287-288
cantidad a solicitar, 650 o8¡e opu
motivación y,287-2gg
claves para tener éxtto- 654 -aJJO3 U3
ou seuor:
es ou sor
'eleatgos
\q\a\\a(
-t¡s?}
o
rÉ-
ta :.:a){) ^
c¡ í 5oE
horas extras voluntarias, {cont')
información
iniciativa del desarrollador y del estructura del equiPo Y,326-327
resPonsable, enfoques, 646-64'7 sobre riesgos, 108
las horas extras no deben ser ingeniería del software, bibliografía
obligatorias , 641 -649 adicional sobre, 88
precauciones con el exceso de horas iniciales, escatimar en actividades' 51-52
extras, 650-651 Insíde RAD (Ketr Y Hunter), 283,345
proyectos fuera de control, 649-650 inspecciones, 83-84
HumphreY, Watts S., 34, 5I,230, 54I
bibliografía adicional, 86
integración del código
Huntér, Richard, 283,345-346, 582
construcción y prueba diarias y,440
Hutchens, David H., 84
entrega Por etapas Y,594
<interaóciones y equilibrios principales>>,
entrada en las tablas resumen de
Iansiti, Marco, 128, 225, 251
métodos recomendables, 426
rB}y'r,',79,81, 189 -ixef, 3p lGf
interdependencia entre miembros del
Santa Teresa, oficina de recursos, 549, "03Feilojnl
equipo, 309
553 '_err:d::e :t
interés, grupos de,262
<IBM's Santa Teresa LaboratorY- -ury:nb so
Architectural Design for Program investigáción, desarrollo orientado a la,
54-55 oleqer rm ,
E asd€ F
=
678 i-c c€
-.-
---':-5trn. Donla L., 5 12 lenguajes de desarrollo rápido (LDR),
-::;r; ,4pplication Design (August), 500 s55-564
-,Í,,,,;nr ,lpplication Development (Wood y bases, 563
Silver), 500 claves para el éxito en, 563-564
Jones. Capers, xvii, xxii, 16,48,52,54, efectos secundarios de, 562
55, 66,75,79-92,90, 1 lg, 136,175, ejemplos, 556
177, lgg, lg4, 200, 209, 221, 225, gestión de riesgos en,560-562
230, 234, 236, 247, 265, 279, 321, interacciones con otros métodos,
330, 334, 343, 351, 364, 366, 310, 562-563
393, 395, 390, 393, 395, 400, 459, uso, 559-560
477, 4gg, 505, 5 13, 517, 546, 553, lenguajes. Véase 3GL (lenguajes de tercera
564, 512, 57 5, 579, 643, 649, 653, 654 generación); 4GL (lenguajes de cuarta
Jones, método de estimación de primer generación); lenguajes de desarrollo
orden, 191,200-201 rápido (LDR)
Joos, Rebeca,572 líneas de código, medidas de, 514-515
JRP (Planificación Conjunta de lista de los 10 riesgos principales, I 1 l-l 13,
Requerimientos), 488 OJJ
Lister, Timothy, l7 , 33 , 48, 236, 251 , 269,
293, 2gg, 3 I 1, 3 13, 317 , 320, 360,
Karten, Naomi, 267 546, 552,554, 595, 650, 654
Katzenbach, Jon, 297, 320 Lyons, Michael L.,274
Kemerer, Chris, 203, 204
Kerr, James, 283,345, 582, 584
Kidder, Tracy, 29,582,585, 586, 588 madurez de las herramientas de
Kitson, David H., 66,70,'74,79 productividad, 386
Klein, Gary,396 Maguire, Steve, 34, 77, 251, 291, 585,
Klepper, Robert, 390 650,654
Kohen, Eliyezer, Tl Manager's Guide to Software Engineering,
Korson, Timothy, 453 I (Pressman), 67,85
Krantz, Les, xxii Managing a Programming Project
(Metzger), 64,68
Managing Expectations (Karten), 267
LaFasto, Frank M. !., 4'1 ,2j7,30I,308, Managing Software Maniacs (Whitaker),
312, 3 1 5, 3 I g, 320, 324, 325, 341 268
Lakhanpal, 8., 46, 299,31i- Managing the Sortware Process
lanzarse a la codificación como error (Humphrey), 541
clásico,51-52 manipulación por la directiva como
Laran-jeira, Luiz, 214 destructor de la moral, 288-289
lar-eo plazo. desarrollo rápido a, 236 mantenimiento, prototipado evolutivo y
Larson. Carl E.. 47 , 277 ,301, 308, 312, pocas facilidades de, 475-4i6
3i5. 318. 320. 324, 325, 341 manual de usuario, como especificación,
LDR. I'éase lenguajes de desarrollo 348-349
rápido Marciniak, John J., 531, 541
Lederer, Alberr L.. rlir. 193.343 Marcotty, Michael, J7
índice 679
bióz ': 3a
,.,. F
5
- 648
trabajo rePetido
tema del producto, especiñcación mínima
cómo evitar, 19
v- 349
\' \ erslones por' relaciones con ios clientes y,257-258
femas, entrega por etapas
596-591
tiempo perdido en, 136
Tracz, Will, 575-577, 579
<Ten Commandments of Tooi Selection'
The> (O'Brien), 400 Tutnet, Albert J., 599
tercera generación, lenguajes oe I ¿¡t¿ 3GL
Ttúorial on Software Design Techniques
(Parnas), 460
Tesch, Deborah B., 396
Tutorial : Software Engineering Proj ect
Thayer, Richard H.,67
Theory-W, gestión, 260,406' 6[l]-¡ ii Managemenr (ThaYer), 67
bases,613
Tutorial: Software Quali4t Asstu'ctttce
(Chow, ed.), 85
brbliografía adicionai, 6 13
__)
-,
¿¿--. -Tt-rhn. _i80 prestaciones, 365-366
L¡¡hress. David, 56 versión 3 de herramientas de
- 11. \\-illiam, 251, 606 productividad, 386
usuarios finales. Véqnse también cliente, versiones, desarrollo por, 356
desarrollo orientado al; clientes vida personal como motivación,
falta de implicación, 49 281-282
riesgos asociados con, 97 visibilidad, métodos orientados a la,
l5
visión
Vaishnavi, Vijay K., 453 compartida, en equipos de alto
Valett, J ., 77 , 269 , 299 , 505 rendimiento, 301-303
Van Genuchten, Michiel , 53,200,216, compromiso y, 582-583
229,524 en la dirección de un equipo de alto
velocidad de desarrollo. Véase tqmbién rendimiento, 312
desarrollo rápido fallo de los equipos y falta de,312-313
dimensiones de, l5-23 Visual C++ ¿s Microsoft, 262-263
importancia relativa de, 26-2j Vosburgh, l. 8., 43, 44, 69, 261, 262, 2j'7 ,
personas, 16-18 343,361
proceso, l8-21 Votta, Lawrence G., 514
producto,2l-22
fecnología,22
errores clásicos y, 43-45 Waligora, Sharon, 570, 51 4
patrón típico de mejora, 140-142 Waterman, Robert H., Jr., 268,284,293,
vendedores. Véase desarrollo externo 294,342
ventajosos para todos (Win-Win), Waters, Richard, 397
proyectos, 260 Weinberg, Gerald M., 17, 4'/ , 6i,'1 5, 86,
ventanas temporales, desarrollo con, 236, 237,240, 276, 293, 2gg, 320,
621-630 420, 646,649,654
bibliografía adicional, 630 Weiss, David M., 460, 505
efectos secundarios de, 629 <What Are the Realities of Software
gestión de riesgos, 628 Productivity/Quality Improvements>
interacciones con otros métodos, 629 (Glass), 400
puntos cruciales sobre, 629-630 <When the Rubber Hits the Road:
uso, 623-627 A Guide to Implementing
claves para tener éxito con, 630 Self-Managing Teams> (Thomsett),
criterios de entrada, 625 342
equipo de ventanas temporales, Whitaker, Ken, 268, 289,596
626-627 l4/hy Does Software Cost So Much?
variaciones, 627 (DeMarco), 251,342
versión I de herramientas de nWhy Is Technology Transfer So Hard?>
productividad, 3 B6 (Jones), 400
versión 2 Wicked Problems, Righteous Solutions
de herramienras de productividad, (DeGrace y Stahl), 175
386 Wiener, Lauren Ruth, 345
-'1 .
-á4
-
lndice