Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para...

22
PROYECTOS TECNOLOGICOS Modelo de Desarrollo PROTOTIPADO Ing. Marcelo Carrera [email protected] 09-615-8303 TALLER LLL Septiembre 2005

Transcript of Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para...

Page 1: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROYECTOS TECNOLOGICOSModelo de Desarrollo

PROTOTIPADO

Ing. Marcelo [email protected]

09-615-8303

TALLER LLLSeptiembre 2005

Page 2: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

Estrategia para el Desarrollo Rápido1. Evitar los errores clásicos2. Aplicar las bases del desarrollo3. Gestionar los riesgos para evitar un retorno catastrófico4. Aplicar métodos orientados a planificación

El soporte óptimo para el mejor plan posible es tener los cuatro pilares colocados en su lugar, y hacer que cada uno de ellos sea lo más fuerte posible.

Podemos utilizar los métodos más potentes orientados a la planificación, pero si cometemos el error clásico de descuidar la calidad del proyecto en sus fases iniciales, desperdiciaremos tiempo corrigiendo defectos justo cuando es más caro; nuestro proyecto se retrasará.

Si pasamos por alto el “axioma de desarrollo” de crear un buen diseño antes de comenzar a codificar, nuestro programa fallará cuando cambie la concepción del producto durante el proceso de desarrollo, y el proyecto se retrasará.

Page 3: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

Dimensiones de la Velocidad de DesarrolloLas personas aprenden y/o trabajan

rápidamente o lentamente.

Centrarse en el producto impediría centrarse en el proceso.

Es fundamental centrarse al mismo tiempo en la gente, el proceso, el producto y la tecnología.

Personas

ProductoProceso

Tecnología

El proceso supone una

mejora en la actividad de las

personas, o coloca un obstáculo

detrás.

Un producto se define de forma que casi se construye solo, o de forma que pone obstáculos a los mejores esfuerzos de la gente que estáconstruyéndolo.

La tecnología ayuda al esfuerzo del desarrollo u obstaculiza los mejores

intentos de los desarrolladores.

Page 4: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PERSONAS1. Selección del personal para equipos de proyectos2. Organización del equipo3. Motivación

5 principios para la selección de personal:- Máximo talento... poco y buen personal- Trabajo adecuado... Asignar tareas según la habilidad y motivación de la gente disponible.- Progresión profesional... Ayudar a la gente a actualizarse por sí misma, con una base inicial de conocimiento formal.- Equilibrio del equipo... Seleccionar a gente que se complementa y armonice con los demás.- Eliminar la inadaptación... Eliminar y reemplazar a los miembros problemáticos del equipo lo antes posible.

La forma de organizar al personal tiene un gran efecto sobre la eficiencia con la que trabajen. Es clave establecer la estructura del equipo para que concuerden con el tamaño del proyecto, las características del producto y los objetivos de planificación.

Una persona que carece de motivación no va a querer trabajar duro, y prefiere dejarse llevar. La motivación es potencialmente el aliado más fuerte que tenemos para el desarrollo rápido de un proyecto.

Page 5: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROCESO1. Evitar la repetición de trabajo2. Control de calidad3. Bases del desarrollo4. Gestión de riesgos5. Atención a los recursos6. Planificación del ciclo de vida

Una de las mejores formas de ahorro de tiempo en los proyectos tecnológicos es orientar el proceso de forma que se evite hacer la misma cosa dos veces. Lo que suele suceder cuando el proceso no es analizado para su optimización (con acciones preliminares de aprendizaje y adaptación) es que si ha habido problemas en el diseño que no se descubren hasta la prueba, se debe volver al diseño detallado y la codificación y comenzar de nuevo.

El objetivo principal del control de calidad es detectar los errores en el proceso, durante la etapa de diseño y prototipado, para corregirlos a tiempo(no es el de buscar culpables).

La base de desarrollo (metodologías y estándares) es fundamental para minimizar los malos entendidos que puedan afectar el trabajo de todos los actores. A pesar de que los métodos estándar en tecnología para el análisis, diseño, construcción, integración y pruebas no van a acelerar el desarrollo de forma fulgurante, pueden evitar que los proyectos se queden fuera de control.

Un modelo de ciclo de vida es útil cuando describe un plan de gestión básico, y hace que sea más fácil identificar y organizar las muchas tareas necesarias en un proyecto, y así poder realizarlas con la mayor eficacia.

