conceptos y fundamentos acerca de procesos de desarrollo · conceptos y fundamentos acerca de...

64
Conceptos y Fundamentos acerca de Procesos de Desarrollo Prof. Gustavo J. Sabio Calidad de Software – 4to año Licenciatura en Sistemas de Información Universidad de Congreso (c) 2006, Mendoza, Argentina

Upload: hadieu

Post on 28-Sep-2018

244 views

Category:

Documents


0 download

TRANSCRIPT

Conceptos y Fundamentos

acerca de Procesos de Desarrollo

Prof. Gustavo J. Sabio

Calidad de Software – 4to año

Licenciatura en Sistemas de Información

Universidad de Congreso

(c) 2006, Mendoza, Argentina

Introducción a Procesos de Desarrollo de Software 2© 2006, Prof. Gustavo J. Sabio

ContenidoContenido

Características de una organización inmadura

Aspectos esenciales para desarrollar software

Características de una organización madura

Introducción a Procesos de Desarrollo de Software 3© 2006, Prof. Gustavo J. Sabio

Mapa de contenidos

Proceso OptimizadoProceso Optimizado

Aspectos esenciales Aspectos esenciales para desarrollar para desarrollar softwaresoftware

Proceso informal Proceso informal o indefinidoo indefinido

Introducción a Procesos de Desarrollo de Software 4© 2006, Prof. Gustavo J. Sabio

Algunos conceptos fundamentales

Conjunto de actividades que interactúan o se relacionan para

transformar las entradas de clientes en salidas con un valor

agregado.

� actividades aisladas

� aplicación aleatoria

� áreas independientes

� fusionadas sistemáticamente para un fin

� relacionadas y organizadas

� se complementan para objetivo común

¿Qué es un proceso?

Introducción a Procesos de Desarrollo de Software 5© 2006, Prof. Gustavo J. Sabio

Otras Definiciones de Proceso

� Una secuencia de pasos llevados a cabo para un

propósito dado (IEEE)

� la organización lógica de personas, materiales, energía,

equipamientos, y procedimientos dentro las actividades

diseñadas para producir un resultado final específico

(Pall, Gabriel A. Quality Process Management.

Englewood Cliffs, N.J.: Prentice-Hall, 1987.)

� Actividades que pueden ser reconocidas como la

implementación de prácticas en un modelo (Glosario

CMMI)

Introducción a Procesos de Desarrollo de Software 6© 2006, Prof. Gustavo J. Sabio

Algunos conceptos fundamentales

Proceso de desarrollo de software

Cliente

� Las necesidades del cliente son transformadas en un

producto software

entradas Proceso de desarrollo salida

necesidades actividades varias Producto softwareCliente

equiposistemas

AnAnáálisis y Dise

lisis y Diseññoo

Construcci

Construccióónn

Prueba e integraci

Prueba e integracióónn

Despliegue y entrega

Despliegue y entrega

Ciclo de vida del desarrollo de software

Modelado de Negocio

Modelado de Negocio

y Requerimientos

y Requerimientos

Introducción a Procesos de Desarrollo de Software 7© 2006, Prof. Gustavo J. Sabio

Construcción de SW – Panorama mundial

� El mundo tecnológico invade todos los ámbitos.

� Los sistemas software son cada vez más:

� Grandes – Complejos - Distribuidos.

� La demanda del mercado es:

software de mejor calidad en menor tiempo!

• Se torna sumamente difícil construir

y mantener software de buena calidad

de manera predecible.

Introducción a Procesos de Desarrollo de Software 8© 2006, Prof. Gustavo J. Sabio

Organización inmadura

� Algunas causas:

�Manejo de requerimientos ad hoc.

� Arquitecturas frágiles.

� Inconsistencias entre los requerimientos, el diseño y la

implementación.

� Prueba insuficiente.

� Valoración subjetiva del estado del proyecto.

� No se atacan oportunamente los riesgos.

� Propagación de cambios no controlada.

Introducción a Procesos de Desarrollo de Software 9© 2006, Prof. Gustavo J. Sabio

Procesos Inmaduros

� Los procesos son ad hoc e improvisados por los recursos y sus jefes

� Los procesos descriptos no son rigurosamente seguidos o

implementados

� La performance es altamente dependiente de los recursos humanos

actuales

� El conocimiento del estado actual de un proyecto es limitado

