Quando abordamos a visão de API como Produto, trazemos alguns conceitos que nos permitam focar em atender as dores do usuário. O primeiro passo nesse caminho, de acordo com a literatura de James Higginbotham, é o de definir quais são as capacidades digitais esperadas para esse produto.

Resumo

  • Para melhor entendimento deste texto, garanta que você conhece os termos citados nos Pré-Requisitos
  • Capacidades digitais são os recursos tecnológicos que entregarão os outcomes - resultados - esperados pela pessoa cliente de sua API
  • Outcomes são os resultados que o cliente espera receber ao usar sua API ou produto digital
  • Job Stories é uma metodologia usada para descobrir quais são as capacidades digitais que seu produto precisa ter através das necessidades da pessoa cliente.

Resumo das etapas

  • Defina os outcomes desejados pelo seu cliente
  • Com os outcomes, escreva job stories
  • Com os job stories, temos definidas as capacidades digitais esperadas para nossa API relacionadas com os respectivos outcomes
  • Armazene seus job stories de uma forma que o time de desenvolvimento consiga entender porque aquelas capacidades foram definidas anteriormente

Pré-requisitos

Para entender o conceito de API First e tirar máximo proveito, indicamos que alguns conhecimentos sejam estabelecidos previamente:

  • Métodos HTTP
  • Verbos HTTP
  • Princípios básicos do Protocolo HTTP

Para aprender estes e outros termos, leia o texto: APIs para Pessoas de Negócio: Termos técnicos essenciais

O que são capacidades digitais

As capacidades digitais são recursos que entregam outcomes (resultados esperados) através de automação. É uma forma dos clientes interagirem com sua organização através de um meio digital. Para o usuário final, não importa o que será feito para alcançar os outcomes. Por baixo dos passos, inúmeras tecnologias e técnicas podem ser utilizadas para que o outcome seja alcançado.

Abaixo temos um exemplo do que poderiam ser capacidades digitais para um sistema de apostas online:

Capacidade digital Endpoint REST
Executar uma aposta online POST /apostas
Checar o resultado de uma aposta GET /apostas/{idAposta}
Checar apostas em um determinado time GET /apostas/times/{nomeTime}

No exemplo acima temos três capacidades que um produto digital relacionado a apostas se propõe a ter. Essas capacidades podem ser estabelecidas utilizando uma API REST, que pode entregar tecnologicamente o outcome para as capacidades.

Agora que você sabe o que são capacidades digitais, podemos entender de que forma elas podem ser identificadas. Para isso, a estratégia recomendada por James é a de usarmos Job Stories, baseada na metodologia Jobs do Be Done (JTBD).

Entendendo Job Stories

Job Stories é uma técnica que visa traduzir a necessidade do cliente em capacidades digitais. Essa técnica toma como base o conceito de “Jobs to be Done”, criado por Clayton Christensen. Nela, procuramos entender quais serão as jornadas - ou jobs to be done - que o usuário executará em nosso produto.

No caso de APIs, a proposta feita por James é de criarmos job stories descrevendo essas jornadas. Dessa forma conseguiremos traduzir cada um dos JTBD em requisitos funcionais para a API.

Estrutura de uma Job Story

Uma job story possui três divisões: “Quando, eu quero, então poderei.” Elas servem para:

  • Quando: o evento que irá desencadear o outcome esperado pela pessoa usuária. São indicadores-chave de quando a API será usada.
  • Eu quero: A capacidade identificada pela pessoa cliente como ação a ser tomada. Essa informação será usada para entender quais operações serão realizadas pela API.
  • Então poderei: O outcome esperado pela pessoa cliente. É o campo que definirá o critério de aceitação para a API desenhada.

Na minha concepção, o conceito fica mais claro se adotarmos a seguinte nomenclatura tropicalizada:

Termo original Versão tropicalizada
Quando necessidade
Eu quero capacidade
Então poderei resultado

Exemplo de um job story

Pedi pro ChatGPT montar um exemplo de job story. O resultado foi o seguinte:

Claro! Vamos pensar em uma aplicação para pedir comida online. Uma “job story” para essa situação pode ser:

  • Quando (eu chego tarde do trabalho),
  • Eu quero (pedir uma refeição através de um aplicativo),
  • Então poderei (ter uma refeição pronta quando eu chegar em casa).

Essa job story ajuda a equipe de desenvolvimento a entender um cenário de uso realista, podendo se concentrar em facilitar esse processo para seus usuários. Eles podem trabalhar para garantir que o aplicativo permita pedidos antecipados e forneça uma estimativa precisa do tempo de entrega, por exemplo.

Como obter e armazenar jobs stories

James Higginbotham dá algumas dicas legais de como obter job stories para seu projeto de API. Das que ele cita em seu livro, a que acho mais interessante é a de guardar as jobs stories em arquivos markdown.

Dessa forma é possível guardar um histórico das mudanças que uma API teve junto do seu repositório de código-fonte, permitindo que o desenvolvedor entenda o caminho que foi percorrido até aquela API ser feita.

Para obtenção das job stories, acredito que um simples arquivo de texto ou formulário já resolvam, já que o mais importante é ter esses dados para os próximos passos do design de sua API.

O próximo passo

Depois de as capacidades digitais e job stories da sua API, chega a hora de definirmos as Atividades e Passos. O texto será disponibilizado em breve.