Page 6: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PRODUCTO

1. Orientación del CLIENTE2. Tamaño del producto3. Características del producto

Desarrollar el software o hardware a partir de la especificación es solo la mitad del trabajo. La otra mitad es ayudar al cliente a definir el producto que desea, y la mayoría de las veces es necesario una aproximación diferente a la tradicional especificación en papel. Ponerse en su lugar es una de las mejores formas de evitar las vueltas atrás, pero es fundamental que el cliente participe como actor desde la etapa de diseño (aprenda y opine).

Podremos reducir drásticamente el tamaño del producto esforzándonos en desarrollar solo las prestaciones más esenciales, o reducirlo temporalmente desarrollando el producto en etapas. También es posible reducirlo empleando herramientas o soluciones previas similares (ya existentes desarrolladas) o que necesiten menos codificación (prototipos funcionales).

Se empleará más tiempo en desarrollar un producto con objetivos ambiciosos muydetallados; por tanto se sugiere que en las primeras fases del diseño se establezcan las prioridades (funciones fundamentales que cubran el objetivo del proyecto) mientras que las funciones orientadas a la optimización se las dejen para las siguientes fases del proyecto total.

Page 7: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

TECNOLOGIA1. Síndrome de la panacea2. Sobreestimación de las ventajas del empleo

de nuevas herramientas o métodos3. Cambiar herramienta a mitad del proyecto

Se confía demasiado en las ventajas proclamadas de tecnologías que no se habían usado antes y demasiada poca información sobre lo buenas que serían en este entorno de desarrollo concreto. Cuando el equipo de desarrollo se aferra sólo a una nueva técnica, una nueva tecnología o un nuevo proceso rígido, y espera resolver con ello sus problemas de planificación, está inevitablemente equivocado.

Las organizaciones mejoran raramente su productividad a grandes saltos, sin importar cuántas nuevas herramientas o métodos empleen o lo buenos que sean. Los beneficios de las nuevas técnicas son parcialmente desplazados por las curvas de aprendizaje que llevan asociadas, y aprender a utilizar nuevas técnicas para aprovecharlas al máximo lleva su tiempo. Las nuevas técnicas también suponen nuevos riesgos, que sólo descubriremos usándolas, por lo que se requiere una fase piloto de evaluación (como parte del Prototipado)

Cambiar la herramienta es un viejo recurso que funciona raramente. Cuando estamos a la mitad de un proyecto (en su fase de desarrollo, peor aún casi ya para ser utilizado por el usuario final), la curva de aprendizaje, rehacer el trabajo y los inevitables errores cometidos con una herramienta totalmente nueva, normalmente anulan cualquier posible beneficio.

Page 8: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PLANIFICACION del CICLO DE VIDA

Un ciclo de vida consiste en realizar todas las actividades (agrupadas) comprendidas entre el momento en el que se inicia la recopilación de información preliminar (como una chispa en la imaginación de alguien) y el momento en el que la versión XXX exhala su último aliento en la máquina del último usuario final.Un modelo de ciclo de vida es un modelo descriptivo de lo que pasaría entre la primera chispa y el último aliento.

Para nuestro propósito, la función principal de un modelo de ciclo de vida es establecer el orden en el que se especifica,se diseña (prototipado), desarrolla, revisa, prueba, implementa en producción y se realizan otras actividades en un proyecto; todas ellas orientadas a cumplir con el o los objetivos del proyecto (establecidos previamente).

El PROTOTIPADO realmente se centra en una parte limitada de todo el ciclo de vida, y constituye el período que va desde la primera chispa hasta la versión inicial (prototipo funcional u operativo).

El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos se utiliza comúnmente el de espiral.El modelo del ciclo de vida (planificación) establecido puede orientar su proyecto y ayudarle a asegurar que cada paso se acerque más a la consecución del objetivo.Dependiendo del ciclo de vida que se establezca, se podrá aumentar la velocidad de desarrollo, mejorar la calidad, el control y el seguimiento del proyecto, minimizar gastos y riesgos, o mejorar las relaciones con los usuarios finales.

Page 9: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROTOTIPADO por CASCADA

Objetivos y conceptualización

del producto

Análisis de requerimientos

Diseño Global

Diseño detallado

Codificación y depuración