� El resultado de los procesos inmaduros es apagar el incendio:

� No hay tiempo para mejorar – son constantemente reactivos

� Los bomberos terminan quemados

� El incendio puede volver

Introducción a Procesos de Desarrollo de Software 10© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

Dificultades para

cumplir con los

compromisos

Introducción a Procesos de Desarrollo de Software 11© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

Mucho tiempo atendiendo lo

urgente y no lo importante

Introducción a Procesos de Desarrollo de Software 12© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

Las prioridades son

establecidas por la crisis

Introducción a Procesos de Desarrollo de Software 13© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

Algunas veces se cumple con los tiempos!

Muchas veces por

esfuerzos individuales

más que por mérito de la

organización

Introducción a Procesos de Desarrollo de Software 14© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

El cliente suele tolerar

mientras no hay otra

alternativa

Introducción a Procesos de Desarrollo de Software 15© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

El estímulo por

incorporar mejoras al

proceso, proviene de

personas que no realizan

las tareas operativas del

día a día

Introducción a Procesos de Desarrollo de Software 16© 2006, Prof. Gustavo J. Sabio

Organización inmadura - Características

La idea de dedicar tiempo

para la mejora, se

traduce en menos

tiempo para “sacar” el

trabajo del día a día

Introducción a Procesos de Desarrollo de Software 17© 2006, Prof. Gustavo J. Sabio

El caos produce más caos

� Ante la presión política es difícil decir que no se sabe.

� Bajo presión se asumen compromisos no planeados

� Se carece de pasos claros para cumplir con los compromisos

� El tamaño del proyecto, a lo largo de su vida, sigue creciendo

� Nos sorprendemos cuando las cosas fallan (“magia”)

Introducción a Procesos de Desarrollo de Software 18© 2006, Prof. Gustavo J. Sabio

Dimensiones de un desarrollo efectivo

Personas

Proceso Producto

Tecnología

Trabajan rápida o lentamenteSe destacan en lo que hacen o no

Supone una mejora en las actividades de las personas o burocratiza la situación

Está definido de tal manera que se construye casi solo o pone trabas a los mejores esfuerzos de quienes lo construyen

Ayuda al esfuerzo del desarrollo u obstaculiza los mejores intentos de los desarrolladores

Se deberían potenciar entre cada una de ellas

Introducción a Procesos de Desarrollo de Software 19© 2006, Prof. Gustavo J. Sabio

PROYECTOPROYECTO

PROCESOPROCESO

PERSONASPERSONAS

TECNOLOGTECNOLOGÍÍAA

PRODUCTOPRODUCTO

....participantes...

....plantilla...

....resultado...

....automatización...

¿Qué comprende el desarrollo de software?

Relación entre las dimensiones

Introducción a Procesos de Desarrollo de Software 20© 2006, Prof. Gustavo J. Sabio

Errores clásicos

� ¿Qué es un error clásico?

� Hay que salvar un proyecto retrasado…

� Hay que acortar el plan…

� Algunos de los miembros claves incomoda al equipo…

� Debemos acelerar para terminar…

� Etc…

Analogía con “La Isla de Gilligan”

Introducción a Procesos de Desarrollo de Software 21© 2006, Prof. Gustavo J. Sabio

La importancia de las personas

• Motivación débil

• Personal no capacitado

• Personal problemático incontrolado

• Creer en hazañas

• Agregar personal a un proyecto retrasado

• Fricciones entre clientes y desarrolladores

• Expectativas poco realistas

• Falta de participación del usuario

Errores Errores clcláásicossicos

Introducción a Procesos de Desarrollo de Software 22© 2006, Prof. Gustavo J. Sabio

La importancia del proceso

• Planificación excesivamente optimista

• Gestión de riesgos insuficiente

• Pobre comunicación con mis proveedores

• Planificación insuficiente

• Abandono de los planes bajo presión

• Diseño inadecuado

• Escatimar en el control de calidad

• Falta de supervisión de quién dirige

• Omitir tareas necesarias para la estimación

• Programación a destajo

Errores Errores clcláásicossicos

Introducción a Procesos de Desarrollo de Software 23© 2006, Prof. Gustavo J. Sabio

La importancia del producto

• Exceso de requerimientos

• Cambio de funcionalidad

• Desarrolladores meticulosos

• Desarrollo orientado a la investigación

