Fase 02 — Product Discovery
Priorização de oportunidades, hipóteses de solução, protótipos, backlog estruturado e avaliação de riscos.
Personas Sintéticas
3 personas representando os usuários do gateway de pagamentos. Construídas com base nos papéis de integração, operação e gestão do ecossistema ECP.
Papel: Desenvolvedor integrador | Apps: ecp-bank, ecp-food | Experiência: 5 anos TypeScript
Contexto: Precisa integrar pagamentos (Pix, cartão, boleto) em cada app do ecossistema. Hoje reimplementa a integração com o Asaas em cada projeto separadamente. Testes dependem de sandbox instável do gateway externo.
Frustrações: Retrabalho a cada novo app. Sandbox do Asaas falha e trava o desenvolvimento. Não tem ambiente de staging determinístico. Documentação espalhada em múltiplos sistemas.
Objetivos: API única com contrato estável. Modo internal para testes sem dependência externa. Onboarding em horas, não semanas.
“Cada vez que crio um app novo no ecossistema, eu reimplemento toda a integração com pagamento do zero. Se tivesse uma API centralizada, eu faria a integração em 1 dia em vez de 1 semana.”
Oportunidades: OPP-01, OPP-02, OPP-10, OPP-12 | KRs: KR-01, KR-03, KR-04
Papel: Operações e suporte | Foco: Monitorar transações, investigar falhas | Experiência: 4 anos em ops fintech
Contexto: Responsável por garantir que pagamentos do ecossistema fluam sem problemas. Investiga falhas de transação, reprocessa webhooks e gerencia o provider ativo (internal vs Asaas).
Frustrações: Para investigar uma falha, precisa acessar logs em 3 sistemas diferentes. Não tem visão unificada do ciclo de vida de uma transação. Sem retry manual de webhooks — precisa de intervenção técnica.
Objetivos: Dashboard unificado com KPIs do ecossistema. Timeline completa de cada transação. Retry de webhook com um clique. Alertas de falha em tempo real.
“Quando uma transação falha, eu levo 2 horas pra investigar porque preciso cruzar logs do app, do gateway e dos webhooks. Se tivesse tudo numa timeline, levaria 5 minutos.”
Oportunidades: OPP-06, OPP-13, OPP-14 | KRs: KR-02, KR-05
Papel: Gestão de produto | Foco: Visão estratégica, métricas, custos | Experiência: 8 anos em produtos digitais
Contexto: Toma decisões sobre provider (interno vs Asaas), monitora volume de transações e custos. Precisa de visão consolidada do ecossistema para planejar evoluções.
Frustrações: Não tem visão do volume de transações por app. Não sabe quanto custa cada transação real vs simulada. Sem auditoria de quem fez o quê no painel admin.
Objetivos: Dashboard com métricas do ecossistema. Auditoria completa de ações. Controle de provider com histórico de switches.
“Eu preciso saber exatamente quantas transações reais vs simuladas passam pelo gateway, qual o volume por app, e quanto estou pagando de taxa ao Asaas. Hoje eu não tenho nenhuma dessas visões.”
Oportunidades: OPP-06, OPP-08, OPP-09 | KRs: KR-02, KR-05
Insights Principais
6 insights extraídos da análise do ecossistema ECP, benchmarks de gateways (Stripe, Adyen, PagSeguro) e dores operacionais reais.
Oportunidades Priorizadas (WSJF)
9 oportunidades selecionadas para discovery, organizadas em 3 pilares estratégicos. Framework: WSJF (Weighted Shortest Job First).
Pilar 1: Core Infrastructure
API unificada, contrato estável e abstração de provider — o esqueleto sobre o qual tudo é construído.
| # | ID | Oportunidade | WSJF | Esforço | KRs |
|---|---|---|---|---|---|
| 1 | OPP-01 | Eliminar reimplementação de integração com gateway em cada app | 10.0 | L | KR-01, KR-02, KR-03 |
| 2 | OPP-09 | Estabilidade contratual da API para apps consumidores | 14.0 | M | KR-01, KR-03 |
| 3 | OPP-08 | Liberdade para negociar com múltiplos gateways sem retrabalho | 13.0 | M | KR-03 |
Pilar 2: Development Velocity
Modo internal, staging determinístico e documentação unificada eliminam dependências externas.
| # | ID | Oportunidade | WSJF | Esforço | KRs |
|---|---|---|---|---|---|
| 4 | OPP-10 | Testes de pagamento dependem de sandbox instável do Asaas | 13.0 | M | KR-04, KR-01 |
| 7 | OPP-12 | Staging precisa ser determinístico e controlável | 22.0 | S | KR-04 |
| 6 | OPP-02 | Devs precisam entender API de cada gateway em vez de contrato único | 11.5 | M | KR-01, KR-03 |
Pilar 3: Production Reliability
Idempotência, entrega garantida de webhooks e observabilidade completa de transações.
| # | ID | Oportunidade | WSJF | Esforço | KRs |
|---|---|---|---|---|---|
| 5 | OPP-14 | Sem idempotência, retries causam cobranças duplicadas | 13.5 | M | KR-05, KR-02 |
| 8 | OPP-13 | Callbacks precisam ser entregues mesmo em falha temporária | 11.0 | M | KR-05, KR-02 |
| 9 | OPP-06 | Investigar falhas exige acessar logs em múltiplos sistemas | 9.5 | M | KR-02, KR-05 |
Hipóteses de Solução
7 hipóteses formuladas pelo Product Designer, cada uma com assumptions críticas validáveis por protótipo ou entrevista.
Uma camada de API unificada com contrato versionado dará aos operadores visibilidade em tempo real de todos os pagamentos do ecossistema, eliminando a necessidade de cada app integrar diretamente com o gateway.
Assumptions: CA-01 (Dashboard sem overload), CA-02 (FilterBar cobre 95% dos workflows), CA-03 (contrato único para Pix/Card/Boleto), CA-04 (atribuição source_app suficiente).
Uma camada de abstração de provider, surfaced por uma página Providers dedicada com ProviderToggle, permitirá ao super admin alternar entre Internal e External sem impactar apps downstream.
Assumptions: CA-05 (toggle two-card previne acidentes), CA-06 (modal de confirmação), CA-07 (status em 3 locais persistentes), CA-08 (histórico de swaps).
Modo Internal com controles de simulação na página Settings e ações contextuais na página Transactions eliminará dependência do sandbox Asaas, habilitando testes determinísticos.
Assumptions: CA-09 (admin panel vs env vars), CA-10 (banner amarelo suficiente), CA-11 (botões de simulação contextual), CA-12 (feature flags via Toggle).
Documentação acessível do painel admin (Apps page) com exemplos interativos usando modo Internal reduzirá onboarding de semanas para horas.
Assumptions: CA-13 (Apps page como entry point), CA-14 (payloads reais como material de aprendizado), CA-15 (modal de registro self-service).
Mostrar idempotency_key por transação, flagging de requests deduplicados e duplicatas na timeline dará confiança aos operadores de que cobranças duplicadas não ocorrem.
Assumptions: CA-16 (idempotency_key visível), CA-17 (evento dedup na timeline), CA-18 (sem dashboard dedicado de duplicatas).
Página dedicada de Webhooks com tabs received/sent, tracking de delivery status e retry one-click dará controle total sobre entrega de eventos.
Assumptions: CA-19 (two-tab mental model), CA-20 (attempt count com timing), CA-21 (botão retry suficiente), CA-22 (CodeBlock para debug).
Componente TransactionTimeline mostrando o ciclo completo (request → gateway → webhook → callback) com timestamps correlacionados reduzirá tempo de investigação de horas para minutos.
Assumptions: CA-23 (timeline vertical clara), CA-24 (elapsed time entre eventos), CA-25 (cores semânticas), CA-26 (nós expansíveis com payload).
Protótipos
8 telas prototipadas: Dashboard, Transactions, Transaction Detail, Providers, Webhooks, Apps, Settings, Audit Log.
Backlog Estruturado
3 épicos, 13 features e 29 user stories com critérios de aceite em BDD/Gherkin.