miércoles, 26 de abril de 2017

METODOLOGIA AGILE

METODOLOGÍA AGILE
En el cambiante mundo del desarrollo de software, los requisitos aplicados a un proyecto parecen incrementarse en el tiempo, mientras se reduce el plazo que se asigna para cada trabajo.
Parecería que todo se pusiese en contra de los desarrolladores, excepto por el hecho de que ya hay alguien que se preocupa por ellos ;), encontrándose con joyas como la metodología Agile y su framework de procesos Scrum.

El software de desarrollo Agile se refiere a un grupo de metodologías aplicadas en la creación de software que basa su desarrollo en un ciclo iterativo, en el que las necesidades y soluciones evolucionan a través de la colaboración entre los diferentes equipos involucrados en el proyecto.

Principios Claves de Agile y Scrum


Sprint cortos, tareas aún más cortas: NO espere a completar una maratón para darse cuenta que iba por el camino errado. Establezca tareas no mayores a 16 horas, fáciles de controlar y validar. Defina “sprints” o períodos de validación con su cliente de 2 a 4 semanas como máximo.


Enfóquese en los requerimientos más relevantes: Al igual que Lean, enfoque sus esfuerzos en desarrollar los requerimientos más relevantes para su cliente y valí los tempranamente. Tenga en cuenta que muchas veces los clientes o usuarios cambian de opinión con frecuencia o ni siquiera saben lo que quieren con exactitud. Incluya al cliente como parte esencial de su equipo de trabajo.



METODOLOGIA XP


METODOLOGIA XP

Bdc Entregas pequeñas: colocan un sistema sencillo en producción rápidamente que se actualiza de forma rápida y constante permitiendo que el verdadero valor de negocio del producto sea evaluado en un ambiente real. Estas entregas no pueden pasar las 2 o 3 semanas como máximo. 

Entendimiento:



1. Diseño simple: se basa en la filosofía de que el mayor valor de negocio es entregado por el programa más sencillo que cumpla l. Simple Design se enfoca en proporcionar un sistema que cubra las necesidades inmediatas del cliente, ni más ni menos. Este proceso permite eliminar redundancias y rejuvenecer los diseños obsoletos de forma sencilla.


2. Metáfora: desarrollada por los programadores al inicio del proyecto, define una historia de cómo funciona el sistema completo. XP estimula historias, que son breves descripciones de un trabajo de un sistema en lugar de los tradicionales diagramas y modelos UML (Unified Modeling Language). La metáfora expresa la visión evolutiva del proyecto que define el alcance y propósito del sistema. Las tarjetas CRC (Clase, Responsabilidad y Colaboración) también ayudarán al equipo a definir actividades durante el diseño del sistema. Cada tarjeta representa una clase en la programación orientada a objetos y define sus responsabilidades (lo que ha de hacer) y las colaboraciones con las otras clases (cómo se comunica con ellas).

3. Propiedad colectiva del código: un código con propiedad compartida. Nadie es el propietario de nada, todos son el propietario de todo. Este método difiere en mucho a los métodos tradicionales en los que un simple programador posee un conjunto de código. Los defensores de XP argumentan que mientras haya más gente trabajando en una pieza, menos errores aparecerán.

4. Estándar de codificación: define la propiedad del código compartido así como las reglas para escribir y documentar el código y la comunicación entre diferentes piezas de código desarrolladas por diferentes equipos. Los programadores las han de seguir de tal manera que el código en el sistema se vea como si hubiera estado escrito por una sola persona. 



METODOLOGIA RUP



 Metodología RUP

El Rational Unified Process o Proceso Unificado de Racional. Es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Su objetivo es asegurar la producción de software de alta y de mayor calidad para satisfacer las necesidades de los  usuarios que tienen un cumplimiento al final dentro de un limite de  tiempo y presupuesto previsible. Es una metodología de desarrollo iterativo que es enfocada hacia “ diagramas de los casos de uso, y manejo de los riesgos y el manejo de la arquitectura” como tal.

El RUP mejora la productividad del equipo ya que permite que cada miembro del grupo sin importar su responsabilidad específica pueda acceder a la misma base de datos incluyendo sus conocimientos. Esto hace que todos compartan el mismo lenguaje, la misma visión y el mismo proceso acerca de cómo desarrollar un  software.

Fases del Modelo RUP



RUP divide el proceso en 4 fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en los distintas actividades.
 
• Inicio

Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores.
 
• Elaboración


En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar.
 
• Construcción


El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.



• Transición

El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto.