Proyectos De Software - Universidad Nacional Del Sur

Transcription

Administración de Proyectos de SoftwareAdministración de Proyectos de SoftwareProyectos de SoftwareE. Estévez - P. FillottraniDepto. Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del SurSegundo Cuatrimestre 2016

Administración de Proyectos de SoftwareProyectos de SoftwareDefiniciónConceptos generalesTriángulo de Alcance de un ProyectoEvaluación de un ProyectoClasificación de ProyectosEtapas y Ciclos de VidaEjemploAtributos CríticosPrincipios de Administración

Administración de Proyectos de SoftwareDefiniciónConceptos generales¿Qué es un Proyecto?Iun proyecto es una secuencia de actividades que tiene unpropósito y que debe ser completada en un tiempo determinado,dentro de un presupuesto y de acuerdo a una especificaciónIun proyecto es cualquier actividad que dé como resultado unproducto o un “entregable”Iproyectos de software pueden ir desde el desarrollo de grandessistemas hasta la instalación de un móduloIcomienzan con el enunciado de un problemaIlos proyectos se deben evaluar:IIII¿soluciona el producto el problema del usuario?¿está el usuario satisfecho con el proceso?¿está la gerencia satisfecha con el producto/proceso?¿ está el equipo de desarrollo satisfecho?

Administración de Proyectos de SoftwareDefiniciónConceptos generalesCaracterísticas de un ProyectoIsecuencia de actividades conjunto de tareas a realizarse en undeterminado ordenIactividades únicas cada actividad nunca se ha desarrollado, yjamás se volverá a repetirIactividades complejas las actividades no son actos repetitivosIactividades conectadas existe dependencia lógica o técnica entrelas actividadesIpropósito simple aunque proyectos grandes pueden dividirse ensubproyectosIen tiempo y presupuesto no está bajo control, y se termina conesas restriccionesIde acuerdo a una especificación se espera cierto nivel defuncionalidad y calidad en el entregable, aunque la especificaciónpuede variar

Administración de Proyectos de SoftwareDefiniciónConceptos generalesCaracterísticas de un ProyectoI secuencia de actividadesI actividades únicasI actividades complejasI actividades conectadasI propósito simpleI en tiempo y presupuestoI de acuerdo a unaespecificación

Administración de Proyectos de SoftwareDefiniciónConceptos generalesAmbiente Actual de Desarrollo de un ProyectoIalta velocidad la ventana de oportunidades es muy inestableIalto cambio en el ambiente y deseos del clienteIbajos costos se necesita trabajar en forma inteligenteIaltos niveles de complejidad problemas simples ya han sidoresueltosIalta incertidumbre acomodarse a cambios lleva incertidumbre

Administración de Proyectos de SoftwareDefiniciónConceptos generalesDesafíos para la Administración de ProyectosIflexibilidad y adaptabilidadIcomprensión del negocio y sus sistemasIhacerse cargo del proyecto

Administración de Proyectos de SoftwareDefiniciónConceptos generales¿Qué es un Programa?Iun programa es una colección de proyectos relacionadosItienen un objetivo más amplio que un proyectoIgeneralmente, un proyecto grande se convierte en programapara que sea más fácil administrarloIuna práctica común es el establecimiento de una oficina deadministración de programa

Administración de Proyectos de SoftwareDefiniciónConceptos generalesPrograma - Ejemplo

Administración de Proyectos de SoftwareDefiniciónConceptos generalesPrograma - Ejemplo

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un ProyectoParámetros de Ejecución de un ProyectoIámbito qué se va a hacer y qué noIcalidad del producto y del procesoIcosto presupuesto disponible para completarloItiempo ventana de tiempo en la cual puede concluirseIrecursos cualquier consumible, pueden ser fijos y limitados

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un ProyectoBalance entre los ParámetrosIpermite al administrador escalar problemasIes la base para definir impacto de cambios

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un ProyectoDinámica del triánguloIlos proyectos son sistemas dinámicos que deben ser mantenidosen equilibrioIel líder del proyecto (LP) controla las tres dimensiones, y cadauna necesita ser identificada de manera independienteIcualquier imprevisto hace desbalancear el proyecto. Ejemplo: unrecurso menos, un nuevo requerimiento

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un Proyecto¿Quién controla cada parámetro?ILPIIIgerenteIIIutilización de recursoscronograma de trabajoniveles de recursoscostosclienteIIIalcanceniveles de calidadfechas de entrega

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un ProyectoCorrimientosIcorrimiento de alcance:IIIcualquier cambio en el proyecto que no estaba en el plan originales responsabilidad del LP acomodar el proyecto para tener encuenta los cambioscorrimiento de esperanza:IIIinformar que no hay demoras, para no dar una mala noticia,pensando que para el próximo informe de tareas se puederecuperares responsabilidad del líder de proyecto controlar si los informesde avances son veraces.se pueden realizar controles aleatorios