PruebasConstrucción de Prototipos funcionalesy/o para evaluación

Análisis de Productos yPrototipos

Page 10: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROTOTIPADO por CASCADA...

En este modelo, un proyecto progresa a través de una secuencia ordenada de pasos partiendo del concepto inicial del producto hasta la prueba para evaluar la efectividad y características esperadas.

Cuando la revisión determina que el producto no estálisto para pasar a la fase de desarrollo, permanece en la etapa de construcción hasta que cumpla con lo prioritariamente establecido.

No proporciona resultados tangibles (software o hardware completo) hasta el final del ciclo de vida, pero la documentación que se genera proporciona

indicaciones significativas del progreso a lo largo del ciclo de vida.

Page 11: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PLANIFICACION o PROTOTIPADO por ESPIRAL

Cada fase lleva consigo los 6 pasos:1. Determinar objetivos, alternativas y límites.2. Identificar y resolver riesgos.3. Evaluar las alternativas.4. Generar las entregas de esta fase, y

comprobar que son correctas.5. Planificar la siguiente fase.6. Establecer un enfoque para la siguiente fase

(si se decide ejecutarla)

En este modelo se comienza con una parte pequeña del proyecto y luego se va expandiendo. Se amplía el alcance sólo después de reducir los riesgos a un nivel aceptable para la siguiente fase.

El modelo espiral esta orientado a riesgos que divide un proyecto grande y complejo en mini-proyectos (fases).El concepto de riesgo se refiere a requerimientos poco comprensibles, arquitecturas poco comprensibles o desconocidas, y problemas de ejecución por magnitud o dificultades.Este modelo suele ser utilizado para Planificar un proyecto completo.

Page 12: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PLANIFICACION o PROTOTIPADO por ESPIRAL...

Identificar y resolver riesgos

Plan de requerimientos

Análisis de riesgos

Análisis de riesgos

Análisis de riesgos

Análisis de riesgos

REVISIONConcepto de funcionamiento

Prototipo1Prototipo2

Prototipo3

Prototipo Operativo

Simulaciones Modelos

Pruebas

Diseño Detallado

Codificación

Diseño del

ProductoValidación y

Verificación del Diseño

Requerimientos

Validación de requers.Plan de desarrollo

Desarrollar las funciones y comprobar que son correctas

Prueba de c / unidad

Integración y prueba

Prueba de aceptación

Entregar al usuario

Plan de Integración y pruebas

Planificar

la

siguiente

fase

Acordar un enfoque

para la próxima

fase

Determinar objetivos, alternativas y restricciones

Evaluar alternativas

INICIO

Plan del ciclo de vida

Page 13: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PLANIFICACION o PROTOTIPADO por ESPIRAL...

En éste modelo, las primeras fases son las menos costosas. Supone menos gasto desarrollar el concepto de operación que realizar el desarrollo de los requerimientos, y también es menos costoso desarrollar los requerimientos que llevar a cabo el desarrollo del diseño, la implementación del producto y la prueba del mismo.

El significado del diagrama no tiene porqué seguirse de forma literal. No es importante que la espiral tenga exactamente cuatro ciclos, y no es importante tampoco que se realicen exactamente 6 pasos como se indica, aunque se trata de un orden apropiado a utilizar. Puede adaptar cada fase de la espiral a las necesidades que demanda su proyecto.

Este modelo se puede combinar con el de cascada, tal que se puede comenzar un proyecto con una serie de fases para reducir los riesgos; después de que se hayan reducido los riesgos a un nivel aceptable, se puede finalizar el esfuerzo de desarrollo con un ciclo de vida en cascada.

Page 14: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PLANIFICACION o PROTOTIPADO por ESPIRAL...Por ejemplo, si uno de los riesgos consiste en que no tiene seguridad de alcanzar los objetivos de rendimiento, puede incluir una fase de prototipado para investigar si es posible la consecución de estos objetivos.

El modelo en espiral proporciona control de gestión, ya que se tiene los puntos de verificación al final de cada fase. Como el modelo estáorientado a riesgos, le proporciona con anterioridad indicaciones de cualquier riesgo insuperable. Descubrirá si el proyecto o mini-proyecto no se puede realizar por razones técnicas u otras razones, y eso no supondrá un costo excesivo, ya que se podrá tomar una decisión alternativa a tiempo.

