space.template.DESARROLLO+RAPIDO+DE+APLICAIONES

** Definición de RAD ** **Proceso de desarrollo de software que permite construir sistemas utilizables en poco tiempo, normalmente de 60 a 90 días, frecuentemente con algunas concesiones. ** //**Principios tras la definición**//
 * RAD: DESARROLLO RÁPIDO DE APLICACIONES **

//**Problemas atendidos por RAD **//
 * **En ciertas situaciones, una solución utilizable al 80% puede producirse en el 20% de tiempo que se hubiera requerido para la solución completa. **
 * **En ciertas situaciones, los requisitos de negocio de un sistema pueden satisfacerse aun cuando algunos de sus requisitos operacionales no se satisfagan. **
 * **En ciertas situaciones, la aceptabilidad de un sistema puede determinarse en base a un conjunto mínimo de requisitos consensados en lugar de la totalidad de los requisitos. **

//**¿Por qué usar RAD? **//
 * **Con los métodos convencionales pasa un gran lapso de tiempo antes de que el cliente vea resultados.. **
 * **Con los métodos convencionales el desarrollo llega a tardar tanto que para cuando el sistema está listo para utilizarse los procesos del cliente han cambiado radicalmente. **
 * **Con los métodos convencionales no hay nada hasta que el 100% del proceso de desarrollo se ha realizado, entonces se entrega el 100% del software. **

//**Malas razones **// //**Buenas razones **// //**Calendario vs Presupuesto vs Calidad **//
 * **Prevenir presupuestos rebasados (RAD necesita un equipo disciplinado en manejo de costos). **
 * **Prevenir incumplimiento de fechas (RAD necesita un equipo disciplinado en manejo de tiempo). **
 * **Convergir tempranamente en un diseño aceptable para el cliente y posible para los desarrolladores. **
 * **Limitar la exposición del proyecto a las fuerzas de cambio. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Ahorrar tiempo de desarrollo, posiblemente a expensas de dinero o de calidad del producto. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Las concesiones determinan el ritmo de desarrollo **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Las concesiones determinan el ritmo de desarrollo. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Negociar algo que no sea el calendario de trabajo. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Una o más metas pueden ser inalcanzables. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Negociar algo que no sea el programa de trabajo **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Desarrollo eficiente: equilibra calendario, presupuesto y calidad. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calendario: más rápido que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Presupuesto: cuesta menos que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calidad: mejor calidad que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">RAD razonable: inclina la balanza hacia el tiempo más corto. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calendario: mucho más rápido que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Presupuesto: cuesta poco menos que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calidad: calidad poco mejor que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">RAD a fondo: "programar a lo bestia". **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calendario: más corto posible **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Presupuesto: cuesta más que el promedio **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calidad: menor calidad que el promedio **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Una o más metas pueden ser inalcanzables **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">RAD tiene una buena posibilidad de éxito si el cliente está dispuesto a negociar precio o calidad. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">RAD tiene una mejor posibilidad de éxito si el cliente está dispuesto a negociar precio y calidad. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Negociar la calidad no significa una mayor tasa de fallas sino un producto con menos funciones o menos eficiente. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Características de RAD **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El menor número posible de fallas: los desarrolladores pueden no tener la posibilidad de corregir fallas en algunos componentes de terceros. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Nivel más alto de satisfacción del cliente: algunos requisitos secundarios pueden ser sacrificados en aras del calendario. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El menor costo de desarrollo: comprar herramientas y componentes puede ser más caro que desarrollarlos. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Equipos Híbridos **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Equipos Híbridos **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Herramientas Especializadas **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">"Timeboxing" **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Prototipos Iterativos y Evolucionarios. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Herramientas Especializadas **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Equipos compuestos por alrededor de seis personas, incluyendo desarrolladores y usuarios de tiempo completo del sistema así como aquellas personas involucradas con los requisitos. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los desarrolladores de RAD deben ser "renacentistas": analistas, diseñadores y programadores en uno. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">"Timeboxing" **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Desarrollo "visual" **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Creación de prototipos falsos (simulación pura) **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Creación de prototipos funcionales **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Múltiples lenguajes **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Calendario grupal **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Herramientas colaborativas y de trabajo en equipo **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Componentes reusables **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Interfaces estándares (API) **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Control de versiones **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Prototipos Iterativos y Evolucionarios **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Las funciones secundarias son eliminadas como sea necesario para cumplir con el calendario. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">El Facilitador **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Reunión JAD (Joint Application Development): **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Se reunen los usuarios finales y los desarrolladores. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Lluvia de ideas para obtener un borrador inicial de los requisitos. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Iterar hasta acabar: **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los desarrolladores construyen y depuran el prototipo basado en los requisitos actuales. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los diseñadores revisan el prototipo. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los clientes prueban el prototipo, depuran los requisitos. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los clientes y desarrolladores se reunen para revisar juntos el producto, refinar los requisitos y generar solicitudes de cambios. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los cambios para los que no hay tiempo no se realizan. Los requisitos secundarios se eliminan si es necesario para cumplir el calendario. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Notas: **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Cada iteración dura entre un día y tres semanas. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Reuniones de 2 horas con facilitador que mantiene enfocado al grupo. **