Administración de Proyectos de SoftwareDefiniciónTriángulo de Alcance de un ProyectoCorrimientosIcorrimiento de esfuerzo: es el resultado del trabajo de miembrosdel equipo, que no representan progresos proporcionales altrabajo realizado. Ej: cada semana el informe de avance muestraprogresos pero nunca se terminaIcorrimiento de rasgos: sucede cuando miembros del equipoarbitrariamente agregan rasgos (características) que piensan queel usuario desearía tener en su sistema, pero que no especificó.Iel enfoque parece inocente. Pero qué pasa con: los eventos deprueba, los datos de prueba, la documentación del sistema, ¿elprograma de entrenamiento?

Administración de Proyectos de SoftwareDefiniciónEvaluación de un ProyectoEvaluación de ProyectosIun proyecto puede ser exitosoIun proyecto puede fracasar:1. al comienzo2. durante el desarrollo3. al final

Administración de Proyectos de SoftwareDefiniciónEvaluación de un ProyectoCaracterísticas de un proyecto exitosoIclaro comienzo - plan detalladoIcriterios de medición aceptablesImonitoreo cercano durante el desarrolloIdocumentación clara - revisiones frecuentesIprocedimientos para detección de problemasIcosto razonablemente cercano al estimado

Administración de Proyectos de SoftwareDefiniciónEvaluación de un ProyectoFracaso al comienzoIno “despegan” correctamente - sin planificaciónIproyectos avanzan rápidamente al 90 % y siempre se quedan ahíI¿qué es planificar?IIIconocer anticipadamente a donde se va a ircómo se va a hacer para llegar hasta ahícómo se va a hacer para probar que se esta ahí

Administración de Proyectos de SoftwareDefiniciónEvaluación de un ProyectoFracasos durante el desarrolloIanálisis y diseño mal documentadosIasignación confusa de responsabilidadesIfalta de planificación y organización de recursos requeridosIcodificación prematuraIfalta de revisiones (gerenciales) y walk-through (técnicos)Ifalta de estándares de desarrolloIdesercionesItécnicas de “fuerza bruta”

Administración de Proyectos de SoftwareDefiniciónEvaluación de un ProyectoFracasos al finalIaplicaciones entregadas sin suficientes pruebasIaplicaciones sin performanceIaltos costos de mantenimientoIcancelación de proyectos:IIIIfalta de fondoscambios en el contextodeserción de elementos clavesdesastre técnico

Administración de Proyectos de SoftwareClasificación de ProyectosImportancia de la ClasificaciónIcada proyecto es único, al igual que su mejor modelo dedesarrolloIpara la administración de proyectos no existe un esquema únicogeneralIes mejor definir políticas de acuerdo a grupos de proyectos conlas mismas característicasIes necesario entonces una clasificación de proyectos, en base acriterios comunes

Administración de Proyectos de SoftwareClasificación de ProyectosCaracterísticas de los ProyectosIriesgo niveles alto, medio o bajoIvalor para el negocio niveles alto, medio o bajoIduración categorías hasta 3 meses, 3-6 meses, 6-12 meses, etc.Icomplejidad niveles alto, medio o bajoItecnologías usadas niveles conocidas, usadas ocasionalmente,usadas raramente y nunca usadasIdepartamentos afectados niveles uno, algunos, varios y todosIcosto

Administración de Proyectos de SoftwareClasificación de ProyectosCategorías de ProyectosTipoABCDDuración 18 meses9 18 meses3 9 meses 3 mesesRiesgosaltomediobajomuy bajoComplejidadaltomediobajomuy bajoTecnologíasde ta probabilidadalguna probabilidadninguna

Administración de Proyectos de SoftwareClasificación de ProyectosProyectos por Categoría: Tipo AIalto valor de negocio, alta complejidadIproyectos más desafiantesIpara maximizar la probabilidad de éxito, la organización debeasignar todos los recursos y herramientas disponiblesIEjemplo: la introducción de nueva tecnología en un producto muybeneficioso para la compañía

