Tema 1.

Gestión de proyectos
1. INTRODUCCIÓN 2. DEFINICIONES 3. GESTIÓN DE PROYECTOS 3.1. PROYECTO y CARACTERÍSTICAS 3.2. GESTIÓN DE PROYECTOS 3.3. OBJETIVOS DEL PROYECTO 4. HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS 5. ACTIVIDADES DE GESTIÓN

PyGPI: Curso 2009

1

1.- Introducción

Nuestra sociedad depende en gran medida de la informática.
Parece impensable que los sistemas informáticos dejasen de trabajar, ya que son soporte de muchos sistemas. Ejemplos de sistemas básicos son:
el sistema para el control de semáforos ciudad, medios de transporte aéreo, los bancos, los sistemas de producción (fabricas), hospitales UVI, etc..
PyGPI: Curso 2009 2

1

1.- Introducción

El software en los sistemas informáticos representa una proporción grande y creciente del costo total del sistema. Producir software costeable es esencial para la economía. Ingeniería de software, es una disciplina de la ingeniería, cuya meta es el desarrollo costeable de sistemas de software.
PyGPI: Curso 2009 3

1.- Introducción

Crisis del software:
Un enfoque informal para el desarrollo de software no es bueno. Los proyectos grandes a menudo tenían años de retraso. Costaban más de lo presupuestado. Los costos del hard , costos del soft Se necesitaban nuevas técnicas y métodos para controlar la complejidad inherente en sistemas de soft grandes.
PyGPI: Curso 2009 4

2

1.- Introducción

....siguen existiendo problemas. Se ha mejorado mucho desde 1968:
métodos efectivos de
especificación, diseño, e implementación del software.

nuevas notaciones y herramientas que reducen el esfuerzo para producir sistemas grandes y complejos. ... pero falta mucho por mejorar.
PyGPI: Curso 2009 5

2.- Definiciones
1.- ¿Qué es las Ingeniería de software? Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza. Ingenieros: - teorías, métodos y herramientas - selectivo - buscar soluciones (restricciones..)

PyGPI: Curso 2009

6

3

2.- Definiciones
1.- ¿Qué es las Ingeniería de software? todos los aspectos de la producción de software Modelo de la Ingeniería del software (Thayer 1988)
Ingeniería del software Desarrollo de Software Analisis Diseño Codificación Pruebas Gestión de proyectos Planificación Organización Reclutamiento Dirección Control Metricas Mantenimiento del software de software Fiabilidad Corrección de Errores Usabilidad Modificaciones Flexibilidad Mantenibilidad Reusabilidad PyGPI:Etc. 2009 Curso 7

2.- Definiciones
1.- ¿Qué es las Ingeniería de software? todos los aspectos de la producción de software Modelo de la Ingeniería del software (Thayer 1988) Management: puede definirse como todas las actividades y tareas acometidas por una o más personas con el propósito de planificar y controlar las actividades de otros para lograr un objetivo o completar una actividad que no puede ser conseguido por estos actuando independientemente. Management: contiene los siguientes componentes: Planning Organizing Staffing Directing (Leading) PyGPI: Curso 2009 8 Controlling

4

2.- Definiciones
1.- ¿Qué es las Ingeniería de software?

(NATO ‘68)

La ingeniería del software es el establecimiento y uso de principios de ingeniería razonables con el objetivo de obtener software económicamente, que sea de confianza y trabaje eficientemente en las maquinas reales.
PyGPI: Curso 2009 9

2.- Definiciones
1.- ¿Qué es las Ingeniería de software?

(R.E. Fairley 1985)

Hemos definido la Ingeniería del Software como la disciplina tecnológica concerniente a la producción y mantenimiento sistemáticos de productos software que son desarrollados y modificados en el tiempo y con los costes estimados... Además, la Ingeniería del software tiene que ver con cuestiones de gestión que caen fuera del dominio de la programación tradicional.
PyGPI: Curso 2009 10

