Mostrando entradas con la etiqueta Agile Manifesto. Mostrar todas las entradas
Mostrando entradas con la etiqueta Agile Manifesto. Mostrar todas las entradas

viernes, 16 de agosto de 2013

Metodologías ágiles: OpenUP (Open Unified Process)



Hola a todos,

El Open Unified Process es una metodología ágil que fue desarrollada por un conjunto de empresas del sector del software que cedieron su creación a la Fundación Eclipse para que lo difundiera.

Este proceso productivo tiene 4 puntos básicos:
- Colaborar: sirve para que todo el equipo esté en la misma onda y los conocimientos fluyan en el equipo.
- Equilibrar prioridades: En caso de crisis los responsables han de decidir a que le dan más prioridad y han de ser coherentes con la decisión. De otra manera la empresa no va a obtener los beneficios que espera obtener.
- Centrarse en la arquitectura: Antes de hacer nada estar seguros que tenemos algo que se aguanta y sobre el que podemos ir añadiendo código.
- Desarrollo evolutivo: Es decir, ciclos cortos y iterativos que permitan la retro-alimentación del equipo y el aprendizaje de los errores.

OpenUP tiene una herramienta de estimación/seguimiento que es la siguiente:

Queda claro que es un proceso ágil debido a que las fases de este proceso están mucho más distribuidas en el tiempo que en el antiguo sistema de gestión en cascada.


LordPakusBlog

Metodologías ágiles: LEAN Software Development



Hola a todos,

El desarrollo de software LEAN es la traducción al mundo de la programación del sistema productivo automovilístico usado en TOYOTA (referente mundial en su campo).

La idea principal que mueve LEAN es eliminar todo aquello que sean "desperdicios" en el proceso de producción. Desperdicio se define como todo aquello que genera costes pero no genera valor para el consumidor.

Un ejemplo sencillo: si tenemos una fabrica de lapices, nos interesa saber que el consumidor quiere comprar un lapiz, sin más. Que sea de madera, que escriba y que se le pueda sacar punta, si además es de su color fávorito mejor que mejor. El consumidor no va a estar dispuesto a pagar más por que el lápiz se haya desplazado 3,5 km dentro de la fábrica en un complejo sistema de cintas transportadoras, ni por el hecho que después se haya embalado y transportado en camión durante 500 km. El consumidor solo quiere un lápiz. Solo estará dispuesto a pagar más si el lápiz dura más, pinta mejor o tiene alguna otra característica que lo hace atractivo.  Lo mismo pasa con el mundo del software. El consumidor no le va a dar ningún valor a que el software haya pasado por un complejo sistema "burrocrático" de aprobaciones o que durante el proceso el proyecto se haya parado por que ha habido un bug muy grande. El solo quiere pagar por la funcionalidad que le da el software, nada más.

En el caso concreto de LEAN para el desarrollo de software se designan algunos puntos adicionales:
- Eliminar desperdicios: Eliminar burocracias, código innecesario, procedimientos que no aportan valor.
- Ampliar aprendizaje: La formación continua del producto permite a los trabajadores realizar menos fallos y entender mejor los requerimientos.
- Decidir lo más tarde posible. Si se retrasa la toma de decisiones menos posibilidades hay que se tiren para atrás en el último momento.
- Reaccionar tan rápido como sea posible: Vendría a ser la idea subyacente de XP, hacer lo mínimo indispensable para cumplir con los requisitos, a fin de tener cuanto antes una versión entregable que se pueda evaluar a fin de poder iniciar la siguiente iteración.
- Potenciar al equipo: Los programadores del equipo han de poder auto-organizarse solos y desarrollar su trabajo en el marco que ellos establezcan a fin de poder trabajar más cómodos y por tanto , eficientes.
- Crear la integridad: Este concepto es el de como se comporta nuestro producto de software como un todo. Si se desarrolla por partes separadas y meramente pegadas con pegamento dificilmente estará todo integrado.  A veces es necesario refactorizar (como en  XP) pero no con el objetivo de reducir la complejidad  sino la de unificar el código y eliminar las duplicidades.
- Ver el conjunto: Esto significa que los programadores, en todo momento, han de tener muy claro que va ha hacer y como tiene que ser el producto de software final (independientemente que la parte que ellos toquen sea una minúscula parte del total) a fin de que todo el conjunto tenga cohesión.


LordPakusBlog

miércoles, 14 de agosto de 2013

¿Que són las metodologías ágiles? Agile Manifesto



Hola a todos,

Las metodologías ágiles de desarrollo de software son  un conjunto de métodos, maneras de producir, organizar y planificar que afectan desde el programador junior recién llegado hasta el máximo directivo de la empresa y que sirven para aumentar la productividad de los equipos y aumentar la calidad del código que producimos.

Estas metodologías ágiles se explican en un manifiesto hecho público en 2001 firmado por 15 de los gurús de la programación y la organización de equipos de software más importantes del momento. Podéis encontrar el manifiesto original aqui

Los firmantes de este manifiesto fueron los siguientes :
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 C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas

Traducido y explicado este manifiesto vendría a decir:

Para conseguir unos desarrollos de software mejores se ha de tener en cuenta  que:
 - Son más importantes las personas y las relaciones entre ellas que no los procesos y las herramientas.
 - Es más importante tener software funcionando haciendo lo que tiene que hacer que no la documentación.
 - Es más importante la colaboración del cliente que no los contratos firmados.
 - Es más importante responder a los cambios que no seguir un plan.

Esto no quiere decir que no sea importante los procesos, las herramientas, la documentación, los contratos o las planificaciones, solamente que hay cosas más importantes si queremos producir de una manera óptima.

Aparte de este manifiesto existen 12 principios que son los que marcan todas las metodologías asociadas a el:
- La mayor prioridad es satisfacer al clientes entregándole de forma continua y lo más pronto posible software con valor.
- Los cambios en los requirimientos son bienvenidos, aunque el desarrollo ya se haya iniciado, debido a que un cambio en los requirimientos bien gestionado es una oportunidad de negocio para el cliente.
- Entregar software que funciona frecuentemente (del orden de semanas o como mucho cada mes o dos), siempre que se pueda lo antes posible.
- La gente de negocios y los desarrolladores deben de trabajar juntos diariamente a lo largo del proyecto.
-Los proyectos se han de construir sobre los cimientos de trabajadores bien motivados.
- La forma más efectiva y eficiente de transimitir información al equipo es hablando cara a cara con el.
- El software que funciona es la primera medida de progreso
- Se ha de promover el desarrollo sostenible, es decir, que todas las partes implicadas (desarrolladores, consumidores,etc) puedan mantener el mismo ritmo de forma sostenible.
- La agilidad solo se consigue si se hace continua atención a la excelencia técnica y al buen diseño.
- La simplicidad es esencial
- Las mejoras arquitecturas, requerimienos y diseño emergen de equipos auto-organizados
- A intervalos regulares el equipo ha de pensar en como ser más efectivo para ir ajustando poco a poco la manera de trabajar a fin de ir mejorando de forma continua.





LordPakusBlog

Entradas populares