Administración de Proyectos de SoftwareClasificación de ProyectosProyectos por Categoría: Tipo BIson proyectos más cortos, pero todavía muy significantes para laorganizaciónItecnológicamente desafiantesIse requieren muchos recursosIEjemplo: en general, muchos desarrollos de productos caen enesta categoría

Administración de Proyectos de SoftwareClasificación de ProyectosProyectos por Categoría: Tipo CIson proyectos muy frecuentes en una organizaciónIcortos, y usan tecnologías establecidasItípico constan de un equipo de cinco personas, duran seis mesesy se basan en en una definición no adecuadaIse usan recursos opcionales

Administración de Proyectos de SoftwareClasificación de ProyectosProyectos por Categoría: Tipo DIapenas pueden considerarse “proyectos”Irequieren poca documentación, y un cronograma básicoIEjemplo: cambios menores en un proceso existente

Administración de Proyectos de SoftwareClasificación de ProyectosUso de procesos en cada tipo de oMonitoreo/ControlCierreEtapasCondiciones de satisfacciónPOSAprobación de pedidoSesión de PlanificaciónPropuesta de ProyectoAprobación de propuestaReunión kick-offCronograma de ActividadesAsignación de RecusosDefinición de TrabajoReporte de EstadReuniones de EquipoAprobación de EntregablesAuditoría post-implementaciónNotas del ProyectoTipo ARRRRRRRRRRRRRRRTipo BRRRRRRRRRORRRRRTipo CORRORRORRORORROTipo DORRORROROORORRO

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaDesarrollo de un ProyectoIa fin de planificar y controlar algo, se lo debe descomponer enpartes pequeñas y manejablesIlos proyectos en general se descomponen en:1. partes componentes2. trabajo a realizar por las personasIlos proyectos de desarrollo se descomponen en fases de tiempo.Las fases de tiempo son un enfoque de: “primero hacer esto –luego hacer esto otro”.Ilas fases se eligen de tal forma de que sean razonablementedistintas y produzcan uno o mas hitos.

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaCiclos de VidaIcualquier metodología debe responder a las siguientes preguntasIIIII¿que situación de negocio se analizará?¿qué se necesita hacer?¿cómo se va a hacer?¿como se sabrá cuándo estará hecho?¿cómo se evaluará lo hecho?

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaHitosIun hito (milestone) es un evento que prueba claramente que unaetapa de un proyecto se concluyó satisfactoriamenteIejemplos:1.2.3.4.5.6.entrega del documento de requerimientosentrega de la especificación del sistemaentrega del diseño de la interface gráfica del usuarioentrega del documento de diseño de testsentrega de código fuentedeploy del sistema

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaHitos - Ejemplo

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaProcesos Típicos1. concepción (scoping)2. planificación3. lanzamiento4. monitoreo y control5. finalizaciónIlas distintas combinaciones y formas de realización de estasfases dan origen a distintos ciclos de vida

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaConcepciónIson todas las acciones para definir qué se haráIno se incluyen acciones propias para realización del proyectoIincluyen el establecimiento de los criterios de éxitoIalgunas tareas típicas:1.2.3.4.5.6.reclutar el LPobtener las reales necesidades del clientedocumentar estas necesidadesnegociar con el cliente cómo estas necesidades serán cubiertasescribir una descripción del proyecto (POS)ganar la aprobación de los gerentes para planificar el proyecto

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaPlanificaciónIincluye todas las acciones para definir cómo se haráIalgunas tareas típicas son:1.2.3.4.5.6.7.8.9.definir el trabajo del proyectoestimar cuanto tiempo llevará completarloestimar los recursos necesariosestimar el costo totalsecuenciar el trabajodesarrollar el cronograma inicialescribir un plan de contención de riesgosdocumentar el plan del proyectoganar la aprobación de los gerentes para lanzar el proyecto

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaLanzamientoIson acciones preparatorias para la ejecución del proyectoIalgunas tareas típicas son:1.2.3.4.5.6.7.reclutar el equipo del proyectoemitir el documento de descripción del proyectoestablecer las reglas del equipoestablecer el proceso de cambio de alcanceadministrar las comunicaciones del equipoterminar el cronograma del proyectodescribir los paquetes de trabajo

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaMonitoreo y ControlIincluye las acciones relacionadas con la ejecución del proyectoIalgunas tareas típicas son:1.2.3.4.5.establecer la performance y redactar los reportesmonitorear riesgosreportar el estado del proyectoprocesar requerimientos de cambio de alcancedescubrir y resolver problemas de ejecución

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaFinalización o CierreIincluye las acciones relacionadas con la evaluación del proyectoIalgunas tareas típicas son:1.2.3.4.ganar la aprobación del cliente de que se han cumplido las metasinstalar los entregablesescribir el reporte finalrealizar la auditoría post-implementación

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaCiclos de Vida de un proyectoIno todo proyecto pasa necesariamente por estas cinco etapas,existen distintas variacionesIconcepción, planificación, lanzamiento: es para una o dospersonas. No existe interés en el control. Sirve para planificar ytener idea de tiempos. Similar a una lista de tareasIconcepción, planificación, lanzamiento y control: lanzar elproyecto es sólo el 50 %. El control es un mecanismo de anticiparproblemas y tomar las medidas correctivas necesariasIconcepción, planificación, lanzamiento, control y cierre: la astuciadel LP hará que desee aprender de la experiencia del proyectoque terminó

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaÁreas de ConocimientoIintervienen en las distintas etapas de un proyectoIalgunas son comunes a todas, otras sólo participan de algunasetapasIson administración de

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaÁreas de Conocimiento: administración de.1.2.3.4.5.integración la conexión entre los entregablesalcance elicitación y documentación de requerimientos (WBS)tiempo abarca planificación y monitoreocostos abarca planificación y monitoreocalidad abarca planificación (estándares internos y externos),aseguramiento (herramientas definidas en el lanzamiento) ycontrol6. recursos humanos incluye factores de motivación(reconocimiento, responsabilidad, desafío, etc) y de higiene(condiciones de trabajo, políticas de la empresa, supervisióntécnica, salario)7. comunicación define los stakeholders y qué se les comunica8. riesgos incluye identificación de riesgos técnicos,organizacionales y externos, la evaluación (probabilidad eimpacto) de los mismos, mitigación y monitoreo

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaEjemploMedida Años-hombreIun año-hombre: es el trabajo que puede realizar una persona enun año. Es una unidad de medida para el esfuerzo.Ien general, se asume que una persona trabaja 160 horas pormesIejemplos:II1 año-hombre 160 horas/mes x 12meses 1920 horas5 años-hombre representan 9600 horas – o el trabajo que puedenrealizar 10 personas en 6 meses

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaEjemploEjemplo: Corporate Information SystemIel proyecto Corporate Information System (CIS) se canceló.Tiempo: 5 años. Presupuesto: 80 años-hombreIse habían hecho “todas las cosas bien”:IIIIIIIse consultaron publicacionesse aceptó la necesidad de un sistema centralizadose contrató una consultora para el estudio de factibilidadse demoró 15 años-hombre para realizar el estudio de factibilidadse utilizó hardware y software de última tecnologíase pagaron varios millones de dólares por encima del presupuestose utilizaron las últimas técnicas de programación

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaEjemploEjemplo: Corporate Information SystemIel proyecto “funcionaba” - todos los programas ejecutabancorrectamente.Ise pedía tiempo para optimizar performance - se necesitabaalimentar con 20.000 transacciones diarias y la actualización deuna sola transacción podía durar 20 minutosIse estimaba 2 años el esfuerzo para agregar una fábrica - el plande crecimiento era abrir una cada seis mesesIconclusión: La empresa no tuvo un nuevo sistema deadministración y se perdieron 5 años con respecto a suscompetidores.

