Las metodologías ágiles promueven la formalización de procesos adaptables. La compilación de los principios y valores que resaltan las metodologías ágiles fue formalizada en el manifiesto para el desarrollo de software ágil basadas en heurísticas provenientes de prácticas de producción de código, especialmente preparados para cambios durante el proyecto.Manifestos Agil
En el Manifiesto Ágil (2001), firmado por Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert Cecil Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland y Dave Thomas, se expone que:
"... Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:
1. A los individuos y su interacción, por encima de los procesos y las herramientas.2. El software que funciona, por encima de la documentación exhaustiva.3. La colaboración con el cliente, por encima de la negociación contractual.4. La respuesta al cambio, por encima del seguimiento de un plan.
Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda..."
El manifiesto ágil constituye un conjunto de características que diferencian un proceso ágil de uno tradicional. Los dos primeros principios son generales y resumen gran parte del espíritu ágil. El resto tienen que ver con el proceso a seguir y con el equipo de desarrollo, en cuanto metas a seguir y organización del mismo.
The Agile Alliance es una organización, sin ánimo de lucro, dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que adopten dichos conceptos. El punto de partida fue el Manifiesto Ágil, un documento que resume la filosofía ágil.
Metodologías son aplicables al mundo del Software Libre
Exiten disversas metodologías de desarrollo de software, que promueven el desarrollo colaborativo y por tanto se ajusta a los modelos de desarrollo del entorno del software libre. Algunas de estas son:
1. SCRUM: modelo de desarrollo ágil caracterizado por: adoptar una estrategia de desarrollo incremental, en lugar de la planificación y ejecución completa del producto; basar la calidad del resultado más en el conocimiento tácito de las personas en equipos autoorganizados, que en la calidad de los procesos empleados; y solapamiento de las diferentes fases del desarrollo, en lugar de realizar una tras otra en un ciclo secuencial o de cascada.
2. Crystal Methodologies: se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo (de ellas depende el éxito del proyecto) y la reducción al máximo del número de artefactos producidos. Han sido desarrolladas por Alistair Cockburn. El desarrollo de software se considera un juego cooperativo de invención y comunicación, limitado por los recursos a utilizar. El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de trabajo en equipo definidas. Estas políticas dependerán del tamaño del equipo, estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros).
3. Dynamic Systems Development Method (DSDM): es un ágil marco de ejecución de proyectos, que se utiliza principalmente como un método de desarrollo de software. Representan un enfoque genérico para la gestión de proyectos y la solución de entrega. DSDM es un iterativo e incremental enfoque que adopta los principios de desarrollo Agile, incluyendo la participación continua de usuario / cliente, fijando costo, la calidad y el tiempo desde el principio y utiliza la priorización de Moscú de alcance en los mostos, deberes, coulds y no los que tienen que ajustar el proyecto entregables a cumplir con la limitación de tiempo establecido.
4. Adaptive Software Development ASD: es una metodología impulsada por Jim Highsmith que incorpora el principio de la adaptación continua, o sea, adaptarse al cambio y no luchar contra él. En ella no hay un ciclo de vida estático (planear-diseñar-construir), si no que ofrece un ciclo de vida iterativo, donde cada ciclo puede ser modificado al tiempo que otro es ejecutado. Se caracteriza por ser iterativo, orientado a los componentes software más que a las tareas, tolerante a los cambios, guiado por los riesgos y revisión de los componentes sirve para aprender de los errores y volver a iniciar el ciclo de desarrollo. El ciclo utilizado por ASD es conocido como: Especular-colaborar-aprender, el cual está dedicado a un constante aprendizaje y colaboración entre desarrollador y cliente.
Feature -Driven Development
El desarrollo de software libre se basa en gran parte en unas herramientas que permiten sincronizarse con el trabajo de los diferentes desarrolladores del proyecto, de manera que la distribución geográfica no suponga un problema. Los sistemas de control de versiones y los gestores de erratas (también usados ocasionalmente para tareas de planificación) se han convertido en herramientas imprescindibles para proyectos de software libre grandes, y no tan grandes.
Métricas y modelos utilizados en el Software Libre
La medición y el análisis de datos relacionados con el desarrollo de software libre se hacen imprescindibles para alcanzar los objetivos que la ingeniería del software libre persigue. En este sentido, existen diversas métricas utilizadas en el entorno del software libre:
1. Métricas de Calidad: proporcionan una indicación de cómo se ajusta el software a los requisitos implícitos y explícitos del cliente. Es decir cómo voy a medir para que mi sistema se adapte a los requisitos que me pide el cliente.
2. Métricas de Productividad: Se centran en el rendimiento del proceso de la ingeniería del software. Es decir que tan productivo va a ser el software que voy a diseñar.
3. Métricas Orientadas a la Persona: Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi personal que va hará el sistema.
4. Métricas Orientadas al Tamaño: Es para saber en qué tiempo voy a terminar el software y cuantas personas voy a necesitar. Son medidas directas al software y el proceso por el cual se desarrolla, si una organización de software mantiene registros sencillos.
5. Métricas Orientadas a la Función: Son medidas indirectas del software y del proceso por el cual se desarrolla. En lugar de calcularlas las LDC, las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa












0 comentarios:
Publicar un comentario