La única desventaja de este modelo es que se trata de un modelo complicado. Requiere de una gestión concienzuda, atenta y que exige conocimientos profundos. Puede ser difícil definir hitos (criterios) de comprobación que indiquen si está preparado para pasar al siguiente nivel de la espiral; por tal razón es recomendable que la validación y decisiones sean tomadas por un equipo (pequeño) de responsables.

Page 15: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROTOTIPADO EVOLUTIVO

Como se puede observar, en el modelo de espiral, se encuentra establecido un desarrollo de prototipos por fases, a esto se lo denomina PROTOTIPADO EVOLUTIVO, en el que se desarrolla el concepto del sistema (producto tecnológico) a medida que avanza el proyecto. Normalmente se comienza desarrollando los aspectos más visibles del sistema. Puede presentar la parte del sistema al cliente y entonces continuar el desarrollo del prototipo basándose en la realimentación que recibe.

En algún punto usted y el usuario se ponen de acuerdo en que el prototipo es lo suficientemente bueno. En este punto, se completa cualquier trabajo pendiente en el sistema y se entrega el prototipo como el producto final; incluso en muchos casos es OPERATIVO (que puede ser utilizado por el usuario con información real).

Page 16: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

PROTOTIPADO EVOLUTIVO...El prototipado evolutivo se utiliza especialmente cuando los requerimientos cambian con rapidez, cuando el usuario es reacio a especificar el conjunto de los requerimientos, o cuando ni usted ni el usuario identifican de forma apropiada el área de aplicación. También es útil cuando los desarrolladores no están seguros de la arquitectura o los algoritmos adecuados a utilizar. Con esto se generan signos visibles de progreso, que se pueden utilizar especialmente cuando existe una gran demanda en la velocidad deldesarrollo (por parte de los financistas y/o usuarios finales).

Un prototipado evolutivo real incluye análisis de requerimientos real, diseño real, y código pensado para el mantenimiento real, en niveles ligeramente inferiores de lo que se utilizan con las aproximaciones tradicionales o generales.

Las herramientas informáticas a utilizar en la construcción de prototipos operativos son aquellas que permitan generar aplicaciones de forma rápida (aunque no contemplen todo el detalle que uno aspira), tales como: MS Excel (hojas electrónicas), MS Access, Front Page.

Page 17: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

DESARROLLO ORIENTADO AL USUARIO

En un estudio de más de 8.000 proyectos, el Grupo Standish encontró que el factor principal para que los proyectos tengas éxito es la relación con el usuario. Algunos expertos en desarrollo rápido sostienen que la buena comunicación con el usuario final es uno de los tres factores críticos de los proyectos. Se lo puede o debe entender como AMISTAD CON EL USUARIO, pero antes es fundamental identificar claramente ¿QUIEN REALMENTE ES EL USUARIO (intermedio y final)?.

Existen varios aspectos por los que el usuario puede crear riesgos en la planificación, tales como: los usuarios no saben lo que quieren, los usuarios no quieren comprometerse a tener un conjunto de requerimientos escritos, los usuarios insisten en establecer nuevos requerimientos una vez que se han fijado la planificación y el presupuesto, la comunicación con los usuarios es lenta, los usuarios no participan en las revisiones o son incapaces de hacerlas, los usuarios no están preparados técnicamente, los usuarios no dejan realizar el trabajo, los usuarios no entienden el proceso de desarrollo de tecnología, el usuario nuevo es desconocido y no se saben cuáles son los riesgos que generaría.El establecimiento de buenas relaciones con los usuarios le permite identificar mejor los riesgos y controlarlos durante el desarrollo del proyecto.

Page 18: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

DESARROLLO ORIENTADO AL USUARIO...

ETAPAS ORIENTADAS AL USUARIO

• Planificación: Identificar al cliente real y llegar a conocerlo (fortalezas, debilidades, necesidades, disponibilidad, responsabilidades); Establecer métodos para interactuar con los usuarios.• Análisis de requerimientos: el objetivo es recopilar los requerimientos reales, para lo cual primero se debe recopilar todos los requerimientos que los expertos y los usuarios indican, y después determinar la importancia de cada uno (su valor frente al objetivo). En esta etapa se suelen utilizar prototipos documentales (utilizando herramientas gráficas) de descripción.• Diseño: Puede que haya hecho un trabajo perfecto de recopilación de requerimientos, o puede que no. Utilice métodos y estándares que permitan a los usuarios cambiar de opinión a tiempo.• Construcción: En el momento de generar los prototipos funcionales, e incluso crear el producto mismo, los usuarios estarán tan involucrados en el proceso de desarrollo que no tendrá que preocuparse de ellos.

