Post on 02-Jul-2015
description
I N G . G A LO VA LV ER D E L .
• M S C , M D E I , M C S E , C L P
• P M I , A C M , I E E E M E M B E R
10/29/2014 1
Administración de Proyectos
en Ingeniería de Software
10/29/2014 2
Hoy en día las Organizaciones compran o desarrollan productos de software paraapoyar los procesos de negocio.
Gran número de empresas, buenas y malas, grandes y pequeñas, tienen a menudo unfactor común. Son los PROYECTOS PESADILLA: proyectos con fechas imposibles decumplir, generando productos decepcionantes para sus usuarios y consumiendoingentes horas de mantenimiento
Las Normas internacionales de Ingeniería del software brindan las mejores prácticas para la adquisición y desarrollo de productos con calidad con el objetivo de satisfacer las necesidades y expectativas del Cliente.
10/29/2014 3
4
Implicaciones de un Proyecto
Tiene un Propósito definido.
Es un Proceso Organizado.
Son actividades temporales (inicio y fin claros)
Costo y recursos presupuestados
Involucra Riesgo.
Planificación según un desempeño esperado
Variabilidad (de actividades, personal, gastos)
Impacto!!!
Crisis del Software
Según el Centro Experimental de Ingeniería de Software (CEIS), el estudio de mercado Reporte Chaos realizado por Standish GroupInternacional en 2013,
Concluyó que sólo:• 39% de los proyectos de software son
exitosos.(Terminan dentro de plazos y costos y cumplen los requerimientos acordados).
• 43% sobrepasa costos y plazos y cumple parcialmente los requerimientos.
• 18% Ni siquiera llega al término.
Problemas típicos en Desarrollo de Software
Escasa o tardía validación con el cliente.
Inadecuada gestión de los requisitos y equipos de desarrollo
No existe medición del proceso ni registro de datos históricos.
Estimaciones imprevistas de plazos y costos.
Excesiva e irracional presión en los plazos.
Escaso o deficiente control en el progreso del proceso de desarrollo.
No se hace gestión de riesgos formalmente.
No se realiza un proceso formal de pruebas.
No se realizan revisiones técnicas formales e inspecciones de código.
Excesivo Uso de tecnología novedosa
El CHAOS Standish Group, indica que los mayores problemas están
relacionados con la especificación, la gestión y la documentación de
los proyectos de software.
Impacto de Equipos de proyectos Ad-Hoc de Software
EQUIPO DD DC CC
Dificultad Alta Baja Baja
Tamaño Pequeño Grande Grande
Tiempo Equipo Largo Corto Corto
Modularidad Baja Alta Alta
Fiabilidad Alta Alta Baja
Fecha de Entrega Flexible Flexible Estricta
Comunicación Alta Baja Baja
10/29/2014 7
DD: Descentralizado Democrático
DC: Descentralizado Controlado
CC: Centralizado Controlado
Paradigmas de Estrategias de Equipos de Desarrollo Software
Las estrategias Agile y Lean son más efectivas que las estrategias tradicionales de Cascada
Los equipos de proyectos ad-hoc (sin proceso definido) y proyectos tradicionales tienen tasas de éxito más bajas que los equipos de proyectos ágiles / iterativos
10/29/2014 8
Éxito de Desarrollo de Software
Tiempo / horario, 16% prefiere a entregar a tiempo de acuerdo con el calendario, 39% prefiere entregar cuando el sistema está listo para ser enviado, y el 42% dice que ambos son igualmente importantes
Rendimiento de la inversión, el 13% prefiere entregar dentro del presupuesto, el 60% prefiere proporcionar un buen retorno de la inversión (ROI), y el 23% dice que ambos son igualmente importantes
Valor para los interesados, 4% prefiere construir el sistema de acuerdo a las especificaciones y el 86% prefiere satisfacer las necesidades reales de las partes interesadas, y el 10% dice que ambos son igualmente importantes
Calidad, el 10% prefiere entregar a tiempo y dentro del presupuesto y el 56% prefiere ofrecer alta calidad, fácil de mantener los sistemas, y el 34% dice que ambos son igualmente importantes
10/29/2014 9
10
Desarrollo de Productos de Software
Ingeniería de Software Administración de Proyectos
Métodos
Productos
Top 10 lenguajes de programación más usados en desarrollo
10/29/2014 11
Fuente: IEEE Spectrum 2014
Metho
ds
P
r
o
d
u
c
t
s
Met
hods
P
r
o
d
u
c
t
s
Ideas
Productos
Ciclo de Vida de Desarrollo de Software (Muench)
12
La Administración de Proyectos mitiga los Riesgos
Copyright © 2002 Linda and Don Shafer
13
Concept
Definition
Needs
Assessment
Plan
Project
Plans
Specifications
Databases
ROI
Analysis
Risk
Analysis
Analyze
Management
Plan
Market and
System
Requirements
Candidate
Architecture
Identification
ADMINISTRACION DE PROYECTOS SOFTWARE
Metodologías
Modelos
Herramientas y técnicas
de administración
Estimación y planificación
de proyectos software
COCOMO II
Plan de contingenciaGestión de calidad
Gestión de Software – 4P
PERSONAL – Esfuerzo humano intenso -> Ingeniería de SW eficaz
PROBLEMA – Plan Organizado . Mal Inicio-Problema Equivocado
PROCESO – Modelo -> Ciclo de Vida
10/29/2014 15
Personal
Proyecto
Proceso
Producto
Gestión Eficaz
Normalización de procesos, herramientas y tecnologías de soporte para la ingeniería de productos de software y sistemas buscando las mejores prácticas
JTC1/SC 7 - Software and
systems engineering
CT 27 - Sistemas
de Informacion
RegionalInternacional
Normalización
Evaluación del producto de software
NA - ISO/IEC 14598
ISO/IEC 14598
Calidad del producto de software
NA – ISO/IEC 9126
ISO/IEC 9126
ISO / IEC TR 19759 norma internacional: 2005
La nueva ISO 21500Comité de Proyecto ISO/PC 236
40 países
Diversas Industrias
Publicada en Marzo del 2013
Recoge los aspectos destacables y los aspectos comunes de otras normas relacionadas (PMI, Prince2):
◦ PMBOK®Project Management Body of Knowledge
◦ ICB International CompetenceBaseline
◦ PRINCE2 Project in Controlled Environments
◦ BS 6079 partes 1 a 4. Guide to Project Management
◦ DIN 69901 partes 1 a 5. Project Management. Project Management Systems
◦ ISO 10006 Quality Management Systems. Guideline for Quality Management in Project
La ISO 21500 describe los Procesos y establece Entradas y Salidas.
•NO establece Técnicas y Herramientas.
•La Guía del PMBOK®SÍ proporciona Técnicas y Herramientas.
10/29/2014 17
grupo de
procesos
área de
conocimiento
proceso de
gestión
_pertenece_
_agrupa_
18
PMBOK Procesos de Gestión de Proyectos
Los procesos de gestión de proyectos:◦ contienen las “best práctices” de gestión
◦ se pueden adaptar a cada disciplina, pero sin dejar de lado la esencia de su singularidad y del conjunto
◦ se describen en el PMBOK en función de entradas, salidas, y herramientas/técnicas involucradas en transformar las entradas en salidas.
Áreas de Conocimiento:◦ 4. Gestión de Integración del Proyecto
◦ 5. Gestión del Alcance del Proyecto
◦ 6. Gestión de Tiempos del Proyecto
◦ 7. Gestión de Costos del Proyecto
◦ 8. Gestión de la Calidad del Proyecto
◦ 9. Gestión de los Recursos Humanos del Proyecto
◦ 10. Gestión de las Comunicaciones del Proyecto
◦ 11. Gestión de Riesgos del Proyecto
◦ 12. Gestión de las Adquisiciones del Proyecto
grupo de
procesos
área de
conocimiento
proceso de
gestión
_pertenece_
_agrupa_
La gestión del proyecto se define en la edición 2000 de la Guía de los Fundamentos de la Gestión de Proyectosdel Conocimiento (PMBOK ®) publicado por el PMI y adoptado como IEEE Std 1490-2003, como "la aplicaciónde conocimientos, habilidades, herramientas, y técnicas a las actividades de proyectos para cumplir losrequisitos del proyecto”.
La gestión de la Ingeniería del Software (SWBOK) puede definirse como la aplicación de actividadesadministrativas – planeación, coordinación, medición, monitorización, control y reporte- para asegurar que eldesarrollo y el mantenimiento de software sea sistemático, disciplinado y cuantificable. (IEEE610.12-90).
La IEEE creó en Mayo de 1993 su comité para la coordinación de la ingeniería de software (SoftwareEngineering Coordinating Committee) dedicado a evaluar, planear y coordinar acciones relacionadas paraestablecer la Ingeniería de Software como una profesión
Este comité publicó en 2001 la Guia del Cuerpo de Conocimiento de Ingeniería de Software (Guide to theSoftware Engineering Body of Knowledge) o SWEBOK, como complement al PMBOK
Este documento tiene como propósito proveer un consenso sobre los límites de la ingeniería de software yacceso al cuerpo de conocimiento de la disciplina
El cuerpo de conocimiento de la ingeniería de software (SWBOK-2004) se divide en 10 áreas de conocimiento(Knowledge area o KA)
A finales de 2013, SWEBOK V3 fue aprobado para su publicación y puesto en libertad.
Requisitos de software
Diseño de software
Construcción de software
Pruebas de software
Mantenimiento de software
Gestión de la configuración de software
Gestión de (Proyectos) la ingeniería de software
Proceso de ingeniería de software
Herramientas y métodos de la ingeniería de software
Calidad de software
10/29/2014 20
Áreas de conocimiento necesarias para la Gerencia de Proyectos de Software:
Administración de Proyectos de Software (APS)?
La gestión de proyectos implica laplanificación, supervisión, y control delpersonal, del proceso y de los eventosque ocurren mientras evoluciona elsoftware desde la fase preliminar a laimplementación operacional. (Pressman)
Proceso de Administración de Proyectos de Software (APS)?La APS Planifica, dirige y controla el desarrollo de un sistema aceptablecon un coste mínimo y dentro de un período de tiempo específico.
• Modelo de Proceso
Seleccionado
• Plan de Proyecto Preliminar
Establecido
• Proceso de Descomposición
Fin
24
Iniciación
Cierre
Control
Ejecución
Planificación
Etapas del proceso de gestión Cada etapa se compone de varios procesos de gestión
Error fatal: pensar que esto es el proyecto
Ciclos de Vida
del SOFTWARE
Metodologías de
desarrollo de
Software
Metodologías o Ciclo de Vida . ¿Qué necesito?
Funciones básicas de APS en Desarrollo de Software
• Planificación de las tareas del proyecto y selección del equipo de proyecto.
• Organización y definición de calendario para el proyecto• Dirección y control del proyecto• Si el ámbito del proyecto tiende a crecer, el administrador debe
tomar una decisión.
Levantamiento de RequisitosSWEBOK y CMMI
10/29/2014 26
Procesos de la APS
10/29/2014 27
10/29/2014 28
Metodologías?Conjunto de procedimientos, técnicas,herramientas y soporte documental para larealización de nuevo software.
¿Cómo se divide el proyecto?
¿Qué tareas en cada etapa?
¿Qué salidas y cuándo se producen?
¿Restricciones?
¿Herramientas?
¿Cómo gestionar, cómo controlar?
Metodologías estructuradas
MERISE (Francia)
Gane & Sarson
Yourdon & DeMarco
Metodología Ágiles
Extreme Programming
Proceso Unificado Rational
Open Source Software Development
• Entrega pequeñas de software con ciclos rápidosIncremental
• cliente y desarrolladores trabajan juntos Cooperativo
• Fácil de aprender y modificar, bien documentadosencillo
• Permite realizar cambios de último momento)adaptable
Gestión de los Recursos Humanos
Personal
Instituto de Ingeniería del Software
MMCGP
(Modelo de Madurez de la Capacidad de la Gestión de Personal)
Seleccionar profesionales altamente calificados
En un proyecto Software el factor humano es esencial
Proceso Software
Soporte
Desarrollo
Definición
Caracterízación de las herramientas SCM
10/29/2014 34
Administración de Calidad de Proyectos de Software
Calidad concepto presente en el mundo globalizado
◦ “el producto desarrollado cumple su especificación” (Crosby, 1979)
EL MODELO DE CALIDAD DE SOFTWARE es un conjunto de buenas prácticas para el ciclo de vida del software, enfocado en los procesos de gestión y desarrollo de proyectos
Como se aplica a la IS? problemas
UNPSJB 2005 35
• La especificación se orienta hacia las características del producto que el consumidor quiere, pero la organización tiene requerimientos que no se incluyen en la especificación (ej. Mantenimiento)
• No se sabe como especificar ciertas características de calidad de una forma no ambigua
• Es difícil redactar especificaciones concretas del software. Por esto aunque el producto esté acorde con la especificación, los usuarios no lo consideran un producto de calidad.
Administración de Calidad
Tres actividades principales◦ Aseguramiento de calidad
◦ Establecer un marco de trabajo de procedimientos y estándares organizacionales que conduce a software de alta calidad
◦ Planeación de la calidad: la selección de procedimientos y estándares adecuados a partir de este marco de trabajo y la adaptación de éstos para un proyecto específico.
◦ Control de calidad: definición y promulgación de los procesos que aseguran que los procedimientos y estándares para la calidad del proyecto son seguidos por el equipo de desarrollo de software.
◦ Estándares
◦ Del producto: se aplican sobre el elemento a desarrollar. Se incluye
◦ Estándares de documentos
◦ Estructuras del documento de requerimiento
◦ Estándares de codificación, etc.
◦ Del proceso: definen los procesos a seguir durante el desarrollo del SW. Incluyen
◦ Procesos de especificación, diseño y validación
◦ Documentación asociada con lo anterior
36
Cuáles son las consecuencias de una deficiente APS?
Necesidades no satisfechas o no identificadas
Cambio incontrolado del ámbito del proyecto
Exceso de costo
Retrasos en la entrega
Conclusiones
No existe la “bala de plata”◦ El SW es complejo por su tamaño◦ El SW es invisible y abstracto◦ El SW no se fabrica, se hace
Análisis y modelado temprano es importante◦ Los defectos se remueven en forma más barata
Modelado y análisis temprano no es suficiente◦ Se necesita comunicar los requerimientos a todos◦ Se necesitan congeniar múltiples agentes involucrados◦ Se necesitan entender el contexto del sistema
38
ConclusionesEl Cuerpo del Conocimiento de Ingeniería de Software (SWEBOK) es más apropiado que el cuerpo de Dirección de Proyectos (PMBOK) como una guía para los gestores de proyectos de software.
PMBOK tiene una tendencia a hacer hincapié en la gestión del alcance y de la descomposición de tareas, mientras que SWEBOK se centra en el análisis de requisitos y diseño arquitectónico
Los desarrollos y metodologías recientes en la ingeniería de software orientada a objetos (Agile) muestran que el énfasis en los requisitos en vez de alcance, y sobre la arquitectura en lugar de las tareas lleva a procesos de desarrollo de software de calidad superior
En los casos de desarrollo de aplicaciones de nuevas herramientas, el Análisis de Requisitos y la Arquitectura del Sistema deben ampliarse a un contexto más amplio.
Es recomendable que las organizaciones exijan planificaciones detalladas de alcance, costos y cronogramas al comienzo de esfuerzo de desarrollo de software críticos
10/29/2014 39
Preguntas
10/29/2014 40