**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Mantiene al grupo enfocado: ** //**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Restricciones Importantes **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Tiene claras las metas sobre la información que se necesita recabar. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Prepara una agenda de asuntos antes de la reunión. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Asegura que la discusión adecuada cubra cada asunto. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Asegura que todos participen. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Escribe un reporte al final de la reunión. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">RAD tiende a funcionar cuando: **//
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El "ajuste a un propósito de negocios" tiene que ser el criterio de aceptación de los entregables. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Todas las areas que pueden afectar los requisitos debe estar involucradas a lo largo del proceso. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Clientes, desarrolladores y gerencia deben aceptar entregables informales: **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Prototipos en papel en lugar de sistemas a gran escala. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Notas de las reuniones con usuarios en lugar de documentos de requisitos formales. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Notas de las reuniones de los diseñadores en lugar de documentos de diseño formales. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Principio: crear el mínimo de documentación necesaria para facilitar el desarrollo futuro y el mantenimiento. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El equipo de desarrollo tiene que poder tomar decisiones tradicionalmente dejadas a la gerencia. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">La escala de tiempo de punta a punta tiene que ser de seis meses o menos. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">La iteración debe usarse de manera que se converja a una solución de negocio aceptable. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los prototipos tienen que incorporar rápidamente los requisitos en evolución, en tiempo real, y lograr consenso pronto. **
 * **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Debe haber una tendencia a "comprar antes que construir". **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">RAD tiende a fallar cuando: **//
 * 1) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">La aplicación funcionará de manera independiente. **
 * 2) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Se pueden usar mayormente bibliotecas existentes. **
 * 3) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Desempeño no crítico. **
 * 4) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Distribución limitada, interna o vertical. **
 * 5) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Alcance del proyecto limitado. **
 * 6) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Confiabilidad no crítica. **
 * 7) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El sistema puede dividirse en muchos módulos independientes. **
 * 8) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El producto está dirigido a un mercado altamente especializado. **
 * 9) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El proyecto cuenta con fuertes limitantes de tiempos parciales (timeboxes). **
 * 10) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">La tecnología requerida tiene más de un año en el mercado. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Ventajas de RAD **//
 * 1) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">La aplicación debe interoperar con sistemas existentes. **
 * 2) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Existen pocos componentes reutilizables. **
 * 3) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Alto desempeño crítico. **
 * 4) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El desarrollo no puede aprovechar herramientas de alto nivel. **
 * 5) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Distribución amplia, horizontal o masiva. **
 * 6) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">RAD se convierta en QADAD (Quick And Dirty Application Development). **
 * 7) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Métodos RAD para desarrollar sistemas operativos (confiabilidad demasiado alta) o juegos (desempeño demasiado alto). **
 * 8) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Riesgos técnicos de tecnología de punta. **
 * 9) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El producto pone en riesgo la misión o la vida. **
 * 10) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El producto no puede ser modularizado. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Desventajas de RAD **//
 * 1) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Comprar puede ahorrar dinero en comparación con construir. **
 * 2) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Los entregables pueden ser facilmente trasladados a otra plataforma. **
 * 3) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">El desarrollo se realiza a un nivel de abstracción mayor. **
 * 4) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Visibilidad temprana. **
 * 5) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Mayor flexibilidad. **
 * 6) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Menor codificación manual. **
 * 7) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Mayor involucramiento de los usuarios. **
 * 8) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Posiblemente menos fallas. **
 * 9) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Posiblemente menor costo. **
 * 10) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Ciclos de desarrollo más pequeños. **
 * 11) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Interfaz gráfica estándar. **

//**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">Resumen **//
 * 1) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Comprar puede ser más caro que construir. **
 * 2) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Costo de herramientas integradas y equipo necesario. **
 * 3) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Progreso más difícil de medir. **
 * 4) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Menos eficiente. **
 * 5) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Menor precisión científica. **
 * 6) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Riesgo de revertirse a las prácticas sin control de antaño. **
 * 7) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Más fallas (por síndrome de "codificar a lo bestia"). **
 * 8) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Prototipos pueden no escalar, un problema mayúsculo. **
 * 9) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Funciones reducidas (por "timeboxing"). **
 * 10) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Dependencia en componentes de terceros: funcionalidad de más o de menos, problemas legales. **
 * 11) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Requisitos que no convergen. **
 * 12) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Interfaz gráfica estándar. **
 * 13) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Difícil de repetir experiencias exitosas. **
 * 14) **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Funciones no deseadas. **

**<span style="color: #000000; font-family: 'Times New Roman','serif'; font-size: 16px;">"Con el fin de asegurar gran interacción, los proyectos se diseñan con calendarios fijos y se sacrifica la funcionalidad si es necesario. Esto permite que el equipo de desarrollo se enfoque en las piezas de funcionalidad que tienen el mayor valor de negocio y en entregar dicha funcionalidad rápidamente. Los cambios son frecuentemente la razón de los retrasos en el desarrollo de una aplicación. En los largos procesos lineales de desarrollo, los cambios en los requisitos funcionales o en el alcance del proyecto, particularmente cuando gran cantidad de tiempo se ha invertido en la planeación, diseño, desarrollo y pruebas, provocan que se pierdan meses de trabajo y se incurra en grandes gastos por rediseño y redesarrollo. RAD ataca la infiltración de cambios de alcance y requisitos al limitar la exposición del proyecto al cambio, acortando el ciclo de desarrollo y limitando el costo de los cambios al incorporarlos desde el inicio, antes de que grandes inversiones se hayan hecho en desarrollo y pruebas." **