Commit 44479923 by Denis Armenta

Merge branch 'master' into darmenta/LIB-227

parents de8f7aeb 8c8e4cad
# Marco de trabajo
Nuestro equipo opera bajo un marco de trabajo estructurado que incluye una serie de reuniones periódicas. Estas reuniones se agrupan en dos categorías principales: Reuniones de Línea y Reuniones de Planificación (Planning). Las Reuniones de Línea están diseñadas para mantener a todo el equipo al tanto de situaciones generales, proyectos en curso, nuevas tecnologías y cualquier otro tema relevante para el área. Las Reuniones de Planificación se centran en la coordinación del equipo para la estimación, programación e información de las tareas y acciones necesarias.
## Reuniones de Línea
Esta reunión se lleva a cabo todos los martes con el objetivo de informar, discutir y organizar cualquier tema relevante para el equipo y el trabajo. Aunque los puntos a tratar usualmente son propuestos por el líder técnico, cualquier miembro que considere que un tema debe ser abordado colectivamente puede sugerirlo [aquí](https://docs.google.com/document/d/1n9QdkmhVWzgcuhzDjPrbpmRo8TXwGwg0iNmvThwBnuw/edit?usp=sharing), y será incluido en la agenda para su discusión.
## Reuniones de Planificación
En la línea de informática de la biodiversidad aplicamos una versión de *[SCRUM](https://en.wikipedia.org/wiki/Scrum_(software_development))* adaptada a las necesidades del equipo.
## Estimación de tareas
### Estimación de tareas
La estimación de tareas se realiza con "*story points*", para lo cual se tiene una equivalencia entre rangos de tiempo y "*story points*".
......@@ -17,48 +25,49 @@ La estimación de tareas se realiza con "*story points*", para lo cual se tiene
| 8 | Hasta tres días |
| (\*) Más de 8 | Se deberá dividir la tarea |
## Ceremonias
### Ceremonias
### Cierre y planeación de sprint
Las **ceremonias** son reuniones estructuradas que nos permiten sincronizar al equipo, planear el trabajo y revisar el progreso. Su propósito es asegurar una comunicación fluida y la consecución de objetivos.
Los *sprints* duran 2 semanas, iniciando los miércoles. El día de inicio se realizará, en el mismo espacio el cierre y la planeación. El líder técnico es quien se encarga de priorizar y organizar las tareas para cada *sprint* previo a la ceremonia, cada miembro del equipo revisará las tareas. Durante la ceremonia cada persona presentará las tareas asignadas, resolverá dudas y participará en las presentaciones de los demás miembros.
#### Planificación de Sprint (Planning)
### Daily
La **Planificación de Sprint** es donde el equipo define qué se va a lograr en el próximo sprint y cómo se va a hacer.
El *daily meeting* se realizará de forma asíncrona en la plataforma *[DailyBot](https://app.dailybot.com/checkins/bfe64453-2b94-4ea5-b811-eb70b8ea1181/daily-report/2025-06-25)* por medio de un bot en el chat del *Workspace* de *Google*. Es responsabilidad de cada persona informar en las primeras horas de la mañana las tareas que haya realizado el anterior día laboral y las tareas que vaya a realizar en el día actual. El bot cuenta con un recordatorio y se espera que esto se haga antes de las 9:30 de la mañana.
Los *sprints* duran dos semanas y comienzan los miércoles. Antes de esta ceremonia, el líder técnico prioriza y organiza las tareas, y cada miembro del equipo revisa las que le fueron asignadas.
### Planning
Durante la ceremonia desde su tablero cada participante:
Durante el *planning* se realizan las siguientes actividades:
1. **Realiza su retrospectiva individual**: Al inicio de cada sprint, revisa lo completado en el sprint anterior y las nuevas tareas a planear. [Ver Cierre y Retrospectiva.](#cierre-y-retrospectiva-sprint-retrospective)
1. Se revisa la priorización de las tareas. De acuerdo a las consideraciones que tengan los demás miembros del equipo se pueden reorganizar.
2. Por cada tarea:
1. Se aclaran dudas que no se hayan podido resolver antes de la reunión.
2. Si la persona que tiene la tarea asignada tiene dudas, se mencionan los puntos de vista de cada miembro y se llega a un consenso sobre la estimación.
3. Si no se ha asignado un responsable, se asigna.
2. **Prioriza las tareas asignadas**: Se revisa la priorización de las tareas en el *Sprint Backlog*, que también puede incluir tareas "bonus" de baja prioridad (estas se pueden trabajar si se termina la carga principal del sprint). Las tareas pueden reorganizarse según las consideraciones del equipo.
**Nota:** algunas tareas, especialmente las *\[spike\]* o *\[poc\]* pueden tener 2 responsables para atacar más de un enfoque en el mismo sprint.
3. **Detalla y estima la duración de cada tarea asignada**:
- Se aclaran las dudas sobre cada tarea que no se hayan resuelto antes de la reunión.
- Si la persona asignada tiene dudas sobre la estimación, se discuten los puntos de vista de los miembros del equipo hasta llegar a un consenso sobre el valor de los *story points*.
- **Nota**: Algunas tareas, como los *[spike]* (investigaciones) o *[PoC]* (pruebas de concepto), pueden tener dos responsables para abordar múltiples enfoques en el mismo sprint. Para estas tareas, se programa una reunión de seguimiento a mitad del sprint con al menos otro miembro del equipo (generalmente el líder técnico o alguien con una visión clara del objetivo), para socializar los avances, recibir retroalimentación y obtener orientación.
- Una vez detallada y estimada, la tarea se mueve de la columna *Sprint Backlog* a *Todo* en el tablero.
4. Si la tarea es un *\[spike\]* o un *\[poc\]*, se programa una reunión de seguimiento con al menos otro miembro del equipo (normalmente será el líder técnico y/o alguien que tenga más clara la visión del objetivo de la tarea) a mitad del *sprint* para socializar los avances en la tarea y recibir retroalimentación y orientación.
Si una tarea no tiene un responsable, se le asigna uno durante la ceremonia.
1. Se pasa la tarea de la columna *Sprint Backlog* a *Todo*
El tablero debe estar siempre organizado según la prioridad asignada por el líder técnico o el encargado del proyecto.
El tablero debe siempre estar organizado por prioridad, la cual es asignada por el líder técnico o encargado del proyecto
**Nota**: Si el líder técnico no logra preparar las tareas la semana anterior, es necesario dedicar tiempo al análisis de las tareas durante la misma sesión de planeación.
Previo al espacio para el planning se van creando las tareas para revisión en el pipeline *Sprint Backlog*. En caso de que se tengan dudas o comentarios acerca de las tareas o sus estimaciones, se podrán comentar en el chat del grupo (*BioDev*).
#### Diaria (Daily Scrum)
En el pipeline *Sprint Backlog* también se dejan las tareas "bonus" del sprint (tareas con prioridad baja que se pueden trabajar si se acaba con la carga del sprint)
El **Daily Scrum** es una actividad diaria en la que cada persona informa al resto del equipo sobre lo que hizo el día anterior, sus planes para el día actual y los obstáculos que se le han presentado. Esto mantiene al equipo informado sobre el estado del sprint. Se realiza de forma asíncrona a través de un bot en el chat del *Workspace de Google*, utilizando la plataforma *DailyBot*. El bot envía un recordatorio, y se espera que esta actualización se realice antes de las 9:30 a.m.
**Nota:** Cuando el líder técnico no logra preparar las tareas la semana anterior, es necesario dedicar tiempo al análisis de las tareas en la planeación misma.
#### Cierre y Retrospectiva (Sprint Retrospective)
### Retrospectiva
Esta es una ceremonia clave para la mejora continua del equipo y sus procesos. Aquí, reflexionamos sobre el sprint que acaba de terminar, identificando qué funcionó bien, qué se puede mejorar y cómo implementar esos cambios.
Esta ceremonia se realizará en el mismo espacio del *planning*, justo antes de planear las tareas del siguiente sprint.
La *Retrospectiva* se realiza justo antes de realizar la planeación del siguiente sprint. En ella:
* Se revisan las tareas que finalizaron. Los responsables explican resumidamente lo que se hizo en la tarea y mencionan cosas que deseen resaltar.
* Las tareas que no se terminaron, es decir, quedaron en estado *In Progress* o *In Review* se agregan al siguiente *sprint*, no se modifica la estimación.
- **Se revisan las tareas finalizadas**: Los responsables explican brevemente lo que se hizo y destacan los puntos relevantes.
- **Se revisan las tareas no finalizadas**: Las tareas que quedaron en estado *In Progress* o *In Review* se trasladan al siguiente sprint sin modificar su estimación original. Esto asegura que el trabajo incompleto no se olvide y se priorice en el próximo ciclo.
---
* volver al [inicio](/README.md)
* volver a las [normas de desarrollo](/docs/development-rules/README.md)
- volver al [inicio](/README.md)
- volver a las [normas de desarrollo](/docs/development-rules/README.md)
......@@ -4,4 +4,5 @@ Este documento te proporcionará las instrucciones y guías necesarias para real
1. [Obsidian](sections/obsidian.md) 📝 - ¡Domina nuestra herramienta de conocimiento! 🧠 Este documento te guiará a través de las funcionalidades de Obsidian para que puedas organizar y conectar tus ideas de manera efectiva. ✨
2. [localstack](sections/localstack) En esta carpeta se encuentra las instrucciones para configurar y levantar localstack localmente.
3. [keycloak](sections/keycloak) En esta carpeta se encuentra las instrucciones para configurar y levantar keycloak localmente.
\ No newline at end of file
3. [Excalidraw](sections/excalidraw) - ¡Aterriza ideas rápidamente! esta herramienta puede ayudarte a realizar fácilmente digramas, interfaces, relaciones o cualquier cosa que necesites visualizar.
4. [keycloak](sections/keycloak) En esta carpeta se encuentra las instrucciones para configurar y levantar keycloak localmente.
\ No newline at end of file
# Excalidraw
## Qué es?
[Excalidraw](https://excalidraw.com/)([repositorio](https://github.com/excalidraw/excalidraw)) es una pizarra virtual que sirve para agilizar la comunicación visual de ideas. La sencillez de la interfaz ayuda permite crear diagramas, bocetos, maquetas y gráficos rápidamente.
Es una herramienta open source, ligera y fácil de usar que funciona directamente en el navegador. Lo mejor es que se puede integrar dentro de otras aplicaciones, como con este [plugin para Obsidian](https://github.com/zsviczian/obsidian-excalidraw-plugin) o embeber dentro de sitios web desarrollados con React.
Mientras que otras herramientas como Draw.io se destacan por la cantidad de detalles que se pueden controlar y elementos disponibles, **Excalidraw** brilla por su sencillez. Es ideal para aterrizar conceptos un poco abstractos o para la creación de bocetos "en caliente", sesiones de lluvia de ideas, planificación y la creación de mapas mentales, diagramas de flujo y wireframes.
## Cómo funciona?
Aunque es una herramienta bastante intuitiva, [aquí](https://www.youtube.com/watch?v=MayTRZAh0QE&list=PLbFAO-1MUJaU114M2-JOZOHZK8dcGgmbM) puedes encontrar una serie de tutoriales realizados por quienes crearon la herramienta.
## Guardado, exportaciones editables y Git
Excalidraw ofrece varias opciones para guardar y exportar tus diagramas, cada una con un propósito específico, pero todas con la ventaja de facilitar su gestión y versionado.
La principal forma de guardar el trabajo es a través del formato nativo `.excalidraw.` Este es un simple archivo de texto con formato JSON que contiene todos los datos de tu tablero. Es la opción más completa, ya que guarda cada elemento (formas, líneas, texto) de manera individual, permitiendo su total edición al reabrir el archivo.
Además, Excalidraw tiene la capacidad de exportar PNGs y SVGs editables. Para hacerlo, marcamos la casilla "Incrustar escena" en el cuadro de diálogo de exportación. Esto crea un archivo especial que, aunque se ve y comporta como una imagen cualquiera, lleva "escondido" el JSON del diagrama, que, al volver a importarlo en Excalidraw, la herramienta "descompone" la imagen en sus elementos originales, permitiendo su edición.
![exportar un PNG editable](./imgs/exportar.jpg)
### Y con git qué?
La naturaleza de texto del formato `.excalidraw` lo hace perfecto para sistemas de control de versiones como Git. A diferencia de un PNG, que para Git es una caja negra, `.excalidraw` es compatible con el sistema de almacenamiento de cambios de Git. Esto nos permite ver las diferencias entre las versiones del diagrama, la responsabilidad del cambio, identificar exactamente qué elementos se agregaron o eliminaron, y fusionar ramas sin conflictos complejos.
```Diff
--- a/mi_diagrama.excalidraw
+++ b/mi_diagrama.excalidraw
@@ -2,7 +2,7 @@
"elements": [
{
"type": "rectangle",
- "x": 100,
- "y": 50,
+ "x": 120,
+ "y": 60,
"width": 150,
"height": 100
}
]
```
## Creación de diagramas desde código con Mermaid
Excalidraw incluye una herramienta nativa para generar diagramas directamente desde la sintaxis de Mermaid. Para usarla, ve la opción "Mermaid to Excalidraw". Al seleccionarla, se abrirá un editor de texto donde puedes pegar el código Mermaid. Con solo pulsar un botón, Excalidraw interpretará el código y dibujará el diagrama completo sobre el lienzo. En este momento sólo puede hacerlo con "Diagramas de flujo", "Diagramas de secuencia" y "Diagramas de Clases (OOP)"
![Crear diagrama desde mermaid](./imgs/mermaid.jpg)
## Guardar con "Enlace Para Compartir"
Excalidraw permite "guardar" una versión específica de tu tablero generando un enlace único, sin necesidad de crear un archivo local. Esta funcionalidad, a menudo encontrada en el menú de **Exportar**, crea una **versión de solo lectura** de tu trabajo.
Al seleccionarla, Excalidraw captura el estado actual del tablero, lo aloja en sus servidores y proporciona una URL temporal. Cualquier persona con este enlace podrá ver el diagrama o boceto exactamente como lo dejaste, pero no podrá modificar tu versión original, ya que al modificarlo, cambiará el enlace.
![Guardar para compoartir](./imgs/compartir.jpg)
## Importar diagramas desde Draw.io
Si bien Excalidraw no tiene una función para "importar" directamente un archivo de Draw.io, el método más efectivo es utilizar el formato de imagen vectorial SVG como puente. El proceso es sencillo: primero, en Draw.io, debes exportar tu diagrama yendo a `Archivo > Exportar como > SVG`. Una vez que tengas el archivo `.svg` guardado en tu computador, simplemente arrástralo y suéltalo sobre el lienzo de Excalidraw. La herramienta procesará la imagen y la mostrará en tu tablero, permitiéndote integrarla con otros elementos nativos de Excalidraw.
Este proceso **no es una conversión, sino una importación de imagen**. El diagrama de Draw.io aparecerá en Excalidraw como una sola imagen estática y no como elementos editables. Esto significa que no podrás modificar los textos, cambiar de posición las flechas o editar las formas que componían el diagrama original. Por lo tanto, este método sirve para usar diagramas existentes como referencia o para añadir anotaciones rápidas, pero no para continuar editando un diagrama.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment