Volver a TeamOrbit

Manual de Usuario — TeamOrbit

Guia completa para gestionar la capacidad, proyectos y productividad de tu equipo de desarrollo.

1. Introduccion

Que es TeamOrbit

TeamOrbit es una aplicacion de gestion de capacidad y proyeccion de ancho de banda para equipos de desarrollo de software. Permite planificar, registrar y auditar como se distribuye el tiempo del equipo entre los distintos tipos de proyectos, detectar cuellos de botella y tomar decisiones informadas sobre la asignacion de recursos.

El problema que resuelve es simple pero critico: saber en todo momento cuantas horas tiene tu equipo, cuantas estan comprometidas y cuantas quedan libres, desglosado por area, por tipo de proyecto y proyectado a futuro.

Conceptos clave

Los 5 tipos de proyecto

TeamOrbit clasifica todo el trabajo del equipo en 5 tipos, cada uno con un color distintivo:

Tipos de trabajo que gestiona TeamOrbit
DD
Desarrollo Dedicado
Contratos mensuales de horas con clientes
OT
Ordenes de Trabajo
Trabajos puntuales con estimacion y entrega
RM
Roadmap
Iniciativas estrategicas internas
SOP
Soporte Dev
Incidencias de produccion y bug fixes
EST
Estabilizacion
Trabajo de estabilizacion de versiones

Estos 5 tipos son los que aparecen en todas las graficas de capacidad, en el Dashboard, en el Simulador y en los reportes. Las horas libres (no comprometidas) se muestran como un sexto componente en gris.

2. Inicio de Sesion

TeamOrbit ofrece dos metodos de autenticacion:

Autenticacion local (usuario y contrasena)

1
Navegar a la pantalla de login (ruta raiz de la aplicacion).
2
Ingresar el nombre de usuario y la contrasena en los campos correspondientes.
3
Hacer clic en "Iniciar Sesion". Si las credenciales son correctas, se redirige al Dashboard.

Microsoft 365 (Entra ID) SSO

1
Hacer clic en el boton "Iniciar sesion con Microsoft" en la pantalla de login.
2
Se abrira el flujo de autenticacion de Microsoft. Ingresar la cuenta corporativa y aprobar los permisos si es la primera vez.
3
Al completarse, se redirige automaticamente al Dashboard.
Primer inicio con Microsoft 365: Si es la primera vez que inicias sesion con tu cuenta de Microsoft, el sistema crea automaticamente tu usuario en TeamOrbit. Se crea con rol "Lider" y sin persona vinculada. Un administrador debera luego vincular tu usuario a una persona del equipo y ajustar el rol si es necesario.
Pantalla de login
TeamOrbit
Usuario
Contrasena
Iniciar Sesion
- o -
Iniciar sesion con Microsoft

Roles de usuario

Mapeo Usuario ↔ Persona (auto-link)

Para que el sistema sepa a que Persona del equipo corresponde cada Usuario logueado, hay dos opciones:

  1. Auto-link por email (recomendado): si la Persona tiene cargado el campo Email Microsoft 365 (ver seccion 5), al loguearse el sistema busca el match por email y conecta automaticamente Usuario.PersonaId. Funciona tanto en login Entra ID como en login local.
  2. Mapeo manual: en el ABM de Usuarios (seccion 21) se puede setear el PersonaId a mano para casos donde el email no coincida.

Este mapeo es lo que habilita features como el recordatorio flotante de pendientes y los reportes personales.

Recordatorio flotante de pendientes

Apenas la persona ingresa, si tiene promesas Pendiente o Prioridad como owner para la semana actual, aparece un toast flotante en la esquina inferior derecha con la lista. Se puede cerrar; reaparece en el siguiente login o tras 24 horas si la sesion sigue viva (para usuarios que no acostumbran cerrar sesion). Requiere que la Persona este mapeada con el Usuario (ver arriba).

3. Dashboard

El Dashboard es la pantalla principal al ingresar al sistema. Muestra el estado actual del sprint en curso (no mensual). Toda la informacion se calcula en funcion del sprint activo y los datos registrados hasta el momento.

Los 5 KPIs principales

Tarjetas KPI del sprint actual
Capacidad Total
2,450 hs
Horas netas del equipo en el sprint
Capacidad Comprometida
72.5%
DD + OT + Roadmap + Reservas
Horas DD Sprint
180 / 240
Consumidas / prorrateadas
OT Activas
8
En progreso actualmente
Soporte Dev
45 hs
Horas consumidas en soporte

Cada tarjeta KPI se explica a continuacion:

Capacidad por Area (grafica de barras apiladas)

Esta es la grafica mas importante del Dashboard. Muestra una barra horizontal por cada area del equipo. Cada barra se compone de 6 segmentos apilados:

Capacidad por area — Barras apiladas
Canal Web
63%
Canal App
80%
QA
82%
DD OT Roadmap Soporte Estabilizacion Libre

Seccion de Alertas

El Dashboard muestra alertas automaticas cuando se detectan situaciones que requieren atencion:

Proximas Entregas

Tabla con las 8 entregas mas cercanas (OTs y Roadmaps), mostrando nombre, tipo, cliente, fecha de entrega y estado. Permite una vista rapida de los compromisos inmediatos del equipo.

Widget de Roadmap (nuevo)

Card en el Dashboard con 4 KPIs del portfolio de roadmaps activos, mas una lista corta de los 6 roadmaps mas relevantes para llegar a completarse.

Widget de Roadmap
Activos
14
Con fecha
9
≤ 15 dias
3
Vencidos
2
Los KPIs ≤ 15 dias y Vencidos solo se pintan (color de alerta) cuando son > 0. Debajo de los KPIs se muestra una lista de los 6 roadmaps activos ordenados por prioridad ascendente y luego por % avance descendente ("proximos a completarse, priorizados"), con barra de avance con color segun % y dias restantes con color de urgencia.

Proyeccion por Sprint

Grafica de barras que muestra la capacidad total vs. comprometida para el sprint actual y los proximos sprints (cantidad configurable en Configuracion > SprintsProyeccion). Permite visualizar si el equipo tiene capacidad para asumir nuevo trabajo en el futuro cercano.

Sin sprint activo: Si no existe ningun sprint activo en el sistema, el Dashboard mostrara un mensaje indicando que debe crearse el primer sprint desde la seccion Sprints. Ninguna grafica ni KPI se mostrara hasta que haya un sprint activo.
Auto-cierre de sprints: Al ingresar al Dashboard, si hay sprints cuya fecha de fin ya paso y siguen activos, el sistema los cierra automaticamente y genera su snapshot. Esto asegura que los datos historicos se congelen incluso si nadie los cerro manualmente.

4. Simulador de Capacidad

El Simulador permite experimentar escenarios "what-if" sin afectar datos reales. Es una herramienta exploratoria que proyecta la capacidad por sprints futuros segun las simulaciones que agregues.

Las simulaciones son efimeras: no se guardan en la base de datos. Se pierden al salir de la pagina. Su proposito es ayudar a tomar decisiones, no almacenar planes.

Los 4 tipos de simulacion

4.1 Agregar OT

Simula el impacto de una nueva orden de trabajo en la capacidad del equipo.

CampoDescripcionValidacion
NombreNombre descriptivo de la OT simuladaRequerido
Horas por AreaCuantas horas necesitaria cada areaAl menos un area con horas > 0
Fecha InicioDesde cuando se comenzaria a trabajarRequerido
Fecha EntregaDeadline de la OTPosterior a fecha inicio

Las horas se distribuyen uniformemente entre los sprints que cubren el rango de fechas. El simulador muestra como cambiaria la barra de cada area afectada.

4.2 Agregar Contrato DD

Simula un nuevo contrato de desarrollo dedicado.

CampoDescripcionValidacion
NombreNombre del contrato simuladoRequerido
Horas MensualesHoras contratadas por mes> 0
Duracion (meses)Por cuantos meses se contrata> 0

Las horas mensuales se prorratean automaticamente a cada sprint segun los dias habiles. La distribucion por area se hace proporcionalmente a la capacidad de cada area.

4.3 Agregar/Quitar Persona

Simula el impacto de sumar o perder un integrante del equipo.

CampoDescripcionValidacion
AccionAgregar o QuitarRequerido
AreaA que area se sumaria o de cual se quitariaRequerido
Horas/diaHoras netas por dia de la persona> 0, no puede exceder el global (HorasPorDia)

Al agregar una persona, se suma su capacidad al area seleccionada. Al quitar, se resta. El simulador recalcula las barras de capacidad para todos los sprints proyectados.

4.4 Enviar a Challenge

Simula tercerizar parte del trabajo de una OT existente a un proveedor externo.

CampoDescripcionValidacion
OTOrden de trabajo existente a tercerizarRequerido, debe estar activa
AreaArea de la cual se tercerizarian horasRequerido
HorasCuantas horas se enviarian al challenge> 0, no puede superar las horas estimadas del area

Al enviar a challenge, las horas se "liberan" del area seleccionada, reduciendo la carga interna.

Vistas de la grafica

El Simulador ofrece dos vistas de la grafica principal, intercambiables con un toggle:

Grafica del simulador — Vista por sprint
Sprint 15
80%
Sprint 16
61%
Sprint 17
40%
DD OT Roadmap Soporte Estabilizacion

Tarjetas de resultado

Debajo de la grafica, el Simulador muestra 3 tarjetas de resumen:

Tabla de detalle

Una tabla expandible muestra sprint por sprint, area por area, las horas comprometidas actuales vs. las simuladas, con la diferencia resaltada en color (verde si se libera capacidad, rojo si se consume).

5. Personas

Gestion del equipo. Cada persona tiene configurada su capacidad, que impacta directamente en todas las proyecciones, calculos y reportes del sistema.

Todos los campos

CampoDescripcionRequerido
NombreNombre completo de la personaSi
Email Microsoft 365Email con el que la persona se loguea en TeamOrbit (SSO Entra ID o local). Sirve para mapearlo automaticamente con su Usuario y habilitar el toast de "Mis Pendientes" al loguearse. Si no se carga, la persona no recibe el recordatorio flotante.No (pero recomendado)
Area PrincipalArea donde se computa su capacidad. Cada persona pertenece a una sola area principal.Si
SuperiorPersona que es su reporte directo. Define la jerarquia del organigrama.No
Fecha de IngresoFecha en que la persona se incorporo al equipo.Si
Carga HorariaTipo de jornada. Ver detalle abajo.Si (default: Completo)
Horas DiariasSolo aplica si Carga Horaria = "Personalizado". Valor especifico de horas/dia.Solo si Personalizado
% OverheadPorcentaje de las horas dedicado a actividades no-proyecto. Se descuenta de la capacidad.Si (default: 0)
Areas SecundariasAreas adicionales donde la persona puede colaborar. El area principal NO puede ser seleccionada como secundaria.No
Roles + % DedicacionUno o mas roles con porcentaje de dedicacion. La suma de todos los porcentajes debe ser exactamente 100%.No (pero recomendado)

Tipos de Carga Horaria

Ejemplo con HorasPorDia global = 7
TipoHoras/dia resultantesExplicacion
Completo7 hs/diaUsa el valor global configurado en Settings (HorasPorDia)
MedioTiempo3.5 hs/diaMitad del valor global (7 / 2 = 3.5)
Personalizado5 hs/dia (ejemplo)Usa el valor especifico del campo HorasDiarias de la persona

Calculo de horas netas (con overhead)

El overhead se aplica sobre las horas brutas para obtener las horas netas disponibles para proyectos:

Ejemplo de calculo de overhead

Persona: Maria Garcia

Carga Horaria: Completo = 7 hs/dia

Overhead: 30%

Calculo: 7 hs x (100% - 30%) = 7 x 0.70 = 4.9 hs/dia netas

En un sprint de 15 dias habiles: 4.9 x 15 = 73.5 horas disponibles para proyectos

Flujo para crear una persona

1
Ir a Personas > boton "Nueva Persona".
2
Completar: Nombre, Area Principal, Superior (opcional), Fecha de Ingreso.
3
Configurar la Carga Horaria (Completo, MedioTiempo o Personalizado). Si es Personalizado, ingresar las horas diarias.
4
Definir el % de Overhead (0 si no aplica).
5
Seleccionar Areas Secundarias (si las tiene). El area principal no puede ser secundaria.
6
Agregar Roles con su porcentaje de dedicacion. Verificar que la suma sea 100%.
7
Hacer clic en "Guardar".

