Eugenia ParodiJuan AchucarroLázaro Ruiz Díaz
Sebastián Castellanos
Sistema de Gestión GanaderaDefensa Final
1
• Presentación de Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA2
Nuestro Cliente
Mauricio Abelar
Presentia Corp.
Empresa uruguaya especializada en la prestación de servicios de desarrollo e integración de software
Contacto Principal
3
Diseñar y construir una herramienta para facilitar el registro de información y análisis de gestión de la empresa ganadera .
SimplicidadFlexibilidadGestión Toma de decisiones.
Proceso versátil y estable
Problema del Cliente4
Administradores de campo / Escritorio rural/Dueño de Campo
Empresa 1
Establecimiento 1 (Gestión) Dicose 1
Establecimiento 2 (Gestión) Dicose 2
Establecimiento n (Gestión) Dicose 3
Empresa N
Establecimiento 1 (Gestión) Dicose 4
Establecimiento 2 (Gestión) Dicose 5
Establecimiento n (Gestión) Dicose 6
Nicho identificado
* DICOSE = División Contralor de Semovientes
5
Nuestros Productos
PRODUCTOS
DE SOFTW
ARE
• Prueba de conceptos de un sistema de gestión ganadera
• Documentación técnica
PROCESO DE
SOFTWARE• Proc
eso definido, para la construcción del Producto.
6
PRODUCTOS
DE SOFTW
ARE
• Prototipos funcionales.
• ESRE.• ESDI
– Arquitectónico y Detallado, Integración de sistemas.
• Documento de reportes: especificación, cubos, descripción.
PROCESO DE
SOFTWARE
• Proceso para desarrollar las funcionalidades pendientes.
• Estrategias de desarrollo, diseño, relevamiento, etc.
Nuestros Entregables7
Sistema Web
PDA
1 año = Cimientos [Proyecto]
1 año = Construcción [Post-Proyecto]
Alcance del Software8
Alcance
Presentación
Negocio
Persistencia
Documentación
50%
25%
25%
9
Administrador de Campo
HACIENDA
REPORTES ESTADÍSTICOS
PLANIFICACIÓN
Funcionalidades y Usuarios
Escritorio Rural
Dueño de Campo
CONFIGURACIÓN
10
Gestión de Animales Importación de datos Historial del AnimalSeguimiento de actividades realizadas
Manejo de indicadores y cubosGeneración e impresión de informes
Generación de planes de trabajo Cargar Planificación a PDAManejo de alarmas y recordatorios
Empresas, Usuarios Establecimientos, Potreros,
Clientes, Proveedores, otros
• Entregar exitosamente Producto + Proceso • Surgimiento de nuevos requerimientos críticos.
• Entendimiento e investigación del negocio.
• Apoyar la Estrategia de Marketing.
• Curva de aprendizaje de tecnologías Struts 2 , Spring y Hibernate
AndroMDA PDAs
Integración Java y .NETJasper Reports
• Trabajo grupal de integrantes
Desafíos del Proyecto11
Valor Agregado
Software as a Service
Único producto que nuclea dichas funcionalidades y es Web
Facilidad para ingreso de datos
Integración con PDA
Integración con SNIG
Indicadores para toma de decisiones
Red Social (Comunidad Ganadera)
12
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA13
ROL RESPONSABLE SUPLENTES
Arquitecto Sebastián Castellanos Lázaro Ruiz Díaz
Ingeniero de Procesos Juan Achucarro Eugenia Parodi
Gerente Eugenia Parodi Lázaro Ruiz Díaz
Ingeniero de Requerimientos Lázaro Ruiz Díaz Eugenia Parodi
SCM Juan Achucarro Lázaro Ruiz Díaz
SQA Juan Achucarro Lázaro Ruiz Díaz
EQUIPOEquipo14
• Presentación del Cliente y Proyecto • El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA15
OBJETIVOSAcad
émico
s
• Aprobar el proyecto (90-95)
• Aprender nuevas tecnologías (haciendo +80% de 1 CU medio/alto independientemente)
Producto
• Conformidad del producto por parte del cliente; reutilizable +85%.
• Conformidad de proceso, y estimaciones entregadas (criterio de aceptación sobre la marcha)
Proceso
• Proceso eficiente
• No hay mas de un 20 % de horas de re trabajo
• Especificar 5 CU x sprint
• Construir 2 CU complejos, ó
• 3 CU medios, ó
• 5 CU simples
Pers
onale
s
• Buena química de trabajo (Encuesta de Satisfacción)
• Continuar la relación con el cliente
Objetivos
Precondiciones: Sprint de 15 días Esfuerzo de 120 horas Cierto nivel de habilidad (skill)
16
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA17
Sistema Web
PDA
Productos: Demos18
Proceso
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA19
Metodología Ágil
Equipos Pequeños (4 integrantes)
“Sprints” Cortos (Fijos de 15 días)
Preparados para afrontar cambios durante el proyecto
Planificación adaptativa: Entregas frecuentes + colaboración del cliente
Metodología Tradicional
Utilización de ESRE, ESDI, etc
El cliente interactúa con el equipo de desarrollo mediante
reuniones
Basadas en estándares.
Metodología De Trabajo: Híbrida20
Planificación
Requerimientos
Prueba
Evaluación
Desarrollo
Diseño
Planificación
Requerimientos
Prueba
Evaluación
Desarrollo
Diseño
Planificación
Requerimientos
Prueba
Evaluación
Desarrollo
Diseño
Ciclo De Vida: Evolutivo21
Proceso Funcional
Planificación
Requerimientos
Diseño
Desarrollo
Diseño Prueba
Prueba
Evaluación
SQA
SCM
Ing. Procesos
Coordinación
22
Proceso Organizacional
Planificación
Requerimientos
Diseño
Desarrollo
Diseño Prueba
Prueba
Evaluación
SQA
SCM
Ing. Procesos
GerenteGerente
Ingeniero
de Requerimientos
Ingeniero
de Requerimientos
TesterTesterDesarrolladorDesarrollador
ArquitectoArquitecto
Equipo de ProyectoEquipo de Proyecto
LSQA / LSCMLSQA / LSCM
Ingeniero de Procesos
Ingeniero de Procesos
Equipo de ProyectoEquipo de Proyecto
Coordinación
23
Proceso Resultados
Planificación
Requerimientos
Diseño
Desarrollo
Diseño Prueba
Prueba
Evaluación
SQA
SCM
Ing. Procesos
PLANPROY
ESRE/ Prototipo Desechable
SQA
SCM
PROCESO
PRUEBA / Resultados
ESDI
EVAL
Prototipo Evolutivo
Coordinación
24
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA25
Estrategia de Relevamiento
- Benchmarking - Reuniones con
Interesados
Lista de Requerimientos
preliminares
Prototipo Desechable (HTML)
ESRE
Prototipo Evolutivo
Requerimientos26
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA27
Estrategia de Diseño
Requerimientos y Marketing
Investigación & Selección de tecnologías
Arquitectura
Diseño Arquitectónico y
Detallado
Diseño
Capacitación
28
Características del Producto
•Sistema extensibleExtensibilidad
•Interfaz amigable y simple•Brindar ayuda al usuario•Facilidad de ingreso de datos
Usabilidad
•Autorización de usuarios (Acegi)•Autenticación de usuariosSeguridad
Arquitectura: Web29
• Interoperable con PDAInteroperabilidad
• Sistema modificable• Contenido modificable
Modificabilidad
• Sistema escalable Escalabi
lidad
Características del Producto
Arquitectura: Web30
Arquitectura: WebCapa Presentación
JSP, Struts 2, YUIComponentes VisualesProcesamiento Visual
Spring 2.5Servicios
Capa Negocio
HibernateAcceso a Datos
Capa Acceso a Datos
MySQL, DB2, Oracle
Base de Datos
Autenticación+
Autorización
Acegi Security
Spring WS, JAXB
Value Objects(VO)
Value Objects&
Entities
Registros BD
31
Arquitectura: Web<<jsp>>
formulario
<<ActionController>>MiEntidad
<<Archivo>>MiEntidad-validation.xml
<<Archivo>>MiEntidad.properties
web
<<Interface>>ServicioMiEntidad
ServicioMiEntidadBase
<<Exception>>ServicioMiEntidadException
servicio
ServicioMiEntidadImpl
<<Interface>>MiEntidadDao
MiEntidadDaoBase
<<Archivo>MiEntidad.hbm.xml
dominio
MiEntidadDaoImpl MiEntidadImpl
MiEntidad
MiEntidadVO
vo
- Escalabilidad
- Usabilidad
- Extensibilidad
- Modificabilidad
32
Características del Producto
• Patrones de UsabilidadUsabilidad
• Extensible a futuroExtensibilidad
• Interoperable con Sistema WebInteroperabilidad
Arquitectura: PDA33
Arquitectura: PDACapa Presentación
System.WinformsSystem.Drawing
Design, Component ModelDrawing2D, Printing…
Business LogicEntidades de Negocio
Capa Negocio
System.DataSystem.Xml
SqlClient, SqlClientCe
Capa Acceso a Datos
SQL Compact
Base de Datos Local
Autenticación
WindowsSecurity
WebServices (WCF)
Code-Behind
Entidades
Data Sources
XmlDocument, Serialization…
34
Arquitectura: PDA
JSP, Struts 2, YUI
Spring 2.5
Hibernate
MySQL, DB2, Oracle
AcegiSecurity
System.Winforms, System.Drawing
Business Logic
System.Data, System.XML
SQL Compact
Windows Security
Aplicación WebApache TomCat (Servlet Container)
Aplicación PDA
<<Interface>>ISincronizador
WCF-WS
Spring-WS
35
MDA
MDA (Model Driven Architecture).
PIM
PSM
Código Generado
CIM
36
Estrategia de Desarrollo
Desarrollo: Web
PIM
AndroMDA
Código Generado
Desarrollador
Arquitecto
Requerimientos
Se necesita cambio?
37
MDA
Separación de responsabilidades.
Mejora de la calidad de los modelos y procesos mediante su análisis.
Diseño actualizado.
Independencia de plataforma: arquitectura.
Generación automática de código basada en buenas practicas.
Por que utilizar MDA?
38
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA39
Plan
DoEval
Antes de cada Sprint, se planifican las tareas a
llevar a cabo.
Al terminar cada Sprint, se evalúan los resultados
obtenidos.
Gerencia: Estrategia40
• Métricas:• Eficacia de Sprint• Distribución de esfuerzo• Esfuerzo realizado Vs. Esfuerzo estimado
• Costos:• Costos de Prevención• Costos de re trabajo• Evolución de IR, Desarrollo y Capacitación• Evolución de definición del proceso
Gerencia: Métricas Y Costos41
Eficacia de Sprint
• Se categorizan las tareas según prioridad:• A+ = 100%• A >= 86%• M >= 70% • B >= 50%
• En base a esos rangos, se determina el desempeño del Sprint.
• Nos permite controlar que las tareas A+, se hayan completado.
• Podemos realizar un seguimiento de las tareas criticas de cada Sprint.
42
Tareas Estimadas
Tareas Realizadas
18 14
5 3
11 10
5 1
Tareas Estimadas
Tareas Realizadas
18 18
9 7
11 10
5 5
Eficacia de Sprint43
Distribución del Esfuerzo44
Esfuerzo Estimado Vs Esfuerzo Real45
Costo de retrabajo46
Evolución de IR, Desarrollo y Capacitación47
Evolución de la Definición del Proceso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160
5
10
15
20
25
30
35
40
Ingeniería de Procesos
IP
48
Riesgos Principales49
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA50
Estrategia de SQA
Investigación Definición de planillas Revisiones
SQA
Estándares
Métricas
51
DEFECTOS PRUEBAS FUNCIONALES DISEÑADASAD = (Total de CP que se ejecutaron correctamente) / (Total CP) * 100
USABILIDAD PRUEBAS DE USABILIDAD DISEÑADAS Y EJECUTADASU = Usabilidad = (Cantidad reglas cumplidas) / (Cantidad reglas cumplidas + Cantidad reglas no cumplidas) * 100.
SQA: MétricasDefectos y Usabilidad
52
NOI =Nº de Interfaces por Paquete
(promedio / máximo por fragmento de
paquete) Indica bajo acoplamiento
LOCM = Carencia de Cohesión de Métodos (promedio / máximo
por tipo) Mayor cohesividad
de clases
WMC = Métodos Ponderados por Clase (promedio / máximo
por tipo) Mayor reutilización
SQA: MétricasOrientadas a Objetos (Java)
53
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA54
Estrategia de SCM
InvestigaciónConfiguración Base Inspecciones
SCM
Ajustes
55
SCM: RepositorioProventus
00- Material de Apoyo
01 - Ingenieria de Requerimientos
02 - Diseño
04 - Prueba
05 - Gerencia
06 - SQA
07 - SCM
08 - Ingenieria de Procesos
09 - Revisiones
03 - Desarrollo(PDA)
(Web)
SCM: Herramientas
SVN Controlar versiones e historia de los proyectos software: - Project Hosting - Google Code - Hosting Privado – Presentia (sólo Sistema Web)
Tortoise SVN Cliente (software libre) SVN.
Subclipse Integrado al IDE.
57
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA58
Alcance Vs. Estado Actual
Presentación - 100%
Negocio – 60 %
Persistencia – 80%
Documentación – 100%
50%
25%
25%
59
• Presentación del Cliente y Proyecto• El Equipo del Proyecto• Objetivos• Productos del Proyecto• Ciclo de Vida y Proceso• Requerimientos• Diseño y Desarrollo• Procesos de Apoyo: Gerencia, SQA, SCM• Estado Actual del Proyecto• Lecciones Aprendidas
AGENDA60
Objetivos PlanteadosAcad
émico
s
• Aprobar el proyecto (90-95)
• Aprender nuevas tecnologías (haciendo +80% de 1 CU medio/alto independientemente)
Producto
• Conformidad del producto por parte del cliente; reutilizable +85%.
• Conformidad de proceso, y estimaciones entregadas (criterio de aceptación sobre la marcha)
Proceso
• Proceso eficiente
• No hay mas de un 20 % de horas de re trabajo
• Especificar 5 CU x sprint
• Construir 2 CU complejos, ó
• 3 CU medios, ó
• 5 CU simples
Pers
onale
s
• Buena química de trabajo (encuestas de satisfacción)
• Continuar la relación con el cliente
61
Siguiendo nuestra metodología de trabajo se necesitaron 14 Sprints de ~120 hs para relevar ~40 Requerimientos
“Piense que el ciclo de vida va a cambiar”
Lecciones Aprendidas62
“Tenga suplentes y este preparado para afrontar cambios de roles”.
“Se pudo comprobar en la practica que el cliente no siempre sabe lo que quiere”
“No versione todo, solamente lo indispensable”
Lecciones Aprendidas63
“Utilice las herramientas mas simples”
“Dividir tareas según habilidades y preferencias (Optimizamos producto y proceso)”
“Reserve periodo de tiempo para imprevistos y retrabajo pero no confunda imprevistos con retrabajo”
CONCLUSIONES & LECCIONES APRENDIDASLecciones Aprendidas64
www.proventus.com.uyAgradecimientos65
• A nuestros familiares y amigos• A nuestros revisores• A los tutores de area (Gastón Mousqués, Leonardo
Scafarelli, Amalia Alvarez)• A presentia y en particular a Mauricio Abelar• A Raul Bertoche, Pablo Dutra• A nuestro tutor Álvaro Ortas
www.proventus.com.uyPreguntas?66