Tema 7.7: Edición de datos

Este sprint estará centrado en la edición de datos. Se tratarán de impementar las funcionalidades de añadir nuevas filas a una tabla, modificar los datos y borrar filas.

Historias de usuario a implementar

Historia de usuario Estimación (días ideales) Notas
Un usuario esporádico puede añadir una nueva fila de datos a una tabla 3 Para la creación/edición de datos, probablemente sea conveniente adaptar el sistema de generación de cartas de datos a la jerarquía de esquema del sprint anterior
Un usuario esporádico puede editar una fila de una tabla 9 Para la edición/creación de datos, probablemente sea conveniente adaptar el sistema de generación de cartas de datos a la jerarquía de esquema del sprint anterior
Un usuario esporádico puede borrar filas de una tabla 2

Se ha dejado para más adelante la historia de usuario "Un desarrollador puede importar y exportar esquemas y mappings de Gora", ya que tras el desarrollo del sprint pasado la funcionalidad está relativamente cubierta po la posibilidad de copiar/pegar la configuración, y ha perdido interés de cara al desarrollo agil. El interés para este sprint se centra enla edición de datos, y la estimación de aquella tarea significa superar superar por mucho la duración deseada del sprint.

A la estimación hay que añadir 2 días ideales para tareas inter-sprint.
Las estimaciones de editar una fila y crear una fila se han intercambiado frente a lo estimado inicialmente en las historias de usuario. En este caso ya disponemos de los datos, por lo que será más conveniente comenzar con la edición de datos, y considerar la creación simplemente crear la fila y editar los datos.

Product backlog

Tarea Subtarea Estimación Sprint backlog Terminada
Pantalla de login login fake 3
login real 3
Ux Pantalla de inicio 2
Logout 2
Cambiar el idioma de la aplicación 5
Permitir pantalla completa para elementos como las tablas 3
Configuración de conexión Mostrar listado de conexiones 3
Añadir conexión 4
Editar conexión 4
Borrar conexión 3
Configuración de tabla Listado de tablas 4
Añadir tabla 4
Editar tabla 2
Borrar tabla 1
Exportar/Importar configuración de tabla 2
Obtener información de BBDD y tablas de una conexión 7
Wizard a la hora de modificar la tabla en función de la información nativa de BD 8
Gestión de usuarios Listar usuarios 3
Añadir usuario 3
Borrar usuario 1
Editar usuario 3
Edición de datos Añadir una nueva fila 3
Editar una fila 9
Borrar una fila 2
Chapado en oro Añadir sonidos a eventos de UI
Listar los datos de una tabla Crear conjunto de datos de prueba 1
Obtener en el servidor los datos y devolverlos en JSON 2
Diseño de visualización 2
Visualización de los datos JSON en forma de tabla sin anidamiento 4
Visualización de los datos JSON en forma de tabla con anidamiento 10
Carga de datos mediante scroll 3
Formulario de búsqueda: filtro por clave 3
Detalles de visualización I Botón recargar grid con datos de tabla. Mostrar la clave de la fila en ValueRegion. Tooltips en campos de texto 1
Breadcrumbs de pantallas de ValuesCards 3
Configuración del ancho de los labels de ValuesCards 2
Navegación a ValuesCard mediante history 3
Tamaño de labels arrastrando 1 +
Spike de investigación sobre despliegue en la nube 1
Spike de investigación de tests en la vista 1

Sprint Review

Se ha implementado la edición de los datos de una fila, aunque se deja para el próximo sprint la implementación de los tests por motivos de tiempo.
Se ha refactorizado la creación de cartas de datos de manera que ahora es el visitante ValuesCardGeneratorVisitor quien se encarga de generar la Values Card dado un nodo del esquema. De este modo, los diferentes componenetes que contienen datos, mantienen una simple referencia al nodo del árbol del esquema.
Dada la limitación de tiempo, se han dejado las tareas de añadir fila y eliminar fila para el siguiente sprint.
Se ha implementado a cambio la mejora de modificar la anchura de labels por su corta estimación.

Vídeo review: Sprint Review 7.mp4

Sprint Retrospective

Desgraciadamente la estimación de la tarea de edición de una fila resultó ser completamente errónea. Las dificultades fueron muy superiores a las consideradas, entre las que se encuentran la gestión no planificada de Arrays y Maps a la hora de añadir/eliminar elementos en las Values Card, y el merge del diff de los datos con las entidades Persistent de Apache Gora. Esto ha hecho que no haya dado tiempo a implementar los tests de edición de fila y que se hayan quedado fuera del sprint las tareas de añadir y eliminar fila. En compensación se ha implementado la mejora de añadir resizer a los labels, que era una tarea muy pequeña.

¿Qué fue bien durante el sprint?

Se ha parado el sprint en el momento de terminar las horas, sin pasarse de la duración.

¿Qué fue mal durante el sprint?

La estimación de una de las tareas resultó errónea, pasando del rango de estimación "40" a "100". Estamos considerando una tarea "terminada", cuando en realidad faltan los tests de Siesta, creando una tarea para el sprint siguiente. Esto no es correcto del todo, aunque en algunos desarrollos se pueden considerar funcionalidades experimentales o betas.

¿Qué se puede hacer diferente para mejorar?

Ser más cuidadosos con las estimaciones, tratando de particionar la tarea en los módulos implicados y estimar cada uno por separado.

Sprint Review 7.mp4 - Review funcionalidades nuevas fin sprint 7 (13.4 MB) Alfonso Nishikawa, 27/12/2017 22:07