Validaciones

Impacto hacia adelante: Los cambios en la capacidad de una persona (overhead, carga horaria, area) solo impactan los sprints que aun no se han cerrado. Los sprints cerrados conservan su snapshot historico sin modificaciones.

6. Areas

Las areas representan equipos o disciplinas del equipo de desarrollo (Canal Web, Canal App, Platform, QA, DevOps, etc.). Son una pieza fundamental porque toda la distribucion de capacidad se hace por areas.

Campos

CampoDescripcionRequerido
NombreNombre del area (unico)Si
Lider EncargadoPersona responsable del areaNo
ActivaSi el area esta vigenteSi (default: Si)

Listado de areas

El indice de areas muestra para cada una:

Listado de areas
AreaLiderPersonasHoras/diaAcciones
Canal WebCarlos Lopez842.7 hs
Canal AppAna Martinez633.6 hs
QAPedro Gomez528.0 hs

La capacidad se calcula automaticamente sumando las horas netas de cada persona asignada al area. No se puede editar manualmente, depende de las personas y su configuracion.

Eliminar un area solo es posible si no tiene personas asignadas ni estimaciones activas vinculadas.

7. Roles

Los roles definen el tipo de trabajo que realiza cada persona (Desarrollador, QA, Analista Funcional, DevOps, Scrum Master, etc.). Cada persona puede tener multiples roles con un porcentaje de dedicacion.

Campos

CampoDescripcionRequerido
NombreNombre del rol (unico)Si

Crear un rol

1
Ir a Roles > boton "Nuevo Rol".
2
Ingresar el nombre del rol.
3
Guardar. El rol queda disponible para asignar a personas.

Asignar roles a personas

La asignacion se hace desde la ficha de cada persona (seccion Personas). Se selecciona el rol y se indica el porcentaje de dedicacion. La suma de todos los roles asignados a una persona debe ser 100%.

Los roles impactan en:

8. Organigrama

El organigrama es una visualizacion jerarquica de solo lectura que se genera automaticamente a partir del campo Superior de cada persona.

Como funciona

Para modificar la jerarquia, hay que editar el campo Superior de cada persona desde la seccion Personas. El organigrama se actualiza automaticamente.

9. Clientes

Gestion de la cartera de clientes. Los clientes son la entidad a la que se vinculan los contratos DD y las ordenes de trabajo.

Campos del cliente

CampoDescripcionRequerido
NombreNombre de la empresa o clienteSi
ActivoSi el cliente esta vigenteSi (default: Si)

Gestion de contactos

Cada cliente puede tener multiples contactos, y solo uno puede estar marcado como principal.

CampoDescripcionRequerido
NombreNombre del contactoSi
CargoPosicion en la empresa del clienteNo
EmailDireccion de correo electronicoNo
TelefonoNumero de telefonoNo
Es PrincipalContacto principal del clienteNo (default: No)

Al marcar un contacto como principal, cualquier otro contacto del mismo cliente que estuviera marcado como principal se desmarca automaticamente.

Flujo para gestionar contactos

1
Ir al detalle del cliente (hacer clic en su nombre en el listado).
2
En la seccion "Contactos", hacer clic en "Agregar Contacto".
3
Completar los campos y guardar. Para editar, usar el icono de lapiz. Para marcar como principal, usar el icono de estrella.

Vista de detalle del cliente

La pagina de detalle muestra:

Detalle del cliente — Resumen de datos vinculados
Contactos
3
Contratos DD
2
OTs
5

10. Ordenes de Trabajo (OT)

Las OTs representan trabajos puntuales para un cliente: desarrollos a medida, integraciones, migraciones, etc. Cada OT tiene una estimacion de horas, una fecha de entrega y fases que representan su ciclo de vida.

Crear una OT

CampoDescripcionValidacion
CodigoIdentificador unico de la OT (ej: OT-001, OT-042)Requerido, unico en el sistema
NombreNombre descriptivo del trabajoRequerido
ClienteCliente al que pertenece la OTRequerido
DescripcionDetalle del alcance del trabajoOpcional
Estimacion (hs)Suma automatica de las horas estimadas por area. Se usa como estimacion actual de la OT.Automatico (readonly)
Estimacion OriginalHoras estimadas inicialmente por el equipo tecnico (se fija al crear la OT)Automatico
Fecha Entrega OriginalDeadline original pactado con el clienteOpcional
Fecha Entrega ActualDeadline actualizado (puede diferir del original)Opcional
Estimaciones por AreaCuantas horas necesita cada area (Web: 40h, App: 20h, QA: 30h, etc.)Al menos un area con horas > 0

Fases de una OT (8 fases del ciclo)

Al crear una OT, el sistema genera automaticamente 8 fases secuenciales con pesos configurables (ver Configuracion). El orden es fijo: Pendiente → Discovery → Relevamiento → Refinamiento → Implementacion → Control de Calidad → UAT → Completa.

Fases auto-generadas con pesos por defecto
OrdenFasePesoEstado inicialReserva capacidad
1Pendiente0%EnProgresoNo
2Discovery0%PendienteSi
3Relevamiento10%PendienteSi
4Refinamiento15%PendienteSi
5Implementacion45%PendienteSi
6Control de Calidad20%PendienteSi
7UAT8%PendienteSi
8Completa2%PendienteNo
Renombres respecto a versiones anteriores: la fase que antes se llamaba "Liberacion" pasa a llamarse UAT; la fase que antes se llamaba "Entrega" pasa a llamarse Completa. Es solo un cambio de nombre visible — la logica de negocio (peso, orden, reserva) es la misma. Los settings internos siguen llamandose PesoFaseLiberacion y PesoFaseEntrega por retrocompatibilidad.

Regla de reserva de capacidad

Una OT (o proyecto DD) reserva capacidad en el sprint si y solo si:

Es decir, solo las 6 fases intermedias (Discovery, Relevamiento, Refinamiento, Implementacion, Control de Calidad, UAT) reservan capacidad. La fase Pendiente (Orden 1) es la de todo proyecto recien creado que aun no fue tomado por el equipo, y la fase Completa (Orden 8) es el cierre administrativo (handover/factura/firma). Ninguna de las dos consume ancho de banda del sprint.

Flag "Cancelada" (nuevo)

Reemplaza al viejo valor Estado = "Cancelada". Cada OT y cada proyecto DD tiene un switch "Cancelada" (bool) en el form de edicion. Al activarlo:

El campo legacy OrdenTrabajo.Estado (Pendiente/EnProgreso/Completada/Cancelada) quedo deprecado como valor semantico. El "estado real" de una OT hoy se lee de su fase actual del stepper + el flag Cancelada. Los badges de estado en las vistas ya no se muestran a partir del campo Estado.

Vista de detalle de la OT

La pagina de detalle es la mas rica en informacion. Incluye:

Semaforo (traffic light)

El semaforo indica el estado de salud de la OT comparando las horas reales registradas contra la estimacion actual y el avance de fases:

Logica del semaforo
Verde: Las horas reales estan dentro del margen esperado segun el avance de fases.
Amarillo: Las horas reales superan la estimacion para el avance actual (entre 100% y 120%).
Rojo: Las horas reales superan significativamente la estimacion (mas del 120%).

Gestion de fases

Desde el detalle se puede:

Fases en Proyectos DD

Los proyectos DD tienen el mismo sistema de fases que las OTs: avance/retroceso, edición de fechas y comentarios por hito. La lógica de estados (Pendiente → EnProgreso → Completada) es idéntica.

Seguimiento de horas

Resumen de horas de la OT
ConceptoHoras
Estimacion Original200 hs
Estimacion (suma de areas)220 hs
Horas Reales Registradas145 hs
Horas en Challenges30 hs
Desvio (Real vs Estimacion)-45 hs (a favor)

Horas por area

Desglose de horas estimadas vs. horas reales por cada area involucrada en la OT. Permite ver si hay areas que estan consumiendo mas o menos de lo estimado.

Actividad reciente

Log cronologico de todas las acciones sobre la OT: avances de fase, retrocesos, cambios de estimacion, challenges creados, horas registradas.

Challenges (Tercerizacion)

Un challenge permite delegar parte o la totalidad del trabajo de una OT a un proveedor externo.

CampoDescripcion
TipoParcial: solo parte de las horas se tercearizan. Completa: toda la OT se delega.
Horas EstimadasHoras que se envian al proveedor externo.
ProveedorNombre de la empresa proveedora.
Fecha Inicio / EntregaPeriodo en que el proveedor trabajara.
EstadoEnProgreso, Entregado, Cancelado.
ObservacionesNotas adicionales sobre el challenge.
Distribucion por AreaCuantas horas por area se tercearizan (ej: Web 20h, QA 10h).

Las horas en challenge se descuentan de la carga interna del equipo: si una OT tiene 200h estimadas y se envian 50h a challenge, solo 150h impactan la capacidad del equipo.

Azure DevOps Links

Cada OT puede tener vinculos a Work Items de Azure DevOps. Esto permite trazar el trabajo registrado en TeamOrbit con los items del backlog. Los links se agregan y administran desde la vista de detalle de la OT.

11. Desarrollo Dedicado (DD)

Los contratos de Desarrollo Dedicado representan acuerdos con clientes que contratan una cantidad fija de horas mensuales. El equipo debe consumir las horas contratadas cada mes, y el sistema rastrea el cumplimiento.

Crear un contrato DD

CampoDescripcionValidacion
ClienteCliente al que pertenece el contratoRequerido
NombreNombre descriptivo del contratoRequerido
Horas MensualesCantidad de horas contratadas por mesRequerido, entero > 0
Fecha InicioCuando comienza la vigencia del contratoRequerido
Fecha FinCuando finaliza el contratoRequerido, posterior a fecha inicio
EstadoActivo, Pausado, FinalizadoDefault: Activo

Estados del contrato

Proyectos dentro del contrato

Cada contrato DD puede tener multiples proyectos. Los proyectos permiten organizar el trabajo del contrato y seguir el avance por separado. Cada proyecto DD comparte el mismo sistema de 8 fases que una OT (ver seccion 10):

Fases del proyecto DD (identicas a las de OT)

Pendiente → Discovery → Relevamiento → Refinamiento → Implementacion → Control de Calidad → UAT → Completa

Solo las 6 fases intermedias reservan capacidad. Pendiente y Completa no. El flag Cancelada (switch) tambien aplica: al cancelar, el proyecto deja de reservar, y queda oculto por defecto en la cola (toggle "Ver cancelados" para verlos).

CampoDescripcion
NombreNombre del proyecto
DescripcionDescripcion del alcance
PrioridadOrden de prioridad (numerico, menor = mas prioritario)
Fase actualFase del ciclo en la que se encuentra (columna "Estado" del listado muestra el nombre de la fase actual: Discovery, Relevamiento, ..., Completa).
CanceladaSwitch bool. Reemplaza al valor legacy "Cancelado" del Estado.
Distribucion por Area (%)Que porcentaje de las horas del contrato se asigna a cada area
Los contratos DD siguen reservando su bolsa mensual mientras Estado = "Activo". La nueva regla de reserva por fase (Pendiente/Completa no reservan) aplica al ciclo de vida individual de OTs y proyectos DD, no al pool del contrato.

Cola de proyectos DD — modal grande (nuevo)

Dentro de /ContratosDD/Details, la cola de proyectos DD se redisenó. Antes cada fila mostraba el stepper de fases inline + un form de edicion inline colapsable. Ahora la fila es compacta — muestra prioridad + nombre + estado (nombre de fase actual) + horas + chevron. Al hacer click en la fila se abre un modal grande con todo el detalle del proyecto:

