UX LEAD VAKA ÇALIŞMASI · KARAR SİSTEMLERİ · OLAY OPERASYONLARI

Fintech on-call için karar yetkisinin yeniden tasarımı. Triyaj süresi yarıya indi. Mühendislik ve hukuk aynı modeli kabul etti.

Baskı Altında
Karar Yetkisi

Yüksek riskli SaaS olay operasyonlarında kim, ne zaman karar verir — bunu yeniden tasarladım.

DOMAIN

Fintech

ROLE

UX Lead

YEAR

2025

STATUS

Yayında

02:47 — Kimsenin Vermek İstemediği Karar

Saat 02:47. Ödeme gateway'inde "Latency Degraded" alarmı çalıyor. Nöbetçi mühendis yalnız. Müşteri hizmetlerinden ses yok — henüz ticket gelmemiş. Ama dashboard yanıt sürelerinde %12 sapma gösteriyor — otomatik paging eşiğinin hemen altında.

Mühendis seçmek zorunda. — Eskale et, olası veri kaybını engelle ama yanlış alarm riski al. — Sus, ekibi yorgunluktan koru ama gerçek bir kesinti riski al. Sistem, bir insanın yetersiz veriyle belirsiz bir sinyali çözmesini istiyor.

Karar yetkisi katman diyagramı — risk seviyesini eskalasyon aktörüne eşleyen üç satır.

TL;DR

  • Problem:Dağıtık doğru + belirsiz yetki = sabah 3'te karar felci.
  • Çözüm:Triyaj sırasında log'u susturan bir konsol + risk bazlı eskalasyon yetkisi.
  • Ana içgörü:Affordance ≠ izin. Veriyi gizlemek paranoya değil, özen olabilir.

Process

TIMELINE — Çok aylı süreç — tasarım, sonra yayına alma

KeşifNöbetçi mülakatları ve ticket retrospektifleri
TanımNesne modeli ve durum tanımı
TasarımWireframe'den hi-fi'ya, iki tur kullanılabilirlik
Zor kararBir tier'ı lansmandan çıkarmak — sonra veriyle kazanmak
Soft launchÖnce pilot squad'lar
YayınTam yayın ve ölçüm

STAKEHOLDERS

  • Yönetim sponsoru
  • Mühendislik liderliği (önce karşı, sonra savunucu)
  • Etkilenen takımdan günlük kullanıcılar
  • Nöbet rotasyon lideri — doğrulama partneri
  • Alt-süreç operasyonu paydaşı
  • Compliance / regülasyon danışmanı

DECISION POINTS — 3 CRITICAL

  1. Triyaj sırasında ham logları gizleönce tartışmalıydı, veri ile doğrulandı
  2. Yetki tier'ı risk bazlı, kıdem bazlı değilorg şeması risk yüzeyiyle örtüşmüyordu
  3. Dispute ve postmortem akışını birleştirdispute ile otomatik tetiklenir

Asıl Problem

Olay yönetimi genelde ChatOps'a indirgeniyor — bir alet sorunu olarak. Ama aletler asıl çatışmayı çözemez: dağıtık doğru. Metrikler, müşteri raporları ve mühendislik logları birbiriyle uyuşmazsa, sistem insanın baskı altında gerçekliği bir araya getirmesini ister. Bu imkansız bir bilişsel yük.

Nöbetçi mühendisin sabah 3'teki gerçek işi olayı çözmek değil. Bu olayın ne tür olduğuna karar vermek — ve bu karar üzerine kimin harekete geçme yetkisi olduğunu bilmek.

Decisions

ADOPTED

  • Triyaj sırasında ham loglar gizli (incelemede açılır)
  • Bağlam bazlı yetki tier'ı (risk × müşteriye dönük × veri bütünlüğü)
  • Dispute / postmortem birleşik, paydaşlar otomatik eklenir
  • İki binary karar sorusu sadece triyaj fazında görünür
  • Yetki tier'ı Postgres row-level policy olarak da yansıtılır — UI ve backend aynı model

REJECTED

  • Daha iyi log filtreleme — yamalama, kök sebebi çözmez
  • Kıdem bazlı eskalasyon listesi — bağlam riskini kaçırır
  • Ayrı dispute ve postmortem akışları — yineleme
  • Daha düşük eşikte otomatik paging — yorgunluk sarmalı

Görsel Akış

