Está en la página 1de 8

Universidad Nacional de San Juan

Facultad de Ciencias Exactas Físicas y


Naturales
Departamento de Informática

Carrera Programador Universitario


Cátedra Práctica Profesional
Profesores:
• Lic. Maria A. Murazzo.
• Ing. Américo Sirvente.
Alumno:
Alberto Daniel Sánchez.
-2008-

Alberto Daniel Sánchez 6321


Practico Nº 1
Cátedra Práctica Profesional Alberto D. Sánchez
En este práctico voy hacer una breve síntesis de tres metodologías
ágiles: XP, SCRUM, UP.
* Introducción a las Metodología ágiles *
Las metodologías ágiles surgen porque los proyectos de software se
cancelaban antes de su fin, o no finalizaban con éxito,(Porque los
tiempos eran grandes).
Características
• Existe Documentación mínima.
• Centrado en las relaciones humanas.
• Interesa mucho el programador.
• Se concentra el potencial en el código.
• Se apunta que el algoritmo funcione correctamente, antes que
conseguir buena documentación.
Manifiesto Ágil (Los mandamientos)
Son un conjunto de principios que computan todas las metodologías
Ágiles.
• Individuos e iteraciones sobre procesos y herramientas.
• Software que no funcione sobre documentación intensiva.
• Colaboración del cliente sobre negociaciones y contractos.
• Respuesta frente al cambio sobre el seguimiento de un plan.
Diferencias entre metodologías Ágiles vs. Tradicionales.
Metodologías Ágil Metodologías tradicionales
Pocos artefactos. Muchos pocos artefactos.
Pocos Roles. Muchos Roles al ser jerárquico.
El cliente es parte del equipo de El cliente es contactado por entrevistas en una
desarrollo. fase de captación de datos previa al desarrolló y
en una fase de validación de datos.
Se adoptan grupos pequeños como Se utilizan grupos grande de personas con
máximo de diez programadores. jerarquías para el manejo del personal.
Menos énfasis en el diseño. El diseño o la arquitectura es fundamental.
Lo importante es el código Lo importante es el diseño.
Se realiza en cada proyecto lo Se realiza en cada proyecto siempre algo
convenido. mas ….
No Existe un contrato inicial sino uno Existe un contrato inicial prefijado.
flexible sujeto a cambios en el proceso.
Prioridad al resultado directo. Mucha burocracia.
Entregas pequeñas. Entrega final.
En modificaciones se genera otro Se torna complejas las modificaciones.
proyecto o se modifica cuando se
construye.

Alberto Daniel Sánchez 6321


Distintas metodologías ágiles
• XP (Programación Extrema).
• Scrum.
• UP
• Crystal Methods.
• DSDM( desarrollo de sistemas dinámicos).
• FDD( Manejo por rasgos).
• Medhime.

* Programación extrema XP *
• Define la manera de reunir, cliente y programadores en un mismo
equipo fuertemente integrado.
• Es un conjunto de normas y recomendaciones cuyo objetivo es
producir software de calidad.
• Fue diseñado para superar problemas en las metodologías
tradicionales. En cuanto a tiempos de entregas, como satisfacción
al cliente.
Los Roles en XP
• Equipo de gestión.
• Equipo de desarrollo.
• El Cliente en el equipo de desarrollo.
• Programadores.
• Jefe de planificación.
• Jefe de Proyecto.
• Cliente en la prueba de aceptación,(Testing).
• Entrenador.
• Rastreador.

Interacción con el cliente


• El cliente es integrante del equipo de desarrollo.
• Tiene la tarea de realimentar el equipo de desarrollo luego de cada
Iteración.
• El cliente realiza las pruebas de aceptación.
• El cliente sobre la marcha puede cambiar de opinión, y a cambio el
mismo se compromete a colaborar con el equipo de desarrollo
cuando lo requiera.
• La captura de datos no es la convencional ya que el cliente
escribe en tarjetas lo que necesita, en las llamadas “historias de
usuarios”.
La historia de usuario consta de dos fases :
1- Solo el cliente con sus palabras coloca lo que requiere en una tarjeta,
indicando,(Funciones, prioridades, hitos, detalles, fechas, etc.). Un
integrante del equipo le informa los posibles problemas de
implementación y su costo.

