Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

35
Gerencia de Proyectos Proceso de Software Victor Manuel Toro C. [email protected] CincoSOFT Ltda. Compañía de Ingenieros Constructures de Software Tel. (+57)(1) 6230180 * Fax (+57)(1) 2566774 Carrera 15 # 80-48 (ofc. 402) Apartado Aéreo 350762 Bogotá - Colombia http://www.cincosoft.com

Transcript of Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Page 1: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Gerencia de Proyectos⇔⇔⇔⇔

Proceso de Software

Victor Manuel Toro [email protected]

CincoSOFT Ltda.Compañía de Ingenieros Constructures de SoftwareTel. (+57)(1) 6230180 * Fax (+57)(1) 2566774Carrera 15 # 80-48 (ofc. 402)Apartado Aéreo 350762Bogotá - Colombia

http://www.cincosoft.com

Page 2: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Conceptos Preliminares

Page 3: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 3

Lenguaje

Herramienta

ProcesoMetodología

Cuatro conceptos relacionados pero distintos:

Page 4: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 4

Lenguaje

Herramienta

ProcesoMetodología Aclarando algunos conceptos:

Lenguaje

● Lenguaje (de programación, especificación, ...):

➢ Sintaxis (elementos del lenguaje)

➢ + Gramática (reglas para combinar dichos elementos)

➢ + Semántica (significado de las frases del lenguaje).

● Ejemplos de Lenguajes:➢ Programación: Java, C, VisualBasic, RPG, Cobol, C#, ...

➢ Análisis/Diseño:➥ Diagramas Entidad-Relación, Diagramas de Flujo de Datos DFD, ...

➢ Especificación: Z, B, VDM, ...

➢ Ingeniería de Software: UML

Page 5: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 5

Lenguaje

Herramienta

ProcesoMetodología Aclarando algunos conceptos:

Herramienta

● Herramienta:

➢ Editor de un(os) lenguaje(s)

➢ + Librería de elementos reutilizables

➢ + Ayudas “ inteligentes”

➢ + Compilador ó Traductor hacia/desde otro(s) lenguaje(s)

● Ejemplos de Herramientas:➢ JBuilder, JDevelopper, JEdit, Forté, ...

➢ VisualStudio.NET

➢ PowerBuilder, OracleForms, Designer-2000,...

➢ ...

Page 6: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 6

Lenguaje

Herramienta

ProcesoMetodología Aclarando algunos conceptos:

Metodología

● Metodología:➢ Lenguaje

➢ + forma de plantear problemas

➢ + forma de construir poco a poco una solución

➢ + forma de verificar que una solución es correcta

➢ + conjunto de patrones (paradigmas deseables)

● Ejemplos de Metodologías:➢ Programación Estructurada { Pre y Post condiciones, invariantes, ...}

➢ Metodología Entidad-Relación para diseño de B. de D.

➢ Metodología Orientada a Objetos

➢ ...

Page 7: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 7

Lenguaje

Herramienta

ProcesoMetodología Aclarando algunos conceptos:

Proceso de desarrollo de Software

● Proceso de desarrollo de Software:➢ Una secuencia de actividades

➢ + una asignación de responsabilidades

➢ + un conjunto de Entregables (documentos, código, pantallas, manuales, ...) estandarizados

➢ + dinámica de interacciónentre los miembros del grupo

➢ + un conjunto de herramientas y una forma de usarlas

➢ + ...

que usa un grupo para el desarrollo de un sistema desoftware

Page 8: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 8

Madurez de un Proceso de Desarrollo

● Un Proceso Desarrollo de Software es MADURO en

la medida que:

➢ Está escrito

➢ Es usado por TODOS los miembros del grupo

➢ Cubre todas las etapas del desarrollo

➢ Es efectivo

➢ Es eficiente

➢ Es repetible, medible, optimizable, ...