El popover de comentarios y el modal de "editar fechas de fase" se apilan correctamente por encima del modal grande de proyecto DD (mecanica generica .modal-stacked con z-index 1140). Tambien aplica al modal de confirmacion (#confirmModal) cuando se dispara desde adentro del modal DD.

Barra de consumo en el listado

En la vista de listado de contratos DD, cada contrato muestra una barra de progreso que indica cuantas horas se han consumido en el mes actual respecto al total contratado.

Logica de color de la barra de consumo
Contrato A
198 / 360 hs
Contrato B
90 / 300 hs
Contrato C
27 / 180 hs
Logica: Se compara el % de horas consumidas contra el % de dias habiles transcurridos en el mes.
Verde = al ritmo esperado (consumo ≥ dias%)  |  Amarillo = por debajo del ritmo  |  Rojo = muy por debajo (diferencia > 20%)

Vista de detalle del contrato DD

El detalle del contrato es un dashboard completo con multiples visualizaciones:

KPIs del mes actual

Dashboard del contrato DD
Horas Contratadas
360
Horas Consumidas
198
Dias Transcurridos
12 / 22
Proyeccion
363 hs

Semaforo del contrato

El semaforo compara el ritmo de consumo actual con el ritmo necesario para completar las horas contratadas:

Grafica historica de 6 meses

Un grafico de barras con los ultimos 6 meses mostrando horas contratadas (linea) vs. horas consumidas (barras). Permite identificar tendencias de sub o sobre consumo.

Proyectos con drag-and-drop

Los proyectos dentro del contrato se pueden reordenar arrastrando (drag & drop) para ajustar prioridades visualmente.

Prorracion de horas mensuales a sprints

Internamente, TeamOrbit convierte las horas mensuales del contrato en horas por sprint para las proyecciones de capacidad. La prorracion se basa en los dias habiles que cada sprint cubre dentro de cada mes:

Ejemplo de prorracion

Contrato: 360 hs/mes

Sprint 15: 01/Mar - 21/Mar (15 dias habiles en marzo)

Marzo tiene 22 dias habiles totales.

Proporcion: 15 / 22 = 0.6818

Horas DD prorrateadas al Sprint 15: 360 x 0.6818 = 245.5 hs

12. Roadmap

Los roadmaps representan iniciativas estrategicas internas del equipo: nuevas funcionalidades del producto, mejoras tecnicas, refactorings mayores, etc. No estan vinculados a un cliente especifico.

Campos del roadmap

CampoDescripcionRequerido
NombreNombre de la iniciativaSi
DescripcionDetalle del alcanceNo
Fecha EntregaFecha estimada de finalizacionNo
PrioridadNivel de prioridad (numerico, menor = mas prioritario)Si
EstadoPendiente, EnProgreso, CompletadoDefault: Pendiente
Estimaciones por AreaHoras estimadas por cada area involucradaAl menos un area

Tareas del roadmap

Cada roadmap puede tener multiples tareas que descomponen el trabajo en piezas mas granulares:

CampoDescripcion
NombreNombre de la tarea
DescripcionDetalle del trabajo
PrioridadOrden de prioridad
Fecha EntregaDeadline de la tarea
EstadoPendiente, EnProgreso, Completado
Estimaciones por AreaHoras estimadas por area para esta tarea

Gestion de tareas

Desde el detalle del roadmap:

Vista de detalle

El detalle del roadmap muestra:

Las horas se pueden registrar contra el roadmap en general o contra una tarea especifica. En el Registro de Horas, al seleccionar tipo "Roadmap", se elige el roadmap y opcionalmente la tarea.

13. Soporte Dev

Soporte Dev es el modulo para dar seguimiento al trabajo reactivo del equipo: incidencias de produccion, certificacion, bug fixes, consultas tecnicas, etc. A diferencia de los otros tipos de proyecto, el soporte no se planifica — se registra a medida que ocurre.

Dashboard de Soporte

La pantalla principal de Soporte Dev es un dashboard con 6 visualizaciones:

1. Horas por Categoria (barras)

Grafico de barras horizontales mostrando cuantas horas se consumieron en cada categoria de soporte (ej: Incidencias Produccion, Certificacion, Consultas, etc.).

2. Horas por Persona (top 10)

Barras horizontales con las 10 personas que mas horas de soporte registraron en el periodo seleccionado.

3. Tendencias temporales

Grafica de lineas que muestra la evolucion de horas de soporte en el tiempo. Se puede alternar entre vistas: diaria, semanal, mensual y anual.

4. Evaluacion de incidencias (torta)

Grafico circular (pie/doughnut) que muestra la proporcion de incidencias evaluadas como "Bien Elevada" vs "Mal Elevada". Permite medir la calidad de la elevacion de tickets.

Dashboard de Soporte Dev — KPIs
Total Horas
127
Incidencias
43
Bien Elevadas
78%
Mal Elevadas
22%

Gestion de categorias

Las categorias de soporte se administran desde Soporte Dev > Categorias. Cada categoria tiene:

Filtros

El dashboard de soporte permite filtrar por:

Tabla de detalle expandible

Debajo de las graficas, una tabla muestra el detalle agrupado por categoria. Cada fila de categoria se puede expandir para ver los registros individuales con: fecha, persona, horas, work item, titulo, evaluacion.

Tabla de Mal Elevadas

Una tabla dedicada muestra las incidencias evaluadas como "Mal Elevada", con el motivo registrado por la persona. Esto permite al equipo de soporte analizar los patrones y mejorar la calidad de la elevacion de tickets.

14. Versiones (Estabilizacion)

Las versiones representan releases del producto (v4.5, v4.5.5, v4.6, etc.) y su periodo de estabilizacion posterior al lanzamiento. Las horas de estabilizacion se registran contra una version para medir el esfuerzo de post-release.

Campos de la version

CampoDescripcionRequerido
NombreNombre de la version (ej: v4.5, v4.6.1)Si
DescripcionQue incluye esta versionNo
Fecha LiberacionCuando se libero o se planea liberarNo
EstadoEn Estabilizacion, Estabilizada, ProduccionDefault: En Estabilizacion
ObservacionesNotas adicionalesNo
ActivaSi la version esta vigenteSi (default: Si)

Estados de la version

Vista de detalle de la version

El detalle de una version incluye un mini-dashboard con:

KPIs

KPIs de la version
Total Horas
89
Incidencias
23
Personas
7

Graficas

Tablas

Como registrar horas de estabilizacion

En el Registro de Horas, seleccionar tipo "Estabilizacion" y elegir la version activa contra la cual registrar. Las horas se suman automaticamente al dashboard de la version.

15. Reservas de Capacidad

Las reservas de capacidad permiten apartar un porcentaje de la capacidad global del equipo para Soporte, Estabilizacion, Ad Hoc, o categorias dinamicas definidas por el usuario, distribuido entre las areas. Esto asegura que siempre haya un margen disponible para trabajo reactivo o iniciativas puntuales.

Concepto

La idea es simple: si el equipo tiene 2000 horas/sprint de capacidad neta y se configura una reserva del 20% para Soporte, entonces 400 horas quedan "apartadas" y no se consideran como capacidad libre para nuevos proyectos DD, OT o Roadmap.

Crear una reserva

CampoDescripcionValidacion
ConceptoSoporte, Estabilizacion, Ad Hoc o una categoria dinamica creada en su ABMRequerido
% GlobalPorcentaje de la capacidad total del equipo a reservar (ej: 20%)Requerido, > 0
Fecha DesdeInicio de la vigencia de la reservaRequerido
Fecha HastaFin de la vigenciaRequerido, posterior a Fecha Desde
ActivaSi la reserva esta activaDefault: Si
ObservacionesNotas adicionalesOpcional

Distribucion por area

Despues de definir el porcentaje global, se debe distribuir ese porcentaje entre las areas del equipo. La distribucion indica que proporcion de las horas reservadas absorbe cada area.

Regla critica: La suma de los porcentajes de distribucion por area debe ser exactamente 100%. El formulario valida esto en tiempo real y no permite guardar si no se cumple.
Ejemplo: Reserva de 20% para Soporte
Area% de la reservaCalculo (sobre 2000 hs/sprint)Horas reservadas
Canal Web30%2000 x 20% x 30%120 hs
Canal App25%2000 x 20% x 25%100 hs
QA30%2000 x 20% x 30%120 hs
Platform15%2000 x 20% x 15%60 hs
TOTAL100%400 hs

Impacto en el sistema

Las reservas vigentes impactan multiples modulos:

Codificacion de color en el listado

Formularios side-sheet — botón Guardar

El formulario de creación/edición de reservas se abre como side-sheet (panel lateral). El footer del side-sheet (con el botón Guardar) se promociona automáticamente fuera del <form> para pegarse al borde inferior — antes esto dejaba el botón "huérfano" y no submitía. Ahora al mover el footer se asigna automáticamente form={id} a los submit buttons, asegurando que Guardar siempre esté vinculado al formulario correcto. La mecánica es genérica: aplica a cualquier side-sheet con esa estructura.

Auditoria (vista de detalle)

En el detalle de cada reserva, la seccion de auditoria muestra sprint por sprint la comparacion entre las horas que se reservaron vs. las horas que realmente se consumieron en el concepto correspondiente (Soporte o Estabilizacion):

Auditoria de reserva — Sprint a sprint
SprintHoras ReservadasHoras ConsumidasCumplimiento
Sprint 12400 hs385 hs
96%
Sprint 13400 hs420 hs
105%
Sprint 14400 hs310 hs
78%

15b. Categorias Dinamicas de Reserva

Las categorias dinamicas son reservas de capacidad definidas por el usuario que se comportan exactamente igual que las fijas (Soporte, Estabilizacion, AdHoc), pero permiten reservar espacio para iniciativas puntuales que no entran en esas tres categorias. Por ejemplo: "Estimar WO", "Capacitacion masiva", "Hackathon", "OKRs Q3", etc.

ABM de categorias dinamicas

En Reserva Capacidad > Categorias dinamicas se administran las categorias. Cada una tiene:

CampoDescripcion
NombreUnico. Identifica la categoria en reservas, registros de horas y dashboards.
ColorColor hexadecimal para los graficos del dashboard.
DescripcionOpcional. Para que sirve esta categoria.
ActivaSi se desactiva ya no aparece en el selector de tipo al registrar horas. Las reservas existentes siguen contandose.
Solo se puede eliminar definitivamente una categoria que no tiene reservas ni horas registradas. Si tiene historia, desactivala en su lugar para preservar el dato.

Reservar capacidad para una categoria dinamica

Igual que para Soporte/Estabilizacion/AdHoc, se crea una reserva desde Reservas de Capacidad > Nueva Reserva. En el selector de Concepto aparece "Categoria dinamica..." que despliega un dropdown con las categorias activas. El resto del formulario (% global, periodo, distribucion por area) es identico.

Registrar horas contra una categoria dinamica

En el Registro de Horas, al agregar una fila, el selector de Tipo incluye "Categoria dinamica". Cuando se elige, el selector de proyecto trae solo las categorias dinamicas activas con reserva > 0% vigente en el sprint actual. Si una categoria no tiene reserva activa, no se puede registrar horas contra ella.

Impacto en el sistema (identico a las fijas)

Dashboard de categorias dinamicas

En Reserva Capacidad > Dashboard de Categorias Dinamicas hay una vista dedicada con filtro por categoria y por sprint. Muestra:

Ejemplo: categoria "Estimar WO"

Sprint actual: 60h reservadas, 47h consumidas, 12 registros, 78% de cumplimiento. Tres areas absorben la carga: Canal Web 40%, QA 35%, Platform 25%. Cuatro personas registraron horas; el lider de la iniciativa con 18h.

16. Registro de Horas

El Registro de Horas es la pantalla central donde cada persona registra como distribuyo su tiempo durante la semana. Utiliza una grilla semanal (Lunes a Viernes) donde las filas son proyectos y las columnas son dias.

Grilla semanal paso a paso

1
Seleccionar persona: En la parte superior, elegir la persona para la que se van a registrar horas (por defecto, el usuario logueado si esta vinculado a una persona).
2
Seleccionar semana: Usar los botones de navegacion (< >) para moverse entre semanas. Se muestra el rango Lunes-Viernes de la semana seleccionada.
3
Agregar proyectos: En la parte inferior de la grilla hay un selector con dos campos:
  • Tipo: DD, OT, Roadmap, Soporte o Estabilizacion.
  • Proyecto: Segun el tipo, se muestra la lista de proyectos disponibles (proyectos DD activos, OTs en progreso, Roadmaps activos, Versiones en estabilizacion, o "Soporte" generico).
Al hacer clic en "Agregar", se crea una nueva fila en la grilla.
4
Registrar horas: Hacer clic en una celda (interseccion de proyecto x dia) y escribir las horas. Las horas se guardan automaticamente al salir de la celda (on blur). No hay boton de guardar.
Grilla de registro semanal
ProyectoTipoLun 3Mar 4Mie 5Jue 6Vie 7Total
Proyecto Alpha DD 45345 21
OT-042 — Migracion OT 32432 14
Soporte Dev SOP 2 2
Total diario 77797 37

Flujo especial para Soporte Dev

Las horas de soporte requieren informacion adicional. Al hacer clic en una celda de hora de tipo Soporte, se abre un modal con los siguientes campos:

Modal de registro de Soporte
Registrar hora de Soporte — Jueves 6
CampoValorObservacion
CategoriaIncidencia ProduccionRequerido
Work Item54321Requerido (ID de Azure DevOps)
TituloError en proceso de pagoSe auto-completa al ingresar el WI
Horas2Requerido
EvaluacionBien Elevada / Mal ElevadaOpcional (indica si el ticket fue bien categorizado)
Motivo (si mal elevada)"No era un bug, era un cambio de config"Solo visible si Evaluacion = Mal Elevada
Para Soporte, el Work Item de Azure DevOps es obligatorio. Al ingresar el ID, el sistema valida que exista y auto-completa el titulo. El titulo es editable si se desea ajustar.

Boton de detalle

Para todos los tipos de proyecto (no solo Soporte), cada fila tiene un icono de detalle (). Al hacer clic, se puede agregar:

Auto-guardado

Las horas se guardan automaticamente al salir de cada celda (evento "blur"). No hay un boton de guardar explicito. Si hay un error de conexion, la celda se resalta en rojo y se puede reintentar.

Panel de Distribucion

Un panel lateral o inferior muestra:

Panel de Tracking

Visualizaciones de seguimiento personal:

Vista del Equipo

Tabla de resumen del equipo completo:

Vista del equipo — Cumplimiento semanal
PersonaAreaHoras EsperadasHoras RegistradasCumplimiento
Maria GarciaCanal Web24.5 hs23.0 hs94%
Juan LopezCanal Web35.0 hs35.0 hs100%
Pedro GomezQA35.0 hs28.0 hs80%
Las horas esperadas se calculan como: horas netas/dia x dias habiles de la semana (considerando feriados).

Tambien incluye un resumen por area con totales de horas esperadas vs. registradas.

17. Licencias

Las licencias representan periodos en que una persona no esta disponible para trabajar (vacaciones, enfermedad, estudios, etc.). El sistema las descuenta automaticamente de la capacidad disponible del equipo, tanto en el sprint actual como en proyecciones futuras.

Tipos de licencia

Configurables desde Configuracion → Tipos de Licencia. Por defecto el sistema incluye:

Se pueden agregar nuevos tipos o desactivar los existentes (no se eliminan, solo se ocultan para mantener el historico).

Cargar una licencia

1
Ir a Licencias en el menu lateral y hacer clic en "Nueva Licencia".
2
Seleccionar la persona y el tipo de licencia.
3
Definir fecha de inicio y fecha de fin.
4
Indicar si es dia completo (descuenta el dia entero) o parcial (descuenta una cantidad de horas especifica).
5
Agregar observaciones opcionales y guardar.

Tipos: dia completo vs parcial

TipoQue descuentaEjemplo
Dia completoTodos los dias habiles entre fecha inicio y fin (excluye sabados, domingos y feriados)Vacaciones del 14/04 al 18/04 → 5 dias habiles descontados de la capacidad
ParcialUna cantidad especifica de horas en una fecha concreta (no cuenta como "dia"). Solo cuenta si es dia habil.3 hs de licencia el martes para un tramite → 3 hs descontadas, el dia sigue siendo habil

Como impactan las licencias en la capacidad

Las horas de licencia se muestran como una categoria separada en las graficas de capacidad del Dashboard, Simulador y Sprint Details, junto a DD, OT, Roadmap, Soporte y Estabilizacion. Esto permite ver visualmente cuanta capacidad se pierde por ausencias.

Calculo de horas de licencia: Se usan las horas NETAS de la persona (descontando overhead). Por ejemplo, si una persona tiene 5.6 hs/dia netas y toma 3 dias de vacaciones que caen en el sprint, el sistema descuenta 16.8 hs de la capacidad disponible para proyectos. Esto es porque la licencia representa lo que la persona NO aporta a proyectos durante esa ausencia.

Listado y filtros

La pantalla principal de Licencias muestra una tabla con todas las licencias activas y futuras, con filtros por persona, tipo y rango de fechas. Se pueden editar o eliminar licencias antes de su fecha de inicio.

Recomendacion: Cargar las licencias con la mayor antelacion posible para que el Simulador y los Reportes de Cumplimiento reflejen correctamente la disponibilidad real del equipo en sprints futuros.

18. Sprints

Los sprints son la unidad de medida del tiempo interno del equipo. Toda la planificacion, el registro de horas y las proyecciones se organizan en torno a sprints. Por defecto, cada sprint dura 3 semanas (configurable).

Gestion de sprints

Crear siguiente sprint

Un solo clic en el boton "Crear Siguiente Sprint". El sistema calcula automaticamente:

Editar sprint

Solo se pueden editar sprints con estado Activo. Se puede modificar:

Cerrar sprint

Al cerrar un sprint, el sistema:

1
Cambia el estado del sprint a "Cerrado".
2
Registra la fecha de cierre.
3
Genera un snapshot de capacidad — una foto congelada de cada persona activa del equipo en ese momento.

Reabrir sprint

Si se necesita corregir datos despues del cierre, se puede reabrir un sprint cerrado. Al reabrir:

Al cerrar de nuevo, se genera un snapshot nuevo que reemplaza al anterior.

Regenerar snapshot

Permite volver a tomar la foto de capacidad sin necesidad de reabrir/cerrar. Util si se corrigieron datos de personas y se quiere actualizar el snapshot.

Auto-cierre

Al acceder al Dashboard o al Simulador, si hay sprints cuya fecha de fin ya paso y siguen en estado Activo, el sistema los cierra automaticamente y genera su snapshot. Esto asegura que ningun sprint quede abierto indefinidamente.

Que contiene un snapshot

Para cada persona activa del equipo al momento del cierre, se guarda:

Datos congelados en el snapshot
DatoDescripcion
PersonaIdReferencia a la persona
Area PrincipalEl area donde estaba asignada
Carga HorariaCompleto, MedioTiempo o Personalizado
Horas DiariasValor personalizado (si aplica)
% OverheadPorcentaje de overhead en ese momento
Horas Diarias NetasValor calculado y congelado (horas brutas - overhead)
ActivoSi estaba activa en ese momento
RolesLista de roles con % de dedicacion
Areas SecundariasLista de areas secundarias asignadas
Los snapshots son inmutables una vez generados (salvo regeneracion explicita). Si despues de cerrar un sprint se modifica el overhead de una persona, el sprint cerrado no se ve afectado — conserva los valores historicos.

Vista de detalle del sprint

La pagina de detalle de un sprint cerrado muestra:

KPIs del sprint

Detalle de sprint cerrado
Personas
25
Capacidad Neta
2,318 hs
Horas Consumidas
937 hs
% Uso
40.4%

Graficas

Tablas

Informe de Cierre: Planificado vs Ejecutado

Al cerrar un sprint, ademas del snapshot de capacidad, el sistema genera dos elementos historicos:

1. Snapshot Comprometido por Area

Para cada area, congela el breakdown completo de horas comprometidas al momento del cierre: capacidad, DD, OT, Roadmap, Soporte, Estabilizacion, Licencias y Libre. Esto permite ver mas adelante como estaba planificado el sprint.

2. Saldos OT por Sprint y Area

Para cada Orden de Trabajo activa, registra cuanto se planifico ejecutar y cuanto se ejecuto realmente, desglosado por area. La formula del planificado es: EstimacionNeta / SprintsAbarcados (sin arrastre).

Informe de Cierre — Ejemplo (extracto)
Proyecto / ClienteAreaPlanRealCumpl.Saldo
OT-123 — Migracion API (Cliente Alpha)12010588%+15
Backend807290%+8
Frontend403383%+7

Como interpretar el saldo

Sin arrastre de horas no ejecutadas: Si un sprint queda con horas sin ejecutar de una OT, esas horas NO se suman al sprint siguiente. Cada sprint refleja la intencion original (estimacion / sprints abarcados). El historico de saldos permite ver donde el equipo se atrasa o adelanta en cada proyecto.

Historico en OT Details

En el detalle de cada OT (menu Ordenes de Trabajo → ver detalle), hay una nueva seccion "Historico de Cumplimiento por Sprint" que muestra sprint a sprint cuanto se planifico, cuanto se ejecuto y el saldo, agrupado por area.

18b. Incidencias UAT

Sistema de gestión de incidencias UAT reportadas por clientes contra proyectos en curso (OT o DD). Reemplaza el ticketing por email para tener trazabilidad, sign-off explícito y cómputo automático de capacidad.

Ciclo de vida

  1. El cliente reporta una incidencia desde el portal /customers. Ingresa título, descripción, severidad (Bloqueante/Alta/Media/Baja), tipo (Bug/Mejora/Duda/Otra), versión afectada, módulo afectado y puede adjuntar hasta 5 archivos × 25MB.
  2. El sistema asigna automáticamente al PM del cliente (campo PM asignado en Clientes) y aplica horas estimadas default del setting HorasEstimadasDefaultPorTicket.
  3. El PM revisa, ajusta estimación y distribución por área (heredada de la OT/DD pero editable) y mueve el estado: Nueva → EnAnalisis → EnDesarrollo → ListaRetest → Resuelta.
  4. Cuando llega a Resuelta, el cliente hace sign-off desde su portal: cierra (Cerrada) o reabre con motivo.
  5. Bankingly puede Rechazar o Diferir con motivo si la incidencia no aplica.

Visibilidad de proyectos al cliente

El cliente solo ve proyectos cuya fase actual está en el setting EstadosVisiblesEnPortal (default: Control de Calidad, UAT, Completa). Cuando un proyecto está en Construcción no aparece en el portal.

Capacidad comprometida

Las horas estimadas de una incidencia abierta (Nueva, EnAnalisis, EnDesarrollo, ListaRetest, Resuelta) se distribuyen por área (IncidenciaArea.Porcentaje) y se cuentan como capacidad comprometida del sprint actual. Cuando la incidencia se cierra/rechaza/difiere, las horas se liberan automáticamente.

Conversación

En el detalle hay dos tipos de comentario:

Adjuntos

Almacenados en el filesystem del servidor (App_Data/adjuntos-incidencias/{IncidenciaId}/). Tipos permitidos: pdf, png, jpg, jpeg, gif, webp, docx, xlsx, pptx, txt, csv, log, zip. Máximo 25MB por archivo y 5 por upload.

Pantalla interna

Acceso desde Seguimiento → Incidencias UAT. Lista filtrable por cliente, estado, severidad, asignado y búsqueda libre. El detalle permite cambiar estado, reasignar, ajustar horas/distribución por área y agregar comentarios públicos o internos.

Alta manual desde el interno (nuevo)

Arriba a la derecha de /Incidencias hay un botón "Nueva incidencia" que abre un side-sheet. Permite al equipo interno reportar una incidencia UAT en nombre de cualquier cliente activo. Útil para tickets llegados por fuera del portal (Slack, mail, llamada, teams, etc.).

Campos del side-sheet:

Al guardar:

18c. Dashboard de Calidad

Vista de métricas sobre las incidencias UAT a lo largo del tiempo. Permite cambiar el rango temporal (30/90/180/365 días).

KPIs principales

Distribuciones

Gráficos de barras por severidad y por tipo, y tabla por cliente que muestra totales, abiertas, bloqueantes y horas estimadas pendientes.

18d. Usuarios Cliente

Administración de las cuentas del portal /customers. Cada usuario pertenece a UN cliente y se identifica por email (único global). No usa contraseña — login por OTP.

Crear usuario

Botón Nuevo usuario. Pedir: cliente, email corporativo y nombre completo. El usuario podrá loguear desde /customers/login inmediatamente — el OTP se envía al hacer login, no al crearlo.

Desactivar

El botón rojo desactiva sin borrar. Un usuario inactivo no puede generar OTPs ni autenticarse. Los registros (incidencias creadas, comentarios) se conservan con su nombre.

Notificaciones internas (opt-in por proyecto)

En /Perfil/Notificaciones, cada usuario interno Bankingly puede:

La pantalla se organiza en dos tabs:

Los checkboxes son opt-in — no vienen pre-marcados. Cada usuario elige a qué proyectos concretos suscribirse. La lógica de despacho al crear una incidencia UAT es:

El PM asignado al cliente (campo en Clientes) siempre recibe, sin necesidad de suscripción.

Deprecado: antes cada usuario podía "suscribirse al cliente entero" desde /Clientes/Edit. Esa sección de "gestión de suscriptos" fue removida: la suscripción ahora vive a nivel proyecto en /Perfil/Notificaciones, no a nivel cliente en el ABM de Clientes.

P1. Portal de Clientes — visión general

Ambiente separado bajo /customers que usan los UsuarioCliente para reportar y dar seguimiento a incidencias UAT. El portal está visualmente diferenciado:

El portal está aislado: un usuario interno Bankingly que pega /customers es redirigido a su propio dashboard; un UsuarioCliente que intenta entrar a cualquier ruta interna recibe 404 (no se revela la existencia del backoffice). Las consultas EF aplican un Global Query Filter que limita los datos al ClienteId del usuario logueado, garantizando aislamiento aún si hay bug en el código de aplicación.

P2. Login con OTP por email

El cliente entra a /customers/login e ingresa su email corporativo. Recibe un código de 6 dígitos por email (vence en 10 minutos). Lo ingresa en la siguiente pantalla. Tras validar, se crea sesión con cookie de 8 horas y se aplica IP binding: si la IP cambia entre requests, la sesión se invalida automáticamente.

Anti-abuso

P3. Vista interna del portal (Bankingly)

Los usuarios internos Bankingly también acceden al portal /customers desde el sidebar de Orbit (link Portal Clientes). El portal detecta automáticamente que es un user interno y muestra una vista cross-cliente:

El interno puede pasar a "modo cliente" eligiendo un cliente del selector — verá lo mismo que ve ese cliente (proyectos visibles, sólo comentarios públicos del thread, etc.). Esto es útil para validar la experiencia del cliente o asistirlo por teléfono.

P4. Flujo del cliente

  1. En el Dashboard ve sus proyectos visibles (OTs y DDs en fase Control de Calidad/UAT/Completa) y un resumen de incidencias.
  2. Click en Reportar incidencia: selecciona proyecto, título, severidad, tipo, descripción y opcionalmente adjuntos.
  3. En el detalle de cada incidencia ve la conversación pública (sus comentarios + los del equipo Bankingly), puede agregar nuevos comentarios y adjuntos.
  4. Cuando la incidencia llega a Resuelta, aparece el botón Hacer sign-off que la cierra. Si vuelve a aparecer el problema, usa Reabrir con motivo.
  5. Recibe email automático ante: creación (PM), cambio de estado, comentarios públicos del equipo.

Herramientas: Organizacion Semanal

Tablero kanban para definir y dar seguimiento a las promesas semanales del equipo de tecnologia. Pensado para usar en la reunion de lideres de cada lunes (definir prioridades) y la de cada viernes (revisar lo cumplido). Se accede desde el menu lateral Herramientas → Tools → Organizacion Semanal.

Concepto general

Estados disponibles

Navegacion: sprint y semanas

Camino de las Promesas

Pista visual horizontal arriba del kanban con el flujo Pendiente → Prioridad → OnHold → Entregada. Cada promesa aparece como un token (con la inicial del owner) en la etapa donde esta. Hover muestra detalle, click abre el modal de edicion. Las promesas Canceladas quedan fuera de pista (badge a la derecha indicando cuantas son).

Prioridades por persona (acordeon)

Widget colapsado por default (se expande al click). Lista las personas activas agrupadas por area principal, con el conteo de promesas en estado Prioridad de la semana calendario actual. El lider de cada area (definido en el ABM de Areas) aparece destacado con una estrella ambar. El header siempre visible muestra un pill resumen: "N prioridades · X/Y con asignacion · Z en 0". Personas con 0 prioridades aparecen con un badge ambar para detectarlas a simple vista.

Filtros

Kanban: 5 columnas

Orden de izquierda a derecha (camino al objetivo): Pendientes → Prioridad → On Hold → Canceladas → Entregadas. Cada card muestra titulo, descripcion (si tiene), avatares apilados de los owners, y un badge naranja x N si fue movida.

Acciones por card (al hover)

Drag-and-drop entre columnas

Podes arrastrar una card de un estado a otro para cambiar su estado. Las promesas movidas (ghost) no se pueden arrastrar.

Mover una promesa: copia + ghost

Cuando moves una promesa (sea a la proxima semana o al proximo sprint), el sistema:

  1. Marca la promesa original como movida (ghost). Queda visible en su semana original como historico, en gris rayado, no editable, con un badge naranja "MOVIDA" y boton "Deshacer".
  2. Crea una copia activa en la semana destino, con el mismo titulo, descripcion, owners y estado, e incrementa VecesMovida.
  3. Cada movimiento penaliza al owner con -2 puntos (igual que cancelarla).

Esto permite, al pararse en una semana pasada, ver donde "murio" cada tarea que se arrastro.

Deshacer un movimiento

Boton de undo violeta disponible tanto en la copia activa como en el ghost. Borra la copia y reactiva el ghost. Si la copia ya fue movida nuevamente (cadena de movimientos), bloquea con mensaje claro: hay que deshacer los movimientos posteriores primero.

Multi-owner

Una promesa puede tener 0, 1 o varios owners. En el modal de edicion, el campo Owners es un multi-select con buscador (Tom Select). Si una promesa tiene varios owners, suma/resta puntos a todos por igual y aparece en la card de cada uno en el panel personal.

Mis Promesas del Sprint (panel derecho)

Espejo personal por persona, ordenado alfabeticamente (no es ranking). Para cada persona muestra:

Calculo de salud y puntos

Solo cuentan las promesas con semana ya vencida (hoy es sabado o despues del viernes de esa semana). Las activas o futuras quedan "en curso".

Recordatorio flotante al loguearse

Si la persona logueada es owner de alguna promesa Pendiente o Prioridad para la semana calendario actual, aparece un toast en la esquina inferior derecha con la lista. Se puede cerrar con la X; reaparece en el siguiente login o pasadas 24 horas (si la sesion queda viva). Para que esto funcione, la persona tiene que tener cargado su email Microsoft 365 en el ABM de Personas (ver seccion 5).

Todas las acciones (crear, editar, mover, deshacer, eliminar, drag-and-drop) actualizan el contenido via AJAX, sin recargar la pagina entera.

Herramientas: Pre-planning

Tablero compartido para postular y priorizar candidatos al proximo sprint. Pensado para una instancia donde una persona comparte pantalla y el resto del equipo discute en vivo qué entra y qué no. Se accede desde Herramientas → Pre-planning en el menu lateral.

Concepto

Header con sprint y capacidad

Pool por area (5 columnas)

Cada area tiene su propia columna con color distintivo (Delivery azul, Soporte rojo, Comercial verde, Tecnologia violeta, Otras gris). Cada candidato es una card con: titulo, area, horas estimadas, link al work item de Azure DevOps si aplica.

Acciones por card

Crear candidato manual

Boton + Nuevo candidato (atajo Ctrl + N). Modal con titulo, area, horas estimadas opcional y descripcion. Solo el titulo es obligatorio.

Importar de Azure DevOps

Si Azure DevOps no esta configurado en este ambiente (PAT en appsettings), los botones de import quedan ocultos pero podes seguir creando candidatos manuales.

Drag-and-drop

UX para "una persona comparte pantalla"

Histórico

Cada pre-planning queda guardado por sprint y se accede en cualquier momento desde el selector de sprint del header (lista los 15 sprints más cercanos). Los candidatos quedan persistidos para consulta futura. El campo EstadoFinal está reservado para tracking posterior (Completado / Cancelado / Recandidateado / etc.).

Refresco AJAX

Todas las acciones (crear / editar / eliminar candidato, importar, drag-drop, postular al sprint, crear batalla) actualizan el contenido del bloque #pp-content-area sin recargar la página entera, evitando flash visual.

Batalla — votación anónima en tiempo real

Cuando en la instancia no se logra acuerdo sobre la prioridad relativa de varios candidatos, el presenter dispara una batalla: postula 2+ candidatos, define una duración (10–600 s) y opcionalmente un nombre. El sistema genera una URL pública corta (/Batalla/{slug}) y muestra un panel "presenter" en una pestaña aparte.

Mecánica

  1. El presenter inicia la batalla con el botón "Iniciar". El estado pasa a "EnCurso" pero hay un countdown de preparación de 5 segundos antes de habilitar el voto, para que los participantes alcancen a entrar al URL.
  2. Los votantes acceden al URL público (no requiere login), ingresan su nombre (validación: único por batalla, case-insensitive), y reciben un token de sesión via cookie HttpOnly + localStorage.
  3. Cuando llega FechaInicio, los votantes pueden arrastrar los candidatos para ordenarlos del 1 al N (1° = favorito).
  4. Al confirmar el voto, se asignan puntos: 1° = N pts, 2° = N-1, ..., último = 1. Cada votante puede votar una sola vez (cookie + nombre único).
  5. El panel presenter muestra en tiempo real (polling 1.5 s):
    • Pista de carrera con barra animada por candidato (gana el de más puntos).
    • Lista de votantes con estado: amarillo "conectado" / verde "votó".
    • Estadísticas: conectados / votaron / pendientes.
    • Alerta ámbar si una IP entra con varios nombres (sospecha de duplicado).
    • Timer regresivo grande tipo videojuego.
  6. Cuando se cumple el tiempo (o el presenter cierra manualmente) aparece el podio con oro/plata/bronce. Cada lugar tiene un botón "Postular al sprint" que marca a ese candidato como seleccionado en el pre-planning.

Anti-fraude (capas)

Histórico de batallas

Cada batalla queda asociada al pre-planning. En la pantalla principal aparece un listado con chips (estado, duración, fecha) y link directo al panel presenter. Permite revisitar resultados de batallas pasadas.

19. Reportes

TeamOrbit incluye 8 reportes predefinidos para analisis de capacidad, cumplimiento, productividad y tendencias. Todos los reportes se pueden imprimir o exportar a PDF usando el boton del navegador.

19.1 Resumen de Capacidad

Unidad: Sprint. Filtro: Seleccionar sprint.

Muestra la capacidad total del equipo vs. la capacidad comprometida, desglosada por area y por tipo de proyecto.

19.2 Cumplimiento de Horas

Unidad: Sprint. Filtro: Seleccionar sprint.

Compara las horas esperadas vs. las horas realmente registradas por cada persona del equipo.

Reporte de Cumplimiento — Ejemplo
PersonaAreaHoras EsperadasHoras RegistradasCumplimiento
Maria GarciaCanal Web73.5 hs71.0 hs96.6%
Juan LopezCanal Web105.0 hs105.0 hs100.0%
Pedro GomezQA105.0 hs88.0 hs83.8%
Ana MartinezCanal App98.0 hs102.0 hs104.1%

Las horas esperadas se calculan como: horas netas/dia (del snapshot si el sprint esta cerrado, o actuales si esta activo) x dias habiles del sprint.

19.3 Soporte Dev

Unidad: Sprint. Filtro: Seleccionar sprint.

Detalle de todas las horas de soporte registradas durante el sprint:

19.4 DD Mensual

Unidad: Mes (excepcion — es el unico reporte mensual, porque es la unidad de facturacion del cliente). Filtro: Seleccionar anio y mes.

Reporte orientado al cliente que muestra el consumo mensual de horas DD por contrato:

El reporte DD Mensual se mantiene en meses porque es la unidad de facturacion del cliente, a diferencia del resto de reportes que usan sprints.

19.5 OT Avance

Filtro: Seleccionar OT o ver todas las activas.

Reporte de avance de ordenes de trabajo:

19.6 Cumplimiento y Distribucion

Acceso: Reportes → "Cumplimiento y Distribucion".

Este es el reporte mas potente para validar si el equipo esta ejecutando lo que se planeo, no solo en cantidad de horas sino tambien en la distribucion de la carga entre proyectos y areas.

Filtros

KPIs principales

KPIs del reporte
Planificado
2,340 hs
Ejecutado
2,180 hs
Cumplimiento
93.2%
Saldo
+160

Tres niveles de distribucion

  1. Por Tipo — Barras agrupadas comparando DD, OT, Roadmap, Soporte, Estabilizacion. Permite ver si la mezcla de tipos respeta lo planeado.
  2. Por Proyecto — Dos doughnut comparativos lado a lado: distribucion planificada vs distribucion real. Ideal para detectar desbalance: "se planifico 30% para OT-X y se ejecuto 50%".
  3. Por Area — Barras horizontales agrupadas que muestran cumplimiento por equipo.

Como leer el reporte

MetricaSignificado
Cumplimiento %Ejecutado / Planificado × 100. Verde 90-110%, amarillo <90% (subejecutado), rojo >110% (sobreejecutado).
% Plan vs % RealCompara como se distribuyo realmente la carga. Diferencia mostrada en puntos porcentuales (pp). Por ejemplo "+20pp" significa que la categoria absorbio 20 puntos mas de lo que se planeo.
SaldoPlanificado - Ejecutado. Positivo = horas planificadas no ejecutadas. Negativo = excedente.
Caso de uso: Si el equipo esta cumpliendo el total de horas pero el % real difiere mucho del % planificado, significa que la energia se desvio a otros proyectos. Esto puede ser intencional (priorizacion dinamica) o un sintoma de mala planificacion.
Calculo del planificado:
  • DD: HorasMensuales × (DiasHabilesDelRangoEnMes / DiasHabilesTotalesMes)
  • OT/Roadmap: para cada sprint que toca el rango, sumar (EstimacionNeta / SprintsAbarcados) × (DiasRangoEnSprint / DiasSprint)
  • Soporte/Estab: ReservaPeriodo × (DiasTranscurridos / DiasTotales) si es sprint en curso

19.7 Tendencia por Sprint

Acceso: Reportes → "Ver Tendencias". No requiere filtros, muestra todos los sprints cerrados.

Este reporte permite visualizar como evoluciona la dedicacion de horas a lo largo del tiempo, sprint tras sprint. Es ideal para identificar tendencias y cambios en la distribucion del trabajo.

Graficas incluidas

  1. Evolucion por Tipo de Proyecto — Grafica de barras apiladas mostrando las horas dedicadas a cada tipo (DD, OT, Roadmap, Soporte, Estabilizacion) por sprint. Permite ver si el soporte esta creciendo, si se esta dedicando mas tiempo a roadmap, etc.
  2. Capacidad: Consumida vs Disponible — Barras de horas consumidas con linea de capacidad total superpuesta. Muestra la brecha entre capacidad y consumo real.
  3. Evolucion por Area — Barras apiladas por area, mostrando como cada area contribuye al total sprint a sprint.
Tabla de tendencia sprint a sprint
SprintCapacidadConsumidas% UsoDDOTRoadmapSoporteEstab.
Sprint 12318 hs937 hs40.4%342196440238
Sprint 22318 hs1450 hs62.6%12038050520380
Sprint 32318 hs1820 hs78.5%200450120600450

Tabla de desglose Area x Sprint

Muestra cuantas horas registro cada area en cada sprint, permitiendo comparar la evolucion del esfuerzo por equipo.

Este reporte solo muestra sprints cerrados. Para que aparezcan datos, necesitas al menos 2 sprints cerrados.

19.8 Comparativa de Versiones

Acceso: Reportes → "Comparar Versiones". Muestra todas las versiones que tienen horas de estabilizacion registradas.

Permite comparar el esfuerzo de estabilizacion entre releases para medir si la calidad del producto esta mejorando o empeorando.

Metricas comparadas

MetricaQue mideMejor si...
Horas TotalesEsfuerzo total dedicado a estabilizar la versionBaja (menos esfuerzo necesario)
IncidenciasCantidad de registros de horas (proxy de bugs encontrados)Baja (menos bugs)
Dias de EstabilizacionDias entre la primera y ultima actividad registradaBaja (estabilizacion mas rapida)
Promedio Hs/IncidenciaHoras promedio para resolver cada incidenciaBaja (bugs mas simples o mejor proceso)
Personas InvolucradasCuantas personas trabajaron en la estabilizacionContextual

Graficas incluidas

  1. Horas de Estabilizacion por Version — Barras comparando el esfuerzo total.
  2. Incidencias por Version — Barras comparando la cantidad de bugs.
  3. Dias de Estabilizacion — Barras comparando la duracion del periodo.
  4. Promedio Horas por Incidencia — Linea de tendencia mostrando la evolucion de la complejidad de los bugs.

Indicadores de tendencia

La tabla comparativa muestra flechas de tendencia respecto a la version anterior:

Comparativa de versiones — Ejemplo
VersionHorasIncidenciasDiasHs/Incidencia
v4.5580 hs14245 dias4.1
v4.5.5320 hs 26089 5328 dias3.6
v4.6240 hs 8065 2421 dias3.7
Tendencia positiva: las versiones requieren cada vez menos esfuerzo de estabilizacion.

Desglose por Area

Tabla cruzada mostrando cuantas horas dedico cada area a estabilizar cada version. Util para identificar si un area especifica genera mas trabajo de estabilizacion que otras.

Para que una version aparezca en este reporte, debe tener al menos 1 hora de estabilizacion registrada en el modulo de Registro de Horas con tipo "Estabilizacion".

20. Asistente AI

El Asistente AI es un chatbot integrado en TeamOrbit, powered by Claude (Anthropic), que tiene acceso en tiempo real a TODA la informacion del sistema. No es un chatbot generico: es un analista que puede responder preguntas complejas sobre capacidad, horas, proyectos, licencias, comparativas entre areas, validar calculos, y explicar paso a paso como se llego a un numero.

Activacion

El asistente requiere dos cosas para funcionar:

1
Una API Key de Anthropic configurada en appsettings.json > seccion AssistantBot > ApiKey (la configura el equipo tecnico).
2
Habilitar el toggle desde Configuracion → Asistente AI.

Como usarlo

Una vez habilitado, aparece un boton flotante violeta abajo a la derecha de cualquier pantalla. Al hacer clic, se abre el panel del chat.

Widget del Asistente
Asistente TeamOrbit
Cuantas horas libres tiene Backend en este sprint?
Backend tiene 320 hs libres sobre 580 totales (45% libre). Se desglosa: DD 120, OT 80, Roadmap 40, Soporte 20.

Tipos de preguntas que puede responder

Modo Pantalla (interaccion contextual)

El boton del icono de monitor () en el header del chat activa el modo pantalla. En este modo, la proxima pregunta incluye automaticamente el contexto de lo que estas viendo en la pagina actual: KPIs, graficas Chart.js, tablas y alertas.

Esto permite preguntas como:

El asistente puede señalar elementos en pantalla con un borde violeta y un tooltip, e incluso ofrecer botones numerados si necesita desambiguar a que elemento te referis.

Conocimiento del sistema

El asistente conoce:

Artifacts (dashboards HTML generados por el bot)

Cuando el bot genera un artifact HTML (por ejemplo, un dashboard resumen o una comparativa entre áreas), el panel donde se renderiza es angosto (columna del chat). Los artifacts ahora tienen scroll horizontal automático y layouts responsive, para que grids amplios, steppers con muchas fases o tablas con muchas columnas no se corten visualmente. Esto aplica a cualquier artifact HTML devuelto por el asistente.

Limitaciones

Tip: El asistente es especialmente util para auditoria y validacion. Si dudas de un numero del Dashboard, preguntale: "¿Como se calcula este 73%?". Te explicara la formula con los valores concretos del sistema.

20b. Conectar Claude a TeamOrbit (MCP)

Ademas del asistente que vive dentro de TeamOrbit, podes conectar Claude Desktop o Claude Code directamente a tus datos del equipo a traves del protocolo MCP (Model Context Protocol). Eso te permite tener conversaciones con Claude que ya conocen tu sprint, tus horas y tus proyectos, y registrar horas desde Claude sin abrir la web.

¿Que podes hacer una vez conectado?

El MCP expone las mismas operaciones que la app web. Si lo podes hacer desde la UI, lo podes hacer por Claude.

Identidad y contexto

HerramientaQue devuelveEjemplo
meTu identidad: nombre, area, rol"¿Quien soy en TeamOrbit?"
get_sprint_actualSprint vigente con capacidad, reservas y tus horas esperadas/registradas/faltantes"¿Como voy con mis horas del sprint?"
get_pre_planningEstado del pre-planning del sprint (candidatos pool, postulados, descartados)"¿Como va el pre-planning del sprint?"
list_sprintsLista de sprints filtrable por estado"Mostrame los ultimos 10 sprints"

Personas, areas y equipo

HerramientaQue devuelveEjemplo
list_personasPersonas del equipo con filtros (area, rol, busqueda, activos)"Buscame a Juan" / "Listame el equipo de Frontend"
get_personaDetalle de una persona: areas, roles, superior, subordinados"Mostrame el detalle de la persona 17"
list_licenciasLicencias filtradas por persona, tipo, area, rango de fechas"¿Quien esta de licencia esta semana?"

Proyectos y clientes

HerramientaQue devuelveEjemplo
list_clientesClientes con totales rapidos de OTs y contratos"¿Que clientes tenemos activos?"
list_ordenes_trabajoOTs filtrables por cliente, estado, busqueda"Mostrame las OTs en progreso del cliente X"
get_orden_trabajoDetalle completo de una OT: fases, estimaciones, avance"Detalle de la OT 42"
list_contratos_ddContratos de Desarrollo Dedicado con sus proyectos"Listame los contratos DD activos"
list_projects_for_hoursTodos los proyectos / categorias contra los que podes imputar horas"¿En que puedo registrar horas?"

Registro de horas

HerramientaQue haceEjemplo
list_hoursRegistros entre dos fechas, con totales por tipo, dia y proyecto. Si no se pasa personaId, los tuyos; si se pasa, los de esa persona."Mostrame mis horas de esta semana" / "¿Cuanto registro Juan en mayo?"
register_hoursCrea un registro de horas. Por defecto en tu nombre; con personaId en nombre de otro."Registrame 4h hoy en la OT-104" / "Carga 6h hoy a la persona 7 en roadmap pagos"
update_hoursEdita un registro (propio o ajeno, igual que en la web)"Corregi el registro 1234 a 5h"
delete_hoursBorra un registro (propio o ajeno)"Borra el registro 1234"

Reportes y dashboards

Lo mismo que ves en las páginas de Dashboard, SoporteDev, AdHoc, Organigrama, Roadmaps, Reservas y Versiones — accesible por Claude para que arme resúmenes, comparativas o exports.

HerramientaQue devuelveEjemplo
get_capacidad_sprintCapacidad por área del sprint (días hábiles, horas brutas/netas, licencias, registradas por tipo)"¿Cómo está la capacidad del sprint actual por área?"
get_capacidad_personaCapacidad individual: días hábiles, licencias, horas registradas, % utilización"¿Cuánto utilizó Juan del sprint?"
get_dd_statusContratos DD activos: horas mensuales contratadas, horas registradas en el rango, proyectos"Estado de los contratos DD este mes"
get_ot_statusOTs con avance, fase actual, % consumo, fechas"¿Cómo van las OTs en progreso?"
list_roadmapsRoadmaps con progreso, tareas y horas registradas"Estado de los roadmaps activos"
get_soporte_dashboardDashboard de soporte con filtros: por categoría, persona, cliente, día, calidad de elevación"¿Cómo viene soporte este mes?"
get_adhoc_dashboardDashboard de Ad Hoc con filtros: por categoría, persona, área, top conceptos"¿Cuánto va de Ad Hoc esta semana?"
list_versionesVersiones de estabilización con horas, cantidad de incidencias y personas únicas"Resumen de estabilización por versión"
list_reservas_capacidadReservas configuradas (Soporte/Estabilización/AdHoc/Dinámica) con % y distribución por área"¿Qué reservas tenemos vigentes?"
get_organigramaEstructura jerárquica del equipo: persona → superior + área + roles + subordinados"Pasame el organigrama del área Backend"

Mantenimiento del sistema (crear/editar/eliminar)

Todas estas escrituras son paridad con la web — lo que un usuario puede hacer desde la UI lo puede pedir por Claude.

DominioHerramientas
Personascreate_persona, update_persona, delete_persona — soporta áreas secundarias y roles con % dedicación
Clientescreate_cliente, update_cliente, delete_cliente
Órdenes de Trabajocreate_orden_trabajo, update_orden_trabajo, delete_orden_trabajo — estimaciones por área
Challenges sobre OTslist_challenges, create_challenge, update_challenge, delete_challenge — distribución de horas por área
Contratos DDcreate_contrato_dd, update_contrato_dd, delete_contrato_dd
Sprintscrear_siguiente_sprint, update_sprint, cerrar_sprint, reabrir_sprint
Licenciascreate_licencia, update_licencia, delete_licencia — valida solapamiento y sprints cerrados
Tipos de Licencialist_tipos_licencia, create_tipo_licencia, update_tipo_licencia, delete_tipo_licencia
Feriadoslist_feriados, create_feriado, update_feriado, delete_feriado — afectan días hábiles
Áreas y Rolescreate_area, update_area, delete_area, create_rol, update_rol, delete_rol
Categoríaslist_categorias + create/update/delete_categoria_soporte + _adhoc + _dinamica (color, descripción)
Versiones (estabilización)create_version, update_version, delete_version
Reservas de Capacidadcreate_reserva_capacidad, update_reserva_capacidad, delete_reserva_capacidad — distribución % por área (suma = 100)
Roadmaps y Tareascreate_roadmap, update_roadmap, delete_roadmap, create_tarea_roadmap, update_tarea_roadmap, delete_tarea_roadmap
Proyectos DDlist_proyectos_dd, create_proyecto_dd, update_proyecto_dd, delete_proyecto_dd
Fases de OTcreate_fase_ot, update_fase_ot, delete_fase_ot
Fases (OT + DD) y comentarioslist_fases_ot, list_fases_proyecto_dd, editar_fechas_fase, avanzar_fase_proyecto_dd, retroceder_fase_proyecto_dd, agregar_comentario_fase, list_comentarios_fase
Contactos de clientelist_contactos_cliente, create_contacto_cliente, update_contacto_cliente, delete_contacto_cliente
Distribución template (DD)list_distribuciones_template, set_distribuciones_template (reemplazo completo, suma = 100)
Azure DevOps Linkslist_ado_links, create_ado_link, delete_ado_link
Adjuntoslist_adjuntos, delete_adjunto (subir requiere la web)
Usuarioslist_usuarios, update_usuario (alta vía Entra ID/login)
Promesas semanaleslist_promesas_semanales, create_promesa_semanal, update_promesa_semanal, delete_promesa_semanal
Pre-planningpostular_candidato_pre_planning (seleccionar, descartar, ajustar horas estimadas)
Settingslist_settings, update_setting (crea o actualiza por clave)
Batallas y snapshotslist_batallas, get_batalla_estado, get_snapshots_sprint
Simulador y drill-downget_simulador_data, get_dashboard_capacidad_detalle (drill-down por área + categoría)
Auditoria total: el token identifica quien hizo cada accion, aun cuando opera sobre datos de otra persona. Toda escritura via MCP queda registrada con el sufijo [MCP] en el log de auditoria del sistema, asi que los admins ven exactamente quien creo/edito/elimino cada registro.

Pre-requisitos

Paso 1 — Generar tu token personal

1
Entra a TeamOrbit con tu usuario habitual (Entra ID o usuario/contrasena).
2
En el sidebar de la izquierda, abajo a la derecha del avatar del usuario, hace click en el icono (Mis tokens MCP).
Icono Mis tokens MCP en el sidebar
Santiago Hernandez
Admin
3
Llena el formulario Crear nuevo token con un nombre descriptivo (ej: "Claude en mi laptop", "Mac de la oficina"). Sirve solo para identificarlo si tenes varios.
4
Hace click en Generar token. Aparece un cartel verde con el valor del token. Copialo en ese momento — por seguridad no se vuelve a mostrar. Si lo perdes, tenes que crear uno nuevo.
Token recien creado (se muestra una sola vez)
Token creado: Claude en mi laptop
Copialo ahora. Por seguridad, este valor no se vuelve a mostrar.
tor_AbCdEfGhIjKlMnOpQrStUvWxYz0123456789_-aBcDeFg
Higiene de credenciales: nunca pegues el token en chats, capturas o mensajes. Tampoco lo subas a git. Si por accidente queda expuesto, vuelve a esta misma pantalla y revocalo con un click — la integracion deja de funcionar al instante y generas uno nuevo.

Paso 2 — Configurar Claude Desktop

1
Abri el Explorador de Windows y pega en la barra de direcciones:
%APPDATA%\Claude
Te lleva a C:\Users\<tu-usuario>\AppData\Roaming\Claude.
2
Busca el archivo claude_desktop_config.json.
  • Si existe: abrilo con Notepad o VS Code.
  • Si no existe: hace click derecho → Nuevo → Documento de texto, y renombralo a claude_desktop_config.json (sin .txt al final). Activa "Extensiones de nombre de archivo" en la pestaña Vista del Explorador si no ves la extension.
3
Pega el siguiente contenido. Reemplaza tor_TU_TOKEN por el token que copiaste en el paso anterior.
{
  "mcpServers": {
    "teamorbit": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "mcp-remote",
        "http://teamorbit-mcp.int.prod.bankingly.com/mcp",
        "--header",
        "Authorization: Bearer tor_TU_TOKEN"
      ]
    }
  }
}
¿Por que cmd /c y mcp-remote? Claude Desktop solo invoca procesos locales (stdio). El paquete mcp-remote actua como puente: Claude se conecta a el por stdio, y mcp-remote traduce las llamadas a HTTP contra el endpoint de TeamOrbit. En Windows hace falta envolver npx con cmd /c para que se encuentre en el PATH.
Si lo usas en desarrollo local: reemplaza la URL http://teamorbit-mcp.int.prod.bankingly.com/mcp por http://localhost:5200/mcp.
4
Guarda el archivo. Validalo en jsonlint.com si tenes dudas — tiene que decir "Valid JSON".
5
Cierra Claude Desktop completamente. Click derecho en el icono de la bandeja del sistema (al lado del reloj) → Quit. Cerrar solo la ventana no alcanza.
6
Abri Claude Desktop de nuevo. La primera vez tarda 30-60 segundos porque npx descarga el paquete mcp-remote. Tene paciencia.