Errores Errores clcláásicossicos

Introducción a Procesos de Desarrollo de Software 24© 2006, Prof. Gustavo J. Sabio

La importancia de la Tecnología

• Síndrome de la panacea

• Sobre estimación de las ventajas de usar nuevas

herramientas o métodos

• Cambiar de herramienta a mitad de proyecto

• Falta de control de versiones del código fuente

Errores Errores clcláásicossicos

Introducción a Procesos de Desarrollo de Software 25© 2006, Prof. Gustavo J. Sabio

¿En dónde estamos?

Proceso OptimizadoProceso Optimizado

Aspectos esenciales Aspectos esenciales para desarrollar para desarrollar softwaresoftware

Proceso informal Proceso informal o indefinidoo indefinido

Introducción a Procesos de Desarrollo de Software 26© 2006, Prof. Gustavo J. Sabio

Comenzar a neutralizar el caos

� Analogía de la orquesta sin director

Reconocer que necesitamos mejorar!

Evitar cometer errores clásicos

Contar con “bases” para el desarrollo

Controlar los riesgos

Dirigir mediante un PLAN de desarrollo

Introducción a Procesos de Desarrollo de Software 27© 2006, Prof. Gustavo J. Sabio

Ciclo PECA – Mejora Contínua

PlanificarPlanificarActuarActuar

EjecutarEjecutarControlarControlar

•¿qué hacer?•¿cómo hacerlo?

•Hacer lo planificado

•¿cómo mejorar la Próxima vez?

•Verificar si sucediósegún lo planificado

ciclo de Demingciclo de Deming

Introducción a Procesos de Desarrollo de Software 28© 2006, Prof. Gustavo J. Sabio

Contrarestar la fuerza del Caos

• Aplicar una gestigestióón de proyectos bn de proyectos báásicasica, mediante el concepto PECA

El trabajo debe ser estimado y planeado

Se debe dirigir su ejecución

Medir y controlar según el plan

Aprendiendo de los errores cometidos

Introducción a Procesos de Desarrollo de Software 29© 2006, Prof. Gustavo J. Sabio

Desarrollar Software

¿Cómo lograr el equilibrio delicado entre entregar

el software de calidad y entregarlo rápidamente?

(la paradoja del software!)

Introducción a Procesos de Desarrollo de Software 30© 2006, Prof. Gustavo J. Sabio

Respuesta !

� Entender que existen aspectos esenciales del proceso

que no se pueden soslayar.

� Buscar adherir a la cultura organizacional las

mejores prácticas que han sido probadas por la

industria y ayudan ha alcanzar el éxito a los proyectos

de desarrollo de software.

� Lograr la Adaptación del proceso para que encaje

mejor con las necesidades específicas de “su” proyecto

y organización

esenciales del proceso

mejores prácticas

Adaptación del proceso

Introducción a Procesos de Desarrollo de Software 31© 2006, Prof. Gustavo J. Sabio

Aspectos esenciales del proceso

Visión —Desarrollar una Vision

Plan —Administrar un Plan de desarrollo

Riesgos— Identificar riesgos y saber como mitigarlos

Modelo de Negocio— Examinar el negocio

Arquitectura—Diseñar Arquitetura de componentes

Incremental—Construir y Probar, incrementalemente, el producto

Medicíón—Valorizar regularmente los resultados

Administrar el Cambio—Administrar y Controlar los cambios

Soporte al Usuario—Brindar soporte al usuario

Responsable—Asignar y controlar los pendientes

Introducción a Procesos de Desarrollo de Software 32© 2006, Prof. Gustavo J. Sabio

Proceso: Visión

Desarrollar una Visión

� ¿Cuáles son los términos claves?

� ¿Cuál es el problema que se intenta resolver?

� ¿Quiénes son los involucrados? ¿quiénes son usuarios? ¿cuáles son sus necesidades?

� ¿Cuáles son las características del producto?

� ¿Cuáles son los requerimientos funcionales?

� ¿Cuáles son los requerimientos no-funcionales?

� ¿Cuáles son las restricciones de diseño?

Introducción a Procesos de Desarrollo de Software 33© 2006, Prof. Gustavo J. Sabio

Proceso: Plan

Administrar un Plan de Desarrollo

“El producto es tan bueno como lo sea el plan para elaborarlo”

� Carta gantt (actividad, recursos, responsable, entregable,

plazos).