● Ver Software Process Capability Maturity Model CMM[http://www.sei.cmu.edu]

Page 9: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 9

¿ Qué es una compañía de software certificada ?

● Explicita su proceso de desarrollo de software

● Documenta su proceso de desarrollo (por escrito)

● Estandariza sus entregables (i.e., crea plantillas)

● Sintoniza sus herramientas para apoyar el proceso

● ...

● Incorpora en su proceso de software las recomenda-ciones de algún Estándar de Calidad (CMM, ISO)

● Contrata Inspectores autorizados para que revisen, yeventualmente certifiquen, que su proceso dedesarrollo cumple con el Estándar de Calidad.

Page 10: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 10

¿Qué es implantar un estándar de Calidad de Software?

Nuestro Procesode Software

Planeación------------------Seguimiento de Proyectos-------------------Capacitación------------------------Control de Versiones------------------Revisiones de código por pares------------------Administración de Requerimientos---------

Estándar deCalidad de Software

Page 11: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Evolución de los

Procesos de

Desarrollo de Software

Page 12: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 12

¿Cómo nace unProceso de Desarrollo de Software ?

Nace de la visión/enfoque que se tenga sobre:

● Cómo se debe producir el software

● Cómo se debe entregar el software

Page 13: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 13

Planeación EstratégicaCorporativa

Planeación Estratégicade Sistemas de Información

Diseño Detallado

Diseño Global

Análisis de Requerimientos

Programación

Pruebas

Operación

Desarrollo por etapas sequenciales:

“Modelo de Cascada”

Page 14: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 14

Analysis

RequirementSpecificationDesign

Implementationand Unit Test

Integration

Test

Desarrollo iterativo:

“Modelo en Espiral” (B.W. Boehm)

“A Spiral Model of Software Development and Enhancement”

Tutorial: Software Engineering Project Management: Computer Society of the IEEE, 1988

Version 1Version 1

Version 2Version 2

Version 3Version 3

Page 15: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 15

Desarrollo Incremental e Iterativo:

“RUP Rational Unified Process”

Page 16: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

RUP Rational Unified Process

Page 17: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 17

Inception Elaboration Transition1 2 3 4 ...

Construction

Co

ntr

ato

1

Co

ntr

acto

2

Pro

pu

esta

Fases del proceso

RUP Rational Unified Process

Adjustments

Testing

Ref

ine

Use

Cas

es

Ref

ine

Dat

a M

od

el

Pro

gra

mm

ing

Inventario deCasos de Uso

Page 18: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 18

PhasesProcess Workflows

Iterations

Supporting Workflows

ManagementEnvironment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#n

Iter.#n+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Dinámica del “Rational Unified Process RUP”

Page 19: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 19

Etapas del RUP:

Inicio (Inception)

● Empezar a conocer el problema.

● Identificar impacto y beneficios del nuevo sistema.

● Identificar relación con otros sistemas.

● Plantear arquitectura.

● Definir el alcance del nuevo sistema.

● Primera estimación de Costo y Tiempo.

● Obtener/Elaborar Propuestas

● Obtener la decisión y compromiso de arrancar.

● Promover un dueño (“sponsor” ) de proyecto.

Page 20: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 20

Etapas del RUP:

Elaboración (1)

● Entender / Formalizar la “Lógica del Negocio”

● Obtener requerimientos detallados

● Elaborar el Inventario de todos los “Casos de Uso”

● Agrupar los Casos de Uso en módulos, de acuerdo a:➢ Áreas del Negocio

➢ Interdependencia funcional

● Establecer un orden para implementar los módulos:➢ Dependencia entre Módulos

➢ Prioridades (organizacionales, políticas, de negocio, ...)

➢ Requerimientos tecnológicos

Page 21: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 21

Etapas del RUP:

Elaboración(2)

● Identificar (y enfrentar!) los r iesgos del proyecto:

➢ Lógica del Negocio

➢ Requerimientos

➢ Tecnológicos

➢ Recursos humanos

➢ Políticos

● Definir un Plan Detallado de construcción.

Page 22: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 22

Etapas del RUP:

Construcción (1)

INCREMENTAL e ITERATIVO.

Tomar el siguiente módulo de Casos de Uso:

● Documentar en detalle sus Casos de Uso (empezando por

los “pantallazos” y la secuencia de navegación).

● Base de Datos:

➢ Refinar / Diseñar las nuevas tablas de la BD

➢ Efectuar las modificaciones a las tablas ya existentes (en forma

incremental, acumulando los scripts de modificación !!)

● Obtener la aprobación de los Casos de Uso del Módulo.

Page 23: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 23

Etapas del RUP:

Construcción (2)

● Programar los Casos de Uso del subsistema

➢ Mantener sincronizado el Software y la Documentación de

los Casos de Uso

➢ Probar los Casos de Uso implementados.

➢ Probar interacción con Casos de Uso precedentes.

● Escribir mini-manual de usuario del módulo

● Entregar el módulo para pruebas de los usuarios

Page 24: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 24

Etapas del RUP:

Transición

● Homologar todo el software

● Homologar toda la documentacón de Casos de Uso

● Pruebas integrales del nuevo sistema (beta testing)

● Sintonización fina y optimización de plataforma

● Unificar documentación de instalación.

● Unificar los manuales de usuario final.

● Capacitación de usuarios finales.

Page 25: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Nuestra exper iencia en CincoSOFT:

RUP Rational Unified Process “aligerado”

+

“Extreme Programming”

+

apoyo en herramientas libres

Page 26: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 26

ExtremeProgramming

Nuestra experiencia en CincoSOFT:

RUP Rational Unified Process “aligerado”

Inception Elaboration Transition1 2 3 4 ...

Construction

Adjustments

Testing

Ref

ine

Use

Cas

es

Ref

ine

Dat

a M

od

el

Pro

gra

mm

ing

Inventario deCasos de Uso

Doc. Arquitecturae Integración

EspecificaciónFormal (Z)

Page 27: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 27

Extreme Programming

Nuestra experiencia en CincoSOFT:

RUP Rational Unified Process “aligerado”+ Extreme Programming

Inception Elaboration Transition1 2 3 4 ...

Construction

Stress Testing

Functional Testing

Integration Testing

Unit Testing

Refine Use CasesUser Interface & Navigation

Refine Data Model

Programming

Aprobacióndel

usuario

Page 28: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 28

Nuestra experiencia en CincoSOFT:

RUP Rational Unified Process “aligerado”+ Extreme Programming

+ apoyo en herramientas libres

Extreme Programming

Inception Elaboration Transition1 2 3 4 ...

Construction

Stress Testing

Functional Testing

Integration Testing

Unit Testing

Refine Use CasesUser Interface & Navigation

Refine Data Model

Programming

Aprobacióndel

usuario

Latex

JEditJikes

JUn

it

HttpUnit

Cactus

JMeter

CVS, WinCVS, Winmerge(Control de Versiones)

ant(Manejo del código)

OracleDesigner

Poseidon(Editor UML)

Page 29: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Conclusiones

Page 30: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 30

Conclusiones (1)

● El gerente de proyectos de software debe:

➢ Conocer en detalle, (ó mejor aún)

➢ Participar en la adaptación (ó mejor aún)

➢ Participar en la creación

del Proceso de Software que va a orientar el desarrollo

● Velar por el cumplimiento del proceso

● Estar pendiente de cualquier desvio del cronograma (y

presupuesto) detallado

Page 31: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 31

Conclusiones (2)

De lo contrario, el papel del gerente será:

● Impotente

● Pasivo

● Su acción será fundamentalmente represiva:

(vociferar, amenazar, multar, echar, ...)

● “Hará fuerza” durante todo el proyecto

Page 32: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 32

Conclusiones (3)

● Los procesos de desarrollo de software modernos

deben estar basados en RUP

● RUP es un marco general, no un estándar:

➢ Cada compañía debe ajustarlo a sus necesidades.

➢ Evitar exageraciones !!!!!

● “Extreme Programming” está teniendo una enorme

acogida.

● Hay muchas herramientas libres de alta calidad, que

ayudan muchísimo en el proceso

Page 33: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 33

Conclusiones (4)

● Los procesos de desarrollo de software modernos

deben estar basados en RUP

● RUP es un marco general, no un estándar:

➢ Cada compañía debe ajustarlo a sus necesidades.

➢ Evitar exageraciones !!!!!

● “Extreme Programming” está teniendo una enorme

acogida.

● Hay muchas herramientas libres de alta calidad, que

ayudan enormemente en el proceso de desarrollo

Page 34: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 34

Conclusiones (5)

● Los proyectos de software con las tecnlogías actuales

(Java J2EE ó Microsoft .NET) son de alto riesgo

Page 35: Gerencia de proyectos de desarrollo si y solo si Proceso de desarrollo

Victor M. Toro - CincoSOFT Ltda. 35

Conclusión Final