FIUBA 2.0 Grupo 3 Orlando Gerbolés Tomas Niño Kehoe Gustavo Narcisi

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

“Planificación de Aplicaciones Web”
SACP.
Administrado y desarrollado utilizando Scrum
Presentación Inicial Grupo 3 Fondato, Rodrigo Cieri, Juan Cristian
Red Social Universitaria IntegrantePadrón Keena, Hernán84471 Kehoe, Sebastián79996 Knight, Juan83476 Kuperman, Jonathan º Cuatrimestre 2009.
FIUBA 2.0.
75.47 PRESENTACIÓN INICIAL Taller de Desarrollo de Proyectos II
FIUBA 2.0 Grupo 3 Orlando Gerbolés Tomas Niño Kehoe Gustavo Narcisi Sabrina Marcus.
1 FIUBA 2.0 Grupo 3 Orlando Gerbolés Tomas Niño Kehoe Gustavo Narcisi Sabrina Marcus.
Análisis de los Estados Financieros
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Resolución de Problemas
Presentación de seguimiento del proyecto Equipo LSI 02
SYSMOTORFLOW PRESENTACIÓN DEL PROCESO Proyecto de Ingeniería de Software 2010.
Taller de Desarrollo de Proyectos II (75.47) Presentación Inicial ERNESTO GIMENO PABLO BESADA SANTIAGO PETERSEN PATRICIO FAGALDE
Materia: Tecnología de la Información
“8 Principios de la Gestión Administrativa”
PPQA.
Proceso de Originación de Crédito: Banco de los Alpes
Proyecto de Ingeniería de Software 2008
Empresa: Liebre Primer ciclo Proyecto TripleC. Conseguir soluciones inteligentes para satisfacer de una manera rápida y segura las necesidades de nuestros.
Red Social Universitaria
Presentación Final Equipo 4
VALOR GANADO PREGUNTAS FRECUENTES DE INVOLUCRADOS EN EL PROYECTO
Sistema de Administración de Subastas Inversas. Agenda Métricas del proyecto Hitos alcanzados Demo Final Retrospectiva.
Taller de Desarrollo de Proyectos II 2do cuatrimestre 2010.
CheckIn4Android.
Ingeniería del Software
Medición, Análisis y Mejora
Reunión de los requerimientos de la red
Gestión de las comunicaciones del Proyecto
Trabajo Práctico Taller de Desarrollo de Proyectos 2 Septiembre 2009.
Lineamientos de Pruebas Integrales del GRP Financiero
ITERASOFT. OBJETIVOS DEL GRUPO Producir un sistema Manejador de Itinerarios de alta calidad y confiabilidad Realizar un proyecto bien administrado y productivo.
“Especificación de Requerimientos”
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
PROCESO DE DESARROLLO. Introducción Mediante esta presentación se pretende describir el proceso de desarrollo del TALLER I.
 Tema del proyecto  Integrantes y roles del equipo  Objetivos del proyecto  Alcance.
Fase Inicial Grupo 6 – PIS – 2013.
Definición de Procesos y Políticas. 2 Marco de Procesos.
Ingeniería de Software
Proyecto de Ingeniería de Software Grupo 9 Septiembre 2009
Proceso de Gestión de Proyectos
¿Cómo nos ayuda GeneXus a mejorar la calidad en el proceso de desarrollo de Software? Ing. Rosario Estévez Ing. Rafael Mon
INGENIERÍA DE SOFTWARE
Ximena Romano – Doris Correa
Presentación de seguimiento del proyecto Equipo LSI 02 Resultados de la 3ª Iteración de Construcción.
Especialización en Desarrollo de Software
El rol de SQA en PIS.
Taller de Desarrollo de Proyectos II (75.47) Grupo 2 Taller de Desarrollo de Proyectos II (75.47) Presentación Final ERNESTO GIMENO PABLO BESADA.
Grupo 10 – 2008 Proyecto de Ingeniería de Software
Producto SETI Buenos Aires, Septiembre 2008 Propuesta de Servicios Consultoría. Soluciones informáticas.
Introducción al proceso de verificación y validación.
Proyecto: Lanzamiento QUICK ORDER. Objetivo General  Desarrollar el sistema de información de acuerdo a los requerimientos establecidos por el cliente,
problemas de la calidad del software
Estructurar tus ideas para hacerlas realidad
Manejá tus tiempos Facultad de Ingeniería de la Universidad de Buenos Aires – Marzo 2012.
Presentación de la Empresa
Taller de desarrollo de proyectos II Presentación Inicial.
Sistema Empresarial de Gestión de Tickets, Clientes, Proveedores e Insumos.
Taller de Desarrollo de Proyectos II (75.47) Grupo 2 Taller de Desarrollo de Proyectos II (75.47) Presentación Final ERNESTO GIMENO PABLO BESADA.
Análisis y Balance del Proyecto Análisis Inicial Estimación Inicial Arquitectura de Datos Propuesta Tecnología Metodología aplicada Estimaciones elaboradas.
Identificación de entradas, salidas y herramientas de procesos de gestión del PMI Jairo A. Orozco L.
Autor: Reinozo Cuesta Christian Marcelo
TEAM SOFTWARE PROCESS CICLO 1. El software propuesto por el equipo de Ingenium para cumplir con las necesidades planteadas, modela los un conjunto de.
Scrum: Mejorando las prácticas Anabel Ruth Berenstein Año 2012.
Sistemas de calidad en el desarrollo de software.
Taller de Desarrollo de Proyectos II (75.47) 2º cuatrimestre 2008.
Transcripción de la presentación:

