1 / 36

Estructura

Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles. Estructura. contextualización. Contextualización. Calidad Productividad Agilidad Desarrollo ágil de software ¿Por qué implementar el desarrollo ágil?.

Download Presentation

Estructura

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles

  2. Estructura

  3. contextualización

  4. Contextualización • Calidad • Productividad • Agilidad • Desarrollo ágil de software • ¿Por qué implementar el desarrollo ágil?

  5. Contextualización • Productividad Relación entre los resultados y el tiempo utilizado para obtenerlos: cuanto menor sea el tiempo que lleve obtener el resultado deseado, más productivo es el sistema.

  6. Contextualización • Agilidad Capacidad para adaptar el curso del desarrollo a la evolución de los requisitos y a las circunstancias del entorno. • Innovación La permanencia de estas empresas depende de su capacidad de innovación continua. • Flexibilidad En las circunstancias de velocidad del mercado actual, es importante la capacidad de adaptación y evolución a través de versiones, modificaciones, actualizaciones o ampliaciones.

  7. Desarrollo ágil de software • El desarrollo ágil es simplemente la evolución natural del proceso de software para apoyar el acelerado y cambiante entorno empresarial. A través de un enfoque ligero y de baja ceremonia para el desarrollo de software, incorpora un conjunto de mejores prácticas de gestión y de ingeniería para acelerar y mejorar el proceso de entrega.

  8. ¿Por qué es importante el desarrollo ágil? • Los proyectos de software fallan porque: • Se pretenden predecir y planear todos los requerimientos de antemano en un entorno cambiante. • Se solicitan demasiados cambios y los plazos de entrega son ampliados constantemente. • Los procesos de desarrollo y gestión de cambios son poco flexibles.

  9. ¿Por qué es importante el desarrollo ágil? • El equipo ve a los entregables y control de cambios como un fin y no como un medio para entregar software funcional. • Los usuarios no se involucran. • La calidad se sacrifica al tratar de imponer tiempos poco realistas. • El producto no está debidamente probado.

  10. ¿Por qué es importante el desarrollo ágil? • Las metodologías ágiles de desarrollo de software proponen simplicidad y velocidad para crear software maximizando su valor, con mayor calidad y en menor tiempo.

  11. ¿Por qué es importante el desarrollo ágil? • Innovación continua: Para cumplir con las necesidades actuales del cliente. • Adaptabilidad del producto: Para cumplir con las necesidades futuras del cliente. • Mejora del tiempo de entrega al mercado: Para satisfacer las ventanas de mercado y mejorar el Retorno de la inversión (ROI). • Adaptabilidad de personas y procesos: Para responder rápidamente a los cambios de producto y negocio. • Resultados confiables: Para apoyar el crecimiento de negocio y la rentabilidad.

  12. Metodologías ágiles Metodologías ágiles más usadas, según los resultados de la encuesta realizada por la compañía VersionOne.

  13. Metodologías ágiles • SCRUM • eXtremeProgramming (XP) • Dynamic System Development Method (DSDM) • Feature Driven Development (FDD) • Lean Software Development (LSD) • Adaptive Software Development (ASD) • Agile Unified Process (AUP) • Crystal.

  14. Metodología SWAPyME

  15. Metodología SWAPyME • Definición • Enfoque • Principios • Roles • Prácticas • Herramientas

  16. Metodología SWAPyME • Frameworkde gestión de proyectos liviano que tiene como principal objetivo la distribución de software de alta calidad con rapidez y continuidad, en torno a las necesidades del valor de negocio, la participación activa de los usuarios y la adaptación continua, contribuyendo con el aumento de la productividad en la gestión

  17. Definición • Frameworkde gestión de proyectos liviano que tiene como principal objetivo la distribución de software de alta calidad con rapidez y continuidad, en torno a las necesidades del valor de negocio, la participación activa de los usuarios y la adaptación continua, contribuyendo con el aumento de la productividad.

  18. Enfoque • Es una metodología iterativa: • Flexibilidad que permite ante los cambios • Genera más valor para el usuario • Contribuye con la corrección temprana de errores • Es posible tener más control sobre ciertas características del proyecto disminuyendo riesgos.

  19. Roles • Colección de funciones que cumple uno o varios grupos de personas, con el fin de cumplir con actividades que se definen para éste y entregar los artefactos que deben ser elaborados.

  20. Roles • Gerente de proyecto: • Planificación del proyecto en la totalidad de su duración • Asignación de los recursos • Delegación de responsabilidades • Organizar las reuniones • Mantener un control sobre el progreso del proyecto • Definir estrategias para mitigar los riesgos que se puedan presentar.

  21. Roles • Líder de proyecto • Supervisión de la implementación proceso y todas las actividades que permitan el mejoramiento del mismo. • Arquitecto del sistema • Mantiene el control y cambios requeridos de la arquitectura en cada una de las iteraciones.

  22. Roles • Grupo de desarrollo: • Codificación de los componentes del desarrollo de cada iteración • Ejecución de pruebas unitarias • Documentación • Mantener la actualización del código

  23. Roles • Grupo de pruebas: • Crear los escenarios de pruebas funcionales • Certificar cada release que vaya a ser entregado al cliente en cada iteración.

  24. Roles • Usuario (stakeholder): • Poseen conocimiento del dominio del sistema en desarrollo • Aceptarán o rechazarán el sistema de acuerdo a los requerimientos establecidos en la iteración • Interactúan con los miembros del equipo de desarrollo para algún propósito del proyecto.

  25. Principios • La participación activa del usuario. • Las entregas iterativas e incrementales. • Los requerimientos son tomados como línea base. • Centrarse en actividades de alto valor. • Comunicación y retroalimentación constante. • Gestión del cambio. • Mantener independencia de herramientas y lenguajes de programación. • Adopción de agilidad en el equipo de trabajo.

  26. Prácticas

  27. Prácticas para la gestión del proyecto • Planificación Para el inicio del proyecto, en la primera iteración que se vaya a realizar, se debe haber elaborado antes un análisis de factibilidad del proyecto donde se determine el alcance y validación tecnológica, operativa y económica del proyecto.

  28. Prácticas para la gestión del proyecto Después de la primera iteración, las planificaciones dan inicio al ciclo de cada iteración, llevando a cabo las siguientes tareas: • Determinar las historias de usuario que van a ser construidas en la iteración. • Estimar el tiempo que se tomará para la construcción de las historias de usuario elegidas. • Los integrantes del grupo de desarrollo eligen qué historias de usuario construirán.

  29. Prácticas para la gestión del proyecto • Ambiente colaborativo Se entiende como un espacio virtual donde todas las partes interesadas en el proyecto, incluso si están en diferente tiempo o lugar, pueden negociar, hacer una lluvia de ideas, debatir, compartir conocimientos y en general trabajar en conjunto para llevar a cabo algunas tareas, que permitan realizar seguimiento y mantener el control de los principales componentes del proyecto.

  30. Prácticas para la gestión del proyecto • Entregas iterativas e incrementales Consiste en la entrega de funcionalidades principales del sistema máximo cada dos semanas al cliente, lo cual permitirá la retroalimentación inmediata por su parte y aumentará la productividad del proyecto.

  31. Prácticas para la gestión del proyecto • Seguimiento y control Para entregar un proyecto consistente se debe llevar una trazabilidad de los principales aspectos, desde el inicio del proyecto hasta el fin. Dado que el aspecto principal de esta metodología son los requerimientos y el enfoque iterativo, se llevará a cabo la trazabilidad de las historias de usuario por cada iteración y su relación con otras historias de usuario.

  32. Prácticas para cada iteración • Definición de requerimientos En esta actividad de definición de las necesidades del sistema que guiará el desarrollo, se utilizan las historias de usuario para detallar, en un lenguaje cercano al cliente, la funcionalidad que debe satisfacer cada iteración, de forma tal que se logre trazabilidad con el alcance general del proyecto.

  33. Prácticas para cada iteración • Diseño del sistema El diseño del sistema no será definido inicialmente, por el contrario, para cada iteración se tendrá en cuenta la arquitectura del proyecto y se diseña según el alcance definido en la iteración, en contraste con nuevos requerimientos definidos por el cliente.

  34. Prácticas para cada iteración • Refactorización Se refiere a la actividad constante en los desarrollos ágiles, donde, el objetivo es mejorar el diseño y la productividad del proyecto en desarrollo, sin influir en su funcionalidad.

  35. Prácticas para cada iteración • Integración continua Se debe integrar cada cambio introducido al proyecto. Se parte de la base que cuanto más tiempo se espere para integrar más costosa e impredecible será la actividad de integración. Se debe disponer de herramientas que permitan su automatización.

  36. Prácticas para cada iteración • Desarrollo basado en pruebas Por medio de esta práctica se implementan las pruebas incluso antes de comenzar a escribir el código de un módulo. De esta forma, ante cada modificación en las iteraciones del proyecto el plan de pruebas es ejecutado completamente. • Pruebas de aceptación del cliente • Pruebas unitarias • Pruebas funcionales

More Related