Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestin de Recursos TI
Por Richard H. Thayer
Resumen.- Este artculo trata de identificar y describir un conjunto global de la administracin de un proyecto y la administracin
de un proyecto de ingeniera de software que debe ser hecho por cualquier gerente al cual se le da responsabilidad de manejar
un proyecto de ingeniera de software. El artculo cubre las discusiones sobre las funciones Gerenciales de planificacin,
organizacin, asignacin de personal, direccin y control, en detalle; y las tareas especificas de la administracin de un proyecto
de ingeniera de software, las que son necesarias para manejar con xito un proyecto de ingeniera de software.
El concepto de la universalidad de la administracin nos permite usar las funciones gerenciales y actividades del proyecto de
ingeniera de software. A travs de un anlisis de arriba hacia abajo se dividieron cada una de las cinco funciones principales de
la administracin en un conjunto de actividades administrativas detalladas de las cuales a su vez se derivaron las actividades y
tareas detalladas de la administracin del proyecto de ingeniera de software. Estas actividades administrativas en detalle son las
funciones caractersticas de los gerentes. Las actividades y tareas detalladas tal como se describen en este artculo son las
funciones y responsabilidades caractersticas de la parte de ingeniera y de la administracin de un proyecto de ingeniera de
software.
1.
Introduccin
Este trabajo trata sobre administracin, administracin de un proyecto de ingeniera de software, y el concepto de universalidad
de gerencia.
Gerencia puede ser definida como todas las actividades y tareas emprendidas por una o ms personas, con el propsito de
planificar y controlar las actividades de otros, para lograr cumplir un objetivo o completar una actividad que no podra lograrse si
las otras personas actuaran solas.
La administracin de un proyecto, a su vez, se define como un sistema de procedimientos, prcticas, tecnologas y
conocimientos del tema que permiten la planificacin, organizacin, designacin de personal, direccin y control necesarios, para
poder manejar con xito un proyecto de ingeniera. El conocimiento (know-how, "saber como") en este caso quiere decir la
habilidad, antecedentes y buen juicio para aplicar el conocimiento efectivamente en la prctica. Si el producto es un software,
entonces la accin de gerenciar un proyecto de software se llama administracin de un proyecto de desarrollo de software, o
como se le conoce recientemente, administracin de un proyecto de ingeniera de software (SEPM). El gerente de un proyecto de
software se llama gerente de proyecto de ingeniera, o, en este artculo se le llama solamente gerente del proyecto (PM).
Los proyectos de ingeniera de software son frecuentemente, parte de un sistema global, de mayor tamao, que incluye equipo
(hardware), instalaciones, personal y procedimientos, adems del software. Los ejemplos son sistemas de industria area,
sistemas contables, sistemas de radar, etc. Estos proyectos de ingeniera de sistema son tpicamente manejados por uno o ms
gerentes de proyectos de sistemas (algunas veces llamados gerentes de programa) quienes administran una organizacin que
comprende ingenieros tcnicamente calificados (de todo tipo), expertos en el campo de aplicacin, especialistas cientficos,
programados, personal de apoyo y otros. Si el software se va a producir como un sistema de software auto suficiente, es decir,
un sistema que no se conecta con ningn otro sistema, que se est desarrollando para, o en un computador existente o
comercial de uso abierto, el gerente del proyecto de ingeniera de software puede ser el gerente del proyecto del sistema.
El concepto de universalidad de gerencia, viene de los principios de las ciencias administrativas, y quiere decir que:
La gerencia ejecuta las mismas funciones, sin tener en consideracin su posicin en la organizacin, ni la empresa
que se est administrando.
Las funciones de gerencia y actividades fundamentales son tareas caractersticas de los gerentes; las prcticas
gerenciales, mtodos, actividades detalladas y tareas, son propias de la empresa o del trabajo que se est
administrando.
Por lo tanto, las funciones y actividades fundamentales de la administracin pueden ser aplicadas universalmente a la
administracin de cualquier organizacin o actividad. La aplicacin de este concepto nos permite aplicar muchos de los
principales esfuerzos y xitos en el campo de la administracin al SEPM.
Estructura de fragmentacin del trabajo (WBS) - un mtodo jerrquico de representar las relaciones entre las partes
de un producto (ensambles, sub-ensambles, componentes, partes etc.) o actividad (proyecto, sub-producto, tareas,
sub-tareas, paquetes de trabajo etc). Se aplic por primera vez al desarrollo del software en los aos 1960s;
Organizaciones de matriz -un mtodo de organizacin de proyecto desarrollado a comienzos de los 60, para combinar
lo mejor de una organizacin funcional con lo mejor de una organizacin de proyecto;
Administracin por objetivos (MBO) una metodologa de motivacin temprana, de los aos 1950s;
Este informe toma un enfoque vertical para establecer un conjunto de responsabilidades, actividades y tareas de SEPM, que
deberan ser emprendidas por cualquier gerente al cual se le asigne La responsabilidad de administrar un proyecto de ingeniera
de software. El enfoque vertical, hacia abajo, involucra el dividir y asignar funciones de alto nivel a actividades y tareas de nivel
inferior.
El concepto de la universalidad de la administracin nos permite usar las funciones de administracin y actividades bsicas de
las principales corrientes de administracin, como las funciones y actividades de alto nivel del SEMP. La Figura 2.1 describe el
modelo de administracin clsico, auspiciado por autores tan conocidos en el campo de la administracin como Koontz y
O'Donnell, y otros.
En este modelo, la gerencia se parte en cinco funciones o componentes diferentes: planificacin, organizacin, dotacin de
personal, direccin y control (vea la Tabla 2.1 para las definiciones o explicaciones de esas funciones. Todas las actividades de la
administracin, tales como presupuestos, horarios, determinacin de las relaciones de autoridad, capacitacin, comunicacin,
monitoreo y etc., estn comprendidas en uno de estos cinco rubros.
Introduccin y Definiciones
La planificacin de un proyecto de ingeniera de software consiste en todas las actividades administrativas que conduzcan a la
seleccin, entre alternativas, de futuros cursos de accin para el proyecto, y el programa para llevar a cabo las acciones.
La planificacin involucra seleccionar los objetivos y las metas del proyecto y planificar estrategias, polticas, programas y
procedimientos para lograrlos. "Planificacin es decidir, por adelantado, qu hacer y cmo hacerlo, cundo hacerlo y quin lo va
a hacer".
Es esencial reconocer que todos los proyectos exitosos de ingeniera de software comienzan con un buen plan. Las
incertidumbres del futuro y los cambios, tanto en el medio de ingeniera de software como por fuentes externas, hacen que la
planificacin sea una necesidad. La planificacin focaliza la atencin en los objetivos. El mismo acto de aclarar y documentar los
objetivos del proyecto, harn resaltar los objetivos y metas del proyecto.
El plan del proyecto debe ser eficiente, es decir, las contribuciones del plan deben ser mayores que los costos del plan y de otros
efectos colaterales indeseables. La funcin de planificacin, no es un esfuerzo rgido de una sola vez. La planificacin debe ser
dinmica, flexible, y sujeta a cambio, cuando el ambiente o el proyecto cambien.
Temas principales de la planificacin
Los mayores temas (problemas) en la planificacin para un proyecto de ingeniera de software son:
Los requerimientos de software (objetivos del proyecto) son difciles de escribir correctamente.
Los costos del software y los horarios son difciles (si no imposible) de preparar con exactitud.
No se tienen a mano los criterios para seleccionar la mejor o ms apropiada metodologa (procedimiento) para el
anlisis, diseo, prueba o administracin del proyecto.
Es difcil escribir correcta, completamente y sin ambigedades los requerimientos del software. Como resultado, un proyecto
puede tener objetivos poco claros e incompletos. Esta vaguedad puede dar como resultado malos estimados de costos y de
horario. Los costos y horarios son elementos esenciales en un programa de manejo o de accin.
Sin embargo, lo ms importante es que la planificacin, con frecuencia, o es deficiente, o no se hace. O, cuando se hace, la
planificacin no es tomada en cuenta y no se mantiene (actualiza) si es que cambian las condiciones.
La funcin de planificacin usualmente no se puede transferir slo los cdigos son transferibles. Por eso, a los gerentes les
parece que la planificacin presenta un costo innecesario y que es mejor descartarla y ahorrar el dinero para la programacin y
las pruebas. An en proyectos del tipo DoD, donde generalmente se necesita un documento de planificacin dentro los primeros
30das del proyecto, el documento slo se revisa
superficialmente y en muchos casos se deja en un estante olvidado una vez producido.
Los presupuestos y horarios de software son difciles para preparar con exactitud. Hoy, existen en el mercado muchos modelos
de costos y horarios de software, cada uno de ellos requiere que el usuario estime el tamao del proyecto usando lneas de
cdigo u otra forma de medida, para un sistema que an tienen que ser producido. Este estimado es muy difcil de hacer en las
primeras etapas del proyecto, y con frecuencia resulta en una inexactitud en presupuesto u horario para el proyecto.
A pesar del nmero de diferentes mtodos de desarrollo de ingeniera de software (a veces llamadas prcticas de programacin
modernas) y herramientas automatizadas, que se encuentran hoy en el mercado, casi no hay datos que indiquen cules son las
tecnologas mejores o ms costo-efectivas. Los PM de ingeniera de sistema se enfrentan con la tarea ms difcil: seleccionar
qu mtodos y/o herramientas usar, si se usan. Y otra tarea casi tan difcil es convencer a los jefes de su corporacin que su
eleccin es una aproximacin costo-efectiva. Esto es, en parte, una de las razones por las cuales la mayora de los proyectos de
desarrollo de software usan poco las herramientas de software (Vea el trabajo de RADC y NASNSEL, y la discusin a este
captulo, para los mtodos que ayudan en esta rea).
Planificacin Actividades y Tareas
La Tabla 3.1 proporciona un delineamiento de las actividades y tareas e SEPM, que deben ser hechas por los PMs en la
planificacin de sus proyectos. El gerente del proyecto es responsable de desarrollar numerosos tipos de planes. La Tab1a 3.2
contiene una lista de planes de gerencia generales, que se aplican para cualquier proyecto de software.
Esta seccin discute y proporciona mayor detalle en las actividades y tareas esbozadas en la Tabla 3.1.
Producir especificaciones de los requerimientos de software antes de la revisin de los requerimientos de software en
formatos especificados por contrato o por estndares de la corporacin.
Obtener aprobacin escrita del cliente para esta especificacin como base de la aceptacin de proyecto final de
programa de cmputo y base de datos.
Obtener aprobacin escrita por parte de la corporacin y del cliente para todos los subsecuentes cambios de las
especificaciones.
Determinar los cursos de las acciones
En la mayora de los proyectos hay ms de una forma de entregar con xito el proyecto- pero no con igual costo, igual horario o
igual riesgo. Es la responsabilidad del PM el determinar un nmero razonable de enfoque o programas, para poder efectivamente
implementar los requerimientos de software. Por ejemplo, una aproximacin podra ser muy costosa en trminos de mano de
obra y mquinas, pero recudir dramtica y efectivamente la calendarizacin. Otro punto de vista podra ser reducir tanto el costo
como el tiempo, pero tomar un gran riesgo de no poder entregar el sistema. Una tercera aproximacin podra alargar el tiempo, y
por lo tanto reducir el costo del proyecto. El gerente debe analizar cada curso de accin para determinar las ventajas,
desventajas, riesgos y beneficios (Vea el artculo de Boehm para la descripcin de un modelo de ciclo de vida del desarrollo de
software que incorpora anlisis de riesgo y toma de decisiones).
Tome decisiones
El PM toma las decisiones ms importantes para el proyecto. l junto a su cliente, determina el futuro rumbo del proyecto.
Determina cul de los muchos caminos es el ms apropiado para lograr las metas y objetivos del proyecto.
El PM es el responsable por las decisiones comerciales, que comprenden costos, calendarizacin, estrategias de diseo, y
riesgos (vea el artculo de Bunyard y Coward).
El PM tambin es el responsable de seleccionar (o su compaa selecciona por l a travs del uso de estndares) los mtodos
mediante los cuales su proyecto ser manejado y desarrollado. Por ejemplo, qu estrategias se usarn, si sern analizados los
requerimientos por mtodos de anlisis estructurado" o por diagramas de Warnier-Orr". Se harn las pruebas de arriba hacia
abajo, de abajo hacia arriba, de las dos formas? Qu herramientas, tcnicas y procedimientos se usarn para la planificacin de
un proyecto de desarrollo de software? PERT, CPM, diagramas de carga de trabajo, diagramas de parada de trabajo (WSS),
diagrama de Gantt etc., son ejemplos de herramientas de manejo de proyectos.
Introduccin y definiciones
Organizar un proyecto de ingeniera de software es todas las actividades administrativas que resultan del diseo de una
estructura formal de tareas de ingeniera de software, y las relaciones de autoridad entre estas tareas.
Organizacin comprende determinar y dividir en items las actividades del proyecto que son necesarias para lograr los objetos del
proyecto de desarrollo de software, y arreglar estas actividades en grupos lgicos. Tambin involucra asignar dichos grupos de
actividades a una entidad de la organizacin (frecuentemente llamada un equipo del proyecto) dentro del proyecto y delegar
responsabilidad y autoridad para que el equipo lleve a cabo sus actividades.
El propsito de una estructura organizativa es "focalizar los esfuerzos de muchos en una meta seleccionada". El PM selecciona
la mejor estructura para el proyecto tomando en consideracin el ambiente existente del proyecto.
Puntos a considerarse cuando se organiza
Los puntos ms importantes (o problemas) cuando se hace la organizacin de un proyecto de ingeniera de software son:
Es difcil determinar la mejor estructura organizativa para el proyecto por ejemplo proyecto matriz o funcin.
Las responsabilidades para las actividades y tareas a veces no se definen o no son claras.
Las organizaciones funcionales de software y los miembros individuales del personal, no creen que la estructura
organizativa de tipo matriz sea beneficiosa para ellos.
Hay un espectro completo de tipos de organizacin de proyectos que van desde el tipo meramente funcional hasta el tipo de
proyecto "todo en uno". Es difcil determinar la mejor estructura de organizacin para el proyecto y para la organizacin que est
construyendo el proyecto. La organizacin del proyecto se ve como la mejor estructura organizativa para desarrollar un gran
sistema de software. Crea un control centralizado sobre el proyecto y hace que un gerente sea responsable por la entrega final
del producto de software. La gerencia ms alta y los clientes se sienten "cmodos" con este arreglo. Al contrario, la organizacin
funcional se ve como la estructura ptima para alentar a ingenieros de software que son altamente experimentados, difciles de
contratar y muy caros. Las personas individuales de desarrollo se sienten bien con este arreglo.
La organizacin de tipo matriz se acepta hoy en da como la mejor concesin entre las organizaciones del proyecto y funcional.
Pero debido a los conflictos que se originan en la organizacin de matriz (problema de dos jefes), y entre los gerentes de lnea
funcional, quienes proporcionan los ingenieros de software a la organizacin de matriz, y el PM del proyecto de matriz, muchos
gerentes ven a la organizacin de matriz como conflictiva para toda la organizacin en general.
Estructura de organizacin de proyecto -puede ser un tipo de organizacin funcional, de proyecto o de matriz.
Estructura de equipo -pueden ser equipos sin ego, de programador jefe, o de proyecto (jerrquico).
Muchos PMs no pueden darse el lujo de seleccionar el mejor tipo organizativo porque esto est determinado por la poltica a nivel
de compaa o de la corporacin. Sin embargo, independientemente de quin lo haga, de debe identificar el tipo y estructura
organizativa, que ser ms compatible con las necesidades y metas de la aplicacin y ambiente del proyecto.
Los siguientes prrafos describen estos tipos organizativos.
4.3.2.1 Estructuras organizativas convencionales.- Una organizacin de lnea tiene la responsabilidad y autoridad de realizar el
trabajo que representa la misin principal de la unidad organizativa ms grande. En contraste, la organizacin de personal es un
grupo de expertos funcionales que tienen la responsabilidad y autoridad para ejecutar actividades especiales que ayudan a la
organizacin de lnea a hacer su trabajo. Todas las organizaciones de una compaa son o de lnea o de personal.
4.3.2.2. Estructura organizativa de proyecto.- Una estructura organizativa de proyecto es una organizacin especial que se ha
establecido para el propsito de desarrollar y construir algo, que es demasiado grande para hacerlo por uno, o como mximo, por
algunos individuos. En un proyecto de ingeniera de software, el "algo" es un sistema de software. La estructura organizativa de
proyecto puede ser impuesta en la parte superior de una organizacin de lnea o de personal. Por ejemplo, una organizacin de
ingeniera de software funcional puede ser una organizacin de lnea o de personal (Ver Figura 4.1 para ilustrar el uso de las
cinco organizaciones de lnea que se usan en organizaciones funcionales de ingeniera de software). La Figura 4.1 es la
estructura organizativa del ejemplo de la Tabla 4.1.
Gerentes de proyectos -responsables del desarrollo e implementacin de sistema dentro de reas funcionales
importantes. Dirigen los esfuerzos de los ingenieros, analistas y programadores de software y de otro personal del
proyecto.
Ingeniero de software -disea y desarrolla software para impulsar los sistemas de cmputo. Desarrollan firmware,
unidades, software especializado como por ejemplo grficos, comunicaciones, controladores, operando sistemas y
aditamentos amigables para usuarios. Trabajan estrechamente con ingenieros de hardware y programadores de
aplicaciones y sistemas, y necesitan comprender todos los aspectos del producto.
Programadores cientficos de ingeniera, programadores analistas -ejecutan un diseo detallado del programa, cdigo,
pruebas, depuracin, documentacin de aplicaciones de cmputo cientficas de ingeniera y otras aplicaciones que
son de naturaleza matemtica.
Muchos ayudan a las especificaciones y diseo total del sistema.
Defina Las responsabilidades y autoridad
La autoridad puede ser definida como "el grado de discernimiento en los puestos organizativos, confiriendo a las personas que
ocupan este puesto el derecho de usar su criterio en la toma de decisiones. Se dice con frecuencia que la responsabilidad no
puede ser compartida ni delegada.
Koontz y O'Donnell apoyan este punto de vista al definir la responsabilidad como "la obligacin que tienen los subordinados con
sus supervisores para ejercer la autoridad delegada en ellos, para lograr los resultados esperados". Este artculo toma la posicin
de que la responsabilidad para las actividades o tareas organizativas sea asignada a al posicin organizativa (junto con la
autoridad correspondiente) al momento que se crea o se modifica el puesto. Se designa al PM. ya su vez se asigna la
responsabilidad y la correspondiente autoridad a los diferentes puestos organizativos agrupados de tareas dentro del proyecto.
El PM tambin establece las lneas de autoridad entre las tareas. Por lneas de autoridad se entiende qu tareas tienen
precedencia sobre otras, para lograr un objetivo. Por ejemplo, anlisis tienen autoridad sobre diseo, diseo sobre cdigo, etc.
Establezca las calificaciones del puesto
Se debe identificar las calificaciones para cada puesto de la organizacin. Qu tipo de persona quiere para su proyecto? Cunta
experiencia es necesaria en el rea de aplicacin: ninguna, una, dos, tres aos? Cunta educacin es requerida: Bachiller en
Ciencias en Computacin, Maestra en Ciencias en inteligencia artificial? Qu tipo de entrenamiento se requiere, ya sea antes o
despus de iniciado el proyecto? Es necesario saber FORTRAN, JAVA o algn otro lenguaje? El establecer las calificaciones
apropiadas y exactas para los puestos har posible que el gerente dote del personal apropiado al proyecto.
Algunos ejemplos cortos de calificaciones tpicas para puestos para nombres y puestos de ingeniera de software. se muestran
como ejemplo:
10
Introduccin y definiciones
Dotar de personal a un proyecto de ingeniera de sistemas consiste en todas las actividades de administracin que involucra el
llenar y mantener ocupados los puestos que fueron establecidos para la estructura organizativa del proyecto. Esto incluye
seleccionar candidatos para los puestos y entrenamiento y otros, que desarrollen tanto a los candidatos como a los involucrados
a lograr sus tareas con eficiencia. El dotar de personal tambin involucra finalizar al personal asignado al proyecto, cuando sea
necesario.
El dotar de personal, no es organizativo. El asignar personal involucra a gente. Para dotar de personal es ocupar los roles
creados por la estructura organizativa del proyecto a travs de una seleccin efectiva, evaluacin y desarrollo de personal. El
objetivo de dotar de personal es asegurarse que los roles del proyecto sean ocupados por personas capaces que quieren
ocuparlos.
Temas ms importantes en relacin a dotar de personal
Los temas principales (o problemas) al dotar personal para un proyecto de ingeniera de software son:
o La productividad de los programadores, analistas e ingenieros de software no es predecible y vara mucho de un
individuo a otro.
o Las universidades no estn produciendo un nmero suficiente de graduados en ciencias de cmputo que puedan
entender el proceso de ingeniera de software.
o Con frecuencia, los gerentes de proyecto son seleccionados para puestos gerenciales sin tener el beneficio de
entrenamiento gerencial.
Uno de los principales puntos en la dotacin de personal es que la productividad de programadores e ingenieros de software no
es predecible y vara mucho entre individuos. En el estudio hecho hace tiempo por Sackman y otros, las diferencias de
productividad entre un programador y otro era tan alta como 26 a 1. En su libro Economa de Ingeniera de Software, Boehm
reporta diferencias en productividad en la capacidad del personal / equipo tan alta como 4 a 1. Esta imposibilidad de
compatibilizar de una manera exacta la productividad del personal a la productividad esperada de la estructura organizativa,
contribuye mucho a nuestra inhabilidad de determinar con exactitud el costo de un sistema de software.
Las universidades no estn produciendo un nmero suficiente de ingenieros de software. La mayora de los 2500 programas de
ciencias de cmputo en los Estados Unidos grada cientficos en computaci6n te6rica como mximo o solamente programadores
(codificadores) altamente calificados como mnimo. La mayora de personal industrial y gente involucrada en contratar a los
nuevos graduados universitarios indican que les gustara que los graduados de ciencias de cmputo tuviesen ms educaci6n y
experiencia en desarrollar sistemas grandes de software -es decir, habilidades de ingeniera de software.
Los gerentes de proyecto con frecuencia son designados a sus puestos sin tener el beneficio de entrenamiento gerencial. Es
comn hoy elevar a la posicin de gerente a aquellos programadores e ingenieros de software que han demostrado tener
capacidad como programadores e ingenieros de software. El principal problema hoy en da es proporcionar un grado aceptable
de entrenamiento a aquellos ingenieros de software evaluados, de tal manera que sean capaces de manejar un proyecto de
ingeniera de software.
Dotar de personal para actividades y tareas
La Tabla 5.1 proporciona una gua para todas las actividades y tareas de SEPN que deben ejecutarse por los PMs para dotar de
personal a sus proyectos. El balance de esta secci6n discute y proporciona mayor detalles de las actividades y tareas delineadas
en la Tabla 5.1
5.3.1. Llenar los puestos organizativos
El gerente es responsable de establecer los estndares de puestos, para los puestos que fueron establecidos durante la
organizacin de su proyecto. Debe poder asegurar que a travs de esos estndares podr obtener gerentes capaces y
productivos, ingenieros de software, analistas y programadores capaces y productivos y tambin las otras personas de apoyo
necesarias para dotar completamente de personal a un proyecto. El PM es directamente responsable de seleccionar y reclutar
gente calificada para su proyecto, y deber asegurarse de las calificaciones y experiencia de la gente seleccionada para sus
puestos.
Al dotar de personal a cualquier proyecto de software, se tendrn en consideracin los siguientes factores, al llenar la estructura
organizativa.
11
12
13
Introduccin y definiciones
Dirigir un proyecto de ingeniera de software consiste en todas las actividades administrativas que tratan de los aspectos
interpersonales por el cual el personal del proyecto comprende y contribuye al logro de las metas del proyecto. Una vez que los
subordinados han sido entrenados y orientados' el PM tiene la contina responsabilidad de clarificar sus asignaciones, guiarlos
hacia un rendimiento mejor y motivarlos para trabajar con entusiasmo y confianza hacia las metas del proyecto.
La direccin, como la dotacin de personal, involucra a gente. Dirigir es algunas veces considerado como sinnimo de liderar
.Dirigir un proyecto significa proporcionar liderazgo para el proyecto, supervisin cotidiana al personal del proyecto, delegar
autoridad a la entidad organizativa ms baja posible, coordinando las actividades de los miembros del proyecto, facilitando las
comunicaciones entre los miembros del proyecto y aquellos que estn por fuera del proyecto, resolviendo conflictos, manejando
cambios y documentando cualquier decisin importante.
Puntos importantes en la direccin
Los puntos importantes (o problemas) en la direccin de un proyecto de ingeniera de software son:
o Los mtodos actuales de especificar requerimientos, disear sistemas o planificar proyectos a veces presentan una
barrera de comunicacin entre las organizaciones claves.
o El personal del desarrollo de software no est motivado a usar, ni interesado en las tcnicas modernas de ingeniera
de software (brecha de transferencia tecnolgica).
o Los beneficios, premios, o pagos que pueden motivar al personal de desarrollo del software para que sean ms
productivos, todava no han sido identificados.
Una de las mayores metas de la ingeniera de software es mejorar la comunicacin entre las muchas organizaciones qu estn
involucradas en el desarrollo de un sistema de software. La mayora de los documentos de ingeniera de software estn escritos
en Ingls, idioma que es notoriamente impreciso y ambiguo. La investigacin en ingeniera de sistema est tratando de
determinar las maneras de desarrollar ms y usar tcnicas y herramientas que hagan que las especificaciones de requerimientos
de ingeniera de software, los documentos de diseo y otros documentos de ingeniera de software comuniquen qu es lo que
quieren decir. Se han tomado ya pasos para mejorar esta situacin.
La transferencia de tecnologa de define como el intervalo de tiempo entre el desarrollo de un nuevo producto, herramientas o
tcnica, y su uso por los consumidores de ese producto, herramienta artculo Redwine y Riddle estiman que ese tiempo puede
estar en el orden de 15 -20 aos. La causa de esta brecha en la transferencia de tecnologa se puede ver desde dos puntos de
vista:
o Punto de vista de gerente de proyecto :
Los PMs, son renuentes a introducir herramientas y mtodos que no son familiares, que no se han usado
antes, y que pueden aumentar los riesgos a su proyecto.
El uso de mtodos no familiarizados puede hacer ms difcil al PM a estimar el tamao del proyecto, el
costo y el calendario.
14
Hay una alta probabilidad de que la primera vez que el equipo del proyecto use una nueva herramienta o
tcnica, se produzcan incrementos en costos y calendarios, en el proyecto.
La mayora del personal de ingeniera de software estn bien pagados, trabajan en ambientes agradables y estn
razonablemente satisfechos con su posicin en la vida. Por lo tanto, de acuerdo con la jerarqua de Maslow de necesidades no
satisfechas, un ingeniero de software promedio est en un lugar alto en la escalera de necesidades satisfechas. La mayora de
los ingenieros de software estn en el nivel de estima y reconocimiento y ocasionalmente estn alcanzando el nivel de autoactualizacin. As, uno de los puntos que la gerencia enfrenta hoy en da es la cuestin de qu hacer para motivar a los
ingenieros de software a que produzcan ms y mejor software (llamado sicologa de software en algunos crculos), ya que el
dinero slo no parece ser suficiente.
Dirija actividades y tareas
La Tabla 6.1 proporciona los lineamientos de todas las actividades del SEPM y las tareas que deben lograr los PMs al aplicar la
direccin de sus proyectos. El balance de esta seccin discute y da ms detalles de las actividades y tareas delineadas en la
Tabla 6.1.
6.3.1 Proporcione liderazgo
El PM proporciona liderazgo a su equipo de administracin de proyecto. Su trabajo es interpretar los planes y requerimientos
para asegurar que todos en su equipo de proyecto trabajen para una meta comn. Liderazgo es una combinacin de poder del
lder y de su habilidad para guiar a individuos. El poder del PM proviene de su posicin (de liderazgo como PM (o lder del
equipo, programador jefe, etc); esto se llama poder posicional. O, el poder del PM proviene tambin de la propia simpata del
gerente, habilidad como gerente para motivar, o carisma; a esto se llama Poder Personal.
Un buen lder puede alinear las metas personales de sus subordinados con las metas del proyecto. Los problemas se presentan
cuando el PM que tiene el poder posicional entra en conflicto con un subordinado dentro del proyecto que tiene poder personal.
Para una discusin de los diferentes usos del poder por parte de gerentes, lea a Boyatzis.
6.3.2 Supervise al personal
El PM es responsable para vigilar e trabajo de los miembros del proyecto y proporcional supervisin diaria y direccin al personal
que se le ha asignado o al cual se le ha autorizado para ejercer control. Es su responsabilidad proporcionar una gua y, cuando
sea necesario. Disciplinar a estas personas para que cumplan con sus tareas asignadas.
Su responsabilidad de supervisin involucra tareas cotidianas como: tomar el horario de reloj a los empleados al comenzar el da,
aprobar tiempo de vacaciones, llamar la atencin a una persona por no cumplir con una cita, o probar un desvo de la poltica de
la compaa. Otras veces, el PM puede proporcionar una decisin crucial en un enfoque de diseo de software; hacer un a buena
presentacin de un punto a la gerencia superior que resulte en ms y en mejores herramientas y equipos; o es una persona que
necesariamente escucha los problemas personales de los miembros del proyecto.
6.3.3 Delegue autoridad
El PM de ingeniera de software es tambin responsable de delegar autoridad al personal del proyecto. Asigna funciones a los
sub-grupos, equipos e individuos, de manera que puedan lograr esas tareas correcta y aplicadamente. Tpicamente, un buen PM
siempre delegar autoridad hacia abajo, a los niveles ms bajos del proyecto.
La delegacin apropiada del tipo correcto de autoridad puede dejar tiempo libre a los gerentes por no tener que hacer
supervisiones de rutina y decisiones, y les deja concentrarse en las necesidades importantes de su proyecto El miembro
individual del proyecto deber entender qu autoridad se le est delegando, y para qu responsabilidad. Tambin deber
entender claramente el mbito, las limitaciones de la autoridad y las razones de la autoridad.
6.3.4 Motive al personal
El liderazgo comn, solamente, no es suficiente. El PM es responsable de motivar e inspirar al personal a hacer lo mejor que
puede. Se pueden aplicar muchas tcnicas motivacionales de la administracin en general, para los proyectos de ingeniera de
software. Tales como: administracin por objetivo, jerarqua de necesidades de
Maslow, factores de higiene de Herzberg, y algunas veces el carisma del gerente. El PM siempre debe dar la atencin especial
requerida a los ingenieros altamente calificados, tcnicamente entrenados y cientficos que forman parte de su proyecto. El
dinero atrae a buenos ingenieros de software a una compaa, pero los dlares no los mantienen. Ms discusin de motivacin
15
16
Presunciones de la Teora y
El gasto del esfuerzo fsico y mental en el trabajo es tan natural como jugar o descansar.
El control externo y la amenaza de castigo no son las nicas maneras de hacer que una persona haga un
esfuerzo hacia los objetivos de la organizacin. Las personas ejercitarn auto direccin y auto-control en el
servicio de objetivos, cuando se sienten comprometidas.
El compromiso hacia los objetivos es una funcin de la recompensa asociada con su cumplimiento.
El humano promedio aprende, bajo condiciones adecuadas, no solamente a aceptar sino que busca el tener
responsabilidad.
Teora Z
La Teora Z es una combinacin de los estilos gerenciales americanos y japoneses. Los principios bsicos de la Teora Z son:
La gente necesita metas y objetivos. Si no pueden fcilmente poner obstculos en su propio progreso y en el
progreso de la compaa. Las metas ayudan a que uno siga en el camino correcto, mientras que se pierde un
mnimo de tiempo por falta de productividad.
La motivacin de trabajador es esencial para un buen rendimiento y deber ser reforzada tanto positiva como
negativamente. Motivacin opcional se deriva de un reconocimiento por parte de los colegas y por parte de los
colegas y por parte de la gerencia, y en menor grado, por incentivos de promocin y recompensa.
Solamente con metas y motivacin no se evitar que la gente cometa errores. Los gerentes deben corregir
conduciendo hacia los caminos que sean los mejores para los intereses de la compaa.
Los mejores intereses de cualquier compaa se obtienen cuando el trabajo de cada individuo es estandarizado
para asegurar que se logren metas similares por medios similares. A su vez, sugerencia que mejora una rea en
particular es asimilada automticamente en otras reas.
Las metas deben cambiar a medida que las condiciones de trabajo y necesidades de la corporacin cambian.
Anticipando a esos cambios, la teora Z da el mecanismo para un cambio gradual.
6.3.5 Coordine actividades
El PM es responsable de coordinar las actividades del proyecto para asegurar que la gente entienda y se comunique unos con
otros. El gerente quiere asegurar que el otro personal en contacto con su proyecto est al tanto de la estructura organizativa, las
tareas de su organizacin est haciendo y qu se espera de las otras organizaciones.
Por coordinar entendemos arreglar que las entidades del proyecto trabajen juntas hacia metas comunes con un mnimo de
friccin. Los documentos polticas, procedimientos etc., pueden ser vistos distinto por las diferentes personas. La tarea del PM es
reconciliar diferencias en enfoques, esfuerzos y horarios, y compatibilizar estas diferencias para beneficio del proyecto.
La coordinacin se usa a veces como sustituto de comunicacin ya que quiere decir la necesidad de informar a las
organizaciones que interviene qu acciones se han tomado, o se van a tomar, que efecten las organizaciones que estn en
contacto.
6.3.6 Facilite las comunicaciones
Junto con la coordinacin el PM es responsable de facilitar las comunicaciones tanto dentro de su proyecto, como entre su
proyecto y otras organizaciones. Comunicacin quiere decir los medios de intercambiar la informacin entre las entidades que
estn trabajando hacia una meta comn. A su vez, facilitar quiere decir hacer ms expedito, fcil, y ayudar al progreso de
comunicacin. Por ejemplo, el PM debe difundir los planes para dotar de personal y las polticas de promocin tan pronto como
sea prctico. Nada puede destrozar la moral de una organizacin ms rpidamente que rumores falsos que lleven a
equivocaciones. Un buen PM ver que el personal de su proyecto est bien informado para que los rumores se desvanezcan
rpido.
Crculos de calidad.- An cuando se considera una tcnica importante de motivacin, los crculos de calidad, constituyen un
excelente medio para mejorar las comunicaciones entre los miembros del proyecto y el PM. Una compaa us crculos de
calidad para hacer que los miembros del equipo de ingeniera de software para que seleccionen las mejores metodologas de
ingeniera de sistema para la compaa.
Aunque esta prctica de usar crculos de calidad se origin en la filosofa gerencial Norteamericana, se ha implementado bien
solamente en el Japn. En los crculos de calidad, los empleados se renen peridicamente en pequeos grupos para desarrollar
sugerencias para mejoras en la calidad y en la productividad. Los crculos de calidad proporcionan tierra frtil para crear un
ambiente favorable para la gerencia. Para implementar un crculo de calidad:
o
o
Entrene a los gerentes ya otros lderes del proyecto sobre la efectividad de los crculos de calidad. El entrenamiento
debe incluir aquellas tcnicas organizativas como agendas, hojas de trabajo, listas de chequeo, y ms importante,
participacin de grupo.
Encuntrense como parte de la agenda de trabajo de la compaa, durante el tiempo de la compaa y en las
instalaciones de la compaa. Esto refuerza el compromiso de las compaas para cada crculo y la necesidad de que
17
sea exitoso. La membresa del crculo de calidad debe ser voluntaria, si es que se quiere ver como una oportunidad
ms que como un requisito.
Organice la reunin de tal manera que no haga perder el tiempo de los miembros. Se debe tomar accin sobre las
sugerencias y aquellas ideas que parecen ser ms beneficiosas para mejorar la compaa deberan seguir
trabajndose.
Para una mayor discusin sobre crculos de calidad, aplicados a organizaciones de desarrollo de software, vea a Couger.
6.3.7 Resuelva conflictos
Es la responsabilidad del PM resolver conflictos entre los miembros del staff, y entre su personal y agencias externas, tanto en
asuntos tcnicos como de manejo. No se espera necesariamente que el PM sea un experto en todos los aspectos de su
proyecto. Sin embargo debe tener el buen juicio para reconocer el mejor enfoque para resolver un problema especial tcnico o
gerencial.
El PM debe reducir la oportunidad para conflictos futuros retirando fuentes potenciales de desacuerdo, siempre que sea posible,
por ejemplo, miembros del equipo que tengan posiciones ms o menos iguales, debern tener los mismos beneficios, acceso a
gerencia. sitios de parqueo, etc.
Otro tipo de conflicto que el PM debe evitar es el conflicto entre el empleado y l mismo. Cuando este conflicto alcanza
proporciones tpicas, se llama quema.
6.3.8 Maneje el cambio
El PM es responsable de alentar ideas independientes e innovaciones para lograr las metas del proyecto. Un buen gerente
siempre podr acomodarse a un cambio, cuando dicho cambio es costo-efectivo y beneficioso para el proyecto.
Es importante que el PM intente controlar el cambio y no eliminarlo. Est claro que los requerimientos cambiarn, el diseo
cambiar, y que la tecnologa para la cual se est construyendo el sistema de software cambiar. Tambin habr cambios
sociales. Lo que es aceptable construir, o los procedimientos para construirlo, que son aceptables en un momento, no sern
necesariamente aceptables en otro momento. La gente cambia, los nuevos grupos de ingenieros son ms despiertos, se les han
enseado nuevas maneras para desarrollar sistemas de software. La idea no es pues eliminar el cambio, sino controlarlo.
Yourdon presenta un plan simple, paso a paso, para la transferencia (cambio) de nueva tecnologa de software, dentro de una
organizacin de software:
o Explique los riesgos y beneficios de la nueva tecnologa.
o Proporcione entrenamiento para el equipo del proyecto.
o Haga un prototipo de la tcnica antes de usarla.
o Proporcione apoyo tcnico a travs de todo el proyecto.
o Escuche a las preocupaciones y problemas de usuario.
o Evite concentrarse en la tecnologa a expensas del proyecto.
Como otro ejemplo de controlar (es decir sacar la mejor ventaja) el cambio, en la mayora de organizaciones de software,
generalmente se considera un problema el recambio del personal. El trabajo de Bartol y Martin discute cmo tomar lo mejor del
recambio del personal y verlo como una buena cosa, y no al contrario.
6.3.9 Documente las decisiones de direccin
Documente todas las tareas, asignaciones de autoridad (a quin y para qu), y el resultado de la solucin de los conflictos.
Adems, documente todas las decisiones que implican lneas de comunicacin, coordinacin y solucin de conflictos.
7.
Introduccin y definiciones
Controlar un proyecto de ingeniera de software son todas las actividades de aseguren que las operaciones actuales van de
acuerdo a lo previsto. Mide el cumplimiento de las metas, planes; muestra cuando hay un desvo, y al imponer acciones para
corregir las desviaciones, ayuda al cumplimiento de los planes.
El proceso bsico de control involucra el establecimiento de planes y estndares, la medida del rendimiento versus estos planes
y estndares, y la correccin de las desviaciones.
18
19
20
Las revisiones de hitos son generalmente presididas por el cliente. El que desarrolla el producto presenta el status actual y su
progreso, el trabajo hecho hasta ese momento, el dinero gastado, el calendario transcurrido, y cualquier problema de manejo, o
problema tcnico que pueda haber ocurrido desde la ltima revisin La revisin es un xito cuando el cliente o la alta gerencia da
permiso para que el que est haciendo el desarrollo pase a la siguiente fase.
Concepto de lnea de base: Una lnea de base es un acuerdo sobre la configuracin tcnica en un punto del ciclo de vida de
desarrollo del software. Normalmente, se acuerdan las lneas de base entre los que desarrollan el producto y los clientes, y se
controlan y mantienen por sistema de manejo de configuracin de software. Las lneas de base comnmente usadas por DoD
son lneas de base funcional, asignada y de producto.
7.3.2.2 Manejo de configuracin de software: El manejo de configuracin de software (SCM) es un mtodo para controlar y
reportar el status del software. SCM es la disciplina de identificar la configuracin del un sistema en puntos discretos en el
tiempo, para propsitos de controlar sistemticamente los cambios a esta configuracin a travs del ciclo de vida del sistema.
7.3.3 Mida los resultados
El PM es responsable de los resultados del proyecto tanto durante como al final del proyecto. Por ejemplo, l debera medir lo
que se entrega en la fase actual, contra lo que se debera entregar segn el plan. Es responsable de determinar si el proyecto se
desva del plan del proyecto, estndares y otros requerimientos. Los resultados medidos pueden ser resultados manejables
(procesos) o resultados tcnicos (productos). Un ejemplo de un resultado de proceso sera si las especificaciones estn
interpretadas correctamente o no. Algunas de las herramientas y mtodos para medir los resultados se describen en los
siguientes prrafos.
7.3.3.1 Flderes de desarrollo de unidad: El folder de desarrollo de unidad (UDF) es una forma especfica de cuaderno que ha
probado ser eficiente y efectivo para recolectar y organizar los productos de software conforme se vayan produciendo. El
propsito del UDF es proporcionar una aproximacin ordenada para el desarrollo de una unidad de programa y para proporcionar
visibilidad de manejo v control sobre el proceso de
7.3.3.2 Sistemas de recorridos e inspecciones:
Los sistemas de recorridos e inspecciones son revisiones infonl1ales de un producto de software (especificacin de diseo,
cdigo, procedimientos de prueba, etc), conducidos por los colegas del grupo al cual se revisa. Los recorridos son una crtica al
producto de software por parte de los colegas para el nico propsito de encontrar errores. El sistema de inspeccin es otra
revisin por colegas, desarrollada por Michael Fagan de IBM en 1976. El sistema de inspeccin originalmente es mucho ms
fonl1al que el recorrido. Cambios recientes a los procedimientos de recorridos los han hecho ms fonl1ales. Aunque el trmino de
revisin por colegas (pares, gente del mismo nivel) es recorrido, el tnl1ino inspeccin se est popularizando.
7.3.3.3 Auditoria (independiente): La auditora del proyecto de ingeniera de software es una revisin independiente del proyecto
de ingeniera de software para detenl1inar el cumplimiento con los planes de requerimientos, especificaciones, lneas de base,
estndares, polticas y garanta de calidad del software.
Una auditoria independiente es una auditoria hecha por una organizacin de afuera, no asociada con el proyecto.
Ocasionalmente se considera apropiado traer un equipo independiente para el propsito de ayudar en la auditoria del proyecto.
El lado positivo es que un equipo independiente puede proporcionar una opinin sin juicios previos. Esto tendra como resultado
reducir enconos en la organizacin, ya que este equipo no representara un lado ni otro. En el caso de necesidad de un
conocimiento de experto, el equipo independiente puede complementar al talento existente.
El lado negativo de esto es que el equipo de auditoria tiene que hacerlo al ritmo del proyecto. Tienen que sobrepasar la curva de
aprendizaje. El equipo de auditoria requiere que haya actividad en ese momento, para as ser efectivo.
7.3.4.3.4 Verificacin y validacin: Dos mtodos para determinar si el producto es correcto son la verificacin y la validacin.
Verificacin es asegurar que cada fase del ciclo de vida interprete correctamente la especificacin del paso anterior. Validacin es
asegurar que cada producto de software entregado funcione tal como se prescribe por sus requerimientos.
7.3.3.5 Pruebas ( Unidad. /Integracin): La prueba es el ejercicio controlado del cdigo del programa para exponer errores. La
prueba de la unidad (a veces llamada depuracin) es la prueba de una unidad de cdigo (usualmente un mdulo) por el
programador que program la unidad.
La prueba de integracin es la prueba de que cada unidad o sub-elemento en combinacin con el sistema bajo prueba, pueda
mostrar la existencia de errores entre las unidades o sub-elementos del sistema.
7.3.3.6 Auditoria de configuracin del software: Auditorias de configuracin de software proporcionan el mecanismo para
determinar el grado al cual el estado actual del sistema de software, refleja al sistema de software contenido en el documento de
lnea de base y requerimientos.
21
8.
RESUMEN
En este artculo y en muchos otros documentos, los trminos manejo de proyecto y manejo de
proyecto de ingeniera de software (SEPM) se usan de manera intercambiable. Ahora podemos
ver porqu. El manejo de un proyecto de ingeniera de software y otros proyectos requiere mucho
de las mismas herramientas tcnicas, enfoques y mtodos que la administracin en general.
Como se ha dicho al comienzo, la funcin y las actividades son las mismas; slo las actividades y
las tareas detalladas son diferentes.
Siguiendo o implementando todas las funciones, tareas e ideas del manejo del proyecto, que se
describen en este artculo, no garantiza el xito del proyecto. Un excelente gerente de proyecto
siempre puede solucionar o darle vuelta a las deficiencias en la organizacin, dotacin de
personal, presupuestos, estndares y otros inconvenientes.
Una mala gerencia cae en el problema real o imaginario, y ninguna regla, poltica, estndar o
tcnica lo ayudarn. Este artculo es para un gerente de proyecto promedio, quien con un poco de
suerte y un poco de conocimiento de qu tiene que hacer y cmo lo tiene que hacer, -entregar su
proyecto de software a tiempo, dentro de los costos ya satisfaccin del cliente.
22