Modelo de Desarrollo PROTOTIPADO

Anuncio
PROYECTOS TECNOLOGICOS
Modelo de Desarrollo
PROTOTIPADO
TALLER LLL
Septiembre 2005
Ing. Marcelo Carrera
[email protected]
09-615-8303
Estrategia para el Desarrollo Rápido
1.
2.
3.
4.
Evitar los errores clásicos
Aplicar las bases del desarrollo
Gestionar los riesgos para evitar un retorno catastrófico
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á.
Dimensiones de la Velocidad de Desarrollo
Las personas aprenden y/o trabajan
rápidamente o lentamente.
El proceso
supone una
mejora en la
actividad de las
personas, o
coloca un
obstáculo
detrás.
Personas
Proceso
Producto
Tecnología
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.
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
1. Selección del personal para equipos de proyectos
2. Organización del equipo
3. 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.
PROCESO
1.
2.
3.
4.
5.
6.
Evitar la repetición de trabajo
Control de calidad
Bases del desarrollo
Gestión de riesgos
Atención a los recursos
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.
PRODUCTO
1. Orientación del CLIENTE
2. Tamaño del producto
3. 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 muy
detallados; 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.
TECNOLOGIA
1. Síndrome de la panacea
2. Sobreestimación de las ventajas del empleo
de nuevas herramientas o métodos
3. 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.
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.
PROTOTIPADO por CASCADA
Objetivos y
conceptualización
del producto
Análisis de Productos y
Prototipos
Análisis de
requerimientos
Diseño Global
Diseño
detallado
Codificación y
depuración
Construcción de
Prototipos funcionales
y/o para evaluación
Pruebas
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.
PLANIFICACION o PROTOTIPADO por ESPIRAL
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.
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.
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)
PLANIFICACION o PROTOTIPADO por ESPIRAL...
Determinar objetivos, alternativas y
restricciones
Acordar un
enfoque
para la
próxima
fase
REVISION
Identificar y resolver riesgos
Análisis de
riesgos
Análisis de
riesgos
Plan del
ciclo de vida
INICIO
Plan de
requerimientos
Plan de desarrollo
ar
c
i
f
la
ni
Pla
nte
e
i
u
se
sig fa
Plan de Integración y pruebas
Entregar al
usuario
Prototipo
Operativo
Análisis de
Prototipo3
riesgos
Prototipo2
Análisis de
Prototipo1
riesgos
Simulacio
Concepto de
nes
funcionamiento
Validación
de requers.
Requerimi
entos
Validación y
Verificación del Diseño
Prueba de
aceptación
Integración
y prueba
Modelos
Diseño
del
Producto
Evaluar
alternativas
Pruebas
Diseño
Detallado
Prueba de
Codificación
c / unidad
Desarrollar las funciones y
comprobar que son correctas
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.
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.
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).
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 del
desarrollo (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.
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.
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.
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
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.
LABORATORIO (1er Día)
En grupos de trabajo, seleccionar un tema de proyecto y
desarrollar lo siguiente en una presentación (en Power Point
y/o Papelógrafo):
1)
2)
3)
4)
5)
6)
Descripción del proyecto (corta)
Identificación y descripción de los usuarios (intermedios y
finales)
Objetivos generales del proyecto
Objetivos específicos del proyecto (ordenados de acuerdo a
prioridades)
Descripción de los productos tecnológicos a desarrollar y/o
implementar
Establecer la planificación del proyecto (solo acciones)
según el modelo en cascada, de espiral, o combinando
ambos.
LABORATORIO (2do Día)
En los mismos grupos de trabajo del 1er Día, completar:
1)
2)
3)
4)
5)
6)
Descripción de las fases (y las formas) en la que los usuarios
estarán involucrados en el proyecto.
Listado de requerimientos globales
Listado de los requerimientos reales (determinados según el
criterio profundo del equipo de trabajo)
Descripción de las funciones de cada uno de los productos
tecnológicos
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)
Indicar por proyector o en papelógrafo algunos ejemplos de
prototipos preliminares que se desea obtener
Descargar