Un outil bâti pour mes besoins de Scrum Master à l'échelle. A tool built for my scaled Scrum Master needs.
Dashboard de pilotage qui suit le flux des tickets, la qualité et la consommation budgétaire (JH facturés vs prévisionnels) par marque. La version démo — 100% mockée, sans auth ni dépendance réseau — est faite pour être montrée en entretien. La discipline produit appliquée à mes propres frictions. A steering dashboard tracking ticket flow, quality and budget consumption (billed vs planned man-days) per brand. The demo version — fully mocked, no auth, no network dependency — is built to be shown in interviews. Product discipline applied to my own friction.
Le pitch
En tant que Scrum Master à l'échelle, je jongle entre plusieurs équipes, trois marques (appelons les GOOG, AAPL, MSFT), des tableaux Jira, des budgets prévisionnels et un Excel partagé qui finit toujours par diverger. Je voulais une seule interface pour répondre en 10 secondes aux questions du management : où en est le budget de GOOG ? Le First-Time-Right s'améliore-t-il sur AAPL ? Combien de JH facturés sur le mois en cours ?
Une question, une réponse en 10 secondes
- Flux — le flux des tickets en courbes cumulées par statut.
- Qualité — taux de rejet, First-Time-Right et cycle time par marque. Le FTR est calculé en rejouant toutes les transitions de chaque ticket pour détecter les retours en arrière, pas seulement celles de la période.
- Budget — JH facturés vs prévisionnels, en vue mois ou semaine. La vue semaine fait un prorata du budget mensuel par jours ouvrés pour ne jamais le compter plusieurs fois.
- Admin / JH — gestion des jours-homme en tableaux éditables en ligne (lecture seule en démo).
Deux versions, un seul produit
Le même produit existe en deux déclinaisons :
- Originale — données réelles : sync Jira → Supabase, auth, marques réelles, admin en lecture/écriture. Tourne en parallèle de Jira sur ma mission.
- Démo (vitrine) — un moteur de mock déterministe remplace Jira et Supabase. Aucune auth, aucune variable d'environnement, marques anonymisées (
GOOG,AAPL,MSFT), bilingue FR/EN. Faite pour être déployée et montrée en entretien en un clic.
Ingénierie
- Next.js 16 (App Router, Turbopack) + React 19, en TypeScript strict. Middleware via le nouveau format
proxy.ts. - Auth maison — double cookie (accès site + accès admin), hash PBKDF2-SHA256 à 100 000 itérations, comparaison à temps constant et rate limiting (5 tentatives / 15 min).
- Données côté serveur uniquement — tout passe par la clé
service_roleSupabase dans des actions"use server", jamais exposée au navigateur. RLS activé, policiesanonsupprimées : zéro lecture publique. - Sync Jira — cron Vercel quotidien, avec pagination des 2400+ transitions de statut pour contourner la limite
max_rows = 1000de PostgREST. - UI — Tailwind v4 + composants shadcn/ui, Recharts pour la dataviz (flux cumulé, budget, lead time).
Statut
Utilisée au quotidien en parallèle de Jira sur ma mission. La synchronisation est stable, les KPIs sont alignés avec les revues de pilotage hebdo, et la démo est déployable en un clic.
The pitch
As a scaled Scrum Master, I juggle several teams, three brands (GOOG, AAPL, MSFT), Jira boards, forecast budgets and a shared Excel that always ends up diverging. I wanted a single UI to answer management questions in 10 seconds: where are we on the GOOG budget? Is First-Time-Right improving on AAPL? How many person-days are billed on the current month?
One question, an answer in 10 seconds
- Flux — ticket flow as cumulative status curves.
- Quality — rejection rate, First-Time-Right and cycle time per brand. FTR is computed by replaying all of each ticket's transitions to catch backward moves, not just those in the period.
- Budget — billed vs planned man-days, in month or week view. The week view prorates the monthly budget by working days so it's never double-counted.
- Admin / man-days — man-day management in inline-editable pivot tables (read-only in the demo).
Two versions, one product
The same product ships in two flavors:
- Original — real data: Jira → Supabase sync, auth, real brands, read/write admin. Runs alongside Jira on my mission.
- Demo (showcase) — a deterministic mock engine replaces Jira and Supabase. No auth, no env vars, anonymized brands (
GOOG,AAPL,MSFT), bilingual EN/FR. Built to be deployed and shown in an interview in one click.
Engineering
- Next.js 16 (App Router, Turbopack) + React 19, TypeScript strict. Middleware via the new
proxy.tsformat. - Hand-rolled auth — dual cookie (site access + admin access), PBKDF2-SHA256 hashing at 100,000 iterations, constant-time comparison and rate limiting (5 attempts / 15 min).
- Server-only data — everything goes through the Supabase
service_rolekey inside"use server"actions, never exposed to the browser. RLS on,anonpolicies removed: zero public reads. - Jira sync — daily Vercel cron, paginating the 2400+ status transitions to work around PostgREST's
max_rows = 1000limit. - UI — Tailwind v4 + shadcn/ui components, Recharts for data viz (cumulative flow, budget, lead time).
Status
Used daily alongside Jira on my mission. The sync is stable, the KPIs match the weekly steering reviews, and the demo deploys in one click.