Alberto Daniel Sánchez 6321


2- Las historias son recogidas y la clasificadas por gente del equipo
para ser implementadas en tareas,(interacciones),en esta etapa el
cliente no participa.
Ejemplo Historia de Usuarios (Tarjeta)
Historia del usuario
Hechos solo por el usuario. El plasma sus requerimientos en tarjetas
sin intervención del equipo.

Historia Nº 1 Fecha 1, 2, 3, 4 de
Abril.

Tipo de Actividad Nueva Reparación Mejora


Prueba

Prioridad: Usuario Tecnología

Descripción De Las Tareas

Buscar las herramientas para empezar a trabajar en las páginas. Hacer un


diagrama de la aplicación. Crear los lugares de almacenamiento de la
información. Crear pagina inicial de la aplicación y la de carga de información.

Tarjeta CRC
Creada por los programadores en base de las historias del usuarios.
CRC Nº 1 Fecha: 1 semana de Abril.
Historia Nº 1.-
Tiempo Estimado: 1 Semana.-
Descripción De Las Tareas
Instalar un servidor Web local apache con soporte para PHP, MySQL.
Herramientas para el manejo de bases de datos MySQL y editores para XHTML,
CSS y PHP.
Seguimiento De Las Tareas
Tarea 1:
Que hace: Escoger un servidor Web local con soporte para PHP y MySQL.
Comentario: El servidor ha instalar es XAMPP.
Tarea: 2
Que hace: Instalar varias herramientas que serán utilizadas para el desarrollo del
sitio Web.
Comentario: Se instalara el PHP Designer, para MySQL SQLyog y DBDesigner
4.

Alberto Daniel Sánchez 6321


Planificación del proyecto
• En ese punto se deciden las entregas y las iteraciones, para ello
se siguen reglas para que las tres partes del equipo,(Equipo de
gestión, desarrolladores y cliente), se sientan parte de las
decisiones tomadas.
• La Premisa es que las entregas se realicen con cada interacción
así el cliente recibe nuevas versiones. Esto permite detectar
errores tempranamente.
• No se bebe pasar de semanas de programación de mas de 40
horas.
• Como pueden haber equivocaciones en la planificación se
suponen mecanismos de revisión y renegociación del
proyecto,(Refactorización).
• Al cabo de algunas iteraciones, se retrocede revisa y retoca el
proyecto. Esto lo califica de diseño continuo y añade de ágil la
metodología.
• Se evita de mirar demasiado hacia delante y de implementar tareas
no programadas.
• Se pueden generar retrasos, pero se evita incorporar personal
nuevo al proyecto.
• Se trata primero que funcione bien y luego optimizamos.
• La planificación da pie a discusiones diarias, fomentando la
comunicación del equipo.
Iteraciones
Iteraciones: Tienen como función de organizar cuando se realizan los
trabajos y que tareas se realizaran. Esto se determina en las reuniones
de planificación.
ABRIL MAYO JUNIO
SEMANA SEMANA SEMANA

1ª 2ª 3ª 4ª 1ª 2ª 3ª 4ª 1ª 2ª 3ª