Paso 3 — Verificar que cargo

Hay tres formas, de la mas rapida a la mas definitiva:

Opcion A — Preguntarle directo a Claude

En una conversacion nueva escribi:

Usa la tool me del MCP teamorbit

Si funciona, Claude responde con tus datos:

Respuesta esperada
Herramientas cargadas, uso la integracion de teamorbit ›
Listo, esta es tu identidad segun el MCP de TeamOrbit:
  • Usuario: admin (ID 1)
  • Nombre: Santiago Hernandez
  • Email: santiago@bankingly.com
  • Rol de usuario: Admin
  • Carga horaria: Completo
  • Rol funcional: Director (100% de dedicacion)
Conectividad y permisos OK.

Opcion B — En la UI del input

Al lado del cuadro donde escribis los mensajes hay un icono de tools o conectores. Si MCP cargo bien, vas a ver teamorbit listado con sus herramientas disponibles.

Opcion C — Settings → Developer

En el menu de configuracion de Claude Desktop, buscar la seccion Developer o Servidores MCP. Debe aparecer teamorbit con estado Connected.

Paso 4 — Empezar a usarlo

Algunos ejemplos de cosas que podes pedirle a Claude una vez conectado:

Ejemplos de uso conversacional
Consulta
¿Como voy con mis horas del sprint?
Registro
Registrame 4 horas hoy en la OT-104, fue refactor del modulo de pagos.
Registro masivo
Carga las horas de la semana: lunes 6h en OT-104, martes 5h en DD del cliente XYZ, miercoles 7h en roadmap pagos, jueves 4h soporte produccion, viernes 7h OT-104.
Correccion
El ultimo registro que cargue eran 4 horas y en realidad fueron 5, corregilo.
Resumen
Armame un resumen de mi semana: cuanto registre, en que tipos de proyecto y cuanto me falta para cumplir la jornada.
Planning
¿Como va el pre-planning del sprint? ¿Cuanta capacidad libre queda?

