Desarrollo de Software Ágil. Extremme Programming y Scrum
3.5/5
()
Información de este libro electrónico
El desarrollo de software es una actividad diferente de toda la industria construida desde los tiempos de la revolución industrial.
Las prácticas comunes en otras áreas de la ingeniería son ineficientes para el desarrollo de Software ya que un proyecto de software necesita un control empírico sobre el proceso.
El software es un producto empírico, por lo que es un error adoptar procesos prescriptivos rígidos en proyectos de software, en cambio las metodologías ágiles reconocen la naturaleza empírica del software y están preparadas para acoger los cambios frecuentes, ofrecen rapidez para realizar los cambios idóneos a partir del feedback de los usuarios y se presentan con metodologías leves, enfocadas al software funcional en vez del formalismo y de la documentación extensa.
Este libro abordará el cómo usted puede desarrollar proyectos de software utilizando las metodologías ágiles de desarrollo de software Extremme Programming y Scrum.
José Rubén Laínez Fuentes
José Rubén es Ingeniero de Sistemas y tiene más 15 años de experiencia en la gestión de equipos de programación, abandonando los grandes proyectos de software basados en la ingeniería de software tradicional centrándose en la construcción de software con equipos de desarrollo ágil.
Relacionado con Desarrollo de Software Ágil. Extremme Programming y Scrum
Libros electrónicos relacionados
Desarrollo de Software Calificación: 0 de 5 estrellas0 calificacionesDesarrollo de Software Ágil: Extreme Programming y Scrum Calificación: 5 de 5 estrellas5/5UF2406 - El cliclo de vida del desarrollo de aplicaciones Calificación: 0 de 5 estrellas0 calificacionesDesarrollo de Software: Requisitos, Estimaciones y Análisis Calificación: 0 de 5 estrellas0 calificacionesEl Libro Práctico Del Programador Ágil Calificación: 5 de 5 estrellas5/5Aprende a Modelar Aplicaciones con UML Calificación: 1 de 5 estrellas1/5Metodologías ágiles para el desarrollo de software Calificación: 0 de 5 estrellas0 calificacionesCalidad en el desarrollo de software Calificación: 0 de 5 estrellas0 calificacionesCurso de Ingeniería de Software Calificación: 4 de 5 estrellas4/5El Proceso de Desarrollo de Software: 2ª Edición Calificación: 0 de 5 estrellas0 calificacionesEl Proceso de Desarrollo de Software Calificación: 0 de 5 estrellas0 calificacionesUna guía para el Cuerpo de conocimiento de Scrum (Guía SBOK) – 3a Edición Calificación: 4 de 5 estrellas4/5Agile & Scrum Calificación: 0 de 5 estrellas0 calificacionesScrum para No Informáticos Calificación: 5 de 5 estrellas5/5Legacy Code Calificación: 0 de 5 estrellas0 calificacionesAgile Project Management para Principiantes: Dominar los Conocimientos Básicos con Scrum Calificación: 4 de 5 estrellas4/5El arte de probar: Guía sobre software testing para principiantes. Calificación: 0 de 5 estrellas0 calificacionesEl Libro Negro del Programador Calificación: 4 de 5 estrellas4/5Project Management para mejorar IT Calificación: 0 de 5 estrellas0 calificacionesDe qué hablo cuando hablo de programar (volumen 2) Calificación: 0 de 5 estrellas0 calificacionesGuía Práctica de Ágil Calificación: 4 de 5 estrellas4/5Scrum - ¡Guía definitiva de prácticas ágiles esenciales de Scrum! Calificación: 4 de 5 estrellas4/5UF2218 - Desarrollo de un CMS Calificación: 0 de 5 estrellas0 calificacionesUF2177 - Desarrollo de programas en el entorno de la base de datos Calificación: 0 de 5 estrellas0 calificacionesProject management: Un enfoque de liderazgo y ejecución de proyectos en la empresa Calificación: 1 de 5 estrellas1/5Análisis y diseño de algoritmos: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificacionesDiseño de algoritmos y su programación en C Calificación: 0 de 5 estrellas0 calificacionesISO/IEC 29110 para procesos software en las pequeñas empresas Calificación: 0 de 5 estrellas0 calificacionesGuía para la adopción industrial de líneas de productos de software Calificación: 0 de 5 estrellas0 calificacionesGuía práctica de Kubernetes: Proyectos para crear aplicaciones de éxito con Kubernetes Calificación: 0 de 5 estrellas0 calificaciones
Computadoras para usted
EL PLAN DE MARKETING EN 4 PASOS. Estrategias y pasos clave para redactar un plan de marketing eficaz. Calificación: 4 de 5 estrellas4/5Brand management en 4 pasos: Cómo gestionar la comercialización de su marca mejorando su potencial y eficacia Calificación: 5 de 5 estrellas5/5Las leyes del UX: Utilizando la psicología para mejorar la experiencia de usuario (UX) Calificación: 5 de 5 estrellas5/5Fractales De Dios Calificación: 5 de 5 estrellas5/5Psicopatología básica Calificación: 4 de 5 estrellas4/5Inteligencia artificial: Aprender sobre chatbots, robótica y otras aplicaciones comerciales Calificación: 5 de 5 estrellas5/5Seducción con texting: Atrae y seduce las mujeres que deseas con poco esfuerzo dominando el arte de los mensajes de texto Calificación: 4 de 5 estrellas4/5Excel 2021 y 365 Paso a Paso: Paso a Paso Calificación: 5 de 5 estrellas5/5Cómo Eliminar Distracciones: Dispara tu Atención y Concentración Mental con Sencillos Métodos que Puedes Empezar a Usar Hoy Mismo Calificación: 5 de 5 estrellas5/5Biografía De Elon Musk Calificación: 4 de 5 estrellas4/5Diseño de experiencias de usuario: Introducción práctica Calificación: 5 de 5 estrellas5/5Quiero Trabajar Desde Casa, ¿Cómo Empiezo?: Descubre Cómo es Posible Ganar Dinero o Empezar un Negocio desde la Comodidad de tu Hogar Calificación: 0 de 5 estrellas0 calificacionesInteligencia artificial: La guía completa para principiantes del futuro de la IA Calificación: 1 de 5 estrellas1/5Guía para la crianza en un mundo digital: Cómo educar para un uso sano y seguro de la tecnología Calificación: 4 de 5 estrellas4/5Inteligencia artificial: Análisis de datos e innovación para principiantes Calificación: 4 de 5 estrellas4/5El Arte de las Ventas: Descubre los Secretos de los Mejores Vendedores del Mundo e Incrementa tus Ganancias más Allá de lo que Pensabas Posible Calificación: 0 de 5 estrellas0 calificacionesMinimalismo Digital: Una Guía para Simplificar tu Vida Digital y Vivir con Menos Estrés Calificación: 0 de 5 estrellas0 calificacionesArmas de destrucción matemática: Cómo el Big Data aumenta la desigualdad y amenaza la democracia Calificación: 5 de 5 estrellas5/5Cómo Hacer Tu Propia Página Web Gratis Calificación: 4 de 5 estrellas4/5ChatGPT Para Escritores: La Clave Para Desbloquear Su Creatividad Calificación: 0 de 5 estrellas0 calificacionesGame Design: Estructura lúdica: Diseño de juegos en América latina, #1 Calificación: 4 de 5 estrellas4/5Me desconecto, luego existo: Propuestas para sobrevivir a la adicción digital Calificación: 4 de 5 estrellas4/5Programación Java - Una Guía para Principiantes para Aprender Java Paso a Paso Calificación: 3 de 5 estrellas3/5La Guía Básica para Socializar: Todo lo que necesitas para socializar mejor. 2 Libros en 1 - Incrementa tu Inteligencia Social, Cómo Hablar de Cualquier Cosa con Cualquier Persona Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar en C++ Calificación: 5 de 5 estrellas5/5
Comentarios para Desarrollo de Software Ágil. Extremme Programming y Scrum
2 clasificaciones1 comentario
- Calificación: 3 de 5 estrellas3/5El libro te da una idea general de los métodos ágiles en la gestión de proyectos. La traducción en general podría haberse cuidado mas.
Vista previa del libro
Desarrollo de Software Ágil. Extremme Programming y Scrum - José Rubén Laínez Fuentes
Tabla de contenido
Introducción
Acostúmbrese a los cambios
El Ciclo de Desarrollo ÁGIL
¿Cuáles son los ciclos ágiles?
¿Qué es el ciclo ágil de un día?
El Anti-Patrón
: Casos de Uso - UML - Codificación -Pruebas
Test-Driven Development (TDD)
La implementación de la historia de usuario
Diseño Incremental
Integración Continua
Otras prácticas importantes
Conclusión
Los Casos de Uso
Contar los Puntos del Caso de uso (UCP)
Calculando los puntos no ajustado a los casos de uso (UUCP)
Calculando el Factor de Complejidad del Entorno (ECF)
Estimando el esfuerzo
Determinando la productividad
Extensiones
La Planificación ÁGIL
La Visión del Proyecto
Las Historias de Usuario
El juego de la Planificación
La Planificación de Releases
La Planificación de Iteraciones
Estimaciones
Conclusiones
La Gestión de Proyecto ÁGIL
La influencia del Manifiesto Ágil de 2001
El control empírico del proceso
Los requisitos detallados
Caso de Estudio
Alcance, plazo y coste
Estimaciones y métricas ágiles
Las iteraciones
Auto-organizable
Diagramas de Gantt en los proyectos de software
No confundir tradicionalismo con desconocimiento
Conclusión
Aplicación de Extreme Programming (XP)
Metodologías Ágiles
Extreme Programming (XP)
Valores de Extreme Programming
Prácticas de Extreme Programming
Principios de Extreme Programming
Cuando utilizar Extreme Programming
Ejemplo de Aplicación de Extreme Programming
Empresa TECNOCOMPRO
Conclusiones
Scrum
El Scrum Master
Dificultades del Scrum
Referencias Bibliográficas
Editorial
Acerca del Autor
Introducción
El desarrollo de software es una actividad diferente de toda la industria construida desde los tiempos de la revolución industrial.
Las prácticas comunes en otras áreas de la ingeniería son ineficientes para el desarrollo de Software ya que un proyecto de software necesita un control empírico sobre el proceso.
El proceso prescriptivo
Las ingenierías más clásicas sieguen los procesos prescriptivos en la fabricación de los productos, como por ejemplo: construcción de edificaciones o las líneas de montaje.
Un proceso prescriptivo posee una estructura de control bien definida con puntos de observación:
Cada paso recorrido, menor incertidumbre
Proceso previsible
Adecuado para las situaciones en que la incertidumbre es baja: las variables de entrada son conocidas y el producto final se puede estimar con gran precisión de acierto.
Característica común: alto coste de reconstrucción o reparación de las fallas del producto final.
El proceso empírico
El empirismo es la teoría que afirma que el conocimiento surge principalmente de la experimentación sensorial. Un proceso empírico está caracterizado por el aprendizaje adquirido a partir de la experimentación y de las adaptaciones realizadas para mejorar el proceso, es decir: Haciendo y Aprendiendo.
Adecuado en las situaciones en que la incertidumbre es alta: donde los cambios son frecuentes y el producto final es difícil de ser estimado.
La incertidumbre en los proyectos de software deriva de diversos factores:
Los requisitos recolectados pueden estar equivocados o incompletos.
La arquitectura escogida puede ser ineficiente o insuficiente.
Las pruebas se realizan sobre requisitos inciertos o confusos.
El soporte técnico de las pruebas puede ser insuficiente o inadecuado.
El código fuente puede contener bugs.
Las plantillas y las especificaciones no son confiables al 100%.
La incertidumbre solamente se reduce cuando el usuario usa la aplicación de manera efectiva (feedback).
En el desarrollo de software siempre hay que tener en cuenta la gestión de la incertidumbre.
El Software, así como ideas, madura con el tiempo, es difícil elaborar la idea completa en el inicio del proyecto para solucionar el problema. El coste de ajuste de un software no sigue el patrón de un proceso prescriptivo, es decir: Re-trabajo ≠ afinamiento.
Los ajustes se realizan en base al feedback de los usuarios.
Acostúmbrese a los cambios
El software es un producto empírico, por lo que es un error adoptar procesos prescriptivos rígidos en proyectos de software, en cambio las metodologías ágiles reconocen la naturaleza empírica del software y están preparadas para acoger los cambios frecuentes, ofrecen rapidez para realizar los cambios idóneos a partir del feedback de los usuarios y se presentan con metodologías leves, enfocadas al software funcional en vez del formalismo y de la documentación extensa.
El manifiesto ágil es un conjunto de valores elaborado en 2001 por 17 grandes pensadores del mundo del desarrollo de software, es decir:
Personas e interacciones entre ellas más que procesos y herramientas.
Software funcional más que documentación extensa.
Colaboración con el cliente más que negociación de contratos.
Responder a los cambios más que seguir un plan.
Las metodologías más conocidas son:
Extreme Programming (XP): Concebida para proyectos de pequeño y medio tamaño, prevé participación activa y frecuente con el cliente. Describe detalladamente las prácticas de desarrollo que se van a utilizar como por ejemplo: lenguaje de programación, refactorización, pruebas unitarias, etc.
Scrum: Comparte muchas características con XP, como la participación activa del cliente, pero tiene su principal foco en las actividades de gestión del proyecto.
Las principales características de las metodologías ágiles son:
Objetivo: satisfacer al cliente entregando, rápidamente y a menudo, sistemas que tengan valor.
Proyectos Iterativos e incrementales.
Los requisitos no se especifican en detalles en el inicio del proyecto. La solución evolucionará a partir del feedback del cliente/usuario.
Reconocer si las estimaciones a largo plazo son groseras e imprecisas. Estas evolucionan a lo largo del proyecto.
El esfuerzo de planificación se concentra en el futuro más próximo, es decir, en el corto plazo.
El equipo de desarrollo se auto-organiza y participa en la planificación del proyecto.
Poca formalidad, es decir, los roles en la jerarquía se simplifica.
El cliente participa activamente del proceso.
Trabajan con líderes en vez de con jefes.
Estas características nos traen unos beneficios que principalmente son los dos siguientes:
Para el cliente, que al guiar los desarrolladores obtienen un producto que atiende sus necesidades. También sirve para percibir con antelación si el proyecto es inviable, evitando el gasto innecesario de recursos.
Para los desarrolladores, los cuales participan de forma activa en la planificación del proyecto, generando plazos realistas y factibles, evitando la sobrecarga de trabajo innecesario que surge cuando se intentan realizar metas que se consideran imposibles.
El Ciclo de Desarrollo ÁGIL
El Extreme Programming es una metodología ágil defendida por Kent Beck, Ron Jeffries, Ward Cunningham entre otros y se compone de un conjunto de valores y prácticas importantes que forman un método para el desarrollo de software. Incluso siendo un conjunto de prácticas que están en camino desde mediados de los 90s, muchos equipos y empresas buscan entender el desarrollo del software desde la perspectiva de la gestión y no de las prácticas de ingeniería.
El Extreme Programming (XP) se ve con cierta polémica en el mercado, sin embargo, desde el comienzo de la metodología Scrum en el año 2007 ha sido ampliamente difundido y adoptado por numerosos equipos de desarrollo. El objetivo es demostrar que, dado que las prácticas ágiles de gestión de proyectos (como el Scrum) debe ir acompañada de prácticas ágiles de ingeniería de software, tales como XP. El beneficio de la adopción del método ágil dentro de día a día de los equipos de desarrollo, la participación en todo el trabajo de desarrollo de software, ha sido eclipsado por las prácticas de gestión, pero una cosa no excluye a la otra.
Aunque el Manifiesto Ágil se publicó en 2001, las metodologías ágiles ya estaban en pleno desarrollo en los años 90 con, por ejemplo, Ken Schwaber, uno de los autores del Manifiesto, que afirma que mientras desarrollaron las prácticas de gestión de proyectos de Scrum con Jeff Sutherland, Kent Beck y Ron Jeffries trabajaron para mejorar las prácticas de ingeniería con XP. Un rápido análisis a ambos métodos nos muestra que ambas metodologías tienen mucho en común, pero una no es exclusiva de la otra. El Scrum no es todo lo que se necesitan para ser más productivos y reducir los gastos innecesarios, sino que las prácticas de ingeniería ágiles pueden ser mucho más importantes que las prácticas de gestión, ya que el software no puede existir sin la parte técnica. El código siempre debe existir en un proyecto de software. A nosotros no sólo nos van a pagar para hacer planes, con lo que Scrum junto con XP puede ser un framework de proceso interesante, adaptándose y evolucionando su organización en un proceso de mejora continua.
Scrum y XP
¿Cuáles son los ciclos ágiles?
Cada proyecto comienza en la concepción, cuando se establece una línea de construcción