1. ANÁLISIS Y DISEÑO DE SISTEMAS I 2017
1
TRABAJO PRÁCTICO N°1
Integrantes:
Bevaqua, Patricio
Henriquez, Santiago
Morales, Leandro
Metodología Ágile.
Aplicación de Extreme Programming
2. freegoogleslidestemplates.comFGST
Definición del Problema 2
Nos contacta nuestro cliente, Mueblería el Ombú, de quienes somos socios estratégicos (en cuanto a tecnología),
por una nueva oportunidad que enfrenta su negocio.
Frente a la apertura de nuevas sucursales, plantean llevar por sistema determinados procesos de forma unificada.
Considerando que:
* hemos desarrollado el sistema que actualmente utiliza el cliente,
* el tiempo es breve dado que las gestiones de apertura de las sucursales están avanzadas,
* la línea gerencial está habituada a trabajar en equipo y a involucrarse en los desarrollos de sistemas
El equipo realizó la propuesta al cliente de utilizar la metodologia de trabajo Extreme Programming y fue aceptada.
3. freegoogleslidestemplates.comFGST
Roles 3
Cliente Programador Tester Big BossTracker Coach
Encargado de
Seguimiento de
los tiempos que
estiman los
programadores.
Inicia y guia al
equipo para
poner en marcha
cada una de las
prácticas de la
metodología XP
Es el vínculo entre el
cliente y
programadores.
Experto en
tecnología y labores
de gestión.
5. freegoogleslidestemplates.comFGST
Historias de Usuario (User Story) 5
Conociendo la problemática del cliente, solicitamos que generen las Historias de Usuarios, utilizando su propio lenguaje, describiendo en forma
breve lo que esperan que realice el sistema.
HISTORIA DE USUARIO 1
Nombre: Actualización de Precios
Usuario: Gerente Comercial
Descripción: Necesito actualizar los precios, desde la sede central a las
dos sucursales para poder controlar los cambios y evitar errores en los
precios de venta.
HISTORIA DE USUARIO 2
Nombre: Informe de Ventas
Usuario: Gerente Comercial
Descripción: Necesito un informe de ventas diario por sucursal y un
resumen general diario, semanal y mensual
HISTORIA DE USUARIO 3
Nombre: Informe de Rendimiento de personal de ventas
Usuario: Gerente de Recursos Humanos
Descripción: Necesito conocer la cantidad de ventas, de cada empleado,
para calcular comisiones y beneficios relacionadas a las mismas.
6. freegoogleslidestemplates.comFGST
Historias de Usuario (User Story) 6
HISTORIA DE USUARIO 4
Nombre: Cálculo de Precio
Usuario: Gerente Comercial
Descripción: Necesito que el sistema calcule el precio de venta utilizando
una fórmula para asegurarnos que no se vende por debajo del costo.
HISTORIA DE USUARIO 5
Nombre: Inventario
Usuario: Encargado de Depósito
Descripción: Necesito que el sistema genere un código para cada
producto al momento de darlos de alta; así podré cotejar la información
que me brinde el soft, en cuanto a saldos, con el stock físico; también
conocer los saldos de productos de las distintas sucursales.
Se propusieron al cliente mejoras para satisfacer sus necesidades, fueron aceptadas por lo que se incluyeron en el relevamiento de
Historias de Usuarios (las historias número 4 y 5, ).
7. freegoogleslidestemplates.comFGST
Plan de entregas (“Release Plan”) 7
De la reunión mantenida con el cliente y el equipo de trabajo se agruparon y confeccionó el cronograma de entregas.
HISTORIAS ITERACIÓN PRIORIDAD ESFUERZO FECHA
INICIO
FECHA
FINAL
Actualización de
Precios
1 1 1 día 15/05/17 15/05/17
Informe de Ventas 1 2 1 día 16/05/17 16/05/17
Informe de
Rendimiento de
personal de ventas
1 3 1 día 17/05/17 17/05/17
Inventario 2 4 2 días 18/05/17 19/05/17
Cálculo de Precio 2 5 1 día 20/05/17 20/05/17
8. freegoogleslidestemplates.comFGST
Plan de Iteraciones (“Iteration Plan”) 8
Al comenzar cada ciclo de iteración, realizamos la reunión de planificación de las iteraciones donde plasmamos en tareas de programación
cada una de las historias de usuario.
También establecimos las pruebas de aceptación de los entregables con los distintos gerentes y jefes (usuarios) para corregir cualquier desvío
que se identifique en base a ellas.
Tarea de Program Prueba de Aceptación HISTORIAS ESFUERZO F° INICIO F° FINAL
Agregar dato sucursal a la base de datos de
precios
Emitir informe de
Precios, validar que las
sucursales sean
correctas, los valores
estén actualizados y
que se emita la alerta
ante modifficación de
precios
Actualización de
Precios
1er día 15/05/17 15/05/17
Programar actualización del listado en la
sucursal
1er día 15/05/17 15/05/17
Programar un reporte por excepción
cuando se modifican los precios
1er día 15/05/17 15/05/17
9. freegoogleslidestemplates.comFGST
Plan de Iteraciones (“Iteration Plan”) 9
Tarea de Program Prueba de Aceptación HISTORIAS ESFUERZO F° INICIO F° FINAL
Agregar dato sucursal a base de datos
ventas
Emitir los informes
diario/mensual y
semanal, por sucursal
y general
Informe de Ventas
2do día 16/05/17 16/05/17
Programar filtro por sucursal 2do día 16/05/17 16/05/17
Programar filtro por fecha y por período 2do día 16/05/17 16/05/17
Agregar dato de vendedor a la base de
datos de ventas
Generar una venta,
verificar el cálculo de
comisión y su impacto
en la liquidación de
haberes
Informe de
Rendimiento de
personal de ventas
3er día 17/05/17 17/05/17
Programar cálculo de comisiones en base a
las ventas
3er día 17/05/17 17/05/17
Vincular la información de la base de datos
de ventas (comisiones) con el modulo de
liquidación de sueldos
3er día 17/05/17 17/05/17
10. freegoogleslidestemplates.comFGST
Plan de Iteraciones (“Iteration Plan”) 10
Tarea de Programación Prueba de Aceptación HISTORIAS ESFUERZO F° INICIO F° FINAL
Programar la ejecución de un código
automático
Ingresar una muestra
de productos testigos,
generar las
operaciones de
compra y venta,
validar saldos
Inventario
4to día 18/05/17 18/05/17
Vincular compras y ventas con el módulo de
stock
5to día 19/05/17 19/05/17
Programar cálculos para aumentar o
reducir el stock
5to día 19/05/17 19/05/17
Programar el cálculo del precio en función
del costo
Cargar el costo de una
muestra de productos
y validar el precio que
calcula el sistema
Cálculo de Precio
6to día 20/05/17 20/05/17
Adicionar tabla de conceptos que impacten
en el precio (flete, impuestos)
6to día 20/05/17 20/05/17
12. freegoogleslidestemplates.comFGST
12
DISEÑO
Simplicidad: Basándonos en el principio de toda metodología ágil, se puso foco en realizar un diseño simple y
funcional.1
2
3
4
Soluciones “spike”: INVENTARIO, luego de estudiar la historia de usuario y relacionarla con el tema de sucursales, se
observó que iba a ser difícil determinar el tiempo de producción por lo que se definió realizar un programa (spike)
para evaluar una posible solución.
Recodificación: Es otra de las características generales de las metodologías ágiles en la cual se plantea la apertura a
simplificar el código que pueda mejorarse con el fin que las próximas iteraciones sean más simples. Si es necesario, se
borra y se reescribe.
Metáfora: para facilitar la comprensión, en las reuniones entre el equipo y el cliente, se planteó una guía con la
nomenclatura a utilizar.
SIMPLICIDAD
SOLUCIONES “SPIKE”
RECODIFICACIÓN
METÁFORAS
13. freegoogleslidestemplates.comFGST
13
CODIFICACIÓN
Se acordó con el cliente realizar el trabajo en sus oficinas, y así tener contacto fluído durante el desarrollo (Disponibilidad del
cliente).
Como estrategia se han definido pruebas unitarias, las cuales deberán pasarse para liberar versiones (mínimo a cumplimentar)
[Programación dirigida por las pruebas]
Para asegurar la misma interpretación del código, se ha establecido el uso de estándares reconocidos para el lenguaje utilizado
(JAVA), permitiendo así la comunicación a través del código entre los integrantes (Uso de estándares).
Como método de eficiencia en la codificación, se procura integrar en forma permanente las distintas modificaciones, por
supuesto, siempre luego de haber pasado las pruebas (Integración permanente).
DISPONIBILIDAD DEL CLIENTE
PROGRAMACIÓN DIRIGIDA POR LAS PRUEBAS
USO DE ESTÁNDARES
INTEGRACIÓN PERMANENTE
14. freegoogleslidestemplates.comFGST
14
CODIFICACIÓN
Cualquier integrante del equipo puede proponer modificaciones al código aún cuando no haya participado de la codificación
original (propiedad colectiva del código).
En el equipo se privilegia la planificación de las horas laborales de mantener un ritmo constante y razonable, sin sobrecargar al
equipo. Para ello trabajamos de lunes a viernes promediando las 40 hs semanales (Ritmo sostenido).
A continuación se expone el horario a cumplimentar para realizar las tareas de programación de a pares. (todos los integrantes
trabajan 8hs), con el objetivo de disminuir errores y aumentar la creatividad (Programación en pares).
PROPIEDAD COLECTIVA DEL CÓDIGO
RITMO SOSTENIDO
PROGRAMACIÓN EN PARES
P1: _________8hs________
P2: ___4hs____ ___4hs____
P3: ________8hs_________
Distribución Horaria por Día
15. freegoogleslidestemplates.comFGST
15
PRUEBAS
Pruebas
Unitarias
Detección y
Corrección
de Errores
Pruebas de
Aceptación
Antes de publicar los módulos
desarrollados se realizaron las
pruebas unitarias. Estas pruebas
fueron definidas al momento de
establecer las tareas de
programación.
Durante el transcurso del proyecto,
debido a la interacción con el cliente,
iteraciones y de los planteos en equipo
surgieron diferentes bugs o errores no
significativos que se fueron corrigiendo
con las debidas pruebas para asegurar
su adecuado funcionamiento.
En cada ciclo de iteración se definieron
las pruebas de aceptación, en base a las
historias de usuarios. Se especificaron
escenarios con el cliente para comprobar
la correcta implementación de las
historias de usuario.
16. freegoogleslidestemplates.comFGST
16
Definimos Key Users (Usuarios Clave) dentro de la organización con los cuales fuimos
trabajando en las pruebas para trabajar en la adaptación y mostrar la funcionalidad del
sistema. Asimismo participaron en la redacción de los manuales que luego se
entregarán, en una capacitación interna, al resto de los usuarios.
CAPACITACIÓN
Para empleados actuales y nuevos
Composición de Nuestro equipo: 3 integrantes con las siguientes funciones compartidas, 1 coach y 1 Big Boss.
Como se programa de a pares por día habrá dos programadores y el tercer integrante será Tester.
Luego Leo será Tracker y contamos con Diego Argés como Coach y con Cristian Guzman como Big Boss
---------------
ENCARGADO DE PRUEBAS (TESTER)
ENCARGADO DE SEGUIMIENTO (TRACKER)
ENTRENADOR (COACH)
GESTOR (BIG BOSS)
Para el Diseño del sistema se consideraron los siguientes conceptos: