Logo Studenta

DocsTec-2101

¡Este material tiene más páginas!

Vista previa del material en texto

INSTITUTO TECNOLOGICO Y DE ESTUDIOS
SUPERIORES DE MONTERREY
CAMPUS MONTERREY
DIVISION DE GRADUADOS EN ELECTRONICA,
COMPUTACION, INFORMATICA
Y COMUNICACIONES
CARACTERISTICAS DE LOS EQUIPOS
AUTODIRIGIDOS DISPERSOS GEOGRAFICAMENTE
ENFOCADOS AL DESARROLLO DE SISTEMAS DE
SOFTWARE, EMPLEANDO HERRAMIENTAS DE
ADMINISTRACION DE PROYECTOS.
TESIS
PRESENTADA COMO REQUISITO PARCIAL
PARA OBTENER EL GRADO ACADEMICO DE:
MAESTRO EN ADMINISTRACION DE TECNOLOGIAS
DE INFORMACION
POR
RAYMUNDO FLORES FLORES
DICIEMBRE 2002
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS
SUPERIORES DE MONTERREY
de M o n t e r r e y
MAESTRÍA EN ADMINISTRACIÓN DE TECNOLOGÍAS DE
INFORMACIÓN
TESIS
Características de los equipos autodirigidos dispersos
geográficamente enfocados al desarrollo de sistemas de
software, empleando herramientas de administración de
proyectos.
POR
Raymundo Flores Flores
Diciembre del 2002
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS
SUPERIORES DE MONTERREY
DIVISIÓN DE GRADUADOS EN ELECTRÓNICA COMPUTACIÓN
INFORMACIÓN Y COMUNICACIONES.
PROGRAMAS DE POSGRADO EN ELECTRÓNICA, COMPUTACIÓN,
INFORMACIÓN Y COMUNICACIONES.
Los miembros del comité de tesis recomendamos que la presente tesis
del Ing. Raymundo Flores Flores sea aceptada como requisito parcial
para obtener el grado académico de Maestro en Administración de
Tecnologías de Información.
Comité de Tesis:
David A. Garza Salazar.
Director de los Programas de Postgrado en Electrónica,
Computación, Información y Comunicaciones.
DICIEMBRE del 2002.
DEDICATORIA.
DEDICATORIA.
A Dios por haberme permitido venir a este mundo, recibir un cuerpo,
tener una bella familia, ser probado y tener la oportunidad de regresar
con Él.
A ti Mamá que sin ti no seria nadie, gracias por tu apoyo incondicional,
tu ejemplo y tu infinito amor, simplemente la mejor mamá del mundo,
te adoro Ledia.
Especialmente a ti Papá ya que con esto cumplo parte de tus sueños,
espero lo recibas en el lugar donde te encuentres Tata, te quiero
mucho(t)
A ti hermanita por todo tu apoyo y esos sentimientos tan lindos que Dios
te ha dado y que siempre has estado dispuesta a compartirlos conmigo.
A mis niños Alexis y Ángel Jacob.
iii
AGRADECIMIENTOS.
A mi familia por su amor, apoyo y comprensión. Son la base de mi vida.
A mis maestros quienes me obsequiaron lo que con nada se paga, sus
conocimientos y experiencias.
A mi asesora Lety, por ser mi guía en esta aventura que emprendimos
hace un año, por tu tiempo, paciencia y por todos tus brillantes
consejos.
A mi "hermano" Luigi por el tiempo dedicado en este trabajo como
sinodal, por tu apoyo en los momentos difíciles y sobretodo por ser un
excelente amigo.
A Cuauhtémoc por enseñarme tantas cosas durante estos dos años,
permitirme trabajar con él en donde pude obtener información valiosa
para este trabajo y por el tiempo dedicado siendo sinodal.
A Alma Elena, porque fue una pieza clave a mi llegada a Monterrey, por
su ayuda incondicional y por ser mi amiga, te quiero mucho.
A Carolina por el tiempo dedicado en revisar mi tesis, por estar conmigo
en los buenos y en los malos momentos, mi amiga incondicional.
Finalmente pero no menos importantes todos mis valiosos amigos y
amigas de Veracruz y de Monterrey, ustedes son parte de mi familia:
Javier, Aura, Nelson, Susy, Nayda, Alina, Edaly, Benjamín, Paul.
¡V
RESUMEN.
El ambiente que se vive actualmente dentro del ámbito
empresarial, obliga a las organizaciones a que deban implementar
conceptos innovadores que les permita tener ventajas competitivas
sobre las demás. Las empresas de desarrollo de software no son la
excepción, al contrario se puede decir que ellas son las que viven este
ambiente de una manera más directa, dada la rapidez con que cambian
las tecnologías.
El presente trabajo se encuentra enfocado precisamente a
proporcionar una guía de mejores prácticas a las empresas de desarrollo
de software, y a proporcionar un contenido de investigación a cerca de
metodologías, técnicas y herramientas a cerca de 4 áreas que en la
actualidad bien aplicadas de manera conjunta, proporcionan a las
empresas una ventaja competitiva.
La administración de proyectos que ha surgido como una
disciplina relativamente nueva en los últimos años, debido a la
importancia que ha cobrado para las organizaciones la forma de llevar el
control desde el inicio hasta el fin de los proyectos con prácticas de
planeación y seguimiento bien definidas.
La parte que se refiere al recurso humano y un concepto
realmente innovador los equipos de alto rendimiento o equipos
autodirigidos que implica proporcionar el empowerment y autonomía
necesarios a los miembros del equipo para que puedan tomar todas las
decisiones referentes a los proyectos y que puedan hacerse cargo de los
procesos y actividades de los mismos. Esto permite aprovechar al
máximo las capacidades de cada uno de los miembros de los equipos.
Las ciencias computacionales se han desarrollado de una manera
exponencial en los últimos años, dada esta característica resulta
importante que se analicen las tendencias y conceptos actuales sobre el
desarrollo de software.
Finalmente un concepto que desde hace algún tiempo se viene
manejando dado el ímpetu que ha surgido por impulsar mercados
globalizados, la colaboración a distancia que es el hecho de que dos
o más personas que se encuentren en lugares diferentes puedan
interactuar en algún proyecto utilizando reglas, herramientas y técnicas
de colaboración.
V
Tabla de contenidos
DEDICATORIA iii
AGRADECIMIENTOS ¡v
RESUMEN v
Tabla de contenidos vi
Tabla de figuras ix
Capítulo 1. Introducción 1
1.1. Antecedentes generales 1
1.2. Objetivo 2
1.3. Restricciones 2
1.4. Metodología y métodos 2
1.5. Producto final 3
1.6. Contribución esperada 3
Capítulo 2. Administración de proyectos 4
2.1. Introducción 4
2.2. Antecedentes de la administración de proyectos 4
2.3. Definiciones de proyecto 5
2.4. La administración de proyectos 7
2.4.1. Etapas y procesos de la administración de proyectos 9
2.5. ¿Cuándo debe usarse la administración de proyectos? 14
2.5.1. Usos específicos 14
2.6. El rol del administrador de proyectos 15
2.7. Conclusiones 16
Capítulo 3. Desarrollo de Software 17
3.1 Introducción 17
3.2 Definiciones básicas sobre desarrollo de software 18
3.3 Las cuatro dimensiones del desarrollo de software 19
3.4 Modelos de desarrollo de software 21
3.4.1 El modelo de cascada o ciclo de vida clásico 21
3.4.2 Modelo rápido basado en prototipos 25
3.4.3 El modelo de espiral 26
3.4.4 El modelo de desarrollo evolutivo 28
3.4.5 Modelo Orientado a Objetos 31
3.4.6 Elección de un modelo 33
3.5 Extreme Programming 34
3.5.1 Introducción 34
3.5.2 Definiendo Extreme Programming 35
3.5.3 Elementos de la Metodología XP 35
3.6 Conclusiones 37
Capítulo 4. Equipos de alto rendimiento 38
4.1 Introducción 38
4.2 Definiciones básicas 38
4.2.1 Variaciones en la productividad 39
vi
4.3 Tipos de equipos 39
4.4 Equipos de alto rendimiento 41
4.4.1 Definición de equipos de alto rendimiento 41
4.4.2 Características de los equipos de alto rendimiento 42
4.4.3 Funciones Realizadas por los equipos de alto rendimiento. ...47
4.4.4 Puntos a considerar sobre los equipos de alto rendimiento. ..48
4.5 Conclusiones 49
Capitulo 5. Colaboración a distancia 50
5.1 Introducción 50
5.2 ¿Qué es Colaboración? 50
5.3 Trabajando de manera colaborativa 51
5.4 Un Equipo Diferente: el Equipo Virtual 52
5.4.1 Tamaño y composición de los equipos en línea 54
5.5 El Tiempo y el Espacio como Marco de Referencia 55
5.6 Groupware 57
5.7 Factores que Impiden el Surgimiento de una Comunidad
Colaborativa 59
5.8 Conclusiones 61
Capitulo 6. Investigación de campo 62
6.1 Metodología 62
6.2 Determinación de la población y la muestra 62
6.3 Métodos y herramientas 64
6.3.1 La herramienta 65
6.3.2 Evaluación de la herramienta 65
6.4 Conclusiones 66
Capítulo 7. Caso de estudio: Dirección de Integración de Soluciones
(DIS) 67
7.1 Historia 67
7.2 Forma de organización del equipo de trabajo 67
7.3 Herramientas y prácticas utilizadas 69
7.4 Liderazgo en el equipo70
7.5 Procesos de administración y desarrollo de software 70
7.6 Resultados obtenidos 72
7.7 Variables obtenidas del caso de estudio 73
Capítulo 8. Análisis de resultados 75
8.1 Sección I. Administración de proyectos 75
8.1.1 Pregunta 1 75
8.1.2 Pregunta 2 76
8.1.3 Pregunta 3 77
8.1.4 Pregunta 4 78
8.1.5 Pregunta 5 79
8.1.6 Pregunta 6 81
8.1.7 Pregunta 7 82
8.1.8 Pregunta 8 83
vii
8.1.9 Pregunta 9 84
8.2 Sección I I . Desarrollo de software 85
8.2.1 Pregunta 1 85
8.2.2 Pregunta 2 86
8.2.3 Pregunta 3 88
8.2.4 Pregunta 4 89
8.2.5 Pregunta 5 90
8.2.6 Pregunta 6 91
8.2.7 Pregunta 7 92
8.3 Sección I I I . Equipos autodirigidos 93
8.3.1 Pregunta 1 93
8.3.2 Pregunta 2 94
8.3.3 Pregunta 3 95
8.3.4 Pregunta 4 96
8.3.5 Pregunta 5 97
8.3.6 Pregunta 6 98
8.3.7 Pregunta 7 99
8.3.8 Pregunta 8 100
8.4 Sección IV. Colaboración a distancia 101
8.4.1 Pregunta 1 101
8.4.2 Pregunta 2 102
8.4.3 Pregunta 3 103
8.4.4 Pregunta 4 104
8.4.5 Pregunta 5 105
8.5 Conclusiones 106
Capítulo 9. Guía para trabajar con equipos autodirigidos dispersos
geográficamente 108
9.1 Introducción 108
9.2 Prueba de grado de desarrollo de las empresas 109
9.3 Recomendaciones generales 112
9.3.1 Administración de proyectos 112
9.3.2 Desarrollo de software 113
9.3.3 Equipos autodirigidos 114
9.3.4 Colaboración a distancia 115
9.4 Conclusiones 116
Capitulo 10. Conclusiones y trabajos futuros 117
10.1 Conclusiones finales 117
10.2 Trabajos futuros 119
Anexos 120
Anexo 1. Cuestionario 120
Bibliografía 127
viii
Tabla de figuras.
FIG. 2 .1 . FACTORES QUE INFLUYEN EN UN PROYECTO (CLELAND,1999) 6
FIG. 2 . 2 LA TRIPLE CONSTANTE (MCONNEL, 1 9 9 6 ) 8
FIG. 2.3. PROCESO DE ADMINISTRACIÓN TÍPICO (MCONNEL, 1996) 9
FIGURA 2.4. ÁREAS Y PROCESOS DE LA ADMINISTRACIÓN DE PROYECTOS (PMBOOK,
2000) 11
FIGURA 2.5. RELACIÓN EXISTENTE ENTRE LOS PROCESOS EN LAS FASES (PMBOOK,
2000) 12
FIGURA 2.6. FORMA DE INTERACCIÓN Y TRASLAPE DE LOS PROCESOS (KIMMONS,
1999) 13
FIGURA 3.1 LAS CUATRO DIMENSIONES DEL PROCESO DE DESARROLLO DE
SOFTWARE(MCCONNELL,1996) 19
FIGURA 3.2 MODELO DE ETAPAS (PRESSMAN, 2000) 22
FIGURA 3.3 MODELO CASCADA(PRESSMAN, 2000) 23
FIGURA 3.4 MODELO RÁPIDO DE PROTOTIPOS(MCCONNELL,1996) 25
FIGURA 3.5 CICLO DE VIDA DE ESPIRAL(PRESSMAN, 2000) 27
FIGURA 3.6 MODELO DE DESARROLLO EVOLUTIVO(PRESSMAN,1997) 29
FIGURA 3.7 MODELO ORIENTADO A OBJETOS(PRESSMAN, 1988) 31
FIG. 7.1 ESTRUCTURA DEL EQUIPO DE TRABAJO(MÉNDEZ, 2001) 68
FIGURA 9.1 ETAPAS DE AVANCE DE LAS EMPRESAS 110
ix
Capítulo 1. Introducción
1.1. Antecedentes generales.
La administración de proyectos gana terreno en las empresas,
principalmente, las dedicadas al desarrollo de software, debido a la
naturaleza de sus proyectos que incluyen la coordinación de fases
ligadas al modelo de desarrollo de software que utilizan.
La preocupación de las empresas por la implementación de la
administración de proyectos se ve acrecentada por el alto porcentaje de
proyectos etiquetados como no exitosos. Con el propósito de reducir
esta cifra, se ha colocado a personas encargadas específicamente a
estas tareas, reconociendo ampliamente los beneficios.
Así mismo, algunas empresas han evolucionado su manera de
organizar sus equipos de trabajo, marcando una tendencia hacia los
denominados equipos autodirigidos, en donde los participantes están
firmemente integrados y cuentan con cierta autonomía y empowerment
para tomar decisiones en lo referente al desarrollo de los proyectos.
Otra tendencia más novedosa es la denominada "colaboración a
distancia", en donde en forma conjunta las personas pueden desarrollar
proyectos a pesar de no encontrarse físicamente en el mismo lugar; los
resultados han sido favorables con el apoyo de las nuevas tecnologías
que facilitan este modo de trabajo, el uso de herramientas como los
grupos de colaboración, los denominados chats y las teleconferencias,
entre otras, han permitido que existan proyectos exitosos desarrollados
por equipos geográficamente distantes.
Tomando en cuenta lo anterior, resulta importante investigar y
analizar los factores relevantes que influyen en el éxito de la
administración de los proyectos de desarrollo de software en las
empresas que utilizan Equipos Autodirigidos (EA), y determinar las
características predominantes y el modelo de trabajo ideal para lograr la
colaboración de los integrantes de los mismos en forma distante.
1
1.2. Objetivo.
Determinar las características inherentes a un equipo
autodirigido y disperso geográficamente para la producción de
proyectos de desarrollo de software exitosos, usando
herramientas de administración de proyectos.
Se habla de un proyecto con éxito cuando el proyecto finaliza en
el tiempo estimado, con los recursos materiales y humanos asignados y
cumpliendo con los requerimientos especificados por el cliente.
1.3. Restricciones.
• El alcance de esta investigación incluye solo proyectos de
desarrollo de software.
• Las aplicaciones del desarrollo de software están restringidas al
software administrativo y al software enfocado a la educación.
• La investigación de campo se llevará a cabo en empresas de
Monterrey, Nuevo León y su área metropolitana, así como en la
Dirección de Integración de Soluciones de la Vicerrectoría de
Tecnologías de Información del Sistema Tecnológico de Monterrey.
• La información recopilada dependerá de las restricciones
impuestas por la organización.
1.4. Metodología y métodos.
Considerando que el producto final de este trabajo de tesis
consiste en proponer una guía, donde se muestren las características
que deben cumplirse para poder trabajar con equipos autodirigidos
dispersos geográficamente que desarrollen productos de software
apoyados en metodologías de administración de proyectos, se ha optado
por aplicar metodologías cualitativas, ya que son las que pueden apoyar
mejor para determinar dichas características.
Durante la primera etapa de la investigación, se realiza el estudio
del caso en el que el autor se ha visto involucrado, debido a su trabajo
dentro de la Dirección de integración de soluciones perteneciente al
Sistema Tecnológico de Monterrey, el cual proporciona las variables que
serán investigadas durante la segunda etapa, que se sustenta con la
aplicación de un cuestionario. Este cuestionario se realiza con el objetivo
de obtener las características a ser incluidas en la guía.
2
1.5. Producto final.
El producto final consistirá en una guía que muestre las
características que deben cumplirse para poder trabajar con equipos
autodirigidos dispersos geográficamente, en el desarrollo de productos
de software, apoyados con metodologías de administración de
proyectos.
1.6. Contribución esperada.
Ofrecer a los departamentos de desarrollo de software una guía
que les permita trabajar con equipos autodirigidos de manera local y
dispersos geográficamente. Demostrar la factibilidad de los equipos
autodirigidos y los factores que deben ser considerados para fomentar el
desarrollo de habilidades de comunicación virtual y asincrona para
proyectos de desarrollo de software.
3
Capítulo 2. Administración de proyectos.
"No hay nada
permanente excepto el
cambio". (Heráclito,
Grecia. 513 A. C.)
2.1. Introducción.
Si contamos con los 100 mejores músicos del planeta y decidimos
ponerlos a tocar todos juntos, pero no disponemos de un director de
orquesta entrenado que los dirigiera, el resultado no sería algo
deleitable a los sentidos, ya que los tiempos en los que debe tocar cada
músico no podrían ser distinguidos y finalmente sería un caos, lo mismo
sucede con los proyectos.
El objetivo de este capítulo es identificar y describir el proceso de
administración de proyectos, así como proporcionar un marco de
referencia sobre las metodologías existentes.
2.2. Antecedentes de la administración de proyectos.
¿Qué tienen en común la gran muralla China, el techo de la capilla
Sixtina, el Apolo 11, los Juegos Olímpicos, Microsoft Windows, las
pirámides egipcias y el viagra?, que todos ellos son el resultado de
proyectos exitosos, (Hobs, 2000), y que fueronlogrados, en cierta
forma, utilizando la administración de proyectos. Desde los primeros
tiempos de su actividad organizada los seres humanos han concebido y
realizado proyectos; en nuestra vida cotidiana constantemente estamos
emprendiendo proyectos; como por ejemplo, organizarnos para ir a un
picnic o realizar alguna remodelación a nuestra casa, solo que rara vez
estamos dispuestos a dirigirlos de la manera adecuada y en ocasiones
no salen como lo esperamos.
La administración de proyectos formal se remonta a finales de los
50's, debido a la necesidad de desarrollar e implementar la filosofía de la
administración en los sistemas militares. Sin embargo, no existe alguien
a quien se le atribuya la invención de la administración de proyectos
como tal. Sus principios son encontrados en la industria de la
construcción y en la ingeniería. El uso de fuerzas de trabajo y otros
equipos organizacionales contribuyó a que emergiera como una filosofía
para la integración de las actividades de las organizaciones.
4
Conforme fue madurando esta ciencia, surgieron nuevas técnicas
que apoyaron el desempeño de los administradores, técnicas sobre
planeación, motivación, liderazgo y control, hasta llegar al día de hoy en
donde existen organizaciones como El Project Managment Institute
(PMI) encargada de enseñar, certificar y apoyar a los administradores
de proyectos.
2.3. Definiciones de proyecto.
Regularmente en nuestra vida cotidiana usamos el término
proyecto aunque en realidad en pocas ocasiones reconocemos las
características del mismo y no tenemos una visión clara de lo que
implica un proyecto. A continuación se enuncian algunas de las
definiciones más importantes de lo que es un proyecto y se identifican
las partes que lo conforman.
"Un proyecto es un proceso único con un principio y un fin
definido; consiste en una serie de actividades interrelacionadas entre sí,
que deben ejecutarse para lograr un objetivo predeterminado" (PMBOK,
1996).
"El éxito de un proyecto va a depender, entre otras cosas, del
esfuerzo, cuidado y habilidades aplicadas en la planeación inicial del
mismo". (Vázquez Ramón,1998).
Todos los proyectos como lo muestra la figura 2.1 involucran tres
factores clave: el tiempo, el costo y la calidad. La importancia de éstos
varía de un proyecto a otro; en algunas ocasiones alguno de éstos tres
será un factor crítico dentro del desarrollo del proyecto y el resultado
exitoso depende de la habilidad del administrador para compensar la
carencia de alguno, aunque la calidad del proyecto no puede verse
afectada de ninguna forma, debe ser la base del producto final. (Hobs,
2000).
Tiempo Proyecto C o s t o
Calidad
FIG. 2 .1 . FACTORES QUE INFLUYEN EN UN PROYECTO (CLELAND,1999) .
Otra definición dada por Cervantes (1997) dice que "un proyecto
es un trabajo que se ejecuta una sola vez, que tiene un inicio y un final,
un objetivo especificado con claridad, un presupuesto establecido y una
organización".
"Un proyecto es una unidad organizacional dedicada a la
culminación de una meta - generalmente la terminación exitosa de un
producto desarrollado en el tiempo, dentro del presupuesto y en
cumplimiento con unas especificaciones predeterminadas". (Gaddis,
1991).
Después de tener estas definiciones y de analizarlas, podemos
decir que las características principales de los proyectos son:
• Es una actividad única, esto quiere decir que se realiza sólo una
vez, en un espacio de tiempo definido.
• Cuenta con un inicio y un fin, la cual es una característica que
debe ser bien delimitada desde la primera fase del proyecto. En
este sentido muchos administradores tienen algunos problemas ya
que no identifican los subproyectos que se involucran, los cuales
deben ser definidos en otro espacio de tiempo.
• Tiene objetivo o meta central, la razón de ser del proyecto y no
debe ser perdido de vista durante el desarrollo del mismo.
• Un factor importante y variable es el presupuesto, ya que dentro
de todo proyecto determina los recursos con los que se contará
para alcanzar los objetivos deseados.
• Por último, las especificaciones que van de la mano con la
calidad y el servicio al cliente se deben definir correctamente
desde el inicio todas las especificaciones y dar satisfacción a las
necesidades del cliente.
2.4. La administración de proyectos.
Si se le preguntara a un administrador de proyectos
experimentado acerca de cual es su objetivo principal cuando toma un
proyecto, probablemente contestaría que es "terminar el trabajo, en
tiempo, costo y de acuerdo a las especificaciones acordadas".
Podría pensarse que los conceptos "administración" y
"administración de proyectos" se refieren a lo mismo, pero es una
equivocación, dado que un proyecto es ejecutado una sola vez, lo cual
es muy diferente a administrar procesos que son repetitivos; otro punto
de diferencia es que el equipo de trabajo asignado a un proyecto es
temporal y los administradores en general deben trabajar con las
mismas personas, regularmente.
Cleland (1999) define a la administración de proyectos como: " El
arte de dirigir y coordinar recursos humanos y materiales a lo largo de
la vida de un proyecto, usando técnicas modernas de administración
para lograr los objetivos predeterminados de dimensión, costo, tiempo,
calidad y satisfacción de los participantes".
El Instituto de Administración de Proyectos (PMI, por sus siglas en
inglés) describe a la administración de proyectos como la aplicación del
conocimiento, las habilidades, las herramientas y las técnicas para
proyectar actividades en el orden en el que se requieren obtener y
satisfacer las necesidades del cliente, comprendidas en dimensión,
costo, tiempo y calidad.
Rosenau (1998) distingue algo que él denomina la triple
constante, la cual se refiere a cumplir las especificaciones en el tiempo y
cumpliendo con el costo presupuestado. La figura 2.2 muestra cómo es
que esta "triple constante" funciona.
C
<ü
Q.
E
ai
i/i
O)
Q
^Especificaciones
Costo
/Tiempo
FlG. 2.2 LA TRIPLE CONSTANTE (MCONNEL, 1996 ) .
Lewis (1997) define la siguiente fórmula en base a esta triple
constante: el costo = f (P, T, S ), donde P es el desempeño, T es el
tiempo y S es la dimensión del proyecto. Por lo tanto si P y S se
incrementan, el costo, generalmente, se verá afectado de manera
proporcional.
Por su parte, Dobson (1999) afirma que un proyecto puede formar
parte de un conjunto de proyectos, lo que se conoce como portafolio de
proyectos, donde cada proyecto se considera como una tarea y todos
estos proyectos son diferentes en tiempo o tamaño.
Para lograr realizar estas tareas que pudieran parecer tan
complicadas, los administradores de proyectos han desarrollado una
variedad de herramientas que le permiten administrar los recursos
humanos y materiales; un ejemplo de éstas son: las gráficas de Gantt,
gráficas de recursos y herramientas de software, que los apoyan
durante todo el proceso de la administración de proyectos.
8
2.4.1. Etapas y procesos de la administración de proyectos.
El proceso de administración de proyectos consiste en una serie de
actividades contenidas en un proceso, el cual consiste en realizar tareas,
trabajando con los miembros del equipo y con otras personas a fin de
cumplir con un calendario, un costo y unos objetivos de desempeño.
"Un proceso se define como un conjunto de operaciones en el
diseño, el desarrollo y la producción de algo" En otras palabras es un
lapso de tiempo en el que algo es creado (Cleland, 1999).
El proceso de administración consta de 5 partes, las cuales se
identifican claramente en la figura 2.3.
Control
Dirección
Motivación
Proceso de
Administración
Planeación
Organización
FlG. 2 .3 . PROCESO DE ADMINISTRACIÓN TÍPICO (MCONNEL, 1996) .
"La planeación responde a la pregunta de ¿qué es lo que quiero
hacer y por qué?; la organización, ¿quién esta involucrado y por qué?;
la motivación, ¿cómo puedo obtener un mejor desempeño de los
integrantes del equipo?; la dirección, ¿quién decide qué y cuándo?; y el
control, ¿quién decide los resultadosy basado en qué estándares?".
(PMBOOK, 2000).
Sin embargo, el proceso de administración de proyectos envuelve
un mayor número de funciones, debido a que los proyectos son únicos y
a que conllevan cierto grado de incertidumbre. Las fases que muestra la
figura 2.3 son sólo la base de ellas; para poder tener una idea más
amplia se observo la clasificación que el Project Managment Institute
proporciona. Las áreas de conocimiento de la administración de
proyectos describen el conocimiento y las prácticas de acuerdo con los
procesos que las componen. Estos procesos se organizan en nueve
áreas como se describe en la figura 2.4.
Administración de la integración: Describe los procesos
requeridos para asegurar que los diversos elementos del proyecto
estén propiamente coordinados.
Administración del alcance: Describe el proceso necesario para
asegurar que el proyecto incluye todo el trabajo, y sólo el trabajo
requerido para completar el proyecto exitosamente.
Administración del tiempo: Describe el proceso requerido para
asegurar la terminación del proyecto a tiempo.
Administración del costo: Describe el proceso requerido para
asegurar que el proyecto sea completado dentro del presupuesto
aprobado.
Administración de la calidad: Describe el proceso requerido para
asegurar que el proyecto satisfaga las necesidades para las que fue
llevado a cabo.
Administración de los recursos humanos: Describe el proceso
requerido para hacer el uso efectivo de la gente involucrada en el
proyecto,
Administración de la comunicación: Describe el proceso requerido
para asegurar a tiempo y apropiadamente la generación, la
recolección, la diseminación, el almacenamiento y la disposición de la
información del proyecto.
Administración del riesgo: Describe el proceso concerniente con la
identificación, el análisis y la respuesta a los riesgos del proyecto.
Administración de adquisiciones: Describe el proceso requerido
para adquirir bienes y servicios del exterior de la organización.
10
Administración de
Proyectos
1.
Administración de la
integración del proyecto.
Desarrollo del plan del
proyecto.
Ejecución del plan del
proyecto.
Control general de cambios.
4.
Administración del costo
del proyecto.
Planeación de recursos.
Estimación de costos.
Presupuesto de costos.
Control de costos.
7.
Administración de la
comunicación del
proyecto
Planeación de las
comunicaciones.
Distribución de la
información.
Reporte del rendimiento.
Acercamiento
administrativo.
2.
Administración del
alcance del proyecto.
Iniciación.
Planeación del alcance.
Definición del alcance.
Verificación del alcance.
Control de cambios del
alcance.
5.
Administración de la
calidad del proyecto.
Planeación de la calidad.
Aseguramiento de la
calidad.
Control de la calidad.
8.
Administración del riesgo
del proyecto.
Identificación del riesgo.
Cuantificación del riesgo.
Desarrollo de respuesta al
riesgo.
Control de respuesta al
riesgo.
3.
Administración del tiempo
del proyecto.
Definición de actividades.
Secuencia de actividades.
Estimación de la duración
de actividades.
Desarrollo de la agenda.
Control de la agenda.
6.
Administración de los
recursos humanos del
proyecto.
Planeación organizacional.
•-i Adquisición del personal.
i Desarrollo del equipo.
9.
Administración de
adquisiciones del
proyecto.
Planeación de
adquisiciones.
Planeación de solicitudes.
Solicitudes.
Selección del origen.
Administración de contratos.
Clausura del contrato
FIGURA 2.4. ÁREAS Y PROCESOS DE LA ADMINISTRACIÓN DE PROYECTOS (PMBOOK, 2000).
11
Cada una de estas áreas recibe igual importancia durante todo el
ciclo de vida del proyecto y se ven afectadas unas con otras ante
cualquier variación. Están formadas por procesos, los cuales consisten
en una serie de acciones que se realizan para lograr un resultado. Los
procesos en los proyectos son realizados por personas y generalmente
caen en dos grandes categorías:
• Procesos de administración de proyectos: Se refieren a la
descripción y la organización del trabajo del proyecto. Estos
procesos son aplicables a la mayoría de los proyectos.
• Procesos orientados a productos: Se refieren a la
especificación y a la creación del producto del proyecto. Estos
procesos están definidos en el ciclo de vida del proyecto y varían
de acuerdo al área de aplicación.
Ambas clasificaciones de procesos se traslapan e interactúan
durante el proyecto. Los procesos mostrados en la figura 2.4 pueden ser
organizados en cinco grupos de uno o más procesos cada uno, la figura
2.5 muestra los procesos y la relación existente entre ellos.
Proceso de
¡nicialización
Proceso de
control
Procesos de
planeación
Proceso de
cierre
Proceso de
ejecución
FIGURA 2.5. RELACIÓN EXISTENTE ENTRE LOS PROCESOS EN LAS FASES (PMBOOK, 2000).
12
• Procesos de iniciación: Reconocer que un proyecto o fase debe
iniciar y comprometerse a llevarlo a cabo.
• Proceso de planeación: Diseñar y mantener un esquema de
trabajo para cumplir con las necesidades del negocio que el
proyecto pretende alcanzar.
• Proceso de ejecución: Coordinar a la gente y otros recursos
para llevar a cabo el plan.
• Proceso de control: Asegurar que los objetivos del proyecto se
cumplan, a través del monitoreo y la medición del progreso y
tomando acciones correctivas cuando sea necesario.
• Proceso de cierre: Formalizar la aceptación del proyecto o fase
para llevarlo a su conclusión.
Para reconocer cómo es que estos procesos interactúan en las
diferentes fases que abarca un proyecto debemos observar la figura 2.6.
Nivel de
actividad
Proceso de
Ejecución
Proceso de
Planeación
Proceso
de
Iniciaciói
Proceso de
Cierre
Fase de Inicio Tiempo Fase Final
FIGURA 2.6. FORMA DE INTERACCIÓN Y TRASLAPE DE LOS PROCESOS (KIMMONS, 1999).
La administración de proyectos es un proceso continuo. Nuevas
demandas serán requeridas al equipo asignado al proyecto y éstas
deben ser coordinadas por el administrador de proyectos, a través del
proceso de iniciación, planeación, ejecución, control y cierre.
En la práctica, el administrador de proyectos, además de
encargarse de llevar a cabo esas fases, deberá aprender a tratar con
problemas y oportunidades a manera de que pueda completar el ciclo de
administración de proyectos, el cual si es planeado y ejecutado de
manera efectiva y eficiente puede complementar la estrategia de la
organización.
13
2.5. ¿Cuándo debe usarse la administración de proyectos?.
La principal razón para usar la administración de proyectos es la
de proporcionar diseño y estrategia a la organización, de forma que se
pueda enfocar en las actividades necesarias para efectuar cambios
dentro de la misma.
La modificación de productos, servicios y procesos es requerida
para poder soportar los cambios ambientales que las empresas
enfrentan en la actualidad. Esos cambios, usualmente, requieren que la
organización enfoque y organice de una manera correcta sus recursos
para el diseño de nuevas estrategias que le permitan estar preparada
para el futuro.
2.5.1. Usos específicos.
Uno de los principales usos de la administración de proyectos
dentro de las organizaciones es el de soportar la crisis de las estrategias
empleadas para la administración, pero la utilización de esta ciencia se
ha incrementado debido al crecimiento y la velocidad de los cambios en
el entorno de las empresas.
Ejemplo de lo anterior son los procesos de manufactura: la
administración del inventario, la planeación de requerimientos de
materiales, la integración de la manufactura computarizada y el uso de
robots que realizan tareas repetitivas relativamente a bajo costo. Así
mismo, se asocia la administración de proyectos con la creación y la
implementación de cosas que la organización no tiene, es decir, para
proyectos nuevos.
La administración de proyectos también puede ser utilizada para
realizar el cierre de proyectos ya existentes, como la clausura de una
planta de producción, la liquidación de un negocio, la fusión con alguna
otra compañía o el cierre de algún segmento de mercado ya existenteen la organización.
La principal razón para usar la administración de proyectos es la
de facilitar la implementación de la estrategia organizacional; sin
embargo, ésta puede ser utilizada en muchos otros contextos de la
organización (Cleland, 1999).
14
2.6. El rol del administrador de proyectos.
El éxito de un proyecto depende, principalmente, del ambiente
organizacional que lo rodea. Algunos factores organizacionales mejoran
las oportunidades de éxito de un proyecto, mientras que otros lo
amenazan. Un administrador de proyectos deberá tomar ventaja de los
factores positivos que puedan existir y tratará de compensar cualquier
factor negativo que sea inevitable.
El Project Managment Institute dice de manera muy concreta que
el administrador de proyectos es la persona encargada de hacer que se
cumplan las actividades planeadas para el desarrollo de un proyecto.
En el proceso de administración de proyectos existe una persona
encargada de dirigir y dar seguimiento a las actividades que se realizan
durante su ejecución, cuya responsabilidad es la de llevar el proyecto a
una culminación exitosa. La mayoría de los autores coinciden en que
ésta es la principal y última función de un administrador de proyectos.
Cleland (1999) menciona que debido a lo cambiante del entorno de
las organizaciones, la tarea de administrador de proyectos es cada vez
más exigente y requiere que la persona que está a cargo de esta función
debe cumplir con las siguientes características básicas:
• Líder natural con visibles habilidades administrativas.
• Experiencia en el área que implican los proyectos a administrar.
• Habilidad para trabajar y comunicarse con otros.
• Habilidad para motivar a su equipo y auto motivarse.
• Total conocimiento de los recursos, los sistemas y los
procedimientos de su compañía.
• Habilidades de intuición para desarrollar y mantener relaciones
favorables con el cliente.
Según Cleland (1999) algunas de las funciones del administrador de
proyectos son las siguientes:
• Mantener el balance de poder entre la oficina del proyecto y las
demás áreas funcionales de la organización.
• Proveer y facilitar servicios a los proyectos.
• Promover y desarrollar una filosofía de cómo serán priorizados los
recursos y cómo serán resueltos posibles conflictos en torno a
esos recursos.
15
• Proveer estándares de desempeño, tanto para el éxito de los
proyectos como para las tareas funcionales.
• Establecer criterios de evaluación.
• Definir parámetros de decisión.
El administrador del proyecto es un rol que requiere una gran
experiencia, así como características muy específicas en el individuo que
lo desempeña; el administrador debe realizar varias actividades para
dirigir el curso del proyecto; debe fungir como moderador y líder entre
los diversos elementos del equipo de trabajo, esta última función puede
ser un factor determinante en el éxito o fracaso del proyecto.
2.7. Conclusiones.
Al finalizar esta sección se puede decir que la administración de
proyectos es un proceso complejo que no cualquiera puede llevar a
cabo. El hecho de iniciar, planear, ejecutar, controlar y cerrar un
proyecto, requiere de muchos conocimientos a parte de una buena
cantidad de experiencia en el área de proyectos a desarrollar. Además la
persona encargada de administrar los proyectos debe contar con
suficiente empowerment que le permita tomar las decisiones indicadas
en el momento preciso con la única finalidad de lograr proyectos
exitosos.
La administración de proyectos a pesar de que es un área nueva
de la administración, actualmente es de importancia estratégica para
las empresas, dada la globalización y la multiplicación de proyectos
requeridos por las mismas.
En el capítulo 3 se hablará a cerca del desarrollo de proyectos de
software específicamente sobre algunas metodologías empleadas para
el desarrollo de los mismos y se darán algunas definiciones.
16
Capítulo 3. Desarrollo de Software
"¿Podría decirme, por favor, qué camino debo tomar
desde aquí?".
- "Eso depende, en gran medida, de a dónde quieras
ir", dijo el Gato.
- "Eso no importa mucho", dijo Alicia.
- "Entonces no tienes problema con el camino que
cojas", dijo el Gato.
- "...con tal de que llegue a alguna parte...", añadió
Alicia como justificación.
- "Oh, seguro que lo harás", dijo el Gato, "con tal de
que camines lo bastante".
Conversación con el Gato de Cheshire en
"Alicia en el País de las Maravillas"
3.1 Introducción.
Red Auerbach el entrenador que más tiempo duro con los Celtics
de Boston y hasta hace poco el que más veces ganó en la historia del
baloncesto profesional, sostiene el hecho de que los conocimientos
básicos son el punto clave para tener éxito dentro del baloncesto.
Explica que de todos los pases que se realicen en un partido, solo
aquellos en los que alguien coja el balón serán exitosos, la clave del
éxito en un rebote radica en coger el balón. Tener una base fue la
estrategia que le permitió a Auerbach ganar 8 veces seguidas los
campeonatos de la NBA.
Para tener éxito en el software hay que prestar la mayor atención
posible a los fundamentos. Podría ser el Bob Cousy, Kareem Abdul
Jabbar o Michael Jordán de su organización de software. Podría disponer
de una serie de métodos orientados a la planificación, pero si no utiliza
los conceptos básicos de desarrollo de software como el punto más
importante del esfuerzo de desarrollo se arriesgará a no lograr las metas
de planificación que se han propuesto(McConnell 1996).
Este capítulo pretende dar a conocer los fundamentos del
desarrollo de software así como las metodologías más importantes.
17
3.2 Definiciones básicas sobre desarrollo de software.
La definición más importante es la de sistema el cual se define
como: "Un conjunto de cosas ordenadas que ¡nteractúan entre sí para
lograr un determinado objetivo". Un programa consiste en "un conjunto
de instrucciones ordenadas que le indican a la computadora que
operaciones debe realizar, principalmente para la solución de un
problema".
De las dos definiciones anteriores se deriva una tercera. Sistema de
computadora: "Consiste en un programa o conjunto de ellos que
interactúan entre sí para lograr dar solución a un problema". Y de ésta
última, se deriva una definición que engloba todo el objetivo de esta
parte de la investigación, Software: "Por mucho tiempo definido
solamente como la parte no tangible de la computadora, ahora se ha
extendido esta definición como el conjunto de programas, diseño de
programas, datos, información, conocimiento y todo lo que implique
información relevante a un sistema", regularmente se usa como un
sinónimo para referirse a un sistema computacional.
Existen tres áreas que componen el desarrollo de un sistema: La
representación de un sistema (Programas, diseños, diagramas,
diccionarios, etc.), la Ingeniería de software (Metodologías, técnicas de
desarrollo, herramientas) y el conocimiento sobre el área de enfoque del
sistema (contabilidad, finanzas, administración de conocimiento).
Finalmente Ingeniería de software es la aplicación de los modelos
y formas de la ingeniería tradicional a la práctica de construir productos
de software.
18
3.3 Las cuatro dimensiones del desarrollo de software.
Según McConnell (1996) los proyectos de software se desarrollan
básicamente en base a 4 dimensiones: personas, procesos, producto y
tecnología. Las personas trabajan rápida o lentamente. El proceso
supone una mejora en la actividad de las personas o coloca un obstáculo
detrás de otro. Un producto se define de forma que casi se construye
solo o de forma que pone obstáculos a los mejores esfuerzos de la gente
que esta construyéndolo. La tecnología ayuda al esfuerzo de desarrollo u
obstaculiza los mejores intentos de los desarrolladores. La figura 3.1 nos
muestra el concepto de esta ¡dea.
Personas
Proceso Producto
Tecnología
FIGURA 3.1 LAS CUATRO DIMENSIONES DEL PROCESO DE DESARROLLO DE
SOFTWARE(MCCONNELL,1996).
La idea principal de esta teoría es la de mostrar estos cuatro
conceptos mas que como direcciones,dimensiones; a pesar de que la
figura lo muestre en 2 dimensiones debido a no poder dibujarlo en 4
como seria lo correcto. La razón principal es que regularmente cuando
contamos con direcciones se hace énfasis en una dirección a la vez y se
minimizan las demás. Dado que la idea es pensar en éstos como
dimensiones, es posible dar la atención necesaria a cada uno.
19
Cuando utilizamos una sola dimensión es prácticamente imposible
satisfacer los objetivos de todos, el desarrollo de software requiere que
se use una variedad de métodos de manera simultánea (Jones 1991,
dice en McConnell, 1996) Las organizaciones más efectivas en la
consecución de un desarrollo rápido optimizan estas cuatro dimensiones.
Personas. Los temas relacionados con Peopleware tienen mayor
impacto en el desarrollo de software de lo que imaginamos, se ha
descubierto que entre desarrolladores del mismo nivel, la productividad
puede variar de 10 a 1 dependiendo de la motivación empleada,
también se ha comprobado esto mismo empleando equipos completos
de trabajo. Los investigadores del personal de ingeniería de software de
la NASA han llegado a la conclusió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 desarrolladores.
Queda muy claro entonces que cualquier organización que trate
seriamente de mejorar su productividad primero debe ocuparse de
temas relacionados con personal, como la motivación, equipo de
trabajo, selección de personal y formación.
En el capítulo 4 se explicará más a detalle todo lo relacionado con las
personas y equipos autodirigidos.
Proceso. El proceso tiene tanto metodologías de gestión como
metodologías técnicas. El poner atención en los procesos mejora tanto la
rapidez del desarrollo de software como las personas, algunas personas
piensan que ocuparse del proceso es agobiante, y no hay duda que hay
algunos procesos que son demasiado rígidos y democráticos y hay gente
que ha creado estándares en proceso principalmente para sentirse más
poderosos. Un ejemplo claro de ineficiencia en procesos es cuando en
las ultimas etapas del desarrollo de software existen cambios en los
requerimientos, es necesario rediseñar, reprogramar y volver a hacer las
pruebas.
Producto. Es la dimensión más tangible del cuarteto y ocuparse de las
características y el tamaño del producto planea enormes oportunidades
de reducir la planificación.
Tecnología. Una forma rápida de mejorar la velocidad del desarrollo es
la de usar herramientas cada vez más efectivas. En la historia del
desarrollo de software, uno de los avances más significativos fue el paso
de lenguajes de bajo nivel a lenguajes de alto nivel.
20
3.4 Modelos de desarrollo de software.
A lo largo de la historia del desarrollo de software los expertos en
el área se han dado a la tarea de mejorar los procesos de producción de
software, y para esto han surgido muy diversas metodologías de
desarrollos las cuales unas vienen siendo evolución de otras.
Metodología se refiere en cualquier ámbito de trabajo, a un sistema
ordenado de proceder para la obtención de un fin. Hablando de sistemas
las metodologías de desarrollo nos indica los procedimientos o pasos a
realizar para obtener un sistema.
A continuación se detallan algunas de las más conocidas y utilizadas.
3.4.1 El modelo de cascada o ciclo de vida clásico.
El ciclo de vida clásico es el más antiguo, usado en el desarrollo de
productos de software. Sin embargo, con el paso de unos cuantos años,
se han producido críticas, incluso por seguidores activos, que cuestionan
su aplicabilidad a todas las situaciones.
Modelo de Cascada desarrollado en los años 70's. Se denominó de
cascada porque los productos pasan de un nivel a otro con suavidad. El
modelo de desarrollo de software de Cascada o Ciclo de vida clásico
viene a ser una evolución del modelo de etapas el cual consistía de 8
fases según Pressman (2000). Este modelo consideraba que deberían
ser consecutivas, poniendo énfasis en la documentación que resulta de
cada una y que es la entrada de la siguiente, formalizando los
procedimientos de planificación y de control tal como lo muestra la
figura 3.1.
21
Plan Operativo
Especificación de
Requerimientos
Especificación
Funcional
Definición del problema y establecimiento de
proyecto de desarrollo.
Visión profunda del problema desde el
punto de vista de desarrolladores y
usuarios.
Específica la información sobre la cual el
software a desarrollar trabajará.
Diseño Permite describir como el software va a
satisfacer los requerimientos.
Implementación Aquí es donde el software a ser desabollador
se codifica.
Integración Es la parte donde todos los módulos
codificados independientemente se integran.
Verificación y
Validación
Etapa en donde el software es probado para
verificar si es consistente con las definiciones.
Mantenimiento Modificaciones del software que sean producto
de errores, adecuaciones, etc.
FIGURA 3.2 MODELO DE ETAPAS (PRESSMAN, 2000)
A diferencia del modelo de etapas, el modelo de Cascada define
una retroalimentación entre las etapas, tal como lo muestra la figura
3.2. Una de las ventajas de ambos modelos es que definen un esquema
de trabajo claro, reconociendo y definiendo actividades dependientes del
desarrollo de software
22
PLANIFICACIÓN
DEL SISTEMA
ANÁLISIS h
DISEÑO
CODIFICACIÓN
PRUEBAS
Q.
MANTENIMENTO
FIGURA 3.3 MODELO CASCADA(PRESSMAN, 2000).
Este modelo divide el ciclo de vida del producto de programación en
una serie de actividades sucesivas; cada fase requiere información de
entrada, procesos y resultados, bien definidos.
Planificación del Sistema. Es la etapa en la que se determina si el
proyecto es o no factible de realizar y se determinan tiempos y costos
aproximados, estableciendo así la ruta crítica de cada actividad. Esto es
porque la falta de planeación de un sistema es la causa principal de
retrasos en programación, incremento de costos, poca calidad, y altos
costos de mantenimiento en los desarrollos de productos de software.
Con frecuencia se dice que es imposible realizar una planeación inicial,
porque la información precisa sobre las metas del proyecto, necesidades
del cliente y restricciones del producto no se conocen al comenzar el
proyecto de desarrollo, sin embargo, uno de los principales propósitos
de esta fase es aclarar los objetivos, problemas o necesidades y
restricciones. La dificultad de la planeación no debe desalentar tan
importante actividad.
Análisis. Es indispensable comprender perfectamente los
requisitos del software, para que éste no fracase. Esta etapa puede
parecer una tarea relativamente sencilla, pero las apariencias engañan.
23
Abundan los casos en que se puede llegar a malas interpretaciones o
falta de información.
Existe una frase que se utiliza al momento de hacer el análisis, y es la
siguiente:
"Sé que crees que comprendes lo que piensas que he dicho, pero no
estoy seguro de que lo que creíste oír sea lo que yo quise decir..."
Diseño. El diseño del software es realmente un proceso multipaso
que se enfoca sobre cuatro atributos distintos del programa: la
estructura de los datos, la arquitectura del software, el detalle
procedimental y la caracterización de la interfaz. El proceso de diseño
traduce los requisitos en una representación del software que pueda ser
establecida de forma que obtenga la calidad requerida antes de que
comience la codificación. Al igual que los requisitos, el diseño se
documenta y forma parte de la configuración del software.
Codificación. El diseño debe traducirse en una forma legible para
la máquina. Si el diseño se realiza de una manera detallada, la
codificación puede realizarse mecánicamente.
Prueba. Una vez que se ha generado el código, comienza la
prueba del programa. La prueba se centra en la lógica interna del
software, asegurando que todas las sentencias se han probado, y en las
funciones externas, realizando pruebas que aseguren que la entrada
definida produce los resultados que realmente se requieren.
Mantenimiento.Es indudable que el software una vez entregado
al cliente sufrirá cambios (posible excepción es el software empotrado).
Los cambios ocurrirán debido a que se hayan encontrado errores, que el
software deba adaptarse a posibles cambios.
El desarrollo de productos de software bajo este ciclo de vida
tiene los siguientes problemas:
1. - Los proyectos reales raramente siguen el flujo secuencial que
propone el modelo.
2.- Normalmente, es difícil para el cliente establecer explícitamente al
principio todos los requisitos. Este ciclo lo requiere y tiene dificultades
en entender posibles problemas que pudieran existir.
3.- El cliente debe tener paciencia. Hasta llegar a las etapas finales del
desarrollo del proyecto.
24
3.4.2 Modelo rápido basado en prototipos.
En muchas organizaciones los requerimientos de la tecnología
avanzan tan rápido que el lapso de tiempo que transcurre entre la
obtención de requerimientos y la liberación de una versión final del
producto resulta poco práctico, ya que cuando ésta es utilizada, las
necesidades han cambiado, esto sucede regularmente cuando se utiliza
una metodología como la de Cascada. La solución que muchas
organizaciones utilizan es el de aplicar un modelo como el de espiral o el
basado en prototipos. Estos modelos son iterativos y requieren la
creación de uno o más prototipos como parte del proceso de desarrollo
de software (el modelo de espiral se describe en la siguiente sección).
De acuerdo con Pressman (1997), una definición de un prototipo
en software podría ser: "Un modelo del comportamiento del sistema que
puede ser usado para entenderlo completamente o ciertos aspectos de
él y así clarificar los requerimientos... Un prototipo es una
representación de un sistema, aunque no es un sistema completo, posee
las características del sistema final o parte de ellas".
La figura 3.3 muestra el modelo rápido de prototipos.
Diseño y
desarrollo del
Especificaciones • prototipo
iniciales
Crear nuevas
especificaciones
Pruebas e
integración del
prototipo
Evaluar el
prototipo ^ Liberar
Versión
FIGURA 3.4 MODELO RÁPIDO DE PROTOTIPOS(MCCONNELL,1996)
Principalmente este modelo asume que las especificaciones
completas del software son conocidas antes de que el software sea
diseñado e implementado. El software es desarrollado de manera
25
¡ncremental. El punto central de este modelo es que la versión final
producida es considerada como la más aceptada de todas las secuencias
anteriores.
El principal inconveniente de este tipo de desarrollo es que no se
conoce al comienzo del proyecto lo que se tardara en crear un producto
aceptable. Otra desventaja que presenta este modelo es: la
dependencia de las herramientas de software para el éxito ya que la
necesidad de disminución de incertidumbre depende de las iteraciones
del prototipo, entre más iteraciones existan mejor y esto último se logra
mediante el uso de mejores herramientas, que lo hace dependiente de
las mismas.
También, no es posible aplicar la metodología a todos los proyectos de
software y, finalmente, la mala interpretación que pueden hacer los
usuarios del prototipo, al cual pueden confundir con el sistema
terminado. Por otro lado una ventaja es que los clientes pueden ver
signos de progreso y tienden a ponerse menos nerviosos con la
adquisición eventual de un producto.
3.4.3 El modelo de espiral.
McConnell (1996) menciona que el modelo de espiral es un modelo
de ciclo de vida orientado a riesgos que divide un proyecto de software
en mini proyectos. Cada mini proyecto se centra en uno o más riesgos
importantes hasta que todos estén controlados. El término riesgo se
refiere a especificaciones no comprendidas correctamente, problemas de
ejecución importantes y arquitecturas complicadas.
El modelo espiral desarrollado por Barry Boehm para Ingeniería de
Software agrupa las mejores características del modelo del ciclo de vida
clásico y de prototipos. Pero también agrega nuevas funciones que no
están incluidas en los otros modelos, como el análisis de riesgo. El
modelo espiral define cuatro actividades principales para el ciclo de vida.
• Planificación. La determinación de los objetivos del proyecto,
alternativas y restricciones.
• Análisis de Riesgo. El análisis de alternativas y la identificación y
solución de riesgos.
• Ingeniería. Desarrollo del producto.
• Evaluación del cliente. El asentimiento de los resultados.
26
Análisis de Riesgo
\ \
-1
Ingeniería
FIGURA 3.5 CICLO DE VIDA DE ESPIRAL(PRESSMAN, 2000)
El modelo es representado por una espiral dividida en cuatro
cuadrantes, donde cada uno describe las actividades mencionadas
anteriormente. El modelo espiral utiliza un esquema de desarrollo
iterativo cuya primera iteración comienza en el centro del círculo e,
¡ncrementalmente, se va desplazando hacia afuera. Las siguientes
iteraciones sucesivas son versiones más completas del software que
está siendo construido. Al principio de cada iteración del ciclo de vida se
hace un análisis de riesgo, mientras, por el otro extremo, la revisión del
proyecto se realiza al final de la iteración. Así, se puede contrarrestar
cualquier riesgo observado en el tiempo preciso.
El modelo espiral es visto como un enfoque más realista para el
desarrollo de grandes sistemas de software. Usa un método evolutivo
para desarrollo y prototipos como una técnica de reducción de riesgo
(pese a que los prototipos pueden ser usados en cualquier etapa dentro
del ciclo de vida). También utiliza el enfoque de sistematización y el
"desarrollo en etapas" del ciclo de vida clásico, pero, con la diferencia
que todos están incorporados dentro del esquema iterativo planteado
por el modelo espiral.
27
3.4.4 El modelo de desarrollo evolutivo.
El desarrollo evolutivo es una metodología de desarrollo de
software muy relacionada con, pero claramente distinta de, desarrollo
por prototipos. El énfasis esta puesto sobre la importancia de obtener un
sistema de producción flexible y expandible. Así, si los requerimientos
cambian durante el desarrollo del sistema, entonces con un mínimo de
esfuerzo y tiempo se puede desarrollar un sistema de trabajo flexible.
La diferencia fundamental entre desarrollo evolutivo y prototipos
de software es que el desarrollo evolutivo busca reemplazar el viejo
sistema con uno nuevo que tendría la propiedad de satisfacer los nuevos
requerimientos lo más rápido posible. En contraste, el modelo de
prototipos usa un enfoque iterativo solo para determinar los
requerimientos organizacionales. Por lo tanto, el tiempo tomado entre
cada iteración es más importante para el desarrollo evolutivo. En la
figura 3.4 se puede ver gráficamente esta diferencia.
El desarrollo evolutivo asume que los requerimientos de un
proyecto están sujetos a cambios continuos, por lo cual es necesario
definir una estrategia de desarrollo que refleje esta situación. En
cambio, el desarrollo orientado a prototipos, así como los anteriores,
asume que los requerimientos "reales" existen y se vale de las
iteraciones del prototipo para establecerlos y modelarlos.
La idea entonces de la metodología de desarrollo evolutivo es
estar liberando constantemente una nueva versión del sistema que sea
completamente funcional; cada sistema, producto de las iteraciones
sucesivas, tendría incorporado los nuevos requerimientos que han sido
posible identificar y que no estarían considerados en la versión anterior.
28
Investigación
Preliminar
Desarrollo
del Producto
Implementación, Uso y
Evaluación
Definición del problema y especificación inicial en
base a los requerimientos definidos.
Desarrollo del software en base a un proceso con
énfasis en la rapidez de la fabricación.
Implantación y uso del software en ambiente de
explotación, monitoreo de los nuevos
reauerimientos.
Versiones del
Software
Volver a realizar
especificaciones
Re-definición del problema en base a los nuevos
requerimientos.
FIGURA 3.6 MODELO DE DESARROLLO EVOLUTIVO(PRESSMAN,1997).
Así, las etapas del desarrollo evolutivo tienen por objetivo
extender los incrementos deun producto de software operacional, en las
direcciones determinadas por la evolución de la experiencia operacional.
El modelo de desarrollo evolutivo puede ser idealmente asociado a
un lenguaje de aplicación de cuarta generación y, mejor aún, a
situaciones en que el usuario dice: "yo no puedo hablarte sobre lo que
yo quiero, pero yo lo reconocería si lo viese". Así, este método
entregaría al usuario rápidamente una capacidad operativa inicial y,
además, establecería una base real de operación para determinar las
mejoras subsecuentes en el producto.
Pero existen algunas dificultades técnicas que no pueden dejar de
ser mencionadas, por ejemplo:
• No facilita la integración de aplicaciones que han sido
desarrolladas como sistemas independientes.
• Facilita la posibilidad de que existan casos de "esclerosis de
información", en el sentido que trabajos temporales alrededor de
algunas deficiencias del software se solidifican como poderes
inmodificables a la evolución. Es decir, en la medida que se
evoluciona, esta misma facilidad a la evolución llevaría a que no
sea posible seguir evolucionando.
29
• Pueden ocurrir que el software nuevo es un reemplazo incremental
de un subsistema dentro de un gran sistema existente. Si el
sistema existente está pobremente modularizado, es obvia la
dificultad en hacer que la nueva versión se acople al resto.
El método evolutivo tiene la gran ventaja de reconocer la
existencia de constantes cambios en los requerimientos, a partir de
esto, proponer una solución, la cual es válida para la solución de ese
problema pero que no resolvería la inquietud original, esto es que el
método no facilita elementos que permitan reducir la distancia
conceptual entre el desarrollador y el usuario.
Lehman propone que la evolución de un sistema de software esta
sujeta a 5 leyes, las cuales ha determinado a partir de observaciones
experimentales de varios sistemas, como los grandes sistemas
operativos:
1. Cambio Continuo. Un programa utilizado en un ambiente del
mundo real debe cambiar o cada vez será menos útil en ese
ambiente.
2. Complejidad creciente. A medida que un programa en evolución
cambia, su estructura se hace más compleja, a menos que se
lleven a cabo esfuerzos activos para evitar este fenómeno.
3. Evolución del programa. La evolución del programa es un
proceso autorregulador, y una medición de atributos del sistema,
como el tamaño, el tiempo entre versiones, el número de errores
advertidos, etc.; revela las tendencias estadísticas significativas y
las características invariantes.
4. Conservación de la estabilidad organizativa. Durante el
tiempo de vida de un programa, su rapidez de desarrollo es casi
constante e independiente de los recursos dedicados al desarrollo
del sistema.
5. Conservación de la familiaridad. Durante el tiempo de vida de
un sistema, la evolución del cambio del sistema en cada versión
es, aproximadamente, constante.
Lehman (1980) comenta que, con el método evolutivo, se
configura una nueva problemática en el desarrollo de sistemas; es decir,
la crisis se expande ahora en el sentido que no sólo se requiere reflejar
lo más fielmente posible las necesidades del usuario, sino que ahora los
ambientes en que el sistema está inserto están sujetos a cambios y
estos cambios inciden en la efectividad del software desarrollado.
30
3.4.5 Modelo Orientado a Objetos.
Para aquellas aplicaciones relativamente grandes, que deben ser
actualizadas frecuentemente, o que pertenecen a una línea de
aplicaciones afines (con características de datos en común), debe
considerarse la posibilidad de codificar utilizando orientación a objetos,
ya que esto aseguraría la privacidad de datos, la reutilización de código,
la facilidad de mantenimiento y la posibilidad de modelar el sistema
utilizando diseño orientado a objetos y sus ventajosas características:
• Clases.
• Herencia.
• Polimorfismo.
• Sobrecarga de métodos y operadores, etc.
Y, como consecuencia, un aumento de la integridad del sistema.
El costo de contar con un equipo experimentado en dicha técnica
de programación es considerablemente mayor que en las anteriores.
FIGURA 3.7 MODELO ORIENTADO A OBJETOS(PRESSMAN, 1988).
Las características del modelo orientado a objetos son:
No se prescribe una secuencia lineal de pasos.
El desarrollo es iterativo e incremental combinando diagramas
formales con técnicas informales según el problema.
Existen micro y macro fases.
Combinación del modelo de cascada y el modelo de espiral.
Macroproceso.
Es similar al modelo de cascada y sirve como marco de control
para el micro proceso.
Establecer requerimientos esenciales (conceptualización).
Desarrollar un modelo del comportamiento esperado (análisis).
31
• Crear una arquitectura (diseño).
• Evolucionar la implementacion (evolución).
El modelo orientado a objetos es el más novedoso, revolucionario
y utilizado en los últimos años, su auge ha crecido exponencialmente,
debido a las características tan particulares que posee, lo cual lo ha
convertido en la base para prácticamente todos los lenguajes de
programación.
32
3.4.6 Elección de un modelo.
Después de haber estudiado algunas características de algunos de
los ciclos de vida existentes más reconocidos, la siguiente tabla deberá
ayudar para hacer la elección correcta de la metodología. Los criterios
tomados son heredados de McConnell (1996) para la selección de un
modelo. Las clasificaciones son: malo, medio y excelente. Las
características expuestas aquí pueden variar de acuerdo a como sea
aplicada la metodología.
Capacidades
del modelo
Trabaja con
poca
identificación de
los
requerimientos
Trabaja con
poca
comprensión
sobre la
arquitectura
Genera un
sistema
altamente fiable
Genera un
sistema con
amplio
desarrollo
Gestionar
riesgos
Estar sometido a
una planificación
predefinida
Requiere poco
tiempo de
gestión
Permite
modificaciones a
medio camino
Ofrece a los
clientes signos
visibles de
progreso
Ofrece a la
directiva signos
visibles de
progreso
Requiere poca
sofisticación
para los
directivos y
desarrolladores
Cascada
Malo
Malo
Excelente
Excelente
Malo
Medio
Malo
Malo
Malo
Medio
Medio
Prototipos
Excelente
Malo a medio
Medio
Excelente
Medio
Malo
Medio
Excelente
Excelente
Medio
Malo
Espiral
Excelente
Excelente
Excelente
Excelente
Excelente
Medio
Medio
Medio
Excelente
Excelente
Malo
Desarrollo
evolutivo
Medio a
excelente
Malo
Medio a
excelente
Excelente
Medio
Medio
Medio
Medio a
Excelente
Excelente
Excelente
Medio
Orientado a
objetos
Medio
Malo
Excelente
Excelente
Excelente
Malo
Excelente
Excelente
Excelente
Excelente
Medio
33
3.5 Extreme Programming.
3.5.1 Introducción
¿Cuánto pagaría por un equipo de desarrollo que hace lo que usted
realmente quiere? ¿Y si fuesen capaces de decirle cuánto va a costar, de
manera que pueda elegir las tareas que son prioritarias, de cara a
alcanzar la fecha de entrega prevista?
Cualquier desarrollador, analista, técnico y, en general, cualquier
persona que haya participado en el diseño o desarrollo de un proyecto
informático, seguramente haya 'sufrido1 el yugo que supone estar
supeditado al cumplimiento de una determinada metodología.
Las metodologías que se aplican suelen ser rígidas; dejan poco
margen de maniobra y, lo que es peor, intentan ser demasiado
generalistas. Además son, en la mayor parte de los casos, metodologías
obsoletas, poco ágiles y que suponen una tremenda traba para el tipo
de proyectos que actualmente se desarrollan: proyectos pequeños,
ágiles, cambiantes y orientados hacia las nuevas (y también
cambiantes) tecnologías web.
Aplicar estas metodologías supone tener clientes descontentos,
jefes de proyectos confundidos, analistas aun más confundidos y
programadores desconcertados. Son difíciles de asimilar y de aplicar y,
por tanto, pierden su propio sentido rápidamente.
Ante esta situación surge una metodología que cubre, en gran
parte, las deficiencias de las tecnologías tradicionales, que aplica, entre
muchas otras cosas, técnicas de usabilidada la ingeniería del software.
Se trata de 'Extreme Programming' (o Programación Extrema como se
traduce), XP son sus siglas.
Beck (2000) dice que XP nos propone una serie de reducciones y
técnicas que persiguen un único fin: "la satisfacción del cliente".
34
3.5.2 Definiendo Extreme Programming.
Extreme Programming es una metodología de desarrollo de
software sencilla de usar y de aprender, que mejora un proyecto en
términos de comunicación, feedback, simplicidad y motivación.
Totalmente orientada a la satisfacción del cliente: se da al cliente el
software que quiere y cuando quiere. Hace hincapié en el trabajo en
equipo.
3.5.3 Elementos de la Metodología XP.
Los 3 actores principales que participan en la aplicación de esta
metodología son:
El cliente. Describe cual será el valor para el negocio, define qué es lo
que se debe hacer primero y qué es lo que se debe calendarizar para
hacer, y define las pruebas que muestren que el software hace lo que
realmente se requiere.
El programador. Es el encargado de analizar, diseñar, probar
programar e integrar el sistema. Ellos estimarán la dificultad de las
historias narradas por el cliente, y trazaran el ritmo en el que
proporcionarán los resultados al cliente.
El administrador. Es la unión entre el cliente y el desarrollador y trata
de que se forme un buen equipo entre ellos, y trata de hacer que el
proceso sea lo más suave posible.
Las prácticas que están involucradas dentro del ciclo de vida del
proyecto son:
Planificación
• Se redactan las historias de usuarios.
• Se crea un plan de entregas.
• Se hacen pequeñas entregas pero frecuentes.
• Se controla la velocidad del proyecto.
• Se divide el proyecto en iteraciones.
• Al comienzo de cada iteración se traza el plan de iteración.
• Se rota al personal.
• Cada día se convoca una reunión de seguimiento.
• Corregir la propia metodología XP cuando falla.
35
Diseño
Simplicidad.
Elegir una metáfora para el sistema.
Usar tarjetas CRC (Cargo, Responsabilidad y Colaboración) en las
reuniones de diseño.
Crear soluciones puntuales para reducir riesgos.
No se añadirá funcionalidad en las primeras etapas.
Reaprovechar cuando sea posible.
Desarrollo
• El cliente está siempre disponible.
• Se debe escribir código de acuerdo a los estándares.
• Desarrollar la unidad de pruebas primero.
• Todo el código debe programarse por parejas.
• Sólo una pareja se encargará de integrar el código.
• Integrar frecuentemente.
• Todo el código es común a todos.
• Dejar las optimizaciones para el final.
• No trabajar más de 40 horas semanales.
Pruebas
• Todo el código debe ir acompañado de su unidad de pruebas.
• Todo el código debe pasar las unidades de pruebas antes de ser
implantado.
• Se deben ejecutar pruebas de aceptación a menudo y publicar
los resultados.
Ventajas de usar Extreme Programming.
Algunas de las ventajas que representa el utilizar esta metodología
son:
• Reducción de atrasos en caso de existir rotación de personal
en el área de desarrollo.
• Mejor documentación de los sistemas.
• Reducción de la curva de aprendizaje de los programadores.
• Mayor involucramiento de los clientes y usuarios.
• Incrementa los conocimientos de los miembros del equipo
dada la rotación de roles.
36
Desventajas de usar Extreme Programmíng.
• Se requiere de un proceso de adaptación mayor a la
metodología.
• Los programadores no siempre están dispuestos a participar
usando esta metodología.
Desarrollada por Kent Beck(2000) Extreme programming es un
conjunto de prácticas que la comunidad de desarrolladores esta
adoptando para dar solución a los problemas de una manera rápida y de
calidad. Involucra conceptos de planeación, diseño, implementación,
deployment y mantenimiento. Pero sobre todo basa mucho sus técnicas
a la forma en la que los equipos se desenvuelven.
La idea de exponer esta técnica de desarrollo de software de una
manera separada de las demás, es debido a que esta es una técnica
especial y diferente a las ya expuestas, ya que involucra muchos
factores y técnicas de administración de proyectos y equipos de alto
rendimiento.
3.6 Conclusiones.
Distintos proyectos tienen necesidades diferentes, incluso si todos
tienen que ser desarrollados rápidamente. Aquí se han descrito algunos
de los modelos de desarrollo de software, los cuales tienen diferentes
características, la pregunta de ¿cual de estos modelos debe ser
utilizado? Nos lleva a evaluar las características distintivas del proyecto
y tratar de utilizar el que más se adecué a ellas, ya que no existe un
modelo de desarrollo estándar.
Lo interesante de esto es que todo el equipo de desarrollo tenga
un camino bien definido y no les suceda lo que a Alicia, que no
importaba cual camino siguiera si no importaba su destino. Una de las
cosas más importantes dentro del desarrollo de un proyecto es la
selección del modelo adecuado de desarrollo. Sin embargo, hay un
factor que no se puede dejar a un lado que es el factor humano, del cual
se hablara en el capítulo siguiente.
37
Capítulo 4. Equipos de alto rendimiento.
4.1 Introducción.
La eficiencia humana es algo que todos quieren y que se aprecia
universalmente cuando se alcanza. Hay dos maneras de aumentarla:
concentrándose en el individuo ó concentrándose en el equipo.
Desde la antigüedad el hombre tuvo una marcada necesidad de
colaborar y realizar tareas de manera conjunta con otros hombres. En
las organizaciones actuales surgen las mismas necesidades dada la
magnitud de las tareas a realizar y la rapidez con la que se desea sean
ejecutadas dichas tareas.
Regularmente a estas agrupaciones de hombres trabajando juntos
se les denomina equipo. El éxito de cualquier equipo depende
principalmente de los individuos que lo componen; esto no es ningún
secreto. Si los miembros de un equipo no se comunican efectivamente
entre sí, se hallan en conflictos y carecen de motivación hacia lograr los
objetivos comunes, seguramente no llegarán a lugar alguno.
El concepto de equipos de alto rendimiento tal como se verá, nace
en Inglaterra y en Suecia alrededor de 1950 y abarca también términos
como cohesión, rendimiento, autonomía y confianza.
4.2 Definiciones básicas.
Parker (1993) define a un equipo como: "Un grupo de personas
interdependiente cuyos miembros están de acuerdo en los objetivos, las
tareas y los pasos necesarios para su realización".
Sin embargo McConnell (1996) menciona que "un equipo de
trabajo es algo mas que un conjunto de personas que desean trabajar
juntas para alcanzar un objetivo". Katzenbach y Smith, en su libro The
Wisdom of teams, definen un equipo como "Un número de personas
pequeño, con habilidades complementarias que están comprometidas en
un propósito, objetivos de rendimiento y con un enfoque común en el
que todos sean responsables ante todos". Esta definición nos lleva ya un
paso más adelante y no solo habla de cooperación o acuerdos comunes.
38
El punto de partida para desarrollar el trabajo en equipo es que
todos los miembros comprendan la dinámica de dicho trabajo como las
dimensiones básicas a la luz de las cuales se puede medir el rendimiento
del grupo.
Hay que diferenciar también que un grupo no siempre es un
equipo. Algunos proyectos se pueden llevar a cabo por un grupo de
personas que cooperan, pero que no forman un equipo. Algunos
proyectos no llegan al nivel de compromiso que supone un equipo.
4.2.1 Variaciones en la productividad.
Los investigadores han encontrado diferencias del orden de 10 a 1 en la
productividad individual. Los investigadores también han encontrado
diferencias importantes en los niveles de productividad de los equipos
completos. Después de analizar 69 proyectos, llegaron a la conclusión
de que los mejores equipos eran al menos 4 veces más productivos que
los peores (Bohem, 1981 dice en McConnell, 1996). DeMarco y Lister
identificaron diferencias de productividad de 6 a 1 en 166
programadores profesionales con características similares de 18
organizaciones diferentes.
Estos estudios indican las variaciones que puede haber entre losequipos
cuando se han ocupado ciertas técnicas de administración y formación
de equipos y cuando esto no se ha realizado y se sigue manejando de
manera empírica.
4.3 Tipos de equipos.
A través del tiempo y de acuerdo a ciertos factores y
características como lo son el compromiso y la autonomía, se han
generado algunas clasificaciones para los diferentes tipos de equipos
que se han generado o que han evolucionado.
Katzenbach y Smith (1995) hacen una comparación que muestra
las etapas de las personas trabajando en equipo.
1. Trabajando en grupo. Los miembros de este grupo no ven razón
para convertirse en equipo. Ellos pueden compartir información,
pero las responsabilidades, metas y productos pertenecen a
individualidades.
2. Pseudo equipo. Este grupo de personas define el trabajo a
realizar, pero no se enfoca en el desempeño colectivo, la
individualidad de los miembros va en contra del desempeño
colectivo de la organización.
39
3. Equipo potencial. Este grupo intenta mejorar su desempeño, sin
embargo, requieren explicaciones adicionales del propósito y de
las metas trazadas, así como más disciplina para establecer un
objetivo común. Estos equipos abundan en las organizaciones.
Aún no tienen determinada la responsabilidad colectiva.
4. Equipo real. Consiste en un grupo de personas con habilidades
complementarias, quienes están comprometidos con metas y
objetivos comunes. Han aprendido a confiar los unos de los otros.
5. Equipo de alto desempeño o autodirigido. Este equipo cumple
con todos los criterios de un equipo real, pero sus miembros
también están comprometidos con sus compañeros de trabajo. El
desempeño de estos equipos es mayor al de todos los
mencionados anteriormente.
En la actualidad la tendencia de algunas empresas es hacia que los
equipos vayan evolucionando de tal forma que finalmente lleguen a ser
considerados como equipos de alto desempeño o autodirigidos, para
poder clasificar esta tendencia, y de acuerdo al nivel de autonomía que
los equipos van adquiriendo, Shonk (1992), realiza la siguiente
clasificación:
1. Equipos de sugerencia. Estos equipos son temporales y trabajan
en problemas específicos. El equipo tiene poca autoridad en
implantar sus sugerencias, la jerarquía tradicional aún sobrevive.
Estos equipos son útiles para recopilar ideas en tópicos, como
reducción de costos o incremento de la productividad.
2. Equipos de solución de problemas. Estos equipos identifican y
analizan problemas, desarrollando modos de solución,
generalmente están compuestos por un supervisor y de 5 a 8
elementos. Estos equipos se conocen también como círculos de
calidad o Task Forces.
3. Equipo semiautónomo. Cuentan con un supervisor, desarrollan
sus planes y organizan su trabajo diario.
4. Equipos de alto rendimiento. Estos equipos administran su
trabajo en base diaria, usualmente:
• Fijan metas en sincronía con las de la organización.
• Planean cómo lograr esas metas.
• Definen y solucionan problemas en su área.
> • Toman decisiones diarias dentro de sus límites de autoridad.
• Calendarizan el trabajo.
• Contratan nuevos miembros
40
La evolución hacia los grupos autodirigidos implica que los
individuos aporten no sólo sus manos (bajo el esquema de "mano de
obra" tradicional), sino también sus mentes. Es necesario que el
individuo piense y aprenda para que la organización también evolucione.
4.4 Equipos de alto rendimiento.
En un estudio publicado en 1993. B. Lakhanpal (Buchzhold, 1993)
se informo sobre la relación entre la cohesión de los grupos, las
posibilidades individuales y la experiencia con el rendimiento global del
proyecto. Los proyectos duraban de 6 a 14 meses y requerían de 4 a 8
desarrolladores. Lakhanpal descubrió que la unión del grupo contribuía
mas a la productividad que las capacidades o experiencia individuales de
los miembros del proyecto. Los administradores regularmente escogen a
los miembros del equipo basándose en el nivel de experiencia, cuando
en realidad, según Lakhanpal los miembros del equipo deberían ser
escogidos de acuerdo a sus posibilidades para contribuir a formar un
equipo unido en primer lugar y después en sus posibilidades
individuales.
Los equipos autodirigidos nacen en Inglaterra y Suecia alrededor
de 1950, donde unos mineros se agrupan en equipo y comienzan a
trabajar de una manera distinta a lo que se hacia entonces. Al realizar
sus actividades se ayudaban entre sí y se distribuían las tareas según
sus capacidades, de tal manera, que lograban producir más y mejor.
Como resultado de esta forma de trabajo bajo el ausentismo, así como
los accidentes y la productividad fue más alta (Moreno 1991).
4.4.1 Definición de equipos de alto rendimiento.
Ward y Holcomb (1995) dicen que: "Los equipos autodirigidos son
grupos pequeños de empleados que tienen responsabilidades día a día y
que se administran a ellos y a su trabajo".
Por otra parte, según Picsak y Hauser (1996), un equipo
autodirigido: "Es un grupo de empleados altamente entrenados,
(generalmente de 6 a 15), que es completamente responsable de
terminar un segmento bien definido de un producto".
De acuerdo a estas definiciones podemos darnos cuenta que los
equipos autodirigidos deben contar con ciertas características como son:
• El tamaño del grupo autodirigido es pequeño.
• Los objetivos están claramente identificados.
41
• La autonomía, cada uno es responsable de su parte del proceso.
• Son individuos que cuentan con el suficiente poder de decisión
para sacar adelante un proyecto por si mismo como equipo
formando una entidad sólida.
Se podría definir como equipo de alto rendimiento a "un grupo
pequeño de personas altamente capacitadas que trabajan de manera
conjunta, basándose en objetivos comunes para lograr las metas
propuestas, y que cuentan con características individuales de motivación
y comunicación que les permiten tener un alto grado de cohesión y los
convierte en una sola entidad".
4.4.2 Características de los equipos de alto rendimiento.
De acuerdo con McConnell (1996), los equipos de alto rendimiento
cuentan con las siguientes características que los distinguen de los
equipos comunes:
• Una visión y objetivo compartidos.
• Un sentido de identidad del equipo.
• Una estructura dirigida por resultados.
• Miembros del equipo competentes.
• Un compromiso con el equipo.
• Confianza mutua.
• Interdependencia entre miembros del equipo.
• Comunicación efectiva.
• Un sentido de autonomía.
• Un sentido de enriquecimiento.
• Tamaño del equipo pequeño.
• Un alto nivel de disfrute.
• Visión y objetivo compartidos.
Antes de que el proyecto se ponga en marcha el equipo debe
obtener una visión y objetivos comunes. Si no se tiene una visión
compartida no hay lugar para un equipo de trabajo de alto rendimiento.
Compartir una visión es muy útil para que se efectúe un desarrollo
rápido en muchos niveles, esto simplifica la toma de decisiones, crea
confianza entre los miembros del equipo y evita que se cometan ciertos
errores.
Un equipo efectivo crea un nivel de confianza y cooperación que le
permite alcanzar mayor rendimiento que un conjunto de personas con
42
igual destreza. Para que un equipo unido sea productivo, necesita tener
un enfoque compatible con el de la organización a la que pertenece.
La visión debe ser elevada para que surta un efecto de motivación.
El equipo necesita que se le presente un desafío, una misión, y que se le
vincule directamente, o sea que esta misión este de acuerdo con su
nivel de desempeño. En ocasiones se suelen dar misiones absurdas a
equipos que cuentan con un nivel y capacidad intelectual mayores y esto
suele ser desmotivante. Un punto muy importante es la forma en que
esta misión sea presentada a los miembros del equipo, de esto
dependerá si el equipo lo ve como un reto o como trabajos forzados.
• Sentido de identidad del equipo.
A medida que los miembros del equipo trabajan juntos hacia su
visión común, comienza a percibir una sensación de identidad del
equipo. Algunos equipos tienen nombres, otros como el famoso Black
Team de IBM

Continuar navegando

Materiales relacionados

297 pag.
0720445_A1

User badge image

Aprende Todo

29 pag.
UNIDAD V Adm de Proyectos

UNAM

User badge image

CeciliaSantillana

70 pag.
Gestión de proyectos paso a paso

Vicente Villegas Chavez

User badge image

maricrumontesor