Claude va a usar las tools necesarias por debajo, va a preguntarte ante ambiguedades ("¿cual proyecto del cliente XYZ?") y va a pedirte confirmacion antes de borrar registros.

Vigencia y renovacion del token

Auditoria

Toda accion de escritura via MCP queda registrada en el log de auditoria del sistema, con el sufijo [MCP] en el nombre de usuario para distinguirla de las acciones hechas por la web. Los admins pueden auditarlo en Usuarios → Actividad.

Troubleshooting

SintomaCausa probableSolucion
"No se pudieron cargar algunos servidores MCP" JSON invalido en claude_desktop_config.json Validar el archivo en jsonlint.com. Verificar que hay un solo objeto raiz, comas entre propiedades.
Claude dice "no tengo herramientas teamorbit" Claude Desktop no se reinicio completo, o npx esta descargando aun Cerrar desde bandeja → abrir de nuevo. Esperar 60s la primera vez.
Error 401 "Invalid authorization" Token vencido, revocado, o mal pegado Volver a Mis tokens MCP. Si esta vencido/revocado, generar uno nuevo y actualizar el archivo.
Error de red / no conecta al servidor VPN no activa o TeamOrbit caido Conectar VPN. Verificar que http://teamorbit-mcp.int.prod.bankingly.com/mcp/health responde "ok".
"Tu usuario no tiene Persona linkeada" El registro Usuario no tiene PersonaId seteado Pedirle a un admin que vincule tu Usuario a la Persona correspondiente desde la pantalla de Usuarios.
node : The term 'node' is not recognized Node.js no instalado o no esta en el PATH Instalar Node.js LTS de nodejs.org. Reiniciar la terminal y Claude Desktop.
Logs muestran "Failed to open SSE stream: Not Found (404)" Version vieja del server (sin el handler 405 para GET) Actualizar TeamOrbit a la version 1.0 o superior.

Si seguis con problemas, mira el log de Claude Desktop en %APPDATA%\Claude\logs\mcp-server-teamorbit.log — tiene el detalle exacto de lo que paso al iniciar la integracion.

21. Usuarios

Gestion de cuentas de acceso al sistema. Solo visible para usuarios con rol Admin.

Crear un usuario

CampoDescripcionValidacion
Nombre de UsuarioIdentificador unico para loginRequerido, unico
ContrasenaSe almacena hasheada con BCryptRequerido al crear
Nombre CompletoNombre para mostrar en la interfazRequerido
RolAdmin o LiderRequerido
Persona VinculadaPermite vincular el usuario a una persona del equipoOpcional

Editar un usuario

Se pueden modificar todos los campos excepto el nombre de usuario. La contrasena solo se actualiza si se ingresa un nuevo valor; si se deja en blanco, se conserva la anterior.

Desactivar un usuario

En lugar de eliminar, los usuarios se desactivan (soft delete). Un usuario desactivado no puede iniciar sesion pero sus datos historicos se conservan. Se puede reactivar si es necesario.

Log de actividad

Cada usuario tiene un log de actividad que registra todas sus acciones en el sistema:

Log de actividad del usuario
FechaAccionEntidadDescripcion
2026-03-27 09:15Login-Inicio de sesion exitoso
2026-03-27 09:22CrearOrdenTrabajo #45Creo OT-045 "Migracion Pagos"
2026-03-27 10:05AvanzarFaseOrdenTrabajo #42Fase "Implementacion" completada