FIUBA 2.0 Grupo 3 Orlando Gerbolés Tomas Niño Kehoe Gustavo Narcisi Sabrina Marcus

Índice Metodología Métricas Desvíos Solución elegida Lecciones aprendidas Herramientas Demo

Metodología

METODOLOGIA Utilizamos de guía los lineamientos de PMBOK en conjunto con conceptos básicos de LEAN Capítulo 5, 6, 7, 9, 10, 11 Alcance – Calendario – Estimación – EV – EP – CP Equipo de trabajo – Comunicaciones – Riesgos Lean es básicamente todo lo concerniente a obtener las cosas correctas en el lugar correcto, en el momento correcto, en la cantidad correcta, minimizando el desperdicio, siendo flexible y estando abierto al cambio. Haciendo foco en lo más importante para el cliente De lean lo que usamos es la priorización de lo importante para el cliente en cada iteración nos enfocábamos en lo que iba esa entrega, nada mas. 1 Principio:“Reaccionar tan rápido como sea posible.” Cuanto antes el producto final se entrega sin defectos considerables, más pronto se pueden recibir comentarios, y se incorporan en la siguiente iteración. Cuanto más cortas sean las iteraciones, mejor es el aprendizaje y la comunicación dentro del equipo. Sin velocidad, las decisiones no pueden ser postergadas. desperdicio es : código y funcionalidad innecesaria retraso en el proceso de desarrollo de software requisitos poco claros burocracia comunicación interna lenta “Reaccionar tan rapido como sea posible" "Vision de conjunto¨ y unn principio de LEAN que no nos sirvio fue "Priorizar el aprendizaje“ “Decida lo mas tarde posible”

Métricas Análisis de las métricas utilizadas

EVOLUCION DEL PROYECTO CPI (Trabajo completado por cada peso gastado): 0,91 SPI (Trabajo completado por peso planificado a completar): 1 CPI: 0,84 CPI: 0,70 EV SPI: 0,95 SPI (Trabajo completado por peso planificado a completar): 0,70 Se puede observar que en las primeras semanas el proyecto sufrió un gran atraso en cuanto a tareas completadas y a costo y calendario (cpi y spi 0.70), luego el grupo se organizó, comenzamos a reutilizar código y hubo un mejor manejo de las herramientas con lo cual se corrigió un poco el desfasaje en calendario, pero los costos seguían siendo elevados. Hacia el final del proyecto el proyecto pudo mejorar bastante la performance logrando entregar toda la funcionalidad en tiempo y forma pero con la contra de pagar un exceso en costos. La semana 6 19/10, el AC esta formado por el esfuerzo insumido en el desarrollo con el lenguaje viejo y el nuevo que se eligió.

INDICADORES DE CONTROL EP CP Se puede observar, comparando las semanas indicadas que los índices variaron principalmente por el hecho de cerrar defectos, bajando la cantidad de pendientes y aumentando a la vez la cantidad de test ejecutados y ejecutados correctamente (ejecutados ok). Semana 7 CPI=0.70 SPI=0.70 Semana 8 CPI=0.84 SPI=0.95 Hacia el final, quedaron algunas modificaciones suspendidas acordadas con el cliente.

Desvíos Análisis de un desvío ocurrido

Cambio de lenguaje y herramientas de desarrollo Se detecta un riesgo con alto impacto. R1 – Técnico - Los desarrolladores no conocen el lenguaje de programación. (Documento de análisis de riesgos) El riesgo se materializa al cabo de 4 semanas del inicio del proyecto. Se informa al cliente la situación y el plan de contingencia y se toma la decisión en conjunto de aplicarla. Se aplica el plan de contingencia cambiando de lenguaje y tecnología de desarrollo. Las métricas se deben rehacer, se re-planifica el proyecto en cuanto a calendario, desarrollo, testing, etc. 1) Se detecta un riesgo con alto impacto. R1 – Técnico - Los desarrolladores no conocen el lenguaje de programación. 2) El riesgo se materializa al cabo de 4 semanas del inicio del proyecto. 3) Se informa al cliente la situación y el plan de contingencia y se toma la decisión en conjunto de aplicarla. 4) Se aplica el plan de contingencia cambiando de lenguaje y tecnología de desarrollo . (Contingencia: Cambiar el lenguaje de programación por uno conocido.) (28/10/09 CERRADO) (Se cambió a .Net con el fin de maximizar la cantidad de desarrolladores) 5) Las métricas se deben rehacer porque fue como empezar nuevamente con el desarrollo, testing, etc (porque CU no hizo falta cambiarlos x ej.)

Solución elegida

SOLUCION ELEGIDA Lenguaje: Base de datos ASP.NET - Framework 3.5 – C# MS SQL Express 2005 Organización de la solución 5 Proyectos FIUBA20 (parte central de la aplicación) FIUBA20.DA (mapeo de esquema de base de datos) FIUBA20BACKEND (Administrador de la aplicación) FIUBA20Servicio (capa de servicios) FIUBA20Test (test unitarios de la capa de servicios)

Lecciones aprendidas

SIN RESPONSABLES ASIGNADOS NO HAY COMPROMISO Y CALIDAD EN LAS TAREAS. Tareas sin responsables fueron ejecutadas pero no se realizaron en forma completa. No se testearon en su totalidad. Desorientación del equipo a la hora de asignar un responsable para su finalización. Asignar responsables nos ayudo a dividir las tareas y organizar mejor el trabajo.

Cambio de tecnología Selección inicial del lenguaje: DEMOSTRAR AL CLIENTE QUE TOMAMOS UNA MALA DECISION PERO TENEMOS ACCIONES PARA CORREGIR EL DESVIO NO ES UNA MUESTRA DE DEBILIDAD SINO DE MADUREZ Selección inicial del lenguaje: Python Primer entrega desarrollada en Python y sin funcionalidad completa Cambio de tecnología ASP.NET Consecuencias Motivación para desarrollar (tecnología conocida) Retrabajo – se reescribió lo pactado para la primer entrega y se incluyó lo pactado para la segunda en una sola iteración. Reestructuración de roles. Eliminación de riesgos Se dejó de depender de la disponibilidad de una sola persona para el desarrollo, con lo cual la probabilidad de ocurrencia descendió. Python : Intención de aprender el lenguaje por parte de uno de los miembros. El resto aceptó sin considerar las complicaciones y cantidad de trabajo a realizar Primer entrega: Un sólo desarrollador El resto del grupo no tuvo intención de aprender Python ASP.NET Fricciones dentro del grupo: Descontento por el cambio. Reestructuración de roles: Se pasó a 3 desarrolladores disponibles

ANALIZAR EL CONTEXTO NOS PERMITIO TOMAR EL CAMINO CORRECTO Necesidad de desarrollo rápido La aplicación no evolucionará con el tiempo Aplicación no presenta alta complejidad Transacciones simples Solución: Arquitectura basada en Transaction Script (Fowler - Patterns of Enterprise Application Architecture ) Sin modelo de dominio Acceso a los datos desde la capa de presentación/servicios Consecuencias: Velocidad en desarrollo Dificultad de agregar pruebas automatizadas Simplicidad (aprovechamos las herramientas que nos brinda la IDE) Alcanzamos la funcionalidad acordada Necesidad de desarrollo rápido (arrancamos de cero a una semana de la segunda entrega) “Transaction Script” (Fowler - Patterns of Enterprise Application Architecture )

AGREGAR FUNCIONALIDAD NO SOLICITADA ES UNA PERDIDA DE TIEMPO Y DINERO SIN NUNGUN AGREGADO AL PROYECTO ¿Qué es Gold-Plating? Implementar más funcionalidad o incluir requerimientos adicionales desde el principio del proyecto resultando en una extensión del calendario, y generando valor artificial. El cliente debiera en el tiempo pactado esperar y recibir exactamente lo que se especificó, ni más ni menos En FIUBA20 Inclusión de funcionalidad no relevada: Solicitud de alta y baja de grupo Funcionalidad no especificada se elimino luego de mostrar los prototipos o las funcionalidades en reuniones formales Retrabajo Gold Plating: De requerimientos: El exceso de requerimientos no necesarios puede extener el calendario. Las funcionalidades complejas alargan el calendario. De desarrollo: El esfuerzo en diseñar implementar y probar funcionalidades no requeridas alarga el calendario