� Organización del proyecto

� Plan de administración de requerimientos

� Plan de administración de configuraciones

� Plan de resolución de problemas

� Plan de QA

� Plan de Test

� Plan de aceptación de producto.

� Su formato no interesa: “ el plan no es nada, la planificación es

todo”

Introducción a Procesos de Desarrollo de Software 34© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Identificar y mitigar los Riesgos

� Identificación temprana dentro del

proyecto

� Riesgo identificado -> Mitigación

definida

� La lista de riesgos se convierte en una

herramienta que ayuda a planificar las

actividades del proyecto

� Es un elemento esencial para

especificar las iteraciones en un

desarrollo iterativo e incremental

Introducción a Procesos de Desarrollo de Software 35© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Asignación y seguimiento de pendientes

� Valorizar regularmente el estado del

proyecto como mecanismo para la

identificación, comunicación y

resolución de problemas.

� Problemas en el gerenciamiento del

proyecto, problemas técnicos, otros.

� Registrarlos y hacer su seguimiento.

� Quitarlos cuanto antes del camino !

Introducción a Procesos de Desarrollo de Software 36© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Conocer el modelo de Negocio

� Nos permite conocer mejor el funcionamiento del negocio

� Se logra profundidad en la definición del problema

� Es entendido por todos los involucrados

� Brinda información para la toma de

desiciones

Introducción a Procesos de Desarrollo de Software 37© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Definir una arquitectura de componentes

� Contar qué componentes

conforman el sistema y cómo

éstos interactúan entre ellos

a través de interfaces

� ¿Cuáles son las principales

“piezas” del sistema?

� Se representa por múltiples

vistas destinadas a: usuarios

finales, diseñadores,

administradores, y otros.

Introducción a Procesos de Desarrollo de Software 38© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Construir y probar incrementalmente el producto

� En la fases tempranas sirve como prototipo de

funcionalidades e interfaz

� Durante las otras etapas del desarrollo se van

integrando en versiones ejecutables

� Tanto la contrucción como la prueba van creciendo

en complejidad.

� Se incrementa hasta obtener la versión final

Introducción a Procesos de Desarrollo de Software 39© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Valorizar regularmente los resultados

� Lo que no medimos no lo podemos controlar

� Se identifican y contemplan lecciones aprendidas

� Simple o compleja… Lo importantes es realizarla!

� Encontrar problemas en el proceso y en el

producto.

� Aplicar acciones correctivas y preventivas

Introducción a Procesos de Desarrollo de Software 40© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Administrar y controlar los cambios

� Se debe tener control sobre el alcance del proyecto

� Apuntar a que no queden requerimientos en el tintero

� Asumir que se solicitarán cambios durante la vida del proyecto.

� Contar con un procedimiento que los contenga

� Poder medir el impacto de un cambio

Introducción a Procesos de Desarrollo de Software 41© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

Brindar Soporte al Usuario

� El producto software es más que el código

� El producto se acompaña de documentación de

utilidad para el usuario

� Como mínimo: Manual de usuario, manual de

sistemas, manual de instalación y configuración.

� Además: manual de capacitación, ayuda en línea,

instructivos específicos, instructivos paso a paso

preguntas frecuentes, otros.

Introducción a Procesos de Desarrollo de Software 42© 2006, Prof. Gustavo J. Sabio

10 tips esenciales del proceso

¿Es aplicable a todo tipo de proyecto?

� Proyecto pequeños

� Alcanza con implementar los 10 puntos esenciales.

� No es necesario utilizar herramientas automatizadas.

� Proyectos mayores

� Considerar los 10 tips más las “mejores prácticas”

� Ir agregando las herramientas que sean necesarias

� Equipos maduros

� Guía para evaluar los aspectos esenciales

� Priorizar el foco de la mejora

Introducción a Procesos de Desarrollo de Software 43© 2006, Prof. Gustavo J. Sabio

¿Se puede ignorar algún tip?

� ¿Ninguna visión?

� ¿Ningún plan?

� ¿Ninguna lista de riesgo?

� ¿ninguna lista de pendientes?

� ¿Ningún modelo de Negocio?

� ¿Ninguna arquitectura?

� ¿Ningún producto hasta el final?

� ¿Ninguna medición?

� ¿Ningún Requerimiento de Cambio?

� ¿Ningún soporte para el usuario?

¿Por qué considerarlos a todos?

Introducción a Procesos de Desarrollo de Software 44© 2006, Prof. Gustavo J. Sabio

¿Otros Esenciales?

� IEEE Software Magazine, Abril 1997, incluyendo un

artículo de Steve McConnell, "Software's Ten

Essentials." The Software Project

� Manager's Network define un listado de "16 Critical

Software Practices," disponible en www.spmn.comwww.spmn.com

� El Capability Maturity Model (CMM) del SEI, define las

Key Process Areas (KPAs) consideradas como

“esenciales" www.sei.cmu.eduwww.sei.cmu.edu

Introducción a Procesos de Desarrollo de Software 45© 2006, Prof. Gustavo J. Sabio

SPMN: 16 prácticas esenciales

www.spmn.com/16CSP.htmlwww.spmn.com/16CSP.html

Introducción a Procesos de Desarrollo de Software 46© 2006, Prof. Gustavo J. Sabio

¿ y la NASA ?

Existen las 100 reglas para los administradores de proyectos

de software

One Hundred Rules for NASA

Project Managers

Introducción a Procesos de Desarrollo de Software 47© 2006, Prof. Gustavo J. Sabio

Respuesta !

Esenciales del proceso

Mejores prácticas

Adaptación del proceso

Introducción a Procesos de Desarrollo de Software 48© 2006, Prof. Gustavo J. Sabio

Mejores Prácticas

Desarrollo IterativoDesarrollo Iterativo

AdministraciAdministracióón de Requisitosn de Requisitos

Arquitectura basada en componentesArquitectura basada en componentes

Modelado Visual Modelado Visual -- UMLUML

Aseguramiento de la CalidadAseguramiento de la Calidad

AdministraciAdministracióón del Cambion del Cambio

Introducción a Procesos de Desarrollo de Software 49© 2006, Prof. Gustavo J. Sabio

Cada vuelta es una iteración

de cada Iteración resulta una versión ejecutable

Desarrollo IterativoDesarrollo Iterativo

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 50© 2006, Prof. Gustavo J. Sabio

Riesgos en el modelo iterativo vs el modelo cascada

Mejores prácticas

Desarrollo IterativoDesarrollo Iterativo

Introducción a Procesos de Desarrollo de Software 51© 2006, Prof. Gustavo J. Sabio

Requerimientos de SoftwareRequerimientos de Software

Mejores prácticas

caractercaracteríísticassticas

NecesidadesNecesidades

Procedimientos de Procedimientos de TestTest

DiseDiseññoo

Documentos para usuarioDocumentos para usuario

problema

El El sistema a sistema a construirconstruir

AdministraciAdministracióón de Requisitosn de Requisitos

Introducción a Procesos de Desarrollo de Software 52© 2006, Prof. Gustavo J. Sabio

¿En qué consiste la AR?

• Analizar el problema

• Entender las necesidades

• Definir el sistema

• Administrar el Cambio

• Redefinir el sistema

• Administrar el cambio en los requerimientos

AdministraciAdministracióón de Requisitosn de Requisitos

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 53© 2006, Prof. Gustavo J. Sabio

Arquitectura basada en componentesArquitectura basada en componentes

¿Qué es un componente arquitectónico?

Porciones de código (fuente o ejecutable) con interfaces y comportamiento bien definidos que proveen una fuerte encapsulación de sus contenidos, siendo, por lo tanto,

reutilizables

¿Para qué sirve?

La arquitectura basada en componentes tiende a reducir considerablemente el tamaño y complejidad de la solución,

haciéndola mas robusta.

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 54© 2006, Prof. Gustavo J. Sabio

Propósito:

Base para la reutilizaciónComponentes reutilizablesArquitectura reutilizable

Base para la Administración de ProyectosPlanificaciónRRHHEntregas

Control IntelectualAdministrar complejidadAdministrar integridad

11

Arquitectura basada en componentesArquitectura basada en componentes

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 55© 2006, Prof. Gustavo J. Sabio

Modelado Visual Modelado Visual

Un modelo es:

Una simplificación de la realidad…

que provee una descripción acabada de un sistema…

desde una perspectiva particular…

¿Para qué construimos modelos?

Para entender mejor el sistema que estamos modelando

(ocultando los detalles innecesarios)

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 56© 2006, Prof. Gustavo J. Sabio

DiagramaDiagrama

actividadactividad

Diagrama Diagrama

EstadosEstados

DiagramaDiagrama

ColaboraciColaboracióónn

DiagramaDiagrama

DespliegueDespliegue

DiagramaDiagrama

ObjetosObjetos

Diagrama Diagrama

ComponentesComponentes

DiagramaDiagrama

de Clasesde Clases

DiagramaDiagrama

Casos de UsoCasos de UsoDiagramaDiagrama

secuenciasecuencia

Modelos

Modelado Visual Modelado Visual

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 57© 2006, Prof. Gustavo J. Sabio

Aseguramiento de la CalidadAseguramiento de la Calidad

“cuanto antes se descubran los errores, mas barato será su corrección”

Los problemas en el software son de 1 a 100 veces mas costosos para Encontrarlos y repararlos después del deployment

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 58© 2006, Prof. Gustavo J. Sabio

Testeo para distintas dimensiones de la Calidad

Funcionalidad

Verificando el correcto funcionamiento de los escenariosUsabilidad

Desde la perspectiva del usuario finalConfiabilidad

Verifica un comportamiento consistente y predeciblesRendimiento

Se verifica la respuesta ante la cargaMantenimiento

La habilidad de mantenimiento al ponerlo en producción

Aseguramiento de la CalidadAseguramiento de la Calidad

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 59© 2006, Prof. Gustavo J. Sabio

AdministraciAdministracióón del Cambion del Cambio

“Hay un dicho que oigo en cada proyecto problemático con que me he encontrado. Los desarrolladores vienen y me dicen:

"el problema con este proyecto es que los requisitos cambian todo el tiempo".

Lo que yo encuentro sorprendente sobre esta situación es que sorprenda a cualquiera. En el negocio de construcción de

software los cambios en los requisitos son la norma, la preguntaes:

¿qué hacemos al respecto?. ”Martin Fowler

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 60© 2006, Prof. Gustavo J. Sabio

Los requerimientos deben estar perfectamente documentados, en unúnico repositorio y con aprobación centralizada

Nuevas prestaciones

Nuevos requerimientos

Cambio en los requerimientos

Errores de código

Resultados de pruebas

Propuestas de los programadores

AdministraciAdministracióón del Cambion del Cambio

Mejores prácticas

Introducción a Procesos de Desarrollo de Software 61© 2006, Prof. Gustavo J. Sabio

¿En dónde estamos?

Proceso OptimizadoProceso Optimizado

Aspectos esenciales Aspectos esenciales para desarrollar para desarrollar softwaresoftware

Proceso informal Proceso informal o indefinidoo indefinido

Introducción a Procesos de Desarrollo de Software 62© 2006, Prof. Gustavo J. Sabio

Algunas características de Procesos maduros

� Todos los procesos se encuentran acordados, definidos,

documentados y bajo mejora continua .

� El trabajo que se realiza a diario, dirige la descripción de los

procesos y no en sentido contrario.

� Existen controles sobre los procesos y responsables bien definidos

� Existe institucionalización de los procesos:

� La Dirección de la organización está comprometida con los procesos,

avalándolos y apoyando su institucionalización.

� Se escucha la frase: “Es nuestra manera de hacerlo”

� La alta Dirección y la gerencia impulsan y promueven esta cultura

� La organización brinda un marco de infraestructura que permite

soportar procesos efectivos.

� La filosofía de trabajo es reconocida y respetada por todos, existen

roles y responsabilidades claramente definidos.

Introducción a Procesos de Desarrollo de Software 63© 2006, Prof. Gustavo J. Sabio

¿ Por qué insistir con ser una empresa madura ?

• Evitar retrabajo

• Lograr cronogramas efectivos

• Capacidad para predecir costos

• Asegurarle la Calidad a nuestros clientes

• Promover la reutilización

• Transitar un proceso bajo control

• Evitar pérdidas de dinero

Introducción a Procesos de Desarrollo de Software 64© 2006, Prof. Gustavo J. Sabio

¿En dónde estamos?

Proceso OptimizadoProceso Optimizado

Aspectos esenciales Aspectos esenciales para desarrollar para desarrollar softwaresoftware

Proceso informal Proceso informal o indefinidoo indefinido

……ContinuarContinuar con la con la

presentacipresentacióón de n de

IntroducciIntroduccióón a n a CMMiCMMi