We are capturing this as an ADR.
Estamos registrando isso como um ADR.Aula
Escrever decisões técnicas formais
Nível: B2
Objetivo
Escrever decisões técnicas formais em inglês (ADRs, decision logs, RFCs) com estrutura clara: contexto, decisão, consequências, alternativas consideradas, e consequências negativas aceitas — sem virar ensaio nem sound bite.
Explicação
Uma decisão técnica formal B2 segue quatro blocos: Context (qual problema estamos resolvendo, com quais restrições), Decision (o que escolhemos, em uma frase clara), Consequences (o que fica melhor E o que fica pior, ambos honestos), e Alternatives considered (o que mais olhamos e por que descartamos). O padrão é o ADR (Architecture Decision Record), mas o princípio vale para qualquer log de decisão.
A frase-chave de abertura é *we are choosing X because of Y, and accepting Z as the cost*. Isso força honestidade: você não vende a decisão como perfeita, você documenta o trade-off. A frase de fechamento é *this decision can be revisited when ...*, o que reconhece que toda decisão tem data de validade.
Erros comuns: escrever a decisão como se fosse inevitável, esconder as alternativas (parece que nem considerou), exagerar consequências positivas, omitir as negativas, escrever em tom de venda, e não ligar a decisão ao contexto do time. O bom ADR B2 é curto o suficiente para ser lido em cinco minutos, longo o suficiente para sobreviver ao esquecimento.
Para receber crítica ao ADR: peça feedback específico no bloco *Consequences*. *'What did I miss in the trade-offs?'* Para escrever o ADR de uma decisão difícil: comece pelo Context, force a frase *we are choosing X because of Y, accepting Z as the cost*, e termine com a frase de revisão futura.
Exemplos
| Inglês | Tradução | Observação |
|---|---|---|
| We are choosing X because of Y, and accepting Z as the cost. | Estamos escolhendo X por causa de Y, e aceitando Z como o custo. | Frase-chave de abertura B2: força honestidade sobre trade-off. |
| Context: the search index is shared with the analytics workload, causing p95 spikes during batch jobs. | Contexto: o índice de busca é compartilhado com a carga de analytics, causando picos de p95 durante jobs em batch. | Context descreve o problema e as restrições. |
| Decision: we will move the search index to a dedicated cluster with a five-minute TTL. | Decisão: vamos mover o índice de busca para um cluster dedicado com TTL de cinco minutos. | Decision em uma frase clara e acionável. |
| Consequences: latency will drop under batch load, but operational cost will increase by approximately 20%. | Consequências: a latência vai cair sob carga de batch, mas o custo operacional vai aumentar em aproximadamente 20%. | Consequences honesto: prós e contras. |
| Alternatives considered: we looked at a shared index with rate limiting, but rejected it because the cost was unpredictable. | Alternativas consideradas: olhamos um índice compartilhado com rate limiting, mas rejeitamos porque o custo era imprevisível. | Alternatives mostra que a decisão foi pensada. |
| This decision can be revisited when traffic grows past 10x current volume. | Esta decisão pode ser revisitada quando o tráfego crescer além de 10x o volume atual. | Data de validade explícita: toda decisão tem horizonte. |
| What did I miss in the trade-offs? | O que eu deixei passar nos trade-offs? | Pedido de crítica B2 sobre o ADR. |
| The main reason we picked X over Y was operational simplicity, not raw performance. | A principal razão de escolhermos X em vez de Y foi simplicidade operacional, não performance bruta. | Razão explícita: o que pesou mais na escolha. |
Erros comuns
- Escrever como se a decisão fosse inevitável: ADR deve documentar escolha, não destino.
- Esconder as alternativas: sem Alternatives, parece que a decisão não foi pensada.
- Exagerar consequências positivas: a parte de Consequences precisa incluir o que piora.
- Omitir as consequências negativas: a frase 'accepting Z as the cost' é o que blinda a decisão de ataque.
- Escrever em tom de venda: ADR não é pitch; é memória institucional.
- Não ligar ao contexto do time: o Context sem restrições é genérico, não específico.
- Tornar o ADR longo demais: se não cabe em cinco minutos, ninguém vai ler.
- Não dizer quando a decisão pode ser revisitada: sem horizonte, a decisão vira dogma.
Prática guiada
Reescreva cada bloco abaixo no padrão B2 de ADR. O objetivo é honestidade sobre trade-off e clareza sobre contexto.
- Bloco de decisão vendendo: 'Vamos adotar o novo cache porque ele é melhor.'
→ Versão B2: *Decision: we will adopt the new caching layer with a five-minute TTL. We are choosing it because it reduces p95 latency under batch load, and accepting a 20% increase in operational cost as the trade-off.* Explicação: decisão + razão + trade-off explícito.
- Consequências só positivas: 'Latência vai cair.'
→ Versão B2: *Consequences: latency will drop under batch load; operational cost will increase by approximately 20%; the on-call rotation will need a new runbook.* Explicação: prós + contras + impacto operacional.
- ADR sem data de validade: 'Essa é a decisão final.'
→ Versão B2: *This decision can be revisited when traffic grows past 10x current volume, or when the cost projection changes by more than 30%.* Explicação: horizonte explícito; a decisão tem data de validade.
Resumo
ADR B2 tem quatro blocos: Context (problema + restrições), Decision (uma frase clara), Consequences (prós E contras honestos), Alternatives considered (o que mais olhamos e por que descartamos). Frase-chave: *we are choosing X because of Y, accepting Z as the cost*. Frase de fechamento: *this decision can be revisited when ...*. Curto, honesto, datado.
Vocabulário
Palavras principais
Please review the RFC by Friday.
Por favor, revise o RFC até sexta.Let me give the context for the decision.
Deixa eu dar o contexto da decisão.The decision is to ship the new cache.
A decisão é lançar o novo cache.We need to list the consequences, both good and bad.
Precisamos listar as consequências, boas e ruins.What alternatives did we consider?
Quais alternativas consideramos?We are accepting a 20% cost increase as the trade-off.
Estamos aceitando um aumento de 20% no custo como trade-off.What are the constraints we have to work with?
Quais são as restrições com que temos que trabalhar?The operational cost will increase by 20%.
O custo operacional vai aumentar 20%.We can revisit this decision when traffic grows.
Podemos revisitar esta decisão quando o tráfego crescer.What is the validity horizon of this decision?
Qual é o horizonte de validade desta decisão?Please review the ADR by Friday.
Por favor, revise o ADR até sexta.Marcus is the decision owner for this ADR.
Marcus é o dono da decisão neste ADR.This is a proposal, not a final decision.
Isso é uma proposta, não uma decisão final.We rejected the alternative because the cost was unpredictable.
Rejeitamos a alternativa porque o custo era imprevisível.We are accepting the cost as part of the trade-off.
Estamos aceitando o custo como parte do trade-off.The main reason was operational simplicity.
A razão principal foi simplicidade operacional.This ADR supersedes the previous one.
Este ADR substitui o anterior.História
História: Escrever decisões técnicas formais
Nível: B2
História em inglês
Drafting the ADR
After the design review, Marcus volunteered to write the ADR. He opened with a short context block. Context: the search index is shared with the analytics workload, causing p95 spikes during batch jobs. He listed the constraints under which the team is operating. Constraints: we have a 20% budget increase cap, and we cannot hire more SREs this quarter. He then wrote the decision in a single sentence. Decision: we will move the search index to a dedicated cluster with a five-minute TTL. He added the trade-off phrase right after the decision.
Consequences and alternatives
Marcus wrote the consequences honestly. Consequences: latency will drop under batch load; operational cost will increase by approximately 20%; the on-call rotation will need a new runbook. He added the reason that weighed most in the decision. The main reason we picked X over Y was operational simplicity, not raw performance. He then listed the alternatives the team had considered. Alternatives considered: we looked at a shared index with rate limiting, but rejected it because the cost was unpredictable. He also mentioned a second option the team had briefly discussed. We also considered moving the analytics workload instead, but rejected it because the analytics team is larger and the change would be more disruptive.
Closing with a validity horizon
Marcus closed the ADR with an explicit validity horizon. This decision can be revisited when traffic grows past 10x current volume, he wrote. He also added a second trigger for review. Or when the operational cost projection changes by more than 30%, he added. He asked Priya to review the trade-offs section specifically. What did I miss in the trade-offs? he asked. Priya answered: the on-call training is missing from the consequences. Marcus added the training as a follow-up action item, and the ADR went into the decision log.
Tradução linha por linha
| Inglês | Tradução |
|---|---|
| After the design review, Marcus volunteered to write the ADR. | Depois da design review, Marcus se voluntariou para escrever o ADR. |
| He opened with a short context block. | Ele abriu com um bloco curto de contexto. |
| Context: the search index is shared with the analytics workload, causing p95 spikes during batch jobs. | Contexto: o índice de busca é compartilhado com a carga de analytics, causando picos de p95 durante jobs em batch. |
| He listed the constraints under which the team is operating. | Ele listou as restrições sob as quais o time está operando. |
| Constraints: we have a 20% budget increase cap, and we cannot hire more SREs this quarter. | Restrições: temos um teto de 20% de aumento de orçamento, e não podemos contratar mais SREs neste trimestre. |
| He then wrote the decision in a single sentence. | Então ele escreveu a decisão em uma única frase. |
| Decision: we will move the search index to a dedicated cluster with a five-minute TTL. | Decisão: vamos mover o índice de busca para um cluster dedicado com TTL de cinco minutos. |
| He added the trade-off phrase right after the decision. | Ele adicionou a frase de trade-off logo após a decisão. |
| Marcus wrote the consequences honestly. | Marcus escreveu as consequências com honestidade. |
| Consequences: latency will drop under batch load; operational cost will increase by approximately 20%; the on-call rotation will need a new runbook. | Consequências: a latência vai cair sob carga de batch; o custo operacional vai aumentar em aproximadamente 20%; a rotação de on-call vai precisar de um novo runbook. |
| He added the reason that weighed most in the decision. | Ele adicionou a razão que pesou mais na decisão. |
| The main reason we picked X over Y was operational simplicity, not raw performance. | A principal razão de escolhermos X em vez de Y foi simplicidade operacional, não performance bruta. |
| He then listed the alternatives the team had considered. | Então ele listou as alternativas que o time tinha considerado. |
| Alternatives considered: we looked at a shared index with rate limiting, but rejected it because the cost was unpredictable. | Alternativas consideradas: olhamos um índice compartilhado com rate limiting, mas rejeitamos porque o custo era imprevisível. |
| He also mentioned a second option the team had briefly discussed. | Ele também mencionou uma segunda opção que o time tinha discutido brevemente. |
| We also considered moving the analytics workload instead, but rejected it because the analytics team is larger and the change would be more disruptive. | Também consideramos mover a carga de analytics, mas rejeitamos porque o time de analytics é maior e a mudança seria mais disruptiva. |
| Marcus closed the ADR with an explicit validity horizon. | Marcus fechou o ADR com um horizonte de validade explícito. |
| This decision can be revisited when traffic grows past 10x current volume, he wrote. | Esta decisão pode ser revisitada quando o tráfego crescer além de 10x o volume atual, ele escreveu. |
| He also added a second trigger for review. | Ele também adicionou um segundo gatilho para revisão. |
| Or when the operational cost projection changes by more than 30%, he added. | Ou quando a projeção de custo operacional mudar em mais de 30%, ele adicionou. |
| He asked Priya to review the trade-offs section specifically. | Ele pediu à Priya para revisar a seção de trade-offs especificamente. |
| What did I miss in the trade-offs? he asked. | O que eu deixei passar nos trade-offs? ele perguntou. |
| Priya answered: the on-call training is missing from the consequences. | Priya respondeu: o treinamento de on-call está faltando nas consequências. |
| Marcus added the training as a follow-up action item, and the ADR went into the decision log. | Marcus adicionou o treinamento como action item de follow-up, e o ADR entrou no registro de decisões. |
Notas de vocabulário
- Context: the search index is shared with the analytics workload, causing p95 spikes during batch jobs. = Context descreve o problema e o sintoma, não a solução.
- Constraints: we have a 20% budget increase cap, and we cannot hire more SREs this quarter. = Constraints é o que limita as opções; sem elas, o ADR fica genérico.
- Decision: we will move the search index to a dedicated cluster with a five-minute TTL. = Decision em uma frase clara e acionável.
- the main reason we picked X over Y was operational simplicity, not raw performance = Razão explícita: o que pesou mais na escolha, não tudo.
- we looked at a shared index with rate limiting, but rejected it because the cost was unpredictable = Nomear alternativa + razão de descarte mostra que a decisão foi pensada.
- the on-call rotation will need a new runbook = Consequence operacional honesta: não só prós, também impacto em gente.
- this decision can be revisited when traffic grows past 10x current volume = Validity explícita: toda decisão tem horizonte; evita dogma.
- or when the operational cost projection changes by more than 30% = Segundo gatilho de revisão: o horizonte não é só crescimento, é também mudança de premissa.
- What did I miss in the trade-offs? = Pedido de crítica B2 sobre o ADR: foco no trade-off, não em grammar.
- the on-call training is missing from the consequences = Crítica construtiva em B2: aponta o que falta, não o que está errado.
Perguntas de compreensão
- What was the context Marcus opened the ADR with?
- What constraints did Marcus list, and why do they matter?
- What was the decision, and what trade-off did Marcus accept in the decision line?
- What two alternatives did the team consider and reject, and why?
- What reason did Marcus give for picking X over Y, and what did he add to the consequences section?
- What two triggers did Marcus add for revisiting the decision?
- What did Priya catch in the trade-offs, and what did Marcus do?
- Why did Marcus ask 'What did I miss in the trade-offs?' instead of 'Is this ADR good?'
- What would have been wrong with an ADR that listed only the positive consequences?
Prática com a história
- Reescreva: 'Vamos adotar o novo cache porque ele é melhor.' (ADR B2)
- Reescreva: 'Latência vai cair.' (Consequences B2)
- Reescreva: 'Olhamos outras opções.' (Alternatives B2)
- Reescreva: 'É a decisão final.' (Validity B2)
- Traduza: 'O que eu deixei passar nos trade-offs?'
- Traduza: 'A principal razão de escolhermos X em vez de Y foi simplicidade operacional, não performance bruta.'
Prática
Exercícios e teste
A próxima melhoria é transformar esses arquivos em perguntas com resposta no navegador. Por enquanto, esta página já organiza o estudo e permite seguir a aula inteira sem abrir os arquivos manualmente.