Auto-provisionamiento con Microsoft 365

Cuando un usuario inicia sesion por primera vez con su cuenta de Microsoft 365 (Entra ID), el sistema crea automaticamente una cuenta de usuario con:

Presentaciones de Avances

Funcionalidad que genera presentaciones PowerPoint (PPTX) profesionales usando Inteligencia Artificial (Claude de Anthropic). Ideal para los informes mensuales de avance por area que se presentan al resto de la empresa.

Como generar una presentacion

  1. Ir a Presentaciones en el menu lateral.
  2. Seleccionar el Template (define el estilo, colores y prompt de IA).
  3. Definir el periodo (desde - hasta).
  4. Seleccionar las areas a incluir (una, varias o todas).
  5. Presionar Generar Presentacion. La IA analizara los datos del periodo y generara las slides (20-40 segundos).
  6. Revisar el preview y presionar Descargar PPTX.

Templates

Desde Gestionar Templates se pueden crear y editar templates de presentacion. Cada template incluye:

CampoDescripcion
NombreNombre identificador del template.
DescripcionProposito del template.
PromptInstrucciones para la IA. Define como se estructuran las slides, el tono, formato JSON esperado, etc.
ColoresPrimario, Secundario y Acento. Se aplican a fondos, textos y acentos de la PPT.
LogoImagen (PNG, JPG, SVG) que se inserta en la portada y cierre de la presentacion.