5

2.- Definiciones
2.- ¿Cuáles son los retos fundamentales a los que se enfrenta la Ingeniería de software?

El reto de lo heredado El reto de la heterogeneidad El reto de la entrega

PyGPI: Curso 2009

11

2.- Definiciones
3.- ¿Qué es un proceso de desarrollo de software? Es un conjunto de actividades y resultados asociados que producen un producto de software. Estas actividades son llevadas a cabo por los ingenieros de software. Existen cuatro actividades fundamentales de procesos que son comunes para todos los procesos del software:
Especificación del software Desarrollo del software Validación del software Evolución del software

PyGPI: Curso 2009

12

6

2.- Definiciones
3.- ¿Qué es un proceso de desarrollo de software ?

PyGPI: Curso 2009

13

2.- Definiciones
3.- ¿Qué es un proceso de desarrollo de software ?

¿Qué?

¿Cómo?

Realización

Pruebas

PyGPI: Curso 2009

14

7

2.- Definiciones
3.- ¿Qué es un modelo de procesos del software? Los modelos son simplificaciones, por lo tanto un modelo de procesos del software, es una abstracción abstracció de un proceso real. Estos modelos incluyen actividades que son parte de los procesos y productos de software y el papel de la gente involucrada en la ingeniería de software. Ejemplos de tipos de modelos a producir: • Un modelo de flujo de trabajo
• Un modelo de flujo de datos o de actividad • Un modelo de rol/acción
PyGPI: Curso 2009 15

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software? Existe una gran variedad de modelos generales diferentes o paradigmas de desarrollo de software: El enfoque de cascada: La Versión Ideal (Perfecta), Propuesta de Yourdon,..... Desarrollo evolutivo: Prototipos desechables, evolución de prototipos...... Transformación formal: Notación matemática. Sistema de ensamblaje de componentes reutilizables Iteración de procesos anteriores: incremental, espiral...
PyGPI: Curso 2009 16

8

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

PyGPI: Curso 2009

17

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

CODE and FIX Poco útil Bastante común

PyGPI: Curso 2009

18

9

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

PyGPI: Curso 2009

19

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

PyGPI: Curso 2009

20

10

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

Transformación formal
Requirements definition Formal specification Formal transformation Integration and system testing

Formal transformations T1 T2 T3 T4

Formal specification

R1

R2

R3

Executable program

P1

P2

P3

P4

Proofs of transformation correctness
PyGPI: Curso 2009 21

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

Desarrollo orientado a la reutilización
(Modificación de requerimientos) (Diseño de sistemas con reutilización)

Requirements specification
(Especificación de requerimientos)

Component analysis
(Análisis

Requirements modification

Systemdesign with reuse

de componentes)

Development and integration
(Desarrollo e integración)

System validation
(Validación del sistema)

PyGPI: Curso 2009

22

11

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

Incremental

PyGPI: Curso 2009

23

2.- Definiciones
4.- ¿Qué es un modelo de procesos del software?

Espiral

PyGPI: Curso 2009

24

12

5.- ¿Cuáles son los atributos de un buen software? Los productos de software tienen un cierto número de atributos asociados que reflejan la calidad de ese software (NO funcionales):
comportamiento durante su ejecución, estructura y organización del programa fuente, documentación asociada....

2.- Definiciones

Ejemplos:
tº de respuesta del software a una pregunta del usuario, comprensión del programa fuente.

El conjunto específico de atributos que se espera de un sistema de software depende obviamente de su aplicación.
PyGPI: Curso 2009 25

5.- ¿Cuáles son los atributos de un buen software? Atributos esenciales de un buen software: Mantenibilidad: evolucionar para cumplir las necesidades de cambio de los clientes. Confiabilidad: incluye la fiabilidad, seguridad y protección. Eficiencia: no mal gastar recursos del sistema. Usabilidad: fácil de utilizar.
PyGPI: Curso 2009 26

2.- Definiciones

13

3.1 ¿Que es un proyecto?

3.- Gestión de proyectos

"Conjunto de actividades, planificadas, ejecutadas y supervisadas que, con recursos finitos, tiene como objeto crear un producto o servicio único". "Un proyecto es un esfuerzo temporal llevado a cabo para crear un producto o servicio único". "Conjunto de actividades interdependientes orientadas a un fin específico, con una duración predeterminada". Destacar los conceptos fundamentales que son:

TEMPORAL2009 ÚNICO y PyGPI: Curso

27

3.1 Características de un proyecto

3.- Gestión de proyectos

Existe un objetivo claro. Se puede identificar un conjunto de tareas. Necesaria la intervención de especialistas. Existen limitaciones en los recursos. Tiene principio y fin en el tiempo. Se requiere un nivel de calidad. Se requiere una planificación.
PyGPI: Curso 2009 28

14

3.2 Gestión de proyectos

3.- Gestión de proyectos

"La gestión de proyectos es la aplicación de conocimientos, habilidades, herramientas y técnicas a las tareas del proyecto para cumplir las expectativas de los participantes de dicho proyecto". La variable gestión como catalizador. De gestionar bien o mal depende en gran medida el éxito o no de la operación.

PyGPI: Curso 2009

29

3.2 Gestión de proyectos
Personal Esfuerzo humano intenso

3.- Gestión de proyectos
Problema Minuciosa comunicación con el cliente Proceso Métodos técnicas y herramientas.

PyGPI: Curso 2009

30

15

3.2 Gestión de proyectos: Personal

3.- Gestión de proyectos

Instituto de Ingeniería del Software crea “Modelo de madurez de la capacidad de gestión del personal”: Ayudando a atraer, aumentar, motivar, desplegar y retener el talento. Define las siguientes áreas clave: reclutamiento, selección, gestión de rendimiento, entrenamiento, retribución, desarrollo de la carrera, diseño de la organización y del trabajo desarrollo culturalPyGPI: Curso 2009 equipo. y espíritu de

31

3.2 Gestión de proyectos: Problema
Establecer sus objetivos y ámbito.

3.- Gestión de proyectos

Usuario

Responsable

Considerar distintas soluciones. Identificar dificultades técnicas y de gestión.
Gestores,Analistas
PyGPI: Curso 2009 32

Responsable

16

3.2 Gestión de proyectos: Proceso

3.- Gestión de proyectos

(ya desarrollado los distintos modelos de procesos de soft)

Un proceso software proporciona una estructura para el plan de desarrollo de software. Actividades estructurales: tareas, hitos, entregas,... Actividades protectoras: garantía de calidad, configuración, medición,...

SON INDEPENDIENTES

PyGPI: Curso 2009

33

3.3 Objetivos del proyecto

3.- Gestión de proyectos

Deben estar definidos a priori y con un grado de claridad y precisión. Objetivo TRIPLE: RESULTADO, PLAZO, COSTE. COSTE

PyGPI: Curso 2009

34

17

3.3 Objetivos del proyecto
Resultado Producto

3.- Gestión de proyectos
Software

+ importante + significativo + “ineludible” Proyectos externos Coste Proyectos internos No explícito + Deterioro Plazo A veces es el + Importante + mide calidad de gestión del proyecto PyGPI: Curso 2009
35

Importante y definido

3.3 Objetivos del proyecto

3.- Gestión de proyectos

No existe una única forma posible de gestionar un proyecto satisfaciendo los requisitos básicos.

PyGPI: Curso 2009

36

18

3.3 Objetivos del proyecto

3.- Gestión de proyectos

Objetivo TRIPLE: RESULTADO, PLAZO, COSTE. COSTE

CUARTO OBJETIVO: SATISFACCIÓN del CLIENTE. SATISFACCIÓ CLIENTE

Contexto y Estrategia

