40
ING. GALO VALVERDE L . MSC, MDEI, MCSE, CLP PMI, ACM, IEEE MEMBER 10/29/2014 1 Administración de Proyectos e n Ingeniería de Software

Administración de Proyectos en Ingeniería de Software

Embed Size (px)

DESCRIPTION

Charla Seminario UPS. Administración de Proyectos en Ingeniería de Software

Citation preview

Page 1: Administración de Proyectos en Ingeniería de Software

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

Page 2: Administración de Proyectos en Ingeniería de Software

10/29/2014 2

Page 3: Administración de Proyectos en Ingeniería de Software

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

Page 4: Administración de Proyectos en Ingeniería de Software

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!!!

Page 5: Administración de Proyectos en Ingeniería de Software

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.

Page 6: Administración de Proyectos en Ingeniería de Software

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.

Page 7: Administración de Proyectos en Ingeniería 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

Page 8: Administración de Proyectos en Ingeniería de Software

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

Page 9: Administración de Proyectos en Ingeniería de Software

É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

Page 10: Administración de Proyectos en Ingeniería de Software

10

Desarrollo de Productos de Software

Ingeniería de Software Administración de Proyectos

Métodos

Productos

Page 11: Administración de Proyectos en Ingeniería de Software

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

Page 12: Administración de Proyectos en Ingeniería de Software

Ciclo de Vida de Desarrollo de Software (Muench)

12

Page 13: Administración de Proyectos en Ingeniería de Software

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

Page 14: Administración de Proyectos en Ingeniería de Software

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

Page 15: Administración de Proyectos en Ingeniería de Software

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

Page 16: Administración de Proyectos en Ingeniería de Software

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

Page 17: Administración de Proyectos en Ingeniería de Software

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_

Page 18: Administración de Proyectos en Ingeniería de Software

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_

Page 19: Administración de Proyectos en Ingeniería de Software

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.

Page 20: Administración de Proyectos en Ingeniería de Software

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

Page 21: Administración de Proyectos en Ingeniería de Software

Áreas de conocimiento necesarias para la Gerencia de Proyectos de Software:

Page 22: Administración de Proyectos en Ingeniería 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)

Page 23: Administración de Proyectos en Ingeniería de Software

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

Page 24: Administración de Proyectos en Ingeniería de Software

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

Page 25: Administración de Proyectos en Ingeniería de Software

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.

Page 26: Administración de Proyectos en Ingeniería de Software

Levantamiento de RequisitosSWEBOK y CMMI

10/29/2014 26

Page 27: Administración de Proyectos en Ingeniería de Software

Procesos de la APS

10/29/2014 27

Page 28: Administración de Proyectos en Ingeniería de Software

10/29/2014 28

Page 29: Administración de Proyectos en Ingeniería de Software

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?

Page 30: Administración de Proyectos en Ingeniería de Software

Metodologías estructuradas

MERISE (Francia)

Gane & Sarson

Yourdon & DeMarco

Page 31: Administración de Proyectos en Ingeniería de Software

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

Page 32: Administración de Proyectos en Ingeniería de Software

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

Page 33: Administración de Proyectos en Ingeniería de Software

Proceso Software

Soporte

Desarrollo

Definición

Page 34: Administración de Proyectos en Ingeniería de Software

Caracterízación de las herramientas SCM

10/29/2014 34

Page 35: Administración de Proyectos en Ingeniería de Software

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.

Page 36: Administración de Proyectos en Ingeniería de Software

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

Page 37: Administración de Proyectos en Ingeniería de Software

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

Page 38: Administración de Proyectos en Ingeniería de Software

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

Page 39: Administración de Proyectos en Ingeniería de Software

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

Page 40: Administración de Proyectos en Ingeniería de Software

Preguntas

10/29/2014 40