Administración de Proyectos de SoftwareEtapas y Ciclos de VidaEjemploEjemplo: Corporate Information SystemIcausas del fracaso:IIIfracaso para determinar y controlar atributos críticos (AC) delproyectosfracaso para encontrar una arquitectura adecuada para los ACfracaso para hacer “evolucionar” un sistema basado enincrementosCIS, es real: VOLVO de Suecia

Administración de Proyectos de SoftwareAtributos CríticosAtributo CríticoIun atributo crítico es una calidad o recurso que puede causar queel sistema colapse si supera determinados límites (peor casoaceptable)Iatributos críticos en CIS:IIperformance de la operativa diariahabilidad para incorporar nuevas unidades de negocio

Administración de Proyectos de SoftwareAtributos CríticosEspecificación de atributos críticosIcapacidad de trabajo: la capacidad de trabajo debe ser suficientepara administrar el trabajo diario normal en un día de oficinanormalIIIIIPeor caso: 4 segundos en promedio por transacciónNivel planificado (inicial): menos de un segundo por transacciónNivel planificado (si #trans. 100,000 diarias): 0,2 segundos portransacciónMejor caso: 0,1 segundo por transacciónfalta de especificación de atributos críticos en CIS:IIla presunción fue que iba a haber suficiente capacidad deprocesamientocomo no se especificó como requerimiento formal, nadie sepreocupó

Administración de Proyectos de SoftwareAtributos CríticosEspecificación de atributos críticosIadaptabilidad: el sistema deberá ser capaz de integrar nuevasunidades de negocio, de tal manera que el sistema no sea motivode retrasoIpeor caso: las principales unidades de negocios nuevas, porejemplo una fabrica, deberán ser integradas en un plazo de 6meses y con un esfuerzo máximo de 10 programadores/analistaso 5 años-hombreInivel planificado: las principales unidades de negocio deberíanagregarse o eliminarse del sistema en menos de 6 meses detrabajo de esfuerzo calificado.

Administración de Proyectos de SoftwareAtributos CríticosEvaluaciónIla capacidad de trabajo no fue un problema de ingeniería yarquitecturaI¿era el software de base de datos el adecuado?Ise dejó el problema de performance para la programaciónIse planificó la entrega de la totalidad del sistema luego de 5años, nada a cambio.I¿qué hubiese pasado si se hubiese planificado con entregas“evolutivas”?

Administración de Proyectos de SoftwarePrincipios de AdministraciónItodos los atributos críticos se deben especificar claramente.Iel diseño debe satisfacer todos los atributos críticossimultáneamente.Itodos los atributos críticos deben ser especificados en términostesteables medibles. Se debe identificar el peor caso.Inunca intentar entregar grandes sistemas complejos en“big-bang”.Ino creer ciegamente en cualquier método - Usar el propio y elsentido común.I“si no se sabe lo que se está haciendo, no hacerlo en granescala!!”

Administración de Proyectos de SoftwarePrincipios de AdministraciónCuestiones GerencialesItareas del gerente:IIIdefinir objetivoscrear, evaluar y seleccionar alternativas para alcanzar objetivoscontrolar la implementación de la alternativa seleccionadaIlos gerentes confían en proveedores, expertos de ventas,consultoresIla red de comunicación entre gerentes, problem-solvers, técnicosy clientes a cerca de objetivos, planes y alternativas esinadecuadaIlos gerentes deben gerenciar !!!

Administración de Proyectos de SoftwarePrincipios de AdministraciónProblemas GerencialesIlos gerentes deben tomar decisiones.Ila mayoría de las decisiones son multidimensionales y el gerentedebe considerar múltiples objetivos simultáneamente.Ila toma de decisiones presenta el problema de lasobresimplificación, que conduce a no encontrar la soluciónadecuada.Ial tomar una decisión nos podemos olvidar de algunos factorescríticos, ellos no se olvidarán de nosotros.Ilos entornos dinámicos requieren herramientas pensantes enlugar de dogmas no pensantes.Ila mayoría de los problemas se deben a fallas en lacomunicación.

Administración de Proyectos de SoftwarePrincipios de AdministraciónComunicación: derecho a.Isaber que se espera de ustedIaclarar aspectos con cualquier persona de la organizaciónIiniciar definiciones más claras de objetivos y estrategiasIobtener objetivos presentados en formato medible y cuantificadoIcambiar objetivos y estrategias para lograr mejor performanceIprobar nuevas ideas para mejorar la comunicaciónIfracasar al probar y corregirlo rápidamenteIdesafiar constructivamente objetivos y estrategias de alto nivelIser juzgado objetivamente en base a objetivos mediblesIofrecer ayuda constructiva a colegas para mejorar lacomunicación

Administración de Proyectos de Software Definición Triángulo de Alcance de un Proyecto Corrimientos I corrimiento de alcance: I cualquier cambio en el proyecto que no estaba en el plan original I es responsabilidad del LP acomodar el proyecto para tener en cuenta los cambios I corrimiento de esperanza: I informar que no hay demoras, para no dar una mala noticia,