La clave de un buen control es aplicar un modelo y no entrar en detalles que requieren mucho esfuerzo Se comenzó ponderando las horas trabajadas con el rol de cada integrante. Esto causo confusión y complicaciones a la hora de calcular en AC Se dejó de ponderar con el rol, y se paso a sumar las horas cargadas directamente. Como consecuencia se obtuvo un calculo mas sencillo, claro y comprensible por el cliente. Explicar los porcentajes que se usaban ¿Cuál era el mas pesado?¿Cual el menos?

El proyecto avanza si queda constancia de ello Se tomó conciencia de que se necesitaba la registración por parte del cliente de los distintos artefactos del proyecto. Se firmaron pruebas de aceptación de usuario. La práctica de aceptación por parte del cliente es algo que se tiene que trabajar para que se logre la constancia. Al no firmar los CU, el cliente podía llegar a rechazar el UAT sin siquiera ejecutarlo. Explicar los porcentajes que se usaban ¿Cuál era el mas pesado?¿Cual el menos?

AL TRABAJAR EN UN GRUPO DISPERSO GEOGRAFICAMENTE, LA COMUNICACIÓN, GESTION Y TRAZABILIDAD ES LA CLAVE DEL EXITO Grupo google y Skype. Administración del proyecto on-line. Seguimiento de los issues con comentarios al hacer commits. Reuniones de avance semanalmente con el cliente, con un entregas incrementales cada dos semanas.

Cambio de roles según necesidades Adaptación de los distintos integrantes a distintos roles Con el cambio del lenguaje se readaptaron los roles Versatilidad permitió que se pudiera avanzar dependiendo de disponibilidad de tiempo de cada uno En el comienzo, había solo 1 desarrollador, el cual con el cambio de lenguaje utilizado tomó el rol de líder del proyecto. Quedaron disponibles 3 desarrolladores, los cuales dependiendo de los tiempos podian cumplir roles de analistas, testers. Siempre teniendo en cuenta no caer en incompatibilidades por ejemplo prueba de codigo cruzado para q un desarrollador no pruebe su mismo código.

UNIFICACION DE CRITERIOS Diferentes criterios en definición de bugs Qué es bug y qué no Cuándo un bug está cerrado y cuándo no Solución buscada Determinar los criterios para establecer estándar propio del grupo. Se consiguió aplicar en forma parcial. Se trató de unificar la forma de cerrar los bugs. Si lo que se declaró en el issue está completado y se encuentra un nuevo bug, cerrarlo y abrir uno nuevo. Cómo prevenirlo a futuro Preparar documentos de testing en forma conjunta y antes de iniciar el desarrollo. Asegurarse de que todos los involucrados estén de acuerdo con el documento.

Pruebas unitarias y separación de capa de servicios Desde distintas clases se acceden a sus métodos. Métodos probados con tests unitarios que garantizan correcto funcionamiento de los mismos. Puede ser utilizada en distintos proyectos de la solución Pruebas unitarias Ahorró de tiempo al probar modificaciones realizadas Se pueden generar en forma independiente de los datos que contiene la base de datos. No se aplicó TDD debido a la arquitectura utilizada. Se realizó la separación a la capa de servicios en forma posterior. Se genera retrabajo. Es conveniente realizarlos en forma temprana y de ser posible aplicar TDD

Mantener un estándar en toda la aplicación. NO MANTENER LA UNIFORMIDAD EN LA USABILIDAD DEL DESARROLLO IMPACTA NEGATIVAMENTE EN EL PROYECTO Y EN EL CLIENTE Detalles como indicar campos obligatorios, formato de las fechas o de las direcciones de correo electrónico no agrega funcionalidad no pedida, agrega valor al producto al evitar errores del usuario. Una aplicación menos reactiva tiene como consecuencia una mejor experiencia de usuario. Mantener un estándar en toda la aplicación. Quitar controles innecesario, confunden al usuario. No confundir Usabilidad con Gold – Plating. Las versiones anteriores del producto no indicaban campos obligatorios (*), formatos de fechas o email. Para descubrir estas cosas, el usuario debía causar un error y luego leer el mensaje generado. No mantener un estándar en los mensajes de la aplicación, confundiendo al usuario (Ej aceptar/rechazar). Dejar controles que confunden al usuario, Agregar cuando no hay usuarios para agregar. Botones en ingles. Esto tiene como consecuencia una mala experiencia de usuario. Fastidio si tiene una conexión lenta a Internet. (ESTO ES MUY EXTREMO) Incluso, si usa un browser que no muestre los mensajes de error, nunca se enteraría ---- las pantallas no tienen todas el mismo flujo algunas terminan con el boton arriba, otras abajo

Herramientas

Herramientas Visual Studio 2008 NUnit SQL Server 2005 Assembla (Seguimiento de incidentes y SVN) Tortoise SVN Client Enterprise Architect Word / Excel – Open Office

Demo

?