Upload
tacata
View
8
Download
0
Tags:
Embed Size (px)
Citation preview
1
Javier Garzás – Claves para el éxito de un proyecto Software
CLAVES PARA EL ÉXITO DE UN PROYECTO SOFTWARE
Dr. JAVIER GARZÁ[email protected]
www.javiergarzas.com
Javier Garzás – Claves para el éxito de un proyecto Software
Objetivo
CONOCER LAS PRÁCTICAS CLAVES PARA EL ÉXITO DE UN PROYECTO SOFTWARE
PROPORCIONAR LA BASE PARA LA FORMACIÓN DE JEFES DE PROYECTOS SOFTWARE… ¿O LIDERES DE PROYECTO?
2
Javier Garzás – Claves para el éxito de un proyecto Software
Bibliografía Básica
McConnell, S., Rapid Development: Taming Wild Software Schedules, Microsoft Press, Redmond, WA, 1996
Javier Garzás – Claves para el éxito de un proyecto Software
“Diferencias entre ser un Jefe y ser Líder
1. Para el Jefe, la autoridad es un privilegio de mando y para el Líder un privilegio de Servicio. El Jefe ordena: " Aquí mando yo", el Líder: "Aquí sirvo yo". El jefe empuja al grupo y el Líder va al frente comprometiéndose con sus acciones.
2. El Jefe existe por la autoridad, el Líder por la buena voluntad. El Jefe necesita imponerse con argumentos extensos, el Líder con ejemplos entrañables.
3. El Jefe inspira miedo, se le teme, se le sonríe de frente y se le critica de espalda. El Líder inspira confianza, da poder a su gente, los entusiasma y cuando está presente, fortalece al grupo. Si temes a tu superior, es Jefe. Si lo amas es un Líder.
4. El Jefe busca al culpable cuando hay un error. El que la hace la paga. Sanciona, castiga, reprende, cree arreglar el mundo con un grito o con una infracción. El Líder jamás apaga una llama encendida, corrige pero comprende, no busca las fallas por placer, sino para rehabilitar al caído.
5. El Jefe asigna los deberes, ordena a cada quien lo que tiene que hacer, mientras contempla desde su lugar cómo se le obedece. El Líder da el ejemplo, trabaja con y como los demás, es congruente con su pensar, decir y actuar.
6. El Jefe hace del trabajo una carga, el Líder un privilegio. Los que tienen un Líder, pueden cansarse más no fastidiarse, porque el Líder transmite la alegría de vivir y de trabajar.
7. El Jefe sabe como se hacen las cosas, el Líder enseña como deben hacerse. Uno se guarda el secreto del éxito, el otro capacita permanentemente, para que la gente pueda hacer las cosas con eficacia.
8. El Jefe maneja a la gente, el Líder la prepara. El Jefe masifica a las personas convirtiéndolas en números o fichas. El Líder conoce a cada uno de sus colaboradores, los trata como personas, no los usa como cosas. Respeta la personalidad, se apoya en el hombre concreto, lo dinamiza y lo impulsa constantemente.
9. El Jefe dice, "vaya", el Líder "vayamos". El Líder promueve al grupo a través del trabajo en equipo, forma a otros Líderes, consigue un compromiso real de todos los miembros, formula planes con objetivos claros y concretos, motiva, supervisa y difunde el ideal de una esperanza viva y una alegría contagiosa.
10. El Jefe llega a tiempo, el Líder llega adelantado. "Un pie adelante del grupo, una mirada más allá de los seguidores" el que inspira, el que no se contenta con lo posible sino con lo imposible.
11. El líder hace de la gente ordinaria, gente extraordinaria. La compromete con una misión que le permita la trascendencia y realización. Le da significado a la vida de sus seguidores, un porqué vivir, es un arquitecto humano.”
Fuente: De la Web y de un Anónimo
3
Javier Garzás – Claves para el éxito de un proyecto Software
Resultado de los Proyectos
Cancelados29%
En tiempo26%
Fuente: Standish Group Survey, 1999 (from a survey of 8000 business systems projects)
6%, 200% de retraso
16 %, entre un 101 y un 200 % tarde
9%, entre un 51 y 100% tarde
8%, entre un 21 y un 50% de retraso
6%, un 20% tarde
Javier Garzás – Claves para el éxito de un proyecto Software
¿Cuáles son las claves del éxito?
“Q: What are the most exciting/promising software engineering ideas or techniques on the horizon?
A: I don’t think that the most promising ideas are on the horizon. They are already here and have been here for years but are not being used properly.”
David L. Parnas
4
Javier Garzás – Claves para el éxito de un proyecto Software
¿A qué se refiere Parnas?
PRÁCTICAS EN PLANIFICACIÓN – GESTIÓN DE PROYECTOSAutomated estimation tools (1973)
Evolutionary delivery (1988)
Measurement (1977)
Productivity environments (1984)
Risk management planning (1981)
PRÁCTICAS EN INGENIERÍA DE REQUISITOSChange board (1979)
Throwaway user interface prototyping (1975)
JAD sessions (1985)
Requirements (1989)
Javier Garzás – Claves para el éxito de un proyecto Software
¿A qué se refiere Parnas?
PRÁCTICAS EN PLANIFICACIÓN – GESTIÓN DE PROYECTOSAutomated estimation tools (1973)
Evolutionary delivery (1988)
Measurement (1977)
Productivity environments (1984)
Risk management planning (1981)
PRÁCTICAS EN INGENIERÍA DE REQUISITOSChange board (1979)
Throwaway user interface prototyping (1975)
JAD sessions (1985)
Requirements scrubbing (1989)
“Existen variaciones en productividad de 10:1 entre diferentes compañías en trabajando en la misma industria”
(Jones, 94)
5
Javier Garzás – Claves para el éxito de un proyecto Software
Éxito de un proyecto…
Evitar los errores clásicos
No ignorar las bases del desarrollo
Gestión activa del riesgo
Métodos de Planificación
10 CLAVES DE UN PROYECTO CON ÉXITO
6
PLANIFICACIÓN…
PRIMERA CLAVEVisión Clara del Proyecto
7
Javier Garzás – Claves para el éxito de un proyecto Software
Definición Clara de los Objetivos del Proyecto
Los equipos trabajan para lograr las metas que se les fijan
Muchos Objetivos = no Objetivos
Una buena visión establece prioridades
¿Qué tipo de desarrollo rápido quiere?
Speed oriented
Schedule-risk oriented
Visibility oriented
Sin una clara visión un proyecto puede terminar en cualquierpunto
SEGUNDA CLAVE
Requisitos estables, completos y escritos
8
Javier Garzás – Claves para el éxito de un proyecto Software
Javier Garzás – Claves para el éxito de un proyecto Software
Los cambios en los requisitos…
Requisitos estables al 100% es casi imposible
La mayoría de los cambios en los requisitos vienende requisitos que definidos de forma incompleta la primera vez, y no por “cambios de mercado” u otras razones similares.
Riesgo más común en un proyecto
9
Javier Garzás – Claves para el éxito de un proyecto Software
Técnicas para definir Requisitos estables
Requirements workshop User interface prototypingUser interviewUse casesUser manual Usability studiesIncremental deliveryRequirements reviews/inspections
TERCERA CLAVE Prototipos de Interfaz de Ususario
10
Javier Garzás – Claves para el éxito de un proyecto Software
Prototipos de Interfaz de Ususario Detallados
Implican a los usuarios de forma amigable
Bajo coste, corta planificación y alta satisfacción del usuario
Es necesario tener habilidad para desarrollar prototipos exitosos
Técnica Orientada al riesgo más común en un proyecto...El cambio en los requisitos
CUARTA CLAVEGestión de Proyectos Efectiva
11
Javier Garzás – Claves para el éxito de un proyecto Software
Sobre la Gestión de Proyectos en el Mundo Real
La “pobre” gestión – planificación es el segundo riesgo máscomún
Pregunta: ¿DE DÓNDE SALEN LA MAYORÍA DE LOS JEFES DE PROYECTO?
Javier Garzás – Claves para el éxito de un proyecto Software
Responsabilidades de un Jefe de Proyecto
Estimación del Alcance
Análisis de Tiempo, Esfuerzo y Coste
Selección del Ciclo de Vida
Planificación de la Calidad
Personal Técnico
Gestión de Riesgos
Una buena gestión software requiere (NECESITA) significativas habilidades
12
Javier Garzás – Claves para el éxito de un proyecto Software
Por ejemplo, No existe un único ciclo de vida...
Fuente: rapiddevelopment
QUINTA CLAVEEstimaciones Precisas
13
Javier Garzás – Claves para el éxito de un proyecto Software
Sobre las estimaciones…
Las expectativas Injustificadas o no realistas son la mayor causa de los problemas
El estado del arte es dramaticamente mejor que el estado de la práctica
Javier Garzás – Claves para el éxito de un proyecto Software
Exactitud de la Estimación y mejora
Fuente: 120 Projects in Boeing Information Systems
Sin Datos HistóricosVarianción entre -145% to +20%
(Mayormente en niveles 1 y 2 CMM)
Con Datos HistóricosVarianción entre +20% to -20%
(Nivel 3)
20%
0%
-145%
Sob
re/B
ajo
Pro
cent
aje
De
Esf
uerz
oE
stim
ado
14
Javier Garzás – Claves para el éxito de un proyecto Software
Resultados Reales como Porcentaje de Resultados Estimados
0%
100%
200%
300%
400%
500%
600%
0 1 2 3 4SW-CMM Level
Fuente: Dr. Patricia K. Lawlis, Capt. Robert M. Flowe, and Capt. James B. Thordahl. “A CorrelationalStudy of the CMM and Software Development Performance,” Crosstalk, September 1995.
Predicciónantes de Mejorar
Prediccióndespues de Mejorar
Javier Garzás – Claves para el éxito de un proyecto Software
Efecto de la Estimación
Impacto LinealImpacto no linear debido
a errores de planificación, defectos, prácticas de alto
riesgo
100% >100%< 100%
Estimación AltaEstimación Baja
CostEffort
Schedule
15
Javier Garzás – Claves para el éxito de un proyecto Software
Estimación Precisa
Tratar la estimación como un mini proyecto
Tener un plan de restimación periodica
La estimación es una habilidad técnica especializada
EJECUCIÓN…
16
SEXTA CLAVE“No morir por la planificación”
Javier Garzás – Claves para el éxito de un proyecto Software
Evitar las dos causas de sobre planificación...
Planes inamovibles
Planes excesivamente detallados
17
Javier Garzás – Claves para el éxito de un proyecto Software
0.67x
0.8x1.0x
0.5x
0.25x
2x
4x
1.5x
1.25x
Coste Proyecto(Esfuerzo – Tamaño)
tiempo
Momento en el que típicamente los compromisos se realizan
Momento en que muchos compromisos deben hacerse
VS.
Ajuste en la Planificación
SEPTIMA CLAVEEnfoque en la Calidad
18
Javier Garzás – Claves para el éxito de un proyecto Software
El coste de la equivocación
Fase en la que se creaun defecto
Coste de Corregir
Requirements
Architecture
Detailed design
Construction
Requirements Architecture Detailed design
Construction Release
50-200X
1X
Fase en la que el defecto es corregido
50-200X
1X
Javier Garzás – Claves para el éxito de un proyecto Software
El coste de la equivocación
Fase en la que se creaun defecto
Coste de Corregir
Requirements
Architecture
Detailed design
Construction
Requirements Architecture Detailed design
Construction Release
50-200X
1X
Fase en la que el defecto es corregido
50-200X
1X
Reparar Aquí
No Aquí
19
Javier Garzás – Claves para el éxito de un proyecto Software
¿Por qué centrarse en la calidad?
En la mayoría de los proyectos, el trabajo de corregirdefectos no previstos es el mayor coste (40 – 80 % del total)
Centrarnos en la calidad tiene un impacto economico positivo
La calidad debe ser planificada durante el proyecto, no puede añadirse al final
OCTAVA CLAVE No olvidar las bases del desarrollo
software
20
Javier Garzás – Claves para el éxito de un proyecto Software
NO olvidar los fundamentos de la Ingeniería del Software
Los fundamentos de GestiónSiempre antes que los de Ingeniería (CMM 2 – 3)
Estimación, Planificación, Seguimiento y Medición
Las Bases TécnicasRequisitos, Diseño, Construcción, Gest. Configuración, etc.
Las Bases del Control de CalidadPruebas, Inspecciones, etc.
NOVENA CLAVEGestión Activa de los Riesgos
21
Javier Garzás – Claves para el éxito de un proyecto Software
Sobre la Gestión de Riesgos…
Según un estudio de KPMG…
55% de los proyectos descontrolados no tenían gestión de riesgos
38% tenían algo, pero la mitad de estos no usó los riesgos hallados una vezque el proyecto comenzó
7% no sabe si utilizó gestión de riesgossobre un 80% de los proyectos comenzados no mantenían una gestión de
riesgos significativa
Más del 50% de los proyectos muestran sus problemas durante el inicio del desarrollo
Sobre el 25% muestran sus problemas durante la planificacióninicial
Javier Garzás – Claves para el éxito de un proyecto Software
Gestión de Riesgos
Management
Control
Assessment
Prioritization
Analysis
Identification
Monitoring
Resolution
ManagementPlanning
22
Javier Garzás – Claves para el éxito de un proyecto Software
Gestión de Riesgos
Management
Control
Assessment
Prioritization
Analysis
Identification
Monitoring
Resolution
ManagementPlanningIdentificar todos los factores de riesgo
Considerar los tres pilares del desarrollo rápido:Evitar los errores clásicos
No ignorar las bases del desarrollo
Gestión activa del riesgo
Javier Garzás – Claves para el éxito de un proyecto Software
Riesgos más comunes (Best Hits)
Cambio en los RequisitosMeticulosidad en Requisitos o DesarrolloEscatimar en CalidadPlanificaciones Demasiado OptimistasDiseño InadecuadoSíndrome de la "Bala de Plata"Desarrollo Orientado a la InvestigaciónPersonal MediocreNo definición de Roles y Responsables
Error en la ContrataciónDiferencias entre Desarrolladores y ClientesFalta de SponsorFalta de información del UsuarioAñadir gente a un proyecto retrasadoSobreestimar de nuevas herramientas o métodos Cambio de herramientas en mitad del proyectoFalta de control automatizado del código fuente
23
Javier Garzás – Claves para el éxito de un proyecto Software
Gestión de Riesgos
Management
Control
Assessment
Prioritization
Analysis
Identification
Monitoring
Resolution
ManagementPlanning
VER EJEMPLO REAL G. RIESGOS
DECIMA CLAVEEl Factor Humano
24
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Reconocimiento3. Propio Trabajo4. Responsabilidad5. Ascenso6. Salario7. Posibilidad de Superación8. Relaciones Personales
(subordinados)9. Posición social10. Relaciones Personales
(superiores)
Personas en General
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de supervisión
técnica6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
ESTADISTICA...
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Reconocimiento3. Propio Trabajo4. Responsabilidad5. Ascenso6. Salario7. Posibilidad de Superación8. Relaciones Personales
(subordinados)9. Posición social10. Relaciones Personales
(superiores)
Personas en General
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de supervisión
técnica6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
25
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Reconocimiento3. Propio Trabajo4. Responsabilidad5. Ascenso6. Salario7. Posibilidad de Superación8. Relaciones Personales
(subordinados)9. Posición social10. Relaciones Personales
(superiores)
Personas en General
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de ser
supervisor técnico6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
Personas diferentes se motivan con factores diferentes, y los desarrolladores no se
motivan siempre con los mismos factores que los directivos y personas en general
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Reconocimiento3. Propio Trabajo4. Responsabilidad5. Ascenso6. Salario7. Posibilidad de Superación8. Relaciones Personales
(subordinados)9. Posición social10. Relaciones Personales
(superiores)
Personas en General
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de ser
supervisor técnico6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
26
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de ser
supervisor técnico6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
Javier Garzás – Claves para el éxito de un proyecto Software
Factores de Motivación
Software Engineering Economics (Boehm, 1981)
1. Responsabilidad2. Realización3. Propio Trabajo4. Reconocimiento5. Posibilidad de Superación6. Relaciones Personales
(subordinados)7. Relaciones personales (igual
nivel)8. Ascenso9. Salario10. Relaciones Personales
(superiores)
Directivos
1. Realización2. Posibilidad de Superación3. Propio Trabajo4. Vida Personal5. Oportunidad de supervisión
técnica6. Ascenso7. Relaciones personales (igual
nivel)8. Reconocimiento9. Salario10. Responsabilidad
Analista Programador
UN DIRECTIVO RARA VEZ PODRÁ MOTIVAR A LOS DESARROLLADORES DE
IGUAL FORMA A COMO LE GUSTARÍA QUE A ÉL LE MOTIVARAN
27
Javier Garzás – Claves para el éxito de un proyecto Software
Principales Factores de Motivación del Desarrollador
1. RealizaciónPropiedad, realización de objetivos propios
Definición de objetivos
Demasiadas prioridades, prioridades no claras2. Posibilidad de superación3. Vida personal4. Oportunidad de ser supervisor técnico
Javier Garzás – Claves para el éxito de un proyecto Software
Destructores de la Moral
Manipulación de la DirectivaFechas falsas, explicación sobre decisiones en planificación, etc.
Presión excesiva en la planificaciónFechas imposibles
Falta de apreciación del esfuerzo
Participación de directivos sin preparación técnica
No involucrar a los desarrolladores en las decisiones
Barreras de la productividad
Baja calidad
28
Mitos de la Gestión de Proyectos
MITO 1Trabajar Duro Produce alta Productividad
29
Javier Garzás – Claves para el éxito de un proyecto Software
TRABAJAR DURO CREA ALTA PRODUCTIVIDAD
“Más vale inteligencia que fuerza”
“Más vale trabajar con inteligencia y fuerza”
“Más vale trabajar con inteligencia, fuerza y mucho”
Javier Garzás – Claves para el éxito de un proyecto Software
La Realidad...
PROYECTO TÍPICO
Esfuerzo Código
30
Javier Garzás – Claves para el éxito de un proyecto Software
La Realidad...
PROYECTO TÍPICO
Esfuerzo
CódigoPlanificación Agresiva
Estrés
Rotación de Personal
Relaciones Tensas
Capacidad Debilitada para prox. Proj.
Javier Garzás – Claves para el éxito de un proyecto Software
“Más vale trabajar con inteligencia, fuerza y mucho”, la mayoría de las veces significa trabajar “de forma estúpida”
Un alto porcentaje de proyectos gastan de un 40 a 80 % de su presupuesto en re-trabajo
La mayoría de los proyectos queman a sus desarrolladores
31
MITO 2Clientes y Gerentes quieren un
desarrollo Rápido
Javier Garzás – Claves para el éxito de un proyecto Software
Otras formas de lograr una entrega rápida:
Comenzar pronto
Hacer pequeños proyectos (hacer menos no más rápido)
Comprar el software
...
Ellos no quieren un desarrollo rápido... ellos quieren una entrega rápida
32
MITO 3El desarrollo de calidad, sistemático,
etc., baja la moral
Javier Garzás – Claves para el éxito de un proyecto Software
Relación Proceso de Calidad – Moral del Desarrollador
0%
10%
20%
30%
40%
50%
60%
SW-CMM Level 1 SW-CMM Level 2 SW-CMM Level 3
Porcentaje de Empleados que Califican su Moral como Buena o Excelente
Fuente: James Herbsleb, et al. "Software Quality and the Capability Maturity Model," Communications of the ACM,June 1997, pp. 30-40.
33
Javier Garzás – Claves para el éxito de un proyecto Software
Relación Proceso de Calidad – Moral del Desarrollador
0%
10%
20%
30%
40%
50%
60%
SW-CMM Level 1 SW-CMM Level 2 SW-CMM Level 3
Porcentaje de Empleados que Califican su Moral como Buena o Excelente
Fuente: James Herbsleb, et al. "Software Quality and the Capability Maturity Model," Communications of the ACM,June 1997, pp. 30-40.
¿QUÉ ES REALMENTE MALO PARA LA MORAL?
Muchas horasEstrésBaja Productividad...
MITO 4En la era Internet todo es distinto
34
Javier Garzás – Claves para el éxito de un proyecto Software
Estimación Tradicional
TAMAÑO DEL SOFTWARE
ESFUERZO
(Tradicional) Esfuerzo Estimado
(Tradicional) Esfuerzo Real
Javier Garzás – Claves para el éxito de un proyecto Software
Estimación en “era Internet”
(Tradicional) Esfuerzo Estimado
TAMAÑO DEL SOFTWARE
ESFUERZO(Tradicional = INTERNET) Esfuerzo Real
(INTERNET) Esfuerzo Estimado
35
Conclusión, Preguntas, Dudas, Críticas, etc.