Testing
Es una tarea muy importante Realizada continuamente.
Existen dos tipos de Testing uno realizado por el usuario y otro por el
equipo de desarrollo.
• El realizado por el usuario es llamado prueba de aceptación y el
usuario determina si se encuentra lo que el necesita.
• El realizado por el programador el ve funcionalidad del código.
Las 12 Practicas
1. El juego de la planificación,( se junta el equipo antes del comienzo de
la jornada y distribuyen el trabajo según lo que hace cada uno).
2. Entregas pequeñas.
Alberto Daniel Sánchez 6321
3. Metáfora del sistema,(se describe con un ejemplo para encaminar).
4. Diseño simple,(concentrado en el funcionamiento).
5. Pruebas o Testing,(aceptación, unitarias, integración ).
6. Refactorización,(Mejorar el software que tengo sin agregar).
7. Programación en pareja,(en una maquina hay dos personas ).
8. Propiedades colectivas del código ;( todas tienen participación en el
código asta el cliente).
9. Integración continua,(cada modulo separado debe encajar).
10. Semana de 40 hrs.,(evitar horas extras ).
11. Cliente en el lugar,(se encuentran en el grupo de desarrollo ).
12. Estándar de programación,(programación modular ).
Conclusiones y ventajas
• El objetivo es que se realice a máxima velocidad el código.
• Existe documentación concreta.
• El diseño es continuo.
• La metodología es flexible.
• No recomendada en proyectos de alta seguridad.
• Mucho Testing.
• Se tiene en cuenta el programador.

* SCRUM *
En SCRUM los requerimientos cambiarán durante el proyecto. Se van
tomando los cambios asta la entrega final del desarrollo algo más
cercano a la verdadera necesidad del Cliente. (Tunnel Visión)
SCRUM posee mecanismos de control y estructura efectivos.
Características:
 Se entrega un producto funcional al finalizar cada Sprint(correr).
 Se ajusta la funcionalidad del producto en base a la necesidad del
cliente.
 Se va Visualizando el proyecto día a día
 Los Conocimiento adquirido en una iteración se puede aplicar de
iteración a iteración
 Progreso visible en las primeras etapas.

Roles en SCRUM

SCRUM Master: Es el Líder del equipo, pero no demandante. Es el


Responsable de implementar y administrar los procesos SCRUM

Product Owner (propietario): Es el responsable de poner los


requerimientos en términos claros. Da los requerimientos de mayor
Prioridad. Es el que da la
Aceptación o rechazazo del trabajo hecho por el equipo.

Equipos: de personas máximo de 11 informáticos.


Alberto Daniel Sánchez 6321
El potencial de SCRUM se da en:
En equipos no grandes en el caso de usar estructuras complejas se
puede llegar a subdividir en equipos más pequeños. No se admite
personal con poca experiencia el informático debe conocer
programación orientado a objeto.

No genera mucha documentación como otras metodologías y no todos


los proyectos son viables, se pueden producir cambios ápido
r sin
muchos problemas.

* UP – Unified Process *
UP – Unified Process: esté es el proceso genérico y de dominio público.
También existe uno comercial mas detallado de IBM: RUP® - Rational
Unified Process .

Características:
A través de un anticipado esquema de escalabilidad y gestión
de riesgos, se pueden reconocer previamente problemas, y fallos de
forma temprana así se puede prevenir y corregirlos.
RUP define en cada momento del ciclo de vida del proyecto, que
artefactos, y con que nivel de detalle, y con qué rol, se deben crear.
Progreso visible en las primeras etapas
La retroalimentación permite que se produzca ajuste a las necesidades
reales
El Conocimiento adquirido en una iteración puede aplicarse de iteración
a iteración siguiente.

Etapas de la metodología UP
1. Inicio del proyecto (“Inception”)
En esta etapa se Define el contexto, la factibilidad y los
objetivos del proyecto.
2. Elaboración (“Elaboration”)
En esta etapa se busca la Funcionalidad básica del proyecto.
Analizando el dominio del problema y estableciendo una
base sólida
3. Construcción (“Construction”)
En está instancia se produce el Desarrollo del producto
iterativa menté.
4. Transición (“Construction”)
Se Liberar el producto para uso real en su ambiente.

Particularidades de UP:
RUP es un proceso complejo, basado en mucha documentación, en
la que no es fácil ni recomendable cambios volátiles.
Alberto Daniel Sánchez 6321
Existen diferentes elementos para la planificación (plan de desarrollo,
plan de iteración, plan de calidad, etc.) con los que se controla el
desarrollo del software esto lo torna complejo y no manejable por
cualquiera sin experiencias, el informático debe conocer
programación orientado a objeto.

Es recomendado en trabajos de mediano a grandes con alta


complejidad.

Alberto Daniel Sánchez 6321