Descubre millones de libros electrónicos, audiolibros y mucho más con una prueba gratuita

Solo $11.99/mes después de la prueba. Puedes cancelar en cualquier momento.

Desarrollo de Software Ágil: Extreme Programming y Scrum
Desarrollo de Software Ágil: Extreme Programming y Scrum
Desarrollo de Software Ágil: Extreme Programming y Scrum
Libro electrónico225 páginas3 horas

Desarrollo de Software Ágil: Extreme Programming y Scrum

Calificación: 5 de 5 estrellas

5/5

()

Leer la vista previa

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.

IdiomaEspañol
Fecha de lanzamiento24 oct 2014
ISBN9781502952226
Desarrollo de Software Ágil: Extreme Programming y Scrum
Autor

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

Libros electrónicos relacionados

Desarrollo e ingeniería de software para usted

Ver más

Artículos relacionados

Comentarios para Desarrollo de Software Ágil

Calificación: 5 de 5 estrellas
5/5

1 clasificación0 comentarios

¿Qué te pareció?

Toca para calificar

Los comentarios deben tener al menos 10 palabras

    Vista previa del libro

    Desarrollo de Software Ágil - José Rubén Laínez Fuentes

    ISBN: 978-1502952226

    TABLA DE CONTENIDOS

    Introducción...................................................6

    Acostúmbrese a los cambios.....................................8

    El Ciclo de Desarrollo ÁGIL..........................12

    ¿Cuáles son los ciclos ágiles?................................14

    ¿Qué es el ciclo ágil de un día?.............................16

    El Anti-Patrón: Casos de Uso - UML - Codificación -Pruebas

    ........................................................................................................20

    Test-Driven Development (TDD)...........................23

    La implementación de la historia de usuario...24

    Diseño Incremental...................................................34

    Integración Continua...............................................36

    Otras prácticas importantes...................................38

    Conclusión...................................................................39

    Los Casos de Uso..........................................41

    Contar los Puntos del Caso de uso (UCP)..........41

    Calculando los puntos no ajustado a los casos de uso (UUCP).42 Calculando el Factor de Complejidad del Entorno (ECF)   46

    Estimando el esfuerzo..............................................48

    Determinando la productividad............................49

    Extensiones..................................................................50

    La Planificación ÁGIL..............................................53

    La Visión del Proyecto..............................................53

    Las Historias de Usuario.........................................55

    El juego de la Planificación....................................60

    La Planificación de Releases..................................61

    La Planificación de Iteraciones.............................64

    Estimaciones...............................................................67

    Conclusiones...............................................................70

    La Gestión de Proyecto ÁGIL...............................71

    La influencia del Manifiesto Ágil de 2001.........71

    El control empírico del proceso............................74

    Los requisitos detallados.........................................79

    Caso de Estudio..........................................................80

    Alcance, plazo y coste...............................................82

    Estimaciones y métricas ágiles.............................87

    Las iteraciones............................................................89

    Auto-organizable........................................................94

    Diagramas de Gantt en los proyectos de software  102

    No confundir tradicionalismo con desconocimiento  109

    Conclusión.................................................................110

    Aplicación de Extreme Programming (XP).112

    Metodologías Ágiles...............................................113

    Extreme Programming (XP).................................116

    Valores de Extreme Programming..............................117

    Prácticas de Extreme Programming...........................119

    Principios de Extreme Programming..........................123

    Cuando utilizar Extreme Programming......................124

    Ejemplo de Aplicación de Extreme Programming  126

    Empresa TECNOCOMPRO..........................................126

    Conclusiones.............................................................134

    Scrum............................................................................137

    El Scrum Master......................................................140

    Dificultades del Scrum..........................................141

    Referencias Bibliográficas.................................144

    Acerca del Autor......................................................146

    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

    ¿Disfrutas la vista previa?
    Página 1 de 1