Page 19: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

CONTROL DEL CONJUNTO DE FUNCIONES

El problema más serio de “Control de Conjunto de Funciones” del producto o productos a desarrollar es el de los requerimientos tardíos o el cambio de requerimientos complejos en la mitad del proyecto.Varios estudios han encontrado que los cambios de requerimientos son la más común o una de las más comunes fuentes de incrementos de costo y planificación; también representan un factor importante en la cancelación de proyectos.

Hay 3 tipos generales de control de conjunto de funciones:

• Control al principio del proyecto

• Control a mitad del proyecto

• Control al final del proyecto

Page 20: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

CONTROL DEL CONJUNTO DE FUNCIONES...Control al principio del proyecto: definir un conjunto de funciones (características

primordiales del producto) consistentes con los objetivos de planificación y presupuesto del proyecto. Consiste en no introducir funciones innecesarias en el proyecto, para lo cual se recomienda:

• Especificación mínima... Consiste en colocar la información mínima necesaria para especificar de forma comprensible cada función o característica del producto, para lo cual puede realizar: una “Especificación resumida”; una “Especificación del punto de partida”(especificación aproximada inicial, no pensando en mantenerla sino solo para conseguir un consenso de los expertos y usuarios); un “Manual de usuario como especificación”; “Prototipos de interfaz de usuario” (creados con herramientas gráficas documentales); “Cuadernos”; y/o “Definición del alcance” (describa lo que hay que incluir y lo que no hay que dejar fuera del producto)... todas alineadas con el objetivo establecido del proyecto.

• Filtrado de requerimientos... Estudie los requerimientos recopilados con cuidado bajo los siguientes objetivos: Eliminar todos los requerimientos que no son absolutamente necesarios; Simplificar todos los requerimientos que son más complicados de lo necesario; Sustituir con opciones menos costosas todos los requerimientos que dispongan de opciones más económicas.

• Desarrollo por versiones... Puede planificar un conjunto de requerimientos para un proyecto robusto, completo e ideal, pero luego implementar el proyecto por partes. Ponga las conexiones que necesite para soportar los elementos posteriores, pero no los implemente. Los métodos de desarrollo de entrega evolutiva y entre por etapas pueden ayudarle en este enfoque.

• Control a mitad del proyecto: para controlar los cambios de requerimientos (siempre que sean importantes a favor del objetivo del proyecto, y no requiere rehacer los productos).• Control al final del proyecto: recortando funciones para alcanzar un objetivo de planificación o de costo.

Page 21: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

LABORATORIO (1er Día)

En grupos de trabajo, seleccionar un tema de proyecto y desarrollar lo siguiente en una presentación (en Power Pointy/o Papelógrafo):

1) Descripción del proyecto (corta)2) Identificación y descripción de los usuarios (intermedios y

finales)3) Objetivos generales del proyecto4) Objetivos específicos del proyecto (ordenados de acuerdo a

prioridades)5) Descripción de los productos tecnológicos a desarrollar y/o

implementar6) Establecer la planificación del proyecto (solo acciones)

según el modelo en cascada, de espiral, o combinando ambos.

Page 22: Modelo de Desarrollo PROTOTIPADO - imaginar.org · El modelo de ciclo de vida más común para proyectos pequeños es el de cascada, mientras que para proyectos grandes o complejos

LABORATORIO (2do Día)

En los mismos grupos de trabajo del 1er Día, completar:

1) Descripción de las fases (y las formas) en la que los usuarios estarán involucrados en el proyecto.

2) Listado de requerimientos globales3) Listado de los requerimientos reales (determinados según el

criterio profundo del equipo de trabajo)4) Descripción de las funciones de cada uno de los productos

tecnológicos5) Graficar un diagrama que explique el prototipado evolutivo

que se aplicará en el proyecto (qué prototipos se crearán y en qué orden serán creados)

6) Indicar por proyector o en papelógrafo algunos ejemplos de prototipos preliminares que se desea obtener