PyGPI: Curso 2009

37

1.- Introducción

PyGPI: Curso 2009

38

19

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

¿Porque es difícil desarrollar Software?

Es complicado explicar los motivos que hacen tan difícil desarrollar Software. Lo cierto es que muchos proyectos de desarrollo de software fracasan:

PyGPI: Curso 2009

39

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

Crisis 68: dificultades en la GESTIÓN de software:
Entregado tarde No era fiable Costaba más de lo estimado a menudo ejecución pobres.

Brooks, 1975

GESTIONAR: diferencia entre desarrollo profesional y NO profesional del software.

PyGPI: Curso 2009

40

20

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

¿Porque es difícil la gestión del Software? ¿Porqué es diferente la ingeniería del software? El producto es inmaterial e invisible. El comprador lo puede evaluar cuando ya ha sido construido. El Software se desarrolla, no se fabrica. Es complejo. Los sistemas actuales están formados por miles de funciones con interfaces complejas entre ellas. Los proyectos grandes de software son “únicos”.
PyGPI: Curso Es excesivamente maleable. 2009 41

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

El software es excesivamente maleable:
Todo el mundo exige que se realicen cambios sobre el Software como respuesta a pequeños cambios del entorno. Además no es fácil comprender su comportamiento, según Pressman: La curva de fallos del Hardware. La curva ideal de fallos del Software. La curva real de fallos del Software.
PyGPI: Curso 2009 42

21

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

La curva de fallos del Hardware.

PyGPI: Curso 2009

43

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

La curva ideal de fallos del Software.

PyGPI: Curso 2009

44

22

4.- HISTORIA Y PROBLEMÁTICA DE LA GESTIÓN DE PROYECTOS

La curva real de fallos del Software.
Defectos fabricación Cambio Indice de fallos Cambio Cambio

rva Cu lObsolescencia rea
Curva ideal Tiempo PyGPI: Curso 2009
45

5.- ACTIVIDADES DE GESTIÓN

No existe una descripción estándar del trabajo de un gestor de software. Actividades que “normalmente” realiza un gestor:
1.Redacción de la propuesta. 2. Planificación y calendarización del proyecto. 3. Cálculo del coste del proyecto (estimación de costes). 4. Supervisión y revisión del proyecto. 5. Selección y evaluación del personal. 6. Redacción y presentación de informes.
PyGPI: Curso 2009 46

23

5.- ACTIVIDADES DE GESTIÓN

1. Redacción de la propuesta:
Describir los objetivos y cómo se llevará acabo. ¿El trabajo cómo se organiza?
Podemos dejar que espontáneamente “ocurra”:
No me importa cuanto costará ni para cuando estará

Podemos querer aclarar cuando estará y cuanto costará: Cosa habitual en las empresas.
PyGPI: Curso 2009 47

5.- ACTIVIDADES DE GESTIÓN

2. Planificación y calendarización del proyecto:
Identificación de actividades, hitos y entregas producidas por un proyecto.

3. Cálculo del coste del proyecto:
Tiempo, recursos para realizar el plan del proyecto. PM (persons-month)

PyGPI: Curso 2009

48

24

5.- ACTIVIDADES DE GESTIÓN

4. Supervisión y revisión del proyecto:
Actividad continua, conocimiento del progreso, comparar los progresos y costos reales con los planeados.
El trabajo de planificar y controlar que ocurre lo planificado

GESTOR

PyGPI: Curso 2009

49

5.- ACTIVIDADES DE GESTIÓN

5. Selección y evaluación del personal:
Establecer un equipo ideal mínimo para el proyecto. Problemas:
Presupuesto del proyecto, No disponibilidad del personal con experiencia. Personal inexperto.

6. Redacción y presentación de informes:
A responsables superiores, al cliente. Concisos, coherentes. Habilidades del gestor: comunicarse efectivamente de forma oral y escrita.
PyGPI: Curso 2009 50

25