03 Capítulo
03 Capítulo
03 Capítulo
II
GESTION DE PROYECTOS
DE SOFTWARE
ema durante un
;Provecto de software?
1 r r
35
CAPÍTULO
tomamos la visión de
=gestión*, falta una software de com
necesaria cuando se
nierode software gestiona s u activi- el alcance del producto y los requisi- alta calidad dentro del tiempo y del
dades de1 d h a dial Planificahdo, tos. Debe seleccionarse el proceso presupuesto. Sin embargo, un gestor
SuPWisandQ Y controlando las tareas adecuado para el personal, y el pro- d e proyectos hace lo correcto cuando
técnicas. Los gestores d to Pla- ducto. El proyecto debe planificarse estimula a l personal para trabajar jun-
nifkan, supemisan Y c eltra- estimando el esfuerzo y el tiempo tos como un equipo efectivo, centran-
bajo de un equipo d e ingenieros de para cumplir l a s tareas; definiendo do su atención en las necesidades del
software. LOS gestores e x P e ~ O S C ~ r d i - los productos del trabajo, estable- cliente y en la calidad del producto.
37
INGENlERfA DEL SOFTWARE. U N ENFOQUE PRÁCTICO
3.1.3. Proceso
Un proceso de software (Capítulo 2) proporciona la
estructura desde la que se puede establecer un detalla-
do plan para el desarrollo del software. Un pequeño
El modelo de madurez de gestión de personal defi- número de actividades estructurales se puede aplicar a
ne las siguientes áreas clave prácticas para el personal todos los proyectos de software, sin tener en cuenta su
que desarrolla software: reclutamiento, selección, ges- tamaño o complejidad. Diferentes conjuntos de tareas
tión de rendimiento, entrenamiento, retribución, desa- -tareas, hitos, productos del trabajo y puntos de garan-
rrollo de la carrera, diseño de la organización y del tía de calidad-permiten a las actividades estructura-
trabajo y desarrollo cultural y de espíritu de equipo. les adaptarse a las características del proyecto de
El MMCGP es compañero del modelo de madurez software y a los requisitos del equipo del proyecto. Final-
de la capacidad software (Capítulo 2), que guía a las mente, las actividades protectoras -tales como garan-
organizaciones en la creación de un proceso de software tía de calidad del software, gestión de la configuración
maduro. Más adelante en este capítulo se consideran del software y medición-cubren el modelo de proce-
aspectos asociados a la gestión de personal y estructu- so. Las actividades protectoras son independientes de
ras para proyectos de software. las estructurales y tienen lugar a lo largo del proceso.
38
CAPfTULO 3 CONCEPTOS SOBRE GESTI6N DE PROYECTOS
En un estudio publicado por el IEEE [CURSS] se les del software, damos este aspecto por descontado. Los
preguntó a los vicepresidentes ingenieros de tres gran- gestores argumentan (como el grupo anterior) que el
des compañías tecnológicas sobre el factor más impor- personal es algo primario, pero los hechos desmienten
tante que contribuye al éxito de un proyecto de software. a veces sus palabras.
Respondieron de la siguiente manera: En esta sección examinamos los participantes que cola-
VP 1: Supongo que si tuviera que elegir lo más importante boran en el proceso del software y la manera en que se
de nuestro entorno de trabajo, diría que no son las organizan para realizar una ingeniería del Software eficaz.
herramientas que empleamos, es la gente.
VP 2: El ingrediente más importante que contribuyó al éxi- 3.2.1. Los participantes
to de este proyecto fue tener gente lista ...pocas cosas
más importan en mi opinión ... Lo más importante El proceso del software (y todos los proyectos de soft-
que se puede hacer por un proyecto es seleccionar el ware) lo componen participantes que pueden clasificarse
personal ... El éxito de la organización de desarrollo en una de estas cinco categorías:
del software está muy, muy asociado con la habili-
1. Gestores superiores, que definen los aspectos de
dad de reclutar buenos profesionales.
negocios que a menudo tienen una significativa
VP 3: La única regla que tengo en cuanto a la gestión influencia en el proyecto.
es asegurarme de que tengo buenos profesionales
-gente realmente buena-, de que preparo bue- 2. Gestores (técnicos) del proyecto, que deben planifi-
na gente y de que proporciono el entorno en el car, motivar, organizar y controlar a los profesiona-
que los buenos profesionales puedan producir. les que realizan el trabajo de software.
3. Profesionales, que proporcionan las capacidades téc-
nicas necesarias para la ingeniería de un producto o
aplicación.
4. Clientes, que especifican los requisitos para la inge-
niería del software y otros elementos que tienen
menor influencia en el resultado.
5. Usuarios finales, que interaccionan con el software
Ciertamente, éste es un testimonio convincente sobre una vez que se ha entregado para la producción.
la importancia del personal en el proceso de ingeniería Para ser eficaz, el equipo del proyecto debe organizarse
del software. Y, sin embargo, todos nosotros, desde los de manera que maximice las habiiidades y capacidades
veteranos vicepresidentes al más modesto profesional de cada persona. Y este es el trabajo del jefe del equipo.
39
INGENIERiA DEL SOFTWARE. UN ENFOQUE PRACTICO
3.2.2. Los jefes de equipo Incentivos por logros. Para optimizar la productividad de
un equipo de proyecto, un gestor debe recompensar la inicia-
La gestión de un proyecto es una actividad intensamente tiva y los logros, y demostrar a través de sus propias acciones
humana, y por esta razón, los profesionales competen- que no se penalizará si se corren riesgos controlados.
tes del software a menudo no son buenos jefes de equi- Influencia y construcción de espíritu de equipo. Un ges-
po. Simplemente no tienen la mezcla adecuada de tor de proyecto eficiente debe ser capaz de «leer» a la gente;
capacidades del personal. Y sin embargo, como dice debe ser capaz de entender señales verbales y no verbales y
Edgemon: «Desafortunadamente y con demasiada fre- reaccionar ante las necesidades de las personas que mandan
cuencia, hay individuos que terminan en la gestión de esas señales. El gestor debe mantener el control en situaciones
proyectos y se convierten en gestores de proyecto acci- de gran estrés.
dentales» [EDG95].
una gran evidencia que indica que una organización de jar problemas sencillos. Los equipos descentralizados
equipo formal (opción 3) es la más productiva. generan más y mejores soluciones que los individua-
La «mejor» estructura de equipo depende del esti- les. Por tanto, estos equipos tienen más probabilidades
lo de gestión de una organización, el número de per- de éxito en la resolución de problemas complejos. Pues-
sonas que compondrá el equipo, sus niveles de to que el equipo DC es centralizado para la resolución
preparación y la dificultad general del problema. Man- de problemas, tanto el organigrama de equipo DC como
tei [MAN81] sugiere tres organigramas de equipo el de CC pueden aplicarse con éxito para problemas
genéricos: sencillos. La estructura DD es la mejor para problemas
Descentralizado democrático (DD). Este equipo de difíciles.
ingeniería del software no tiene un jefe permanente. Más Como el rendimiento de un equipo es inversamente
bien, «se nombran coordinadores de tareas a corto plazo y proporcional a la cantidad de comunicación que se debe
se sustituyen por otros para diferentes tareas». Las deci- entablar, los proyectos muy grandes son mejor dirigi-
siopes sobre problemas y los enfoques se hacen por con- dos por equipos con estructura CC o DC, donde se pue-
senso del grupo. La comunicación entre los miembros del
equipo es horizontal. den formar fácilmente subgrupos.
El tiempo que los miembros del equipo vayan a
«vivir juntos» afecta a la moral del equipo. Se ha des-
¿Cómo debería estar cubierto que los organigramas de equipo tipo DD pro-
organizado un equipo ducen una moral más alta y más satisfacción por el
de software? trabajo y son, por tanto, buenos para equipos que per-
manecerán juntos durante mucho tiempo.
Descentralizado controlado (DC). Este equipo de inge- El organigrama de equipo DD se aplica mejor a pro-
niería del software tiene un jefe definido que coordina tare- blemas con modularidad relativamente baja, debido a
as específicas y jefes secundarios que tienen responsabilidades
sobre subtareas. La resolución de problemas sigue siendo la gran cantidad de comunicación que se necesita. Los
una actividad del grupo, pero la implementación de solu- organigramas CC o DC funcionan bien cuando es posi-
ciones se reparte entre subgrupos por el jefe de equipo. La ble una modularidad alta (y la gente puede hacer cada
comunicación entre subgrupos e individuos es horizontal. uno lo suyo).
También hay comunicación vertical a lo largo de la jerarquía
de control.
Centralizado controlado (CC). El jefe del equipo se
encarga de la resolución de problemas a alto nivel y la coor-
dinación interna del equipo. La comunicación entre el jefe y Frecuentementees mejor tener pocos equipos pequeños,
los miembros del equipo es vertical. bien centrados que un gran equipo solamente.
Mantei [MAN8 11 describe siete factores de un pro-
yecto que deberían considerarse cuando se planifica el Los equipos CC y DC producen menos defectos que
organigrama de equipos de ingeniería del software: los equipos DD, pero estos datos tienen mucho que ver
la dificultad del problema que hay que resolver con las actividades específicas de garantía de calidad
el tamaño del programa(s) resultante(s) én líneas de que aplica el equipo. Los equipos descentralizados
código o puntos de función (Capítulo 4) requieren generalmente más tiempo para completar un
proyecto que un organigrama centralizado y al mismo
el tiempo que el equipo estará junto (tiempo de vida
tiempo son mejores cuando se precisa una gran canti-
del equipo)
dad de comunicación.
el grado en que el problema puede ser modulari- Constantine [CON931 sugiere cuatro «paradigmas
zado de organización» para equipos de ingeniería del soft-
ware:
¿Qué factores 1. Un paradigma cerrado estructura a un equipo con
deberíamos considerar una jerarquía tradicional de autoridad (similar al
cuando estructuramos equipo CC). Estos equipos trabajan bien cuando pro-
un equipo de software? ducen software similar a otros anteriores, pero pro-
bablemente sean menos innovadores cuando trabajen
dentro de un paradigma cerrado.
la calidad requerida y fiabilidad del sistema que se
va a construir 2. El paradigma aleatorio estructura al equipo libre-
mente y depende de la iniciativa individual de los
la rigidez de la fecha de entrega
miembros del equipo. Cuando se requiere innova-
el grado de sociabilidad (comunicación) requerido ción o avances tecnológicos, los equipos de para-
para el proyecto digma aleatorio son excelentes. Pero estos equipos
Debido a que una estructura centralizada realiza las pueden chocar cuando se requiere un «rendimiento
tareas más rápidamente, es la más adecuada para mane- ordenado».
41
INGENIERfA DEL SOFTWARE. U N ENFOQUE PRÁCTICO
3. El paradigma abierto intenta estructurar a un equipo nen una definición común de éxito o un espíritu de equi-
de manera que consiga algunos de los controles aso- po identificable. Lo que falta es un fenómeno que deno-
minamos cuajar.
ciados con el paradigma cerrado, pero también
mucha de la innovación que tiene lugar cuando se Un equipo cuajado es un grupo de gente tejido tan fuer-
utiliza el paradigma aleatorio. El trabajo se desa- temente que el todo es mayor que la suma de las partes ...
rrolla en colaboración, con mucha comunicación y Una vez que el equipo empieza a cuajar, la probabilidad
toma de decisiones consensuadas y con el sello de de éxito empieza a subir. El equipo puede convertirse en
imparable, un monstruo de éxito ... No necesitan ser dirigi-
los equipos de paradigma abierto. Los organigra- dos de una manera tradicional y no necesitan que se les moti-
mas de equipo de paradigma abierto son adecuados ve. Están en su gran momento.
para la resolución de problemas complejos, pero
pueden no tener un rendimiento tan eficiente como DeMarco y Lister mantienen que los miembros de
otros equipos. equipos cuajados son significativamente más pro-
ductivos y están más motivados que la media. Com-
parten una meta común, una cultura común y, en
muchos casos, un «sentimiento elitista» que les hace
únicos.
Pero no todos los equipos cuajan. De hecho, muchos
equipos sufren lo que Jackman llama «toxicidad de equi-
po» [JAC98] define cinco factores que «fomentan un
entorno de equipo tóxico potencial»:
4. El paradigma sincronizado se basa en la comparti-
mentación natural de un problema y organiza los
miembros del equipo para trabajar en partes del pro-
blema con poca comunicación activa entre ellos.
Constantine [CON931 propone una variación en el
equipo descentralizado democrático defendiendo a los
equipos con independencia creativa cuyo enfoque de
trabajo podría ser mejor llamado «anarquía innova-
dora». Aunque se haya apelado al enfoque de libre 1. una atmósfera de trabajo frenética en la que los
espíritu para el desarrollo del software, el objetivo miembros del equipo gastan energía y se descentran
principal de una organización de Ingeniería del Soft- de los objetivos del trabajo a desarrollar;
ware debe ser «convertir el caos en un equipo de alto
2. alta frustración causada por factores tecnológicos,
rendimiento» [HYM93]. Para conseguir un equipo de
del negocio, o personales que provocan fricción entre
alto rendimiento.
los miembros del equipo;
Los miembros del equipo deben confiar unos en
otros. 3. «procedimientos coordinados pobremente o frag-
mentados» o una definición pobre o impropiamente
La distribución de habilidades debe adecuarse al pro- elegida del modelo de procesos que se convierte en
blema. un obstáculo a saltar;
Para mantener la unión del equipo, los inconformis- 4. definición confusa de los papeles a desempeñar pro-
tas tienen que ser excluidos del mismo duciendo una falta de responsabilidad y la acusación
Cualquiera que sea la organización del equipo, el correspondiente, y
objetivo para todos los gestores de proyecto es colabo- 5. «continua y repetida exposición al fallo» que con-
rar a crear un equipo que presente cohesión. En su libro, duce a una pérdida de confianza y a una caída de la
Peopfeware,DeMarco y Lister [DEM98] estudian este moral.
aspecto: Jackman sugiere varios antitóxicos que tratan los
problemas comunes destacados anteriormente.
Para evitar un entorno de trabajo frenético, el
gestor de proyectos debería estar seguro de que el
Elpapel del biMiotecario existe sin tener en cuento
lo estructura del equipo. Poro más detalles véase
equipo tiene acceso a toda la información requerida
el íopíiuio 9. para hacer el trabajo y que los objetivos y metas prin-
cipales, una vez definidos, no deberían modificarse a
menos que fuese absolutamente necesario. Además,
las malas noticias no deberían guardarse en secreto,
Tendemos a usar la palabra equipo demasiado libre-
mente en el mundo de los negocios, denominando «equi- sino entregarse al equipo tan pronto como fuese posi-
po» a cualquier grupo de gente asignado para trabajar junta. ble (mientras haya tiempo para reaccionar de un modo
Pero muchos de estos grupos no parecen equipos. No tie- racional y controlado).
42
CAPfTULO 3 CONCEPTOS SOBRE G E S T I 6 N DE PROYECTOS
Las revisiones técnicas formales se tratan con detalle en el Capi- Se puede encontrar una excelente introducción a estos temas rela-
tulo 8. cionados con los equipos de proyectos de software en [FER98]
43
I N G E N I E R ~ ADEL S O FTWARE . UN ENFOQUE PRÁCTICO
3 , 5 C T O
El gestor de un proyecto de software se enfrenta a un dile- 3.3.1. Ámbito del software
ma al inicio de un proyecto de ingeniería del software. La primera actividad de gestión de un proyecto de soft-
Se requieren estimaciones cuantitativas y un plan orga- ware es determinar el ámbito del software. El ámbito se
nizado, pero no se dispone de información sólida. Un define respondiendo a las siguientes 'cuestiones:
análisis detallado de los requisitos del software pro-
porcionaría la información necesaria para las estima-
ciones, pero el análisis a menudo lleva semanas o meses.
Aún peor, los requisitos pueden ser fluidos, cambiando Si no puede delimitur uno corocterísrico de/ sohure
regularmente a medida que progresa el proyecto. Y, aún que intento construib considere /o característica como
un riesgo principo/ de/ proyecto.
así, se necesita un plan «¡ya!».
Por tanto, debemos examinar el producto y el pro- Contexto. ¿Cómo encaja el software a construir
blema a resolver justo al inicio del proyecto. Por lo en un sistema, producto o contexto de negocios
menos se debe establecer el ámbito del producto y mayor y qué limitaciones se imponen como resulta-
delimitarlo. do del contexto?
44
C A P ~ T U L O3 CONCEPTOS SOBRE G E S T I 6 N DE PROYECTOS
Objetivos de información. ¿Qué objetos de datos Las funciones del software, descritas en la exposi-
visibles al cliente (Capítulo 11) se obtienen del softwa- ción del ámbito, se evalúan y refinan para proporcionar
re? ¿Qué objetos de datos son requeridos de entrada? más detalle antes del comienzo de la estimación (Capí-
Función y rendimiento. ¿Qué función realiza el tulo 5). Puesto que ambos, el coste y las estimaciones
software para transformar la información de entra- de la planificación temporal, están orientados funcio-
da en una salida? ¿Hay características de rendimiento nalmente, un pequeño grado de descomposición suele
especiales que abordar? ser útil.
El ámbito de un proyecto de software debe ser uní- Por ejemplo, considere un proyecto que construirá
VOCO y entendible a niveles de gestión y técnico. Los
un nuevo procesador de textos. Entre las características
enunciados del ámbito del software deben estar deli- peculiares del producto están: la introducción de infor-
mitados. mación a través de la voz así como del teclado; carac-
Es decir, los datos cuantitativos (por ejemplo: núme- terísticas extremadamente sofisticadas de «edición
ro de usuarios simultáneos, tamaño de la lista de correo, automática de copia»; capacidad de diseño de página;
máximo tiempo de respuesta permitido) se establecen indexación automática y tabla de contenido, y otras. El
explícitamente; se anotan las limitaciones (por ejemplo: gestor del proyecto debe establecer primero la exposi-
el coste del producto limita el tamaño de la memoria) y ción del ámbito que delimita estas características (así
se describgn los factores de reducción de riesgos (por como otras funciones más normales, como edición,
ejemplo: los algoritmos deseados se entienden muy bien administración de archivos, generación de documen-
si están disponibles en C++). tos). Por ejemplo, ¿requerirá la introducción de infor-
mación mediante voz «entrenamiento» por parte del
usuario? ¿Qué capacidades específicas proporcionará
3.3.2. Descomposición del problema la característica de editar copias? ¿Exactamente cómo
La descomposición del problema, denominado a veces será de sofisticado la capacidad de diseño de página?
particionado o elaboración del problema, es una activi-
dad que se asienta en el núcleo del análisis de requisitos
del software (Capítulo 11). Durante la actividad de expo- En el Capmilo 12 se presento u110 téuika útil paro
sición del ámbito no se intenta descomponer el proble- descomponer el problema, llomada <anáhsgramoticol>.
ma totalmente. Más bien, la descomposición se aplica en
dos áreas principales: (1) la funcionalidad que debe entre-
garse y (2) el proceso que se empleará para entregarlo. A medida que evoluciona la exposición del ámbito,
un primer nivel de partición ocurre de forma natural. El
equipo del proyecto sabe que el departamento de mar-
keting ha hablado con clientes potenciales y ha averi-
guado que las siguientes funciones deberían ser parte
de la edición automática de copia: (1) comprobación
Para desarrollar un plan de proyecto razonable, tiene ortográfica; (2) comprobación gramatical; ( 3 ) compro-
que descomponer funcionalmente el problema a resolver bación de referencias para documentos grandes (p. ej.:
¿se puede encontrar una referencia a una entrada biblio-
Los seres humanos tienden a aplicar la estrategia de gráfica en la lista de entradas de la bibliografía?), y (4)
divide y vencerás cuando se enfrentan a problemas com- validación de referencias de sección y capítulo para
plejos. Dicho de manera sencilla, un problema complejo documentos grandes. Cada una de estas características
se parte en problemas más pequeños que resultan más representa una subfunción para implernentar en soft-
manejables. Ésta es la estrategia que se aplica al inicio ware. Cada una puede ser aún más refinada si la des-
de la planificación del proyecto. composición hace más fácil la planificación.
de arriba. Las tareas de trabajo de ingeniería del software ECP?». Por ejemplo, un pequeño proyecto, relativamen-
(para cada actividad estructural) se introducirían en la fila te simple, requiere las siguientes tareas para la actividad
siguiente5. El trabajo del gestor del proyecto (y de otros de comunicación con el cliente:
miembros del equipo) es estimar los requisitos de recur- 1. Desarrollar una lista de aspectos que se han de cla-
sos para cada celda de la matriz, poner fechas de inicio y rificar.
finalización para las tareas asociadas con cada celda y los 2. Reunirse con el cliente para resolver los aspectos
productos a fabricar como consecuencia de cada celda. que se han de clarificar.
Estas actividades se consideran en los Capítulos 5 y 7. 3 . Desarrollar conjuntamente una exposición del
ámbito del proyecto.
4. Revisar el alcance del proyecto con todos los impli-
CLAVE cados.
l o descomposición del producto y del proceso se produce
5. Modificar el alcance del proyecto cuando se requiera.
simultóneamente con la evolución del plan de proyecto. Estos acontecimientospueden ocurrir en un periodo de
menos de 48 horas. Representan una descomposición del
problema apropiado para proyectos pequeños relativa-
3.4.2. Descomposición del proceso mente sencillos.
Un equipo de software debería tener un grado significa- Ahora, consideremos un proyecto más complejo que
tivo de flexibilidad en la elección del paradigma de inge- tenga un ámbito más amplio y un mayor impacto comer-
niería del software que resulte mejor para el proyecto y cial. Un proyecto como ése podría requerir las siguientes
de las tareas de ingeniería del software que conforman el tareas para la actividad de comunicación con el cliente:
modelo de proceso una vez elegido. Un proyecto relati-
vamente pequeño similar a otros que se hayan hecho ante- 1. Revisar la petición del cliente.
riormente se debería realizar con el enfoque secuencia1 2. Planificar y programar una reunión formal con el
lineal. Si hay límites de tiempo muy severos y el proble- cliente.
ma se puede compartimentarmucho, el modelo apropia- 3. Realizar una investigación para definir soluciones pro-
do es el DRA (en inglés RAD). Si la fecha límite está tan puestas y enfoques existentes.
próxima que no va a ser posible entregar toda la funcio- 4. Preparar un «documentode trabajo» y una agenda para
nalidad, una estrategia incremental puede ser lo mejor. la reunión formal.
Similarmente,proyectos con otras características (p. ej.: 5. Realizar la reunión.
requisitos inciertos, nuevas tecnologías, clientes difíci- 6. Desarrollar conjuntamente mini-especificaciones que
les, potencialidad de reutilización) llevarán a la selección reflejen la información, función y características de
de otros modelos de proceso6. comportamiento del software.
47
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO
3.5 P R m O
Para gestionar un proyecto de software con éxito, vaya a estar involucrado en el proyecto. Se refuer-
debemos comprender qué puede ir mal (para evitar za construyendo el equipo adecuado (Sección 3.2.3)
esos problemas) y cómo hacerlo bien. En un excelente y dando al equipo la autonomía, autoridad y tecno-
documento sobre proyectos de software, John Reel logía necesaria para realizar el trabajo.
[REE99] define diez señales que indican que un pro- Mantenerse. Muchos proyectos no realizan un
yecto de sistemas de información está en peligro: buen comienzo y entonces se desintegran lentamente.
Para mantenerse, el gestor del proyecto debe pro-
porcionar incentivos para conseguir una rotación del
personal mínima, el equipo debería destacar la cali-
dad en todas las tareas que desarrolle y los gestores
veteranos deberían hacer todo lo posible por per-
manecer fuera de la forma de trabajo del equipo7.
Seguimiento del Progreso. Para un proyecto de
software, el progreso se sigue mientras se realizan los
productos del trabajo (por ejemplo, especificaciones,
1. La gente del software no comprende las necesi- código fuente, conjuntos de casos de prueba) y se
dades de los clientes. aprueban (utilizando revisiones técnicas formales)
como parte de una actividad de garantía de calidad.
2. El ámbito del producto está definido pobremente. Además, el proceso del software y las medidas del
3 . Los cambios están mal realizados. proyecto (capítulo 4) pueden ser reunidas y utilizadas
4. La tecnología elegida cambia. para evaluar el progreso frente a promedios desarro-
llados por la organización de desarrollo de software.
5. Las necesidades del negocio cambian [o están mal
definidas]. Tomar Decisiones Inteligentes. En esencia, las
decisiones del gestor del proyecto y del equipo de
6. Las fechas de entrega no son realistas. software deberían «seguir siendo sencillas>>.Siem-
7. Los usuarios se resisten. pre que sea posible, utilice software del mismo
8. Se pierden los patrocinadores [o nunca se obtu- comercial o componentes de software existentes;
vieron adecuadamente]. evite personalizar interfaces cuando estén dispo-
nibles aproximaciones estándar; identifique y eli-
9. El equipo del proyecto carece del personal con las mine entonces riesgos obvios; asigne más tiempo
habilidades apropiadas. del que pensaba necesitar para tareas arriesgadas
10.Los gestores [y los desarrolladores] evitan buenas o complejas (necesitará cada minuto).
prácticas y sabias lecciones.
Los profesionales veteranos de la industria hacen
referencia frecuentemente a la regla 90-90 cuando
estudian proyectos de software particularmente difí-
ciles: el primer 90 por 100 de un sistema absorbe el
90 por 100 del tiempo y del esfuerzo asignado. El últi-
3
Referencia We6
Se puede enconkar un gran conjunto de recursos
que pueden ayudar tanto a gestores de proyecto
mo 10 por 100 se lleva el otro 90 por 100 del esfuer-
experimentodos como a principiantes en:
zo y del tiempo asignado [ZAH94]. Los factores que
www.pmi.org, www.4pm.com y
conducen a la regla 90-90 están contenidos en las diez www.projectmanagement.com
señales destacadas en la lista anterior.
¡Suficientenegatividad! ¿Cómo actúa un gestor para
evitar los problemas señalados anteriormente? Reel Realizar un Análisis «Postmortem»(despuésdefina-
[REE99] sugiere una aproximación de sentido común lizar el proyecto}. Establecer un mecanismo consis-
a los proyectos de software dividida en cinco partes: tente para extraer sabias lecciones de cada proyecto.
Empezar con el pie derecho. Esto se realiza tra- Evaluar la planificación real y la prevista, reunir y ana-
bajando duro (muy duro) para comprender el pro- lizar métricas del proyecto de software y realimentar
blema a solucionar y estableciendo entonces con datos de los miembros del equipo y de los clien-
objetivos y expectativas realistas para cualquiera que tes, y guardar los datos obtenidos en formato escrito.
48
CAPfTULO 3 CONCEPTOS SOBRE GESTI6N DE PROYECTOS
En un excelente documento sobre proyectos y proce- ponsabilidad de cada miembro del equipo de soft-
so del software, Bany Boehm [BOE96] afirma: «... se ware debe estar definida. La respuesta a la pre-
necesita un principio de organización que haga una gunta ayuda a cumplir esto.
simplificación con el fin de proporcionar planes [de 2 Dónde están situados organizacionalmente?
proyectos] sencillos para proyectos pequeños». Boehm No todos los roles y responsabilidades residen en
sugiere un enfoque que trate los objetivos, hitos y pla- el equipo de software. El cliente, los usuarios, y
nificación, responsabilidades, enfoque técnico y de otros directivos también tienen responsabilidades.
gestión, y los recursos requeridos del proyecto. Bohem
lo llama el principio «WWWWWHH», después de
una serie de preguntas (7 cuestiones) que conducen a
la definición de las características clave del proyecto
y el plan del proyecto resultante:
¿Por qué se desarrolla el sistema? La respuesta a
esta pregunta permite a todas las partes evaluar la vali-
dez de las razones del negocio para el trabajo del soft- Plan de Proyecto de Software
ware. Dicho de otra forma, Ljustifica el propósito del
negocio el gasto en personal, tiempo, y dinero? ¿Cómo estará realizado el trabajo desde elpun-
¿Qué se realizará y cuándo? La respuesta a estas to de vista técnico y de gestión? Una vez estable-
preguntas ayuda al equipo a establecer la planifi- cido el ámbito del producto, se debe definir una
cación del proyecto identificando las tareas clave estrategia técnica y de gestión para el proyecto.
del proyecto y los hitos requeridos por el cliente. ¿Qué cantidad de cada recurso se necesita? La
respuesta a esta pregunta se deriva de las estima-
ciones realizadas (Capítulo 5 ) basadas en res-
¿Qué preguntas necesitan puestas a las preguntas anteriores.
ser respondidas para
desarrollar un Plan de Proyecto? El principio W5HH de Boehm es aplicable sin tener
en cuenta el tamaño o la complejidad del proyecto de
software. Las preguntas señaladas proporcionan un
¿Quién es el responsable de una función? Antes perfil de planificación al gestor del proyecto y al equi-
en este capítulo, señalamos que el papel y la res- po de software.
El Concilio8 Airlie ha desarrollado una lista de uno de los riesgos ¿cuál es la oportunidad de que
«prácticas críticas de software para la gestión basada el riesgo se convierta en un problema y cuál es el
en el rendimiento». Estas prácticas son «utilizadas de impacto si lo hace?
un modo consistente por, y consideradas críticas por, Coste empírico y estimación de la planificación.
organizaciones y proyectos de software de mucho éxi- ¿Cuál es el tamaño actual estimado de la aplicación
to cuyo rendimiento “final” es más consistente que de software (sin incluir el software del sistema) que
los promedios de la industria» [AIR99]. En un esfuer- será entregada en la operación? ¿Cómo se obtuvo?
zo por permitir a una organización de software deter-
minar si un proyecto específico ha implementado
prácticas críticas, el Concilio Airlie ha desarrollado
un conjunto de preguntas de «Visión Rápida» [AIR99]
para un proyecto’:
Gestión formal del riesgo. ¿Cuáles son los diez
riesgos principales para este proyecto? Para cada Visi6n rápida del Proyecto Airlie
8EI Concilio Airlie es un equipo de expertos en ingeniería del soRware 9 Solo se destacan aquí aquellas practicas críticas relacionadas con
promocionado por el Departamento de Defensa U.S.ayudando en el la ((integridaddel proyecto)).Otras practicas mejores se trataran en
desarrollo de directrices para prácticas importantes en la gestión de capítulos posteriores.
proyectos de software y en la ingeniería del Software.
49
INGENIERiA DEL SOFTWARE. UN ENFOQUE P R Á C T I C O
Gestión de proyectos basada en métricas. ¿Dis- de el principio del programa y del número de defectos
pone de un programa de métricas para dar una prime- que se corrigen y se producen en la actualidad?
ra indicación de los problemas del desarrollo? Si es así, Gestión del programa del personal. ¿Cuál es
¿cuál es la volatilidad de los requisitos actualmente? la media de rotación de la plantilla en los tres Últi-
Seguimiento del valor ganado. ¿Informa men- mos meses por cada uno de los distribuidores/desa-
sualmente de las métricas del valor ganado ...? Si rrolladores involucrados en el desarrollo del
es así, ¿están calculadas estas métricas desde una software para este sistema?
red de actividades de tareas para el esfuerzo total Si un equipo de proyectos de software no puede
a la próxima entrega? responder a estas preguntas, o las responde inade-
Seguimientode defectos frente a objetivos de cali- cuadamente, se debe realizar una revisión completa
dad. ¿Realiza el seguimiento e informa periódicamente de las prácticas del proyecto. Cada una de las prácti-
del número de defectos encontrados en cada prueba de cas críticas señaladas anteriormente se tratan con deta-
inspección [revisión técnica formal] y ejecución des- lle a lo largo de la Parte 11 de este libro.
La gestión de proyectos de software es una actividad pletar el trabajo. Finalmente, el proyecto debe organi-
protectora dentro de la ingeniería del software. Empie- zarse de una manera que permita al equipo de software
za antes de iniciar cualquier actividad técnica y con- tener éxito.
tinúa a lo largo de la definición, del desarrollo y del El elemento fundamental en todos los proyectos de
mantenimiento del software. software es el personal. Los ingenieros del software
Hay cuatro << P’s >> que tienen una influencia sustan- pueden organizarse en diferentes organigramas de equi-
cial en la gestión de proyectos de software -personal, po que van desde las jerarquías de control tradiciona-
producto, proceso y proyecto-. El personal debe orga- les a los equipos de «paradigma abierto». Se pueden
nizarse en equipos eficaces, motivados para hacer un aplicar varias técnicas de coordinación y comunica-
software de alta calidad y coordinados para alcanzar una ción para apoyar el trabajo del equipo. En general, las
comunicación efectiva. Los requisitos del producto revisiones formales y las comunicaciones informales
deben comunicarse desde el cliente al desarrollador, persona a persona son las más valiosas para los pro-
dividirse (descomponerse) en las partes que lo consti- fesionales.
tuyen y distribuirse para que trabaje el equipo de soft- La actividad de gestión del proyecto comprende
ware. El proceso debe adaptarse al personal y al medición y métricas, estimación, análisis de riesgos,
problema. Se selecciona una estructura común de pro- planificación del programa, seguimiento y control.
ceso, se aplica un paradigma apropiado de ingeniería Cada uno de estos aspectos se trata en los siguientes
del software y se elige un conjunto de tareas para com- capítulos.
[AIR99] Airlie Council, «Performanced Based Management: ware Engineering, vol. 3 1, n.8 1 1, Noviembre de 1988,
The Program Manager’s Guide Based on the 16-Point pp. 1268-1287.
Plan and Related Metricw, Draft Report, 8 de Marzo,
1999. [CUR94] Curtis, B., et al., PeopIe Management Capahi-
lity Maturity Model, Software Engineering Institute,
[BAK72] Baker, F.T., «Chief Programmer Team Manage- Pittsburgh, PA, 1994.
ment of Production Programming», IBM Systems Jour-
nal, vol. 11, n.” 1, 1972, pp. 56-73. [DEM98] DeMarco, T., y T. Lister, Peopleware, 2.- edi-
ción, Dorset House, 1998.
[BOE96] Boehm, B., «Anchoring the Software Process»,
IEEE Sofhvare, vol. 13, n.Q4, Julio de 1996, pp. 73-82. [EDG95] Edgemon, J., «Right Stuff How to Recognize
[CON931 Constantine, L., «Work Organization: Paradigms It When Selecting a Project Manager», Application
for Project Management and Organization», CACM, vol. Development Trends, vol. 2, n.8 5, Mayo de 1995, pp.
36, n.” 10, Octubre de 1993, pp. 34-43. 37-42.
[COUSO] Cougar, J., y R. Zawacky, Managing and Moti- [FER98] Ferdinandi, P. L., «Facilating Communication»,
vating Computer Personnel, Wiley, 1980. IEEE Software, Septiembre de 1998, pp. 92-96.
[CURSS] Curtis, B., et al, «A Field Study of the Software [JAC98] Jackman, M., «Homeopathic Remedies for Team
Design Process for Large Systemw, IEEE Trans. Soft- Toxicity», IEEE Software, Julio de 1998, pp. 43-45.
50
CAPfTULO 3 CONCEPTOS SOBRE G E S T l 6 N DE PROYECTOS
[KRA95] Kraul, R., y L. Streeter, «Coordination in Software [REE99] Reel, J.S., «Critica1 S u c a x j Factors in Software
Development»,CACM, vol. 38, n." 3, Marzo de 1995, pp. Projects», IEEE Software, Mayo de 1999, pp. 18-23.
69-8 1. [WEI86] Weinberg, G., On Becoming a Terhnical Leader,
[MAN81] Mantei, M., «The Effect of Programming Team Dorset House, 1986.
Structures on Programming Tasks», CACM, vol. 24, n." 3, [WIT94] Whitaker, K., Managing Software Maniacs, Wiley,
Marzo de 1981, pp. 106-113. 1994.
[PAG85] Page-Jones, M., Practica1 Project Management, [ZAH94] Zahniser, R., «Timeboxing for Top Team Perfor-
Dorset House, 1985, p. VII. mance», SoJnYare Development, Marzo de 1994, pp. 35-38.
3.1. Basándose en la información contenida en este capítu- por el mercado de entretenimiento casero es intensa, hay cier-
lo y en su propia experiencia, desarrolle «diez mandamien- ta presión para terminar el trabajo rápidamente. ¿Qué estruc-
tos» para potenciar a los ingenieros del software. Es decir, tura de equipo elegiría y por qué? ¿,Quémodelo(s) de proceso
haga una lista con las diez líneas maestras que lleven al per- de software elegiría y por qué?
sonal que construye software a su máximo potencial. 3.8. Se le ha nombrado gestor de proyecto de una gran com-
3.2. El Modelo de Madurez de Capacidad de Gestión de Per- pañía de productos software. Su trabajo consiste en dirigir la
sonal (MMCGP) del Instituto de Ingeniería del Software hace versión de la siguiente generación de su famoso procesador
un estudio organizado de las «áreas clave prácticas (ACP)» de textos. Como la competencia es intensa, se han estableci-
que cultivan los buenos profesionales del software. Su profe- do y anunciado fechas límite rígidas. ¿Qué estructura de equi-
sor le asignará una ACP para analizar y resumir. po elegiría y por qué? ¿Qué modelo(s) de proceso de software
3.3. Describa tres situaciones de la vida real en las que el elegiría y por qué?
cliente y el usuario final son el mismo. Describa tres situa- 3.9. Se le ha nombrado gestor de proyecto de software de una
ciones en que son diferentes. compañía que trabaja en el mundo de la ingeniería genética.
Su trabajo es dirigir el desarrollo de un nuevo producto de soft-
3.4. Las decisiones tomadas por una gestión experimentada ware que acelere el ritmo de impresión de genes. El trabajo es
pueden tener un impacto significativo en la eficacia de un equi-
orientado a I+D, pero la meta es fabricar el producto dentro del
po de ingeniería del software. Proporcione cinco ejemplos para
siguiente año. ¿Qué estructura de equipo elegiría y por qué?
ilustrar que es cierto.
¿Qué modelo(s) de proceso de software elegiría y por qué?
3.5. Repase el libro de Weinberg [WEI86] y escriba un resu- 3.10. Como muestra la Figura 3.1, basándose en los resulta-
men de dos o tres páginas de los aspectos que deberían tener- dos de dicho estudio, los documentos parecen tener más uso
se en cuenta al aplicar el modelo MOI. que valor. ¿Por qué cree que pasó esto y qué se puede hacer
3.6. Se le ha nombrado gestor de proyecto dentro de una para mover el punto documentos por encima de la línea de
organización de sistemas de información. Su trabajo es cons- regresión en el gráfico? Es decir, ¿qué se puede hacer para
tniir una aplicación que es bastante similar a otras que ha cons- mejorar el valor percibido de los documentos?
truido su equipo, aunque ésta es mayor y más compleja. Los 3.11. Se le ha pedido que desarrolle una pequeña aplicación
requisitos han sido detalladamente documentados por el clien- que analice todos los cursos ofrecidos por la universidad e
te. ¿Qué estructura de equipo elegiría y por qué? ¿Qué mode- informe de las notas medias obtenidas en los cursos (para un
lo(~)de proceso de software elegiría y por qué? periodo determinado). Escriba una exposición del alcance que
3.7. Se le ha nombrado gestor de proyecto de una pequeña abarca este problema.
compañía de productos software. Su trabajo consiste en cons- 3.12. Haga una descomposición funcional de primer nivel
truir un producto innovador que combine hardware de reali- de la función diseño de página tratado brevemente en la
dad virtml con software innovador. Puesto que la competencia Sección 3.3.2.
Una excelente serie de cuatro volúmenes escrito por Wein- proporcionar una nueva visión profunda de los aspectos del
berg (Quality Software Management, Dorset House, 1992, proyecto de software y de su gestión. Purba y Shah (How to
1993,1994,1996)introduce los conceptos básicos sobre sis- Manage a Successful Software Project, Wiley, 1995) presen-
temas y conceptos de gestión, explica cómo usar medicio- tan un número de estudios de casos de proyectos que indican
nes eficazmente y menciona la «acción congruente», la por qué unos fracasaron y otros fueron un éxito. Bennatan
habilidad de «encajar» las necesidades del gestor, del per- (Software Pi-oject Management in a ClientlServer Environ-
sonal técnico y las del negocio. Proporciona información ment, Wiley, 1995) estudia aspectos específicos de gestión
Útil tanto a los gestores noveles como a los experimentados. asociados con el desarrollo de sistemas cliente/servidor.
Brooks (The Mythical Man-Month, Aniversary Edition, Se puede argumentar que el aspecto más importante de la
Addison-Wesley, 1995) ha actualizado su clásico libro para gestión del proyecto de software es la gestión de personal. El
51
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
libro definitivo sobre este tema lo escribieron DeMarco y Lis- jo más eficazmente. House (The Human Side of Project
ter [DEM98], pero se han publicado en los Últimos años los Management, Addison-Wesley, 1988) y Crossby (Running
siguientes libros donde se examina su importancia: Things: The art of Making Things Happen, McGraw-Hill,
Beaudouin-Lafon, M., Computer Supported Coopera- 1989) proporcionan directrices prácticas para gestores que
tive Work, Wiley-Liss, 1999. deban tratar con problemas humanos y técnicos.
Carmel, E., Global Software Teams: Collaborating Aunque no están relacionados específicamente con el
Across Borders and Time Zones, Prentice Hall, 1999. mundo del software, y algunas veces sufren demasiadas
Humphrey, W. S., Managing Technical People: Inno- simplificaciones y amplias generalizaciones, los libros de
vation, Teamwork, and the Software Process, Addison-Wes- gran éxito de Drucker (Management Challengesfor the 2ist
ley 1997. Century, Harperbusines, 1999), Buckingham y Coffman
Humphrey, W. S., Introduction to the Team of Software (First, Break Al1 the Rules: What the World’s Greatest
Process, Addison-Wesley, 1999. Managers Do DifSerently, Simon & Schuster, 1999) y Chris-
Jones, P. H., Handbook of Team Design: A Practitio- tensen (The Innovator’s Dilemma, Harvard Business School
ner’s Guide to Team Systems Development, McGraw-Hill, Press, 1997) enfatizan «nuevas reglas» definidas por una
1997. economía que cambia con rapidez. Viejos títulos como The
Karolak, D. S., Global Software Development: Mana- One Minute Manager e In Search of Excellence continúan
ging Virtual Teams and Environments, IEEE Computer proporcionando enfoques valiosos que pueden ayudarle a
Society, 1998. gestionar los temas relacionados con el personal de un modo
Mayer, M., The Virtual Edge: Embracing Technology más eficiente.
for Distributed Project Team Success, Project Management En Internet están disponibles una gran variedad de fuen-
Institute Publications, 1999. tes de información relacionadas con temas de gestión de pro-
Otro excelente libro de Weinberg [WEI86] es lectura yectos de software. Se puede encontrar una lista actualizada
obligada para todo gestor de proyecto y jefe de equipo. Le con referencias a sitios (páginas) web que son relevantes para
dará una visión interna y directrices para realizar su traba- los proyectos de software en http://www.pressmanS.cotn.
52