RESUMENEn los años noventa surgieron metodologías de desarrollo de software ligeras -luego llamadas ágiles-dirigidas a reducir la probabilidad de fracaso por subestimación de costos, tiempos y funcionalidades en los proyectos de desarrollo de software. Se gestaron como alternativa a las metodologías tradicionales, específicamente para reducir la carga burocrática propia ellas, en proyectos de pequeña y mediana escala. A diferencia de las tradicionales, las metodologías ágiles son adaptativas -no predictivas-, y están orientadas a las personas -no a los procesos-. Este documento hace una revisión de publicaciones sobre las metodologías ágiles, sus principios y fundamentos; establece criterios para definir la relevancia de las metodologías ágiles; define y explica con detalle las más relevantes (i.e., Scrum y XP); y presenta las características de otras cuatro destacadas (i.e., DSDM, Crystal, ASD y FDD).Palabras clave: Scrum, XP, Método de desarrollo de sistemas dinámicos, Crystal, Desarrollo adaptativo de software, Desarrollo orientado a funcionalidades, Metodologías ágiles.
ABSTRACTIn the nineties appeared lightweight software development methodologies -then called agile -that aimed to reduce the probability of failure due to underestimation of cost, time and functionality in software development projects. Agile methodologies were developed as an alternative to traditional methodologies specifically to reduce the bureaucratic burden in projects of small and medium scale. Unlike traditional methodologies, agile methodologies are adaptive and oriented to people. This document describes the agile methodologies, its principles and fundamentals, establishes a criteria for defining the relevance of the agile methodologies, defines and explains in detail the most relevant (i.e., Scrum and XP) and presents other prominent ones(i.e., DSDM, Crystal, ASD and FDD).Keywords: Scrum, XP, Dynamic system development method, Crystal, Adaptative software development, Feature-Driven Development, Agile methodologies.
INTRODUCCIÓNEn la década de los noventa surgieron metodologías de desarrollo de software ligeras, más adelante nombradas como metodologías ágiles, que buscaban reducir la probabilidad de fracaso por subestimación de costos, tiempos y funcionalidades en los proyectos de desarrollo de software. Estas metodologías nacieron como reacción a las metodologías existentes con el propósito de disminuir la burocracia que implica la aplicación de las metodologías tradicionales en los proyectos de pequeña y mediana escala.Las metodologías tradicionales buscan imponer disciplina al proceso de desarrollo de software y de esa forma volverlo predecible y eficiente. Para conseguirlo se soportan en un proceso detallado con énfasis en planeación [1] propio de otras ingenierías. El principal problema de este enfoque es que hay muchas actividades que hacer para seguir la metodología y esto retrasa la etapa de desarrollo. Las metodologías ágiles tienen dos diferencias fundamentales con las metodologías tradicionales; la primera es que los mét...