Üç hi-fi ekran, scroll'a göre. Her adım = sistemin sıradaki durumu.

01

Alarm dashboard

İlk yüzey — alarm önceliği, müşteri etkisi, karar tier'ı ipucu. Desktop'ta mühendis satırı tarar; mobile'da aktif olay ekranı kaplar, diğerleri katlanır.

Desktop · 1280+

Alarm dashboard

Mobile · 375

Alarm dashboard

Desktop her alarm için 3-kolonlu meta strip kullanır; mobile baskın bir kart + katlanmış kardeşlere döner. Nöbetçi mühendisin cep görünümü liste değil karar odaklı — bildirimden triyaja tek dokunuş.

02

Triyaj konsolu — loglar gizli

Triyaj sırasında ham loglar katlanmış. Desktop'ta iki binary soru aynı anda görünür; mobile'da sırayla — ekranın kısıtı bilişsel adımın da kısıtı.

Desktop · 1280+

Triyaj konsolu — loglar gizli

Mobile · 375

Triyaj konsolu — loglar gizli

Desktop iki soruyu yan yana gösterir (deneyimli operatöre hızlı). Mobile 1-of-2 wizard'a böler progress dotları ile — soru başına yavaş ama daha odaklı. İkisi de aynı şekilde kayıt eder; sadece ritim farklı.

03

Karar yetkisi tier'ı

Neden önemli: sabah 3'te net yetki yoksa eskalasyon politik bir mesele olur. Matrix kararı tartışılmaz hale getirir — risk bazlı, kıdem bazlı değil — ve row-level Postgres policy ile denetlenir.

Karar yetkisi tier'ı

Ekipten sesler

Logları gizlemeye karşı çıkmıştım. Sonra triyaj süresinin düştüğünü gördüm.
VP Engineering
İlk defa nöbet bana göre tasarlanmış gibi hissettim.
Lead engineer, payments takımı
Sistem benden kahraman olmamı istemekten vazgeçti.
Senior on-call rotation lead

Etki

Aşağıdaki sayılar hakkında. 90 günlük yuvarlanan ortalamalar, kaba tahminler. NDA gereği kesin sayılar paylaşılamıyor, kamuya açık veriler farklılık gösterebilir. 6. ayda benimseme bu aralıklarda %5 sapma içinde kaldı.
0%Karar süresi(ort, triyaj)~25 dk → ~12 dk
0%Yanlış eskalasyon oranı~%28 → ~%14
+0%Postmortem tamamlama~%62 → ~%88
+0%Karar yetkisinetlik puanı5.8 → 9.1 / 10

My Role

KEŞİF

12 paydaş mülakatı, 30+ ticket retrospektifi, nöbet gözlem.

TANIM

Nesne modeli, durum makinesi, karar yetkisi tier taksonomisi.

TASARIM

Wireframe → hi-fi → triyaj geçişleri için motion grameri.

TESLİM

Eng takımıyla 4 hafta günlük standup, XState handoff.

YAYIN SONRASI

90 günlük ölçüm, tier-4 üzerinde iterasyon (kaldırıldı).

Reflection

What I'd do differently

Dört karar yetkisi tier'ı yayına aldık — pilotda ikisi hiç ateşlenmedi. Şimdi geriye dönüp bakınca, iki tier ile başlayıp üçüncüyü veriyle kazanmalıydık. Tasarımcının karmaşıklık önyargısı: doğru taksonomiyi sezgiyle değil kanıtla seçmek. Artık her durum modeline minimum viable taksonomi ile başlıyoruz.

Behind the scenes · for engineering readers

Karar tier taksonomisi dört sinyalden hesaplandı: bağlam riski × müşteriye dönük × veri bütünlüğü × günün saati. Durum makinesi XState ile modellendi, mühendislik takımı üretilen state-chart'ı UI dokümanına direkt yapıştırdı. Yetki tier'ı Postgres row-level policy olarak da yansıtıldı — herhangi bir non-UI yüzey (CLI, dahili script) aynı izin modelini devralır.

Tech stack: XState · TypeScript · Postgres RLS · Datadog incident integration

Bigger picture

Yetki için tasarlamak, belirsizliğin rahatlığını kaldırmak demek. Ekibi kendi bozuk süreçleriyle yüzleşmeye zorluyor. Bu sistem sadece UI'ı temizlemedi; olay yönetiminin politik güç dinamiklerini de açığa çıkardı ve düzeltti.