SOFTWARE Lic. María Magdalena Callizaya PROTOTIPOS • Un prototipo del sistema de información, a usted le interesan mucho las reacciones que tendrán los usuarios y la administración con respecto al prototipo. • Debe anticipar con precisión cómo reaccionarán al trabajar con el prototipo y qué tan bien se adaptarán a sus necesidades las características del sistema previstas. • Las reacciones se recopilan a través de la observación, entrevistas y hojas de retroalimentación (posiblemente cuestionarios) diseñadas para obtener la opinión de cada persona sobre el prototipo a medida que interactúa con él. DESARROLLO DE UN PROTOTIPO • Los prototipos son un medio excelente para obtener retroalimentación sobre el sistema propuesto y el grado en que cumple con las necesidades de información de sus usuarios. • El primer paso de la creación de un prototipo es estimar los costos involucrados en la construcción de un módulo del sistema. • Si los costos del tiempo de los programadores y del analista, así como los costos del equipo están dentro del presupuesto, se puede continuar con la construcción del prototipo. MODIFICAR EL PROTOTIPO • Un tercer lineamiento para desarrollar el prototipo es que su construcción debe admitir modificaciones. Para lograr esto hay que crearlo en módulos que no tengan un alto grado de interdependencia. • Si cumplimos con este lineamiento encontraremos menos resistencia cuando haya que modificar el prototipo. • Por lo general el prototipo se modifica varias veces, para lo cual pasa a través de varias iteraciones. Los cambios en el prototipo deben acercar más el sistema a lo que los usuarios dicen que es importante. HACER ÉNFASIS EN LA INTERFAZ DE USUARIO • La interfaz del usuario con el prototipo (y con el sistema, en última instancia) es muy importante. Como lo que realmente tratamos de lograr con el prototipo es hacer que los usuarios articulen con más detalle sus requerimientos de información, deben ser capaces de interactuar con facilidad con el prototipo del sistema. • También deben ser capaces de ver cómo el prototipo les permitirá realizar sus tareas. Desventajas de los prototipos • Al igual que sucede con cualquier otra técnica de recopilación de información, el uso de prototipos presenta varias desventajas. La primera es que puede ser bastante difícil administrar la creación de un prototipo como un proyecto dentro del esfuerzo más grande de sistemas. La segunda es que los usuarios y analistas pueden adoptar. • Los analistas necesitan trabajar para asegurarse de que la comunicación con los usuarios sea clara en cuanto a la agenda para interactuar con el prototipo y mejorarlo. • El analista debe comparar estas desventajas contra las ventajas conocidas al decidir si va a crear un prototipo, cuándo se va a crear y qué tanto del sistema se va a incluir en el prototipo. Ventajas de los prototipos • La utilización de prototipos no es necesaria o apropiada en todos los proyectos de sistemas, como hemos visto. • Sin embargo, las ventajas también se deben tener en consideración al decidir si debemos o no crearlos. Las tres principales ventajas de los prototipos son el potencial de cambiar el sistema durante las primeras etapas de su desarrollo, la oportunidad de detener el desarrollo en un sistema que no está funcionando y la posibilidad de desarrollar un sistema que cumpla mejor con las necesidades y expectativas de los usuarios. • La creación de prototipos exitosos depende de la retroalimentación oportuna y frecuente de los usuarios, que los analistas pueden usar para modificar el sistema y hacerlo más sensible a las necesidades actuales. Al igual que con cualquier otro esfuerzo de sistemas, los cambios en las primeras etapas son menos costosos que los cambios tardíos. • En la última parte del capítulo verá cómo la metodología ágil para el desarrollo utiliza una forma extrema de prototipos, en la que se requiere un cliente en el sitio de trabajo para que provea retroalimentación durante todas las iteraciones. El papel que desempeñan los usuarios en los prototipos • El papel de los usuarios en los prototipos se puede resumir en dos palabras: participación honesta. • Sin la participación de los usuarios, los prototipos no tienen mucho sentido. Los comportamientos precisos necesarios para interactuar con un prototipo pueden variar, pero está claro que el usuario es fundamental para el proceso de creación de prototipos. • Teniendo en cuenta la importancia del usuario para el éxito del proceso, los miembros del equipo de análisis de sistemas deben fomentar y agradecer la entrada y protegerse contra su propia resistencia natural a cambiar el prototipo. • Hay tres formas principales en las que un usuario puede ayudar con los prototipos: 1. Experimentar con el prototipo. 2. Ofrecer reacciones abiertas al prototipo. 3. Sugerir lo que se puede agregar o quitar en el prototipo. • Los usuarios deben tener la libertad de experimentar con el prototipo. A diferencia de una simple lista de características del sistema, el prototipo permite a los usuarios interactuar en forma práctica con el sistema. • Los analistas tienen que estar presentes por lo menos parte del tiempo cuando ocurre la experimentación. • De esta forma pueden observar las interacciones de los usuarios con el sistema y llegar a ver interacciones que nunca planearon. • El tercer aspecto del papel que desempeñan los usuarios en los prototipos es su disposición para sugerir elementos que se puedan agregar o quitar en base a las características que hayan experimentado. • La función del analista es obtener tales sugerencias al asegurar a los usuarios que la retroalimentación que ellos proveen se toma en serio, al observar a los usuarios a medida que interactúan con el sistema y al llevar a cabo entrevistas cortas y específicas con los usuarios en relación con sus experiencias con el prototipo. MODELADO ÁGIL • Los métodos ágiles son una colección de metodologías innovadoras para el desarrollo de sistemas, las cuales se centran en los usuarios. En esta sección aprenderá sobre valores y principios, actividades, recursos, prácticas, procesos y herramientas asociadas con las metodologías ágiles. Valores y principios del modelado ágil • La metodología ágil se basa no sólo en resultados, sino también en valores, principios y prácticas. • Los valores y principios establecidos son esenciales para la programación ágil; estos valores y principios crean el contexto para la colaboración entre programadores y clientes CUATRO VALORES DEL MODELADO ÁGIL • Hay cuatro valores que crean un entorno en el que tanto los desarrolladores como las empresas pueden obtener el mismo servicio. • Como a menudo hay tensión entre lo que hacen los desarrolladores a corto plazo y lo comercialmente deseable a largo plazo, es importante propugnar en forma deliberada los valores que formarán la base para actuar en conjunto en un proyecto de software Los cuatro valores son: comunicación, simpleza, retroalimentación y valor • Empecemos con la comunicación. En todo esfuerzo humano existe la posibilidad de una mala comunicación. • Los proyectos de sistemas que requieren de una constante actualización y diseño técnico son especialmente propensos a dichos errores • El segundo valor de la metodología ágil es la simpleza. Cuando trabajamos en un proyecto de desarrollo de software, nuestra primera tendencia es abrumarnos con la complejidad y tamaño de la tarea. Sin embargo, no podemos correr sino hasta aprender a caminar, ni podemos caminar hasta no aprender a erguirnos • El valor ágil de la simpleza nos pide hacer la cosa más sencilla hoy, a sabiendas de que tal vez mañana tengamos que cambiarla un poco. Para ello debemos estar enfocados claramente en los objetivos del proyecto, lo cual es en realidad un valor básico. • La retroalimentación es el tercer valor básico importante cuando usamos una metodología de programación extrema. Al considerar la retroalimentación en este contexto, es bueno tener en cuenta que está implicada con el concepto del tiempo. LOS PRINCIPIOS BÁSICOS DEL MODELADO ÁGIL • trabajamos para derivar los principios básicos que pueden ayudarnos a verificar que lo que realmente estamos haciendo en nuestro proyecto de software sea estar a la altura de los valores que compartimos. • Los principios ágiles son reflejos y especificaciones de los valores ágiles. Sirven como lineamientos que los desarrolladores pueden seguir al desarrollar sistemas. • Estos principios se pueden expresar en una serie de dichos tales como: 1. Satisfacer al cliente por medio de la entrega de software funcional. 2. Adoptar el cambio, incluso si se introduce en las últimas etapas del desarrollo. 3. Seguir entregando software funcional en incrementos y con frecuencia. 4. Fomentar a los clientes y analistas a que trabajen juntos a diario. 5. Confiar en los individuos motivados para que realicen su trabajo. 6. Promover la conversación cara a cara. 7. Concentrarse en hacer que el software funcione. 8. Fomentar el desarrollo continuo, regular y sostenible. 9. Adoptar la agilidad con especial atención en un diseño lúcido. 10. Apoyar a los equipos autoorganizados. 11. Proveer retroalimentación rápida. 12. Fomentar la calidad. 13. Revisar y ajustar el comportamiento de vez en cuando. 14. Adoptar la simpleza. Actividades, recursos y prácticas del modelado ágil •El modelado ágil involucra una serie de actividades a completar en cierto momento durante el proceso de desarrollo ágil CUATRO ACTIVIDADES BÁSICAS DEL DESARROLLO ÁGIL • codificar, probar, escuchar y diseñar • La codificación es la actividad indispensable. Un autor establece que lo más valioso que recibimos del código es el “aprendizaje”. • El proceso es fundamentalmente el siguiente: elija una idea, codifíquela, pruébela y compruebe si la idea era lógica. • La prueba es la segunda actividad básica del desarrollo. La metodología ágil considera que las pruebas automatizadas son imprescindibles. La metodología ágil aboga por la escritura de pruebas para verificar codificación, funcionalidad, rendimiento y cumplimiento. • Escuchar es la tercera actividad básica del desarrollo • En la metodología ágil, el proceso de escuchar se lleva al extremo. Los desarrolladores utilizan la escucha activa para oír a su socio de programación. En el modelado ágil hay menos dependencia de la comunicación formal por escrito, por lo que escuchar se convierte en una habilidad de suma importancia. • El desarrollador también utiliza la escucha activa con el cliente. Los desarrolladores asumen que no saben nada sobre las empresas a las que están ayudando, por lo que deben escuchar con cuidado a los empresarios para obtener las respuestas a sus preguntas. • El desarrollador necesita llegar a comprender lo que es la escucha efectiva. • Si usted no escucha, no sabrá qué codificar o probar. • La cuarta actividad básica en el desarrollo es el diseño, que es una forma de crear una estructura para organizar toda la lógica en el sistema. • El diseño es evolutivo, y por ende los sistemas que se diseñan mediante el método ágil se conceptualizan como sistemas que siempre están en evolución y siempre están siendo diseñados. • A menudo es simple lograr un buen diseño CUATRO VARIABLES DE CONTROL DE RECURSOS DEL MODELADO ÁGIL • El analista sacrifica algunas ventajas por otras. Algunas veces el costo puede estar predeterminado, mientras que otras veces el tiempo puede llegar a ser el factor más importante. A continuación hablaremos sobre estas variables de control de recursos • Tiempo • Costo • Calidad • alcance • TIEMPO Hay que asignar tiempo suficiente para completar el sistema, y entender que lo necesita para varias actividades distintas: escuchar a los clientes, diseñar, codificar y probar. • COSTO El costo es la segunda variable que podríamos ajustar. • Suponga que las actividades de codificación, diseño, prueba y escucha están sobrecargando el proyecto y los recursos que invertimos en el tiempo, alcance y la calidad no son suficientes, incluso aunque dediquemos una cantidad normal al costo para equilibrar el proyecto • CALIDAD La tercera variable de control de recursos es la calidad. Si los sistemas ideales son perfectos, ¿por qué hay que poner tanto esfuerzo en dar mantenimiento a los sistemas? ¿Acaso estamos practicando ya el desarrollo ágil al sacrificar la calidad en el desarrollo de software? • ALCANCE Por último tenemos el alcance. En la metodología ágil, para determinar el alcance hay que escuchar a los clientes y hacer que escriban sus historias, que se examinan después para determinar cuánto se puede hacer en un tiempo dado para satisfacerlos. El proceso de desarrollo ágil • El modelado es una palabra clave en los métodos ágiles. El modelado ágil aprovecha la oportunidad de crear modelos que pueden ser lógicos, como los dibujos de los sistemas, o maquetas de tamaño natural como los prototipos. Un proceso ordinario de modelado ágil podría ser el siguiente: 1. Escuchar las historias de los usuarios por medio del cliente. 2. Dibujar un modelo del flujo de trabajo lógico para apreciar las decisiones de negocios representadas en la historia de un usuario. 3. Crear historias de usuarios con base en el modelo lógico. 4. Desarrollar algunos prototipos de visualización. Para ello hay que mostrar a los clientes el tipo de interfaz que tendrán. 5. Usar la retroalimentación de los prototipos y los diagramas del flujo de trabajo lógico para desarrollar el sistema hasta crear un modelo físico de datos. Scrum • Scrum es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo principal objetivo es maximizar el retorno de la inversión para su empresa (ROI). Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de inspección continua, adaptación, auto-gestión e innovación. • Con la metodología Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema. • Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades. Ventajas • Cumplimento de expectativas: El cliente establece sus expectativas indicando el valor que le aporta cada requisito. • Flexibilidad a cambios: Alta capacidad de reacción ante los cambios de requerimientos generados por necesidades del cliente o evoluciones del mercado. • Reducción del Time to Market: El cliente puede empezar a utilizar las funcionalidades más importantes del proyecto antes de que esté finalizado por completo. • Mayor calidad del software: La metódica de trabajo y la necesidad de obtener una versión funcional después de cada iteración, ayuda a la obtención de un software de calidad superior. • Mayor productividad: Se consigue entre otras razones, gracias a la eliminación de la burocracia y a la motivación del equipo. • Maximiza el retorno de la inversión (ROI): Producción de software únicamente con las prestaciones que aportan mayor valor de negocio gracias a la priorización por retorno de inversión. • Predicciones de tiempos: Mediante esta metodología se conoce la velocidad media del equipo por sprint . • Reducción de riesgos: El hecho de llevar a cabo las funcionalidades de más valor en primer lugar y de conocer la velocidad con que el equipo avanza en el proyecto, permite despejar riesgos eficazmente de manera anticipada. Fases del Scrum ANTES DEL DESARROLLO (PREGAME) • La planificación y diseño de la arquitectura de alto nivel que son representado por los dos símbolos rectángulo negro • El proceso de planificación define una nueva versión basada en cartera actualmente conocido, junto con una estimación de su coste y el calendario (prioridades y estimaciones de esfuerzo). • Este proceso consiste tanto en la conceptualización y el análisis de si una se está desarrollando el nuevo sistema. FASE DEL DESARROLLO (DEVELOPMENT PHASE) • En esta fase se espera que ocurran cosas impredecibles. Para evitar el caos Scrum define prácticas para observar y controlar las variables técnicas y del entorno, así también como la metodología de desarrollo que hayan sido identificadas y puedan cambiar. Este control se realiza durante los Sprints. Dentro de variables de entorno encontramos: tiempo, calidad, requerimientos, recursos, tecnologías y herramientas de implementación. DESPUES DEL DESARROLLO (POSTGAME) • Para ingresar a esta fase se debe llegar a un acuerdo respecto a las variables del entorno por ejemplo que los requerimientos fueron completados. El sistema está listo para ser liberado y es en esta etapa en la que se realiza integración, pruebas del sistema y documentación. METODOLOGÍA KANBAN • Kanban es una de las llamadas metodología ágiles, aquellas que buscan gestionar de manera generalizada cómo se van completando las tareas. • Kanban es una palabra japonesa que se compone de dos partes: Kan, que significa visual, y Ban, que hace referencia a tarjeta, de modo que como podemos deducir la metodología utiliza tarjetas para gestionar, de manera visual, la realización de determinados procesos y tareas. •El Kanban es un sistema de trabajo just in time, lo que significa que evita sobrantes innecesarios de stock, que en la gestión de proyectos multimedia equivale a la inversión innecesaria de tiempo y esfuerzo en lo que no se necesitara y evita sobrecargar al equipo Características de Kanban FASES DEL KANBAN PROGRAMACIÓN EXTREMA (XP) • La programación extrema se basa en una serie de reglas y principios que se han ido gestando a lo largo de toda la historia de la ingeniería del software. • XP es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en el desarrollo de software Ciclo de Vida de XP • El ciclo de vida de XP se enfatiza en el carácter interactivo e incremental del desarrollo, una iteración de desarrollo es un período de tiempo en el que se realiza un conjunto de funcionalidades determinadas que en el caso de XP corresponden a un conjunto de historias de usuarios. METODO DE DESARROLLO DE SOFTWARE RUP (Proceso Racional Unificado) • El RUP es una metodología sólida, con documentación que apoya el ciclo de vida evolutivo incremental, además de orientarse al desarrollo de componentes secundando el desarrollo orientado a objetos CARACTERÍSTICAS DEL RUP • Interactivo. Refinamiento sucesivo • Controlado. Gestión de requisitos y control de cambios • Construcción de modelos • Centrado en arquitectura • Desarrollo de software basado en componentes • Conducido por los casos de uso • Soporta técnicas OO (Orientadas a objetos) uso del UML • Configurable • Fomenta al control de calidad del software • Soportado por herramientas Ciclo de vida de RUP METODOLOGÍA CRYSTAL
•Las metodologías Crystal son una familia
de metodologías ágiles, donde cada una de ellas está adecuada para un tipo de proyecto. Su creador es el popular Cockburn uno de los firmantes del manifiesto ágil. •Las metodologías Crystal también sirven para gestionar proyectos ágiles, con la diferencia de que estás dos últimas son menos extremas y están pensadas para más tipologías de proyectos y organizaciones, destacando especialmente proyectos y empresas grandes • El nombre de metodologías Crystal viene de que cada proyecto software puede caracterizarse según dos dimensiones, tamaño y criticidad, al igual que los minerales se caracterizan por dos dimensiones, color y dureza. Y esta es una de las bases de las metodologías Crystal • La otra gran clave de metodologías Crystal, común a casi todas las metodologías ágiles, es que lo más determinante para el éxito, o fracaso, de un proyecto son las persona. Una de las claves que determinan el éxito (o fracaso) de un proyecto software. •En las metodologías Crystal, proyectos grandes, que necesitan más coordinación y comunicación, se asocian con colores más oscuros. Proyectos en los que un fallo pueda causar mayores problemas, también se asocian con colores más oscuros. Las 7 propiedades de las metodologías Crystal 1 – Entregas frecuentes, en base a un ciclo de vida iterativo e incremental. En función del proyecto puede haber desde entregas semanales hasta trimestrales. Para los que conozcan Scrum: en Scrum las entregas son, máximo, cada 4 semanas, en las Crystal se contemplan muchas más opciones. 2 – Mejora reflexiva. Que viene a ser mejora continua. Las iteraciones ayudan a ir ajustando el proyecto, a ir mejorándolo. 3 – Comunicación osmótica. Traducido al castellano, que el equipo esté en una misma ubicación física, para lograr la comunicación cara a cara. 4 – Seguridad personal. Todo el mundo puede expresar su opinión sin miedos, teniéndosele en cuenta, considerándose su opinión, etc. 5- Enfoque. Períodos de no interrupción al equipo (2h horas), objetivos y prioridades claros, definiendo así tareas concretas. 6 – Fácil acceso a usuarios expertos. Las Crystal (a diferencia de otras como XP) no exigen que los usuarios estén continuamente junto al equipo de proyecto, sí que, como mínimo, semanalmente debe haber reuniones y los usuarios deben estar accesibles. 7 – Entorno técnico con pruebas automatizadas, gestión de la configuración e integración continua. Prácticas comunes en casi todas las metodologías ágiles, PROCESO UNIFICADO AGIL (AUP) • AUP se preocupa especialmente de la gestión de riesgos. Propone que aquellos elementos con alto riesgo obtengan prioridad en el proceso de desarrollo y sean abordados en etapas tempranas del mismo. Para ello, se crean y mantienen listas identificando los riesgos desde etapas iníciales del proyecto. Especialmente relevante en este sentido es el desarrollo de prototipos ejecutables durante la base de elaboración del producto, donde se demuestre la validez de la arquitectura para los requisitos clave del producto y que determinan los riesgos técnicos. • El proceso AUP establece un Modelo más simple que el que aparece en RUP por lo que reúne en una única disciplina las disciplinas de Modelado de Negocio, Requisitos y Análisis y Diseño. El resto de disciplinas (Implementación, Pruebas, Despliegue, Gestión de Configuración, Gestión y Entorno) coinciden con las restantes de RUP. Cuestionario 1. ¿Cuáles son los cuatro tipos de información que busca el analista por medio de la creación de prototipos? 2. ¿Qué significa el término prototipo de parches? 3. Defina un prototipo que sea un modelo a escala no funcional. 4. Dé un ejemplo de un prototipo que sea un primer modelo a escala completa. 5. Defina lo que significa un prototipo que es un modelo con ciertas características esenciales, pero no todas. 6. Haga una lista de las ventajas y desventajas de usar prototipos 7. Describa cómo se pueden usar los prototipos para mejorar el SDLC tradicional. 8. ¿Cuáles son los criterios para decidir si debemos crear el prototipo de un sistema? 9. Haga una lista de los cuatro lineamientos que debe observar el analista al desarrollar un prototipo. 10. ¿Cuáles son los dos principales problemas implicados en la creación de prototipos? 11. Haga una lista de las tres principales ventajas de usar prototipos. 12. ¿Cómo puede un prototipo montado en un sitio Web interactivo facilitar el proceso de creación del mismo? Responda en un párrafo. 13. ¿Cuáles son las tres formas en que puede ayudar un usuario en el proceso de creación del prototipo? 14. ¿De donde proviene la palabra Kanban? 15. ¿Cuáles son las fases de la metodología SCRUM? 16. ¿Cuáles son los cuatro valores que deben compartir el equipo de desarrollo y los clientes de la empresa al utilizar una metodología ágil? 17. ¿Qué son los principios ágiles? Mencione cinco ejemplos. 18. ¿Cuáles son las cuatro prácticas básicas de la metodología ágil? 19. ¿explique las fases o etapas de la metodología XP? 20.¿Explique las fases o etapas de la metodología SCRUM? 21. ¿Mencione las características de la metodología Crystal? 22. ¿Mencione las características de la metodología AUP? 23. ¿Mencione las características de la metodología RUP? 24. ¿Qué es una arquitectura del sistema? 25. ¿ Mencione las características de la metodología KANBAN?