1. Geison Valera C.I 20.928.122 Sección: IN4311
Métricas
Administración del Proyecto de Software.
Personal.
Modelo de Madurez de Capacidades del Personal (People-CMM)
People Capability Maturity Model es una guía de prácticas que permiten
mejorar la capacidad del personal de la organización. Permite atraer,
desarrollar, organizar, motivar y retener al personal que permitirá crear
productos y proveer los servicios.
Es un modelo de excelencia para el negocio en general, que permite organizar
las actividades de administración de las personas, con prácticas de
administración del cambio, para mejorar la capacidad del personal y la
efectividad de la organización. Como resultado la Organización será
reconocida como un empleador deseado y su personal contará con las
competencias necesarias para cubrir los objetivos del negocio.
Factores de proyecto al planificar la estructura de los equipos de
ingeniería de software (Mantei)
Mantei describe siete factores un proyecto deberían planificarse cuando se
determina el organigrama de los equipos de software.
La dificultad del problema que hay que resolver
El tamaño del programa(s) resultante(s) en líneas de código, puntos de
función, y casos de uso entre otros métodos para estimar tiempos y costos.
El tiempo que el equipo estará junto (tiempo de vida del equipo)
El grado en que el problema puede ser modularizado
La calidad requerida y fiabilidad del sistema que se va a construir
La rigidez de la fecha de entrega
El grado de sociabilidad (comunicación) requerido para el proyecto
2. Toxicidad del equipo (Jackman)
Una atmósfera de trabajo frenética en
la que los miembros del equipo
gastan energía y se descentran de los
objetivos del trabajo a desarrollar
El gestor de proyectos debería estar
seguro de que el equipo tiene acceso
a toda la información requerida para
hacer el trabajo y que los objetivos
y metas principales, una vez
definidos, no deberían modificarse a
menos que fuese absolutamente
necesario. Además, las malas
noticias no deberían guardarse en
secreto, sino entregarse al equipo tan
pronto como fuese posible (mientras
haya tiempo para reaccionar de
un modo racional y controlado)
Alta frustración causada por factores
tecnológicos, del negocio, o
personales que provocan fricción
entre los miembros del equipo
Los desarrolladores de software a
menudo sienten la frustración cuando
pierden la autoridad para controlar la
situación. Un equipo de software
puede evitar la frustración si recibe
tanta responsabilidad para la toma de
decisiones como sea posible. Cuanto
más control se le de al equipo
para tomar decisiones técnicas y del
proceso, menos frustración sentirán
los miembros del equipo.
Procedimientos coordinados
pobremente o fragmentados» o una
definición pobre o impropiamente
elegida del modelo de procesos
que se convierte en un obstáculo a
saltar.
(1) estando seguros de que las
características del software a
construir se ajustan al rigor del
proceso elegido, y (2) permitiendo al
equipo seleccionar el proceso (con el
reconocimiento completo de que,
una vez elegido, el equipo tiene la
responsabilidad de entregar un
producto de alta calidad).
Definición confusa de los papeles a
desempeñar produciendo una falta de
El gestor de proyectos de software,
trabajando junto con el equipo,
3. responsabilidad y la acusación
correspondiente
debería refinar claramente los
roles y las responsabilidades antes del
comienzo del proyecto. El equipo
debería establecer su propios
mecanismos ara la responsabilidad
(las revisiones técnicas formales son
una forma para realizar esto) y definir
una serie de enfoques correctivos
cuando un miembro del equipo falla
en el desarrollo
Continua y repetida exposición al
fallo» que conduce a una pérdida de
confianza y a una caída de la moral.
Todo equipo de software experimenta
pequeños fallos.
La clave para eliminar una atmósfera
de fallos será establecer técnicas
basadas en el equipo para
retroalimentar y solucionar el
problema. Además, cualquier fallo de
un miembro del equipo debe ser
considerado como un fallo del
equipo. Esto lleva a un acercamiento
del equipo a la acción correctiva, en
lugar de culpar y desconfiar, que
ocurre con rapidez en equipos
tóxicos.
Producto
“Para desarrollar un plan de proyecto razonable, tiene que descomponer
funcionalmente el problema a resolver” El gestor de un proyecto de software
se enfrenta a un dilema al inicio de un proyecto de ingeniería del software.
Se requieren estimaciones cuantitativas y un plan organizado, pero no se
dispone de información sólida. Un análisis detallado de los requisitos del
software proporcionaría la información necesaria para las estimaciones,
pero el análisis a menudo lleva semanas o meses. Aún peor, los requisitos
pueden ser fluidos, cambiando regularmente a medida que progresa el
proyecto. Y, aún así, se necesita un plan «¡ya!». Por tanto, debemos examinar
el producto y el problema a resolver justo al inicio del proyecto. Por lo menos
se debe establecer el ámbito del producto y delimitarlo. Ámbito del software.
El ámbito de software se define respondiendo las siguientes cuestiones:
4. Contexto. ¿Cómo encaja el software a construir en un sistema, producto o
contexto de negocios mayor y qué limitaciones se imponen como resultado del
contexto?
Objetivos de información. ¿Qué objetos de datos visibles al cliente se
obtienen del software? ¿Qué objetos de datos son requeridos de entrada?
Función y rendimiento. ¿Qué función realiza el software para transformar la
información de entrada en una salida? ¿Hay características de rendimiento
especiales que abordar? Descomposición del problema. La descomposición d
el problema, denominado a veces particionado o elaboración del problema, es
una actividad que se asienta en el núcleo del análisis de requisitos del
software.
La descomposición se aplica en dos áreas principales: (1) la funcionalidad que
debe entregarse y (2) el proceso que se empleará para entregarlo.
Proceso
Las fases genéricas que caracterizan el proceso de software definición,
desarrollo y soporte son aplicables a todo software. El problema es seleccionar
el modelo de proceso apropiado para la ingeniería del software que debe
aplicar el equipo del proyecto. El gestor del proyecto debe decidir qué modelo
de proceso es el más adecuado para (1) los clientes que han solicitado el
producto y la gente que realizará el trabajo; (2) las características del producto
en sí, y (3) el entorno del proyecto en el que trabaja el equipo de software.
Cuando se selecciona un modelo de proceso, el equipo define entonces un
plan de proyecto preliminar basado en un conjunto de actividades
estructurales. Una vez establecido el plan preliminar, empieza la
descomposición del proceso.
Maduración del producto y el proceso.
La planificación de un proyecto empieza con la maduración del producto y del
proceso. Todas las funciones que se deben tratar dentro de un proceso de
ingeniería por el equipo de software deben pasar por el conjunto de
actividades estructurales que se han definido para una organización de
software.
Descomposición del proceso.
Un equipo de software debería tener un grado significativo de flexibilidad en
la elección del paradigma de ingeniería del software que resulte mejor para el
proyecto y de las tareas de ingeniería del software que conforman el modelo
de proceso una vez elegido.
5. Proyecto.
Para gestionar un proyecto de software con éxito, debemos comprender qué
puede ir mal (para evitar esos problemas) y cómo hacerlo bien.
Diez señales de alerta que pueden poner en peligro la conclusión con éxito
de un proyecto (John Reel).
1. La gente del software no comprende las necesidades de los clientes.
2. El ámbito del producto está definido pobremente.
3. Los cambios están mal realizados.
4. La tecnología elegida cambia.
5. Las necesidades del negocio cambian [o están mal definidas]
6. Las fechas de entrega no son realistas.
7. Los usuarios se resisten.
8. Se pierden los patrocinadores [o nunca se obtuvieron adecuadamente].
9. El equipo del proyecto carece del personal con las habilidades apropiadas.
10. Los gestores [y los desarrolladores] evitan buenas prácticas y sabias
lecciones.
Reel sugiere una aproximación de sentido común a los proyectos de software
dividida en cinco partes:
Empezar con el pie derecho. Esto se realiza trabajando duro (muy duro) para
comprender el problema a solucionar y estableciendo entonces objetivos y
expectativas realistas para cualquiera que vaya a estar involucrado en el
proyecto. Se refuerza construyendo el equipo adecuado y dando al equipo la
autonomía, autoridad y tecnología necesaria para realizar el trabajo.
Mantenerse. Muchos proyectos no realizan un buen comienzo y entonces se
desintegran lentamente. Para mantenerse, el gestor del proyecto debe
proporcionar incentivos para conseguir una rotación del personal mínima, el
equipo debería destacar la calidad en todas las tareas que desarrolle y los
gestores veteranos deberían hacer todo lo posible por permanecer fuera de la
forma de trabajo del equipo.
Seguimiento del Progreso. Para un proyecto de software, el progreso se sigue
mientras se realizan los productos del trabajo (por ejemplo, especificaciones,
código fuente, conjuntos de casos de prueba) y se aprueban (utilizando
revisiones técnicas formales) como parte de una actividad de garantía de
calidad. Además, el proceso del software y las medidas del proyecto pueden
ser reunidas y utilizadas para evaluar el progreso frente a promedios
desarrollados por la organización de desarrollo de software.
6. Tomar Decisiones Inteligentes. En esencia, las decisiones del gestor del
proyecto y del equipo de software deberían <<seguir siendo sencillas>>
Siempre que sea posible, utilice software del mismo comercial o componentes
de software existentes; evite personalizar interfaces cuando estén disponibles
aproximaciones estándar; identifique y elimine entonces riesgos obvios;
asigne más tiempo del que pensaba necesitar para tareas arriesgadas
o complejas (necesitará cada minuto).
Realizar un Análisis «Postmortem» (después de finalizar el proyecto).
Establecer un mecanismo consistente para extraer sabias lecciones de cada
proyecto. Evaluar la planificación real y la prevista, reunir y analizar métricas
del proyecto de software y realimentar con datos de los miembros del equipo y
de los clientes, y guardar los datos obtenidos en formato escrito.
Principio W5HH (Barry Boehm)
Why, What, When, Who, Where, how, how
Principio creado por Barry Boehm, este principio se basa en una serie
de preguntas que conducen a una definición de características claves
del Proyecto y el plan de proyecto resultante.
1. ¿Por qué está en desarrollo este sistema?
2. ¿Qué se hará?
3. ¿Cuándo se terminará?
4. ¿Quién es el responsable de una función?
5. ¿En donde se ubica el centro de la organización?
6. ¿Cómo se realizará el trabajo en los sentidos técnico y de gestión?
7. ¿Cuánto se necesita de cada recurso?