Datos incluidos

La IA recibe automaticamente toda la informacion del periodo seleccionado por area:

Historial

Cada presentacion generada se guarda en el historial. Se puede recargar y descargar nuevamente desde la tabla de historial sin volver a llamar a la IA.

22. Configuracion

Pantalla de configuracion global del sistema. Se organiza en varias pestañas.

Gates de admin removidos: las pantallas /Settings, /Sprints, /Versiones, /Roles, /Areas y los templates de /Presentaciones ya no requieren rol Admin. Cualquier usuario logueado accede a ellas. El único ABM que sigue restringido a Admin es /Usuarios.

Pestana: Configuracion General

ClaveDescripcionTipoValor Default
HorasPorDiaHoras productivas por dia laboral. Es la base para "Completo" y la mitad para "MedioTiempo".decimal7
DuracionSprintSemanasDuracion de cada sprint en semanas.int3
SprintsProyeccionCantidad de sprints futuros a mostrar en proyecciones (Dashboard, Simulador).int3
MesesProyeccionMeses de proyeccion para la vista mensual de DD.int3
PesoFasePendientePeso % de la fase Pendiente (arranque, no reserva capacidad).int0
PesoFaseDiscoveryPeso % de la fase Discovery (primera fase de trabajo efectivo).int0
PesoFaseRelevamientoPeso % de la fase Relevamiento al crear una OT.int10
PesoFaseRefinamientoPeso % de la fase Refinamiento.int15
PesoFaseImplementacionPeso % de la fase Implementacion.int45
PesoFaseQAPeso % de la fase Control de Calidad (interno el setting sigue llamandose "QA" por retrocompatibilidad).int20
PesoFaseLiberacionPeso % de la fase UAT (el setting mantiene el nombre historico "Liberacion").int8
PesoFaseEntregaPeso % de la fase Completa (cierre administrativo, ultimo paso del flujo). El setting mantiene el nombre historico "Entrega". Cuando esta fase pasa a EnProgreso o Completada, la OT libera la capacidad reservada.int2
MaxTamanioArchivoMBTamano maximo permitido para archivos adjuntos.int10
Cuidado: Cambiar HorasPorDia afecta inmediatamente el calculo de capacidad de TODAS las personas con carga "Completo" o "MedioTiempo". Los sprints ya cerrados no se ven afectados (usan su snapshot).

Pestana: Feriados

Gestion de dias feriados que se descuentan del calculo de dias habiles.

CampoDescripcion
FechaFecha del feriado
DescripcionNombre del feriado (ej: "Dia del Trabajo")
AnioAnio al que pertenece

Los feriados impactan en:

Pestana: Tipos de Licencia

Gestion de los tipos de licencia que se pueden asignar a las personas (Vacaciones, Licencia Medica, Maternidad/Paternidad, etc.).

CampoDescripcion
NombreNombre del tipo de licencia
ActivoSi esta disponible para asignar

Las licencias asignadas a personas descuentan dias de su capacidad durante el periodo de la licencia.

Pestana: Roles de Capacidad

Permite excluir roles especificos del calculo de capacidad. Util para roles que no aportan horas a proyectos (ej: Director, Practicante de observacion).

Las personas que tengan SOLO roles excluidos no se cuentan en la capacidad ni aparecen en las graficas. Si tienen al menos un rol contabilizable, se incluyen normalmente.

Pestana: Asistente AI

Toggle para habilitar/deshabilitar el chatbot del Asistente AI globalmente. La API Key se configura en appsettings.json (no en la UI por seguridad).

23. Formulas y Calculos del Sistema

Esta seccion documenta las formulas que TeamOrbit usa internamente para calcular capacidad, distribucion de horas, reservas y cumplimiento. Sirve como referencia para validar manualmente cualquier numero del sistema.

Estas formulas estan unificadas en TODAS las pantallas (Dashboard, Simulador, Reportes, Snapshot al cierre, Asistente AI). Cualquier numero del sistema se puede reproducir aplicando estas formulas.

1. Horas diarias de una persona

Brutas (sin overhead):

Netas (descontando overhead):

HorasNetas = HorasBrutas × (100 - PorcentajeOverhead) / 100

Ejemplo: persona Completo con 20% overhead → 7 × 0.80 = 5.6 hs/dia netas.

2. Dias habiles

Dias entre FechaInicio y FechaFin del periodo, excluyendo:

3. Capacidad de una persona en el sprint

CapacidadPersonaSprint = HorasNetas × DiasHabilesBrutosPersona

Ejemplo: 5.6 hs/dia × 15 dias = 84 hs en el sprint.

4. Capacidad de un area

CapacidadArea = Σ CapacidadPersonaSprint (de todas las personas del area, principal o secundaria).

Una persona que esta en multiples areas se cuenta en cada una de ellas.

5. Horas de licencia

Se usan NETAS porque la licencia representa lo que la persona NO aporta a proyectos.

6. Horas DD proporcionales al sprint

Para cada mes que toca el sprint:

HorasDelMes = (DiasSprintEnMes / DiasHabilesTotalesMes) × HorasMensuales

Luego: HorasDDSprint = Σ HorasDelMes de cada mes que toca el sprint.

7. DD distribuido por area

HorasDDArea = HorasDDSprint × PorcentajeAreaContrato / 100

Si hay multiples contratos DD activos, se suman.

8. Horas OT por area (estimacion prorrateada, sin arrastre)

  1. HorasNetas = EstimacionArea - Challenges
  2. SprintsAbarcados = cantidad de sprints futuros hasta FechaEntregaActual
  3. HorasOTSprint = HorasNetas / SprintsAbarcados

Las horas no ejecutadas NO se arrastran al sprint siguiente. El historico de saldos permite ver atrasos/adelantos.

9. Horas Roadmap por area (sin arrastre)

HorasRoadmapSprint = EstimacionArea / SprintsAbarcados

Igual que OT pero sin descuento de challenges. Los Roadmaps son "horas deseadas": si no se ejecutan, se pierden.

10. Reservas Soporte y Estabilizacion

  1. CapacidadBrutaGlobal = Σ (HorasBrutas × DiasBrutos) de TODAS las personas
  2. HorasReservadas = CapacidadBrutaGlobal × PorcentajeGlobal / 100
  3. HorasReservaArea = HorasReservadas × PorcentajeDistribucionArea / 100

Se usan BRUTAS porque las reservas son politicas globales sobre la jornada completa, no afectadas por overhead individual.

11. Horas libres de un area

HorasLibre = CapacidadArea - DD - OT - Roadmap - Soporte - Estab - Licencias

Si es negativo, se muestra como 0 (area sobreasignada).

12. Porcentaje de uso de un area

PctUso = (DD + OT + Roadmap + Soporte + Estab + Licencias) / CapacidadArea × 100

13. Saldo OT por sprint

Al cerrar un sprint:

El cumplimiento se mide como: Cumplimiento% = HorasEjecutadas / HorasPlanificadas × 100

14. Cumplimiento y Distribucion (rango arbitrario)

Para sprint en curso: planificado prorrateado por dias transcurridos.

Para rango arbitrario: suma de las porciones de cada tipo que tocan el rango (DD por dias del mes, OT/Roadmap por sprint share, Soporte/Estab por % del periodo).

El Asistente AI tiene estas formulas internalizadas y puede explicar paso a paso, con los valores reales del sistema, cualquier calculo. Si dudas de un numero, preguntale.

24. Glosario

TerminoDefinicion
AreaEquipo o disciplina del equipo de desarrollo (ej: Canal Web, Canal App, QA, Platform, DevOps).
CapacidadHoras disponibles del equipo para trabajar en proyectos. Siempre se mide en horas, nunca en cantidad de personas.
Carga HorariaTipo de jornada de una persona: Completo (horas globales), MedioTiempo (mitad), Personalizado (valor especifico).
ChallengeTercerizacion de parte o la totalidad del trabajo de una OT a un proveedor externo.
Contrato DDAcuerdo con un cliente para una cantidad fija de horas mensuales de desarrollo dedicado.
DD (Desarrollo Dedicado)Tipo de proyecto correspondiente a contratos de horas mensuales con clientes.
DesvioDiferencia entre las horas reales registradas y las horas estimadas de un proyecto.
Dias HabilesDias laborables (lunes a viernes) excluyendo feriados. Base para todos los calculos de capacidad.
Estimacion por AreaCuantas horas necesita cada area para completar un proyecto (OT, Roadmap o tarea).
EstabilizacionTrabajo de correccion y ajuste posterior al lanzamiento de una version del producto.
Fase (OT)Etapa del ciclo de vida de una OT/ProyectoDD. Son 8 fases: Pendiente (arranque, no reserva capacidad), Discovery, Relevamiento, Refinamiento, Implementacion, Control de Calidad, UAT (las 6 intermedias SI reservan capacidad) y Completa (cierre administrativo, no reserva capacidad). Ver seccion 10 para el detalle.
Cancelada (flag)Switch bool en OT/ProyectoDD que, al activarse, hace que la entidad deje de reservar capacidad y quede oculta por defecto en las listas (toggle "Ver canceladas" para verlas). Reemplaza al valor legacy Estado = "Cancelada".
FeriadoDia no laboral que se descuenta del calculo de dias habiles.
Horas NetasHoras disponibles despues de descontar el overhead. Formula: horas brutas x (100% - overhead%).
EstimacionHoras totales estimadas para una OT, calculadas automaticamente como la suma de las estimaciones por area.
OT (Orden de Trabajo)Trabajo puntual para un cliente con estimacion, deadline y fases.
OverheadPorcentaje del tiempo dedicado a actividades no-proyecto (reuniones, gestion, coordinacion). Se descuenta de la capacidad.
ProrracionProceso de convertir horas mensuales de un contrato DD en horas por sprint, basado en los dias habiles que el sprint cubre en cada mes.
ProyeccionEstimacion de la capacidad futura del equipo basada en los datos actuales proyectados a sprints futuros.
Reserva de CapacidadPorcentaje de la capacidad global apartado para Soporte o Estabilizacion, distribuido entre areas.
RoadmapIniciativa estrategica interna con tareas y estimaciones por area.
RolTipo de trabajo que realiza una persona (Desarrollador, QA, Analista, etc.) con un porcentaje de dedicacion.
SemaforoIndicador visual (verde/amarillo/rojo) del estado de salud de una OT o contrato DD.
SimuladorHerramienta what-if para experimentar escenarios de capacidad sin afectar datos reales.
SnapshotFoto congelada de la capacidad del equipo al cerrar un sprint. Inmutable una vez generada.
Soporte DevTrabajo reactivo: incidencias de produccion, certificacion, bug fixes. Se registra con categoria, Work Item y evaluacion.
SprintUnidad de tiempo interna del equipo (default: 3 semanas). Organiza la planificacion, registro y proyecciones.
VersionRelease del producto (ej: v4.5) con su periodo de estabilizacion posterior.
Work Item (WI)Elemento de trabajo en Azure DevOps (bug, user story, task) referenciado desde los registros de horas.

TeamOrbit v3.0 — Manual de Usuario Completo

Ultima actualizacion: Julio 2026. Para soporte, contactar al administrador del sistema.