Professional Documents
Culture Documents
Proyectos de software
Hughes, B. y Cotterell, M., Software Project Management, McGraw-Hill, Secciones 1.2 y 1.3
Ejercicio 1
Cul de los siguientes puede considerarse proyecto?
Producir la edicin de un peridico Hacer un tnel bajo el mar Realizar un matrimonio
Complejidad
Los proyectos de software contienen mayor complejidad que otros tipos de proyectos respecto al dinero gastado
Flexibilidad
El software puede cambiarse ms fcilmente que otros productos
Proyecto
No todos los proyectos son iguales Un proyecto es como viajar en carretera. Algunos proyectos son simples y rutinarios, como conducir hacia la tienda a plena luz del da. Pero la mayora de los proyectos que valen la pena realizar son ms parecidos a conducir un camin, en la montaa, de noche en Nepal (Cem Kamer, James Bach y Bret Pettichord)
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill, Seccin 21.1
Administracin de proyectos
Administracin
1. 2. 3. 4. 5. 6. Planear: decidir qu se va a hacer Organizar: hacer preparativos Asignar personal: elegir personas adecuadas Dirigir: dar rdenes Monitorear: observar el progreso Controlar: emprender acciones para corregir problemas de funcionamiento 7. Innovar: proponer soluciones novedosas 8. Representar: conectar con clientes y usuarios
Conocimiento muy especializado Cambio de ambiente de software Cambio de requerimientos Presin de fecha lmite Falta de control de calidad Falta de entrenamiento Administracin lejana
Informacin y control
Decisiones:
estratgicas (objetivos), tcticas (alcanzar metas) operativas (da con da)
control fluye informacin
Informacin:
medidas de actuacin medidas predictivas
EMPRESA
fluye
Ejercicio 2
Explique por qu la intangibilidad de los sistemas de software plantea problemas para la administracin de proyectos de software.
1. Redaccin de la propuesta
La redaccin incluir:
de
la
propuesta
deber
Objetivos del proyecto Cmo se llevar a cabo Costos y calendarizacin Justificacin del por qu se entregar a un equipo u organizacin
Resulta crtica pues la habilidad de realizar la redaccin slo se adquiere con el tiempo.
Sommerville, I., Ingeniera de Software, 6 ed., Addison Wesley, Seccin 4.1
Por lo que se debe bosquejar un plan de desarrollo hacia las metas del proyecto
Un administrador de proyectos de software debe tener la habilidad de comunicarse efectivamente de forma oral y escrita
Las cuatro P
Personal -1 El software lo hacen seres humanos Para seres humanos Y a veces afecta a otros seres humanos As lo ms importante en el software son los seres humanos (personas)
Proceso -3 Un proceso de software proporciona un marco de trabajo para establecer el plan detallado para el desarrollo del software
Puede ser simplemente un mtodo o una metodologa
Proyecto -4 Lo que se desea emprender, personas, empleando un personas especfico, para producto deseado y usando adecuado. para ciertas equipo de obtener un un proceso
Personal -1-
Personal
La componente ms importante para el xito de un proyecto es el factor humano
Estudio realizado por IEEE en 1988
A pesar de la importancia del ser humano, los gerentes ignoran el desarrollo de su personal. Aspectos a considerar referentes al factor humano
Participantes Lderes de equipo Estructura organizacional del equipo de software Conflictos de coordinacin y comunicacin
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill, Seccin 21.1
Participantes (1/2)
Gestores ejecutivos
Definen aspectos del negocio que influenciar al proyecto
Gestores tcnicos
Planifican, motivan, organizan y controlan a los profesionales
Participantes (2/2)
Profesionales
Proporcionan las habilidades tcnicas para la ingeniera de un producto
Clientes
Especifican los requerimientos para la IS
Usuarios finales
Interactan con el software una vez que se libera
Lderes de equipo
Los profesionales de computacin, generalmente, no tiene las competencias para ser lderes, las adquieren por necesidad.
Lderes de equipo
Jerry Weinberg, 1986:
Sugiere que los lderes de proyecto exitosos aplican un estilo de gestin de resolucin de problemas.
Entender el problema, gestionar el flujo de ideas y, al mismo tiempo, hacer que el equipo se comprometa con la calidad.
Organizacin.
Habilidad para adecuar procesos existentes o inventar nuevos.
Ideas e innovacin.
Habilidad para alentar a la gente a ser creativo y trabajar dentro de los lmites establecidos para la aplicacin.
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill, Seccin 21.1
Factores de Mantei
Equipos giles
Los mtodos giles subrayan la competencia individual en conjuncin con la colaboracin del grupo Para aprovechar la competencia de cada miembro del equipo y fomentar la colaboracin eficaz a lo largo del proyecto, los equipos giles son auto organizados La planificacin se mantiene al mnimo Se realizan reuniones peridicas de equipos para coordinar el trabajo que se debe hacer
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill, Seccin 21.1
Toxicidad de equipo
No todos los equipos funcionan bien (no cuajan) Jackman en 1998, propone cinco factores que fomentan un ambiente de equipo txico:
Atmsfera de trabajo frentica. Alta frustracin que provoca fricciones Proceso de software fragmentado o pobremente coordinado Poca definicin de los papeles dentro del equipo Continuas y repetidas exposiciones al fracaso
Prevencin
1. Toda la informacin del proyecto debe estar a la mano y no debe cambiarse. 2. Dar a los miembros del equipo la misma responsabilidad. 3. Comprender el problema y que el equipo elija el proceso. 4. Establecer la forma de revisar los avances y su calidad (RTF) 5. Establecer tcnicas de equipo para realimentacin y resolucin de problemas.
2. 3.
4. 5.
Alta frustracin que provoca fricciones Proceso de software fragmentado o pobremente coordinado Poca definicin de los papeles dentro del equipo Continuas y repetidas exposiciones al fracaso
Ejercicio 3
Proponga 10 lineamientos para que el ingeniero de Software ejerza su potencial completo en su trabajo. Los 10 mandamientos del Ingeniero de Software
Factores crticos
Objetividad
Trato equitativo, transparente
Respeto
Aceptar habilidades diferentes, mientras haya aporte
Incorporacin
Escuchar y tomar en cuenta propuestas
Honestidad
Sobre lo que va bien y lo que va mal; sus conocimientos
Seleccin de personal
Fuentes de informacin
Los interesados Entrevistas: tiles en aspectos de comunicacin y habilidades sociales; fallan en aspectos tcnicos Recomendaciones de personas conocidas que han trabajado con los interesados
Seleccin de personal
Algunos factores que influyen:
Experiencia en dominio de aplicacin (algunos) Experiencia en plataforma (si hay programacin de bajo nivel) Experiencia en lenguaje (en proyectos cortos) Habilidad para resolver problemas (difcil; por trabajos) Soporte educativo (poco relevante) Habilidad de comunicacin (oral, escrita, idiomas) Adaptabilidad (segn trabajos realizados) Actitud (positiva respecto al trabajo; deseo de aprender) Personalidad (compatibilidad)
Seleccin de personal
Pasos para seleccionar
Crear especificacin del trabajo Crear perfil del empleado Conseguir solicitantes Examinar currcula Entrevistas
Aptitudes Personalidad Muestras de trabajo Entrevista personal
Motivacin
Las personas se motivan por satisfaccin de necesidades, en orden creciente (segn Maslov):
Enfocarse en stas
Fisiolgicas (comer, dormir) Seguridad (entorno protector) Sociales (parte de grupo) Estima (sentirse respetado) Autorrealizacin (desarrollo personal)
Motivacin
Sociales:
Dar tiempo a conocerse, lugar de intercambio, mecanismos informales
Estima:
Mostrar que tienen valor, reconocer logros
Autorrealizacin:
Asignar tareas demandantes, pero imposibles, programas de capacitacin no
Motivacin
Orientacin de personas:
A tareas: se motivan por su trabajo, reto intelectual, tcnico (el software como reto) A s mismos: su xito y reconocimiento (software como medio) A interaccin: presencia y acciones de compaeros; importantes en enfoque orientado a usuarios
Gestin de grupos
Factores para equipos
Composicin: balance de habilidades, experiencia y personalidades Cohesin: verdadero equipo, no coleccin de individuos Comunicacin: que exista y sea efectiva Organizacin: todos se sienten valorados y satisfechos de su papel
Gestin de equipos
En cuanto a balance de personalidades:
Los orientados a tareas son buenos para los aspectos tcnicos; deben comprender conjunto, no aislarse. Unos ayudan a comunicar y los orientados a s mismos son persistentes, seguirn hasta el final
Gestin de equipos
Sobre cohesin
Grupo ms importante que individuos, metas de grupo, lealtad, proteccin Se forman estndares de calidad del grupo Depende de la cultura organizacional Problemas: resistencia irracional a cambio de liderazgo; pensamiento de grupo (no se piensa crticamente)
Gestin de equipos
Comunicacin:
Influye tamao de grupo; al crecer crecen demasiado los canales de comunicacin, distraccin La estructura afecta: los grupos menos formales se comunican mejor La composicin: personas parecidas chocan; balance de sexos El entorno afecta (rea de trabajo, cierta privacidad)
Personal
El factor humano es tan importante que el SEI desarrollo el Modelo de Madurez de Gestin Capacidad Personal (MMCGP). Existen varias reas clave prcticas para el personal de software: Reclutamiento Seleccin Gestin del desempeo Entrenamiento Retribucin Desarrollo de carrera Diseo de organizacin y trabajo Desarrollo de cultura de equipo
Antecedentes
Las compaas globales tecnologa requieren y de alta
Se busca que no slo sigan rdenes sino que sean centros inteligentes de accin hacia fines comunes
Antecedentes
Principios para atraer, desarrollar y personal valioso (J. Pfeffer, Stanford): retener
Seguridad en el empleo Contratacin selectiva Equipos autoadministrados y descentralizacin de toma de decisiones Compensacin alta segn rendimiento de la organizacin Entrenamiento Reducir barreras y distinciones de estatus Compartir informacin financiera y de rendimiento
Prcticas repetibles
Nivel 2: Gestionado (Gestin del personal)
Prcticas medibles
Nivel 4: Predecible(Gestin de capacidades)
Nivel 1 Inicial
Se hace ad-hoc, se reinventa cada vez No hay manera confiable de estimar esfuerzo El resultado depende del personal Se dice que el personal es valioso Pero no se hace nada por mejorar su valor
Nivel 2 Gestionado
La base para mejorar, que sea repetible Establecer procesos bien definidos Control de compromisos y lneas base No estar presionando y correteando al personal innecesariamente
Nivel 3 Definido
Se identifican las mejores prcticas Se documentan e integran a procesos Se definen mtricas Se estandariza para toda la organizacin Surge cultura comn
Nivel 4 Predecible
Se administra a partir de datos que describen el rendimiento de la empresa; no solo hitos Se caracterizan estadsticamente los procesos crticos Al volverse predecibles y cuantitativos, se adquiere conocimiento que permite mejorar las prcticas
Nivel 5 Optimizado
Del conocimiento que se tiene se van proponiendo acciones de mejoramiento: Ajustar procesos Usar nuevas tecnologas Se administra el cambio Se identifican defectos persistentes
Resumen
Se crea un ambiente donde
Las prcticas son repetibles Las mejores prcticas se transfieren entre grupos Se reducen las variaciones en rendimiento Las prcticas se mejoran de continuo
reas de proceso
Arquitectura
PROCESO - 2-
Proceso
Un proceso dice quin est haciendo qu y cundo y cmo lograr la meta
Proceso
Un proceso de software proporciona el marco de trabajo para establecer el plan detallado para el desarrollo del software Dos tipos de actividades son generales en cualquier proceso:
Establecer: tareas, hitos, productos de trabajo y puntos de control de calidad Controlar la calidad, gestionar la configuracin de software y medir resultados.
Actividades
Un proceso tiene actividades genricas para cualquier proyecto
Se detallan proyecto segn necesidades de cada
Actividades genricas
Comunicacin (requerimientos) Planeacin Modelado (anlisis, diseo) Construccin (codificacin y prueba) Despliegue
Actividades sombrilla
Gestin del riesgo Seguimiento y control Revisiones Medicin Gestin de la configuracin Gestin de reutilizacin Preparacin y produccin de productos del trabajo
Procesos
Personal Software Process
proyectos pequeos de una persona
Mtodos giles
Scrum, Crystal Clear, XP
86
Seleccin de proceso
En cada proyecto se selecciona un proceso, entre los anteriores u otros o se forma especfico para un proyecto
Producto - 3-
Producto
Antes de crear un proyecto se deben establecer:
Objetivos y mbito del producto Soluciones alternativas Identificacin de restricciones tcnicas y de gestin El desarrollador de software y cliente deben reunirse para definir objetivos y mbito del producto En ese momento empieza la Ingeniera de procesos del negocio y continua con Ingeniera de Requerimientos.
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill, Seccin 21.1
Producto
Para empezar un proyecto se necesitan estimaciones cuantitativas y un plan organizado. Para obtener lo anterior se necesita informacin slida del producto a construir. Un anlisis de requerimientos sera lo deseable, pero:
ste se lleva semanas y hasta meses Aunque se agilice, los requerimientos siempre cambian durante el proyecto.
Funcin y desempeo
Qu funciones realizar el software para transformar los datos de entrada? Habr caractersticas de desempeo especial a considerar?
Para entender el problema se aplica la descomposicin del mismo. Antes de comenzar la estimacin se evala y refina la redaccin del mbito Generalmente basados en la funcionalidad
El administrador del proyecto incluir la lista de funciones y luego agregar preguntas respecto de a las funcionalidades novedosas.
irn
Seleccin de Proceso
Caractersticas importantes que hay que considerar para escoger el proceso
Los clientes solicitaron el producto y el personal Las caractersticas del producto El ambiente de trabajo en que trabaja el equipo de software
Una vez seleccionado el proceso se define el plan preliminar del proyecto con base en las actividades del marco de trabajo
Pressman, R., Ingeniera de Software, 6 ed., McGraw-Hill
ACTIVIDADES COMUNES DEL MARCO DEL TRABAJO DEL PROCESO Tareas de ingeniera de software Funciones del producto Entrada de texto Edicin y formateo Edicin automtica de copia Capacidad de plantilla de pgina ndice y tabla de contenido automtico Gestin de archivos Produccin de documento
Funcin principal del producto
ac
e la
t ru
ni f ic
un
Pla
od
ns
De
Co
Co
celda
sp
li e
gu
Proyecto - 4-
2. Planeacin.
Debe escribirse un plan que abarque todos las etapas en general y detalle la primera etapa, dejando las ltimas etapas pendientes para cuando se tenga ms informacin
Se rastrea conforme se elaboran los productos de trabajo y se aprueban como parte de una actividad de aseguramiento de la calidad. Se pueden recopilar y aplicar procesos del software y medidas del proyecto para valorar el progreso contra los promedios establecidos por la organizacin que desarrolla software.
En el principio W5HH, se realizan una serie de preguntas que conducen a una definicin de las caractersticas claves del proyecto y al plan de proyecto resultante
(What)Qu se har?
La respuesta a esta pregunta establece el conjunto de tareas que se requerir para el proyecto.
(When)Cundo se har?
La respuesta a esta pregunta ayuda al equipo a establecer una planificacin del proyecto al identificar cundo se realizarn las tareas del proyecto y cundo se alcanzarn los objetivos.
Prcticas Crticas
El Airlie Council en 1999 ha elaborado una lista de "prcticas crticas de software para la gestin basada en el desempeo".
empleadas consistentemente por, y consideradas crticas por, proyectos de software muy exitosos y por organizaciones cuya 'lnea base' de desempeo es mucho mejor que los promedios de la industria".
Ejercicio 4
Usted ha sido nombrado administrador de proyecto de software para una compaa que atiende el mundo de la ingeniera gentica. Su labor es gestionar el desarrollo de un nuevo producto de software que acelera el ritmo de la clasificacin de genes. El trabajo est orientado a Investigacin y Desarrollo, pero la meta es elaborar un producto dentro del siguiente ao. qu estructura de equipo elegira y por qu? qu modelos de procesos de software elegira y por qu?
Glosario
Hitos: puntos finales de una actividad del proceso de software. Son puntos finales de una etapa lgica del proceso de desarrollo. Producto a entregar (entregable). Resultado del proyecto que se entrega al cliente, generalmente al finalizar el proyecto.
Los productos a entregar son hitos, pero stos no necesariamente son entregables.