I will circulate the RFC on Monday and ask for comments by Wednesday.
Vou circular o RFC na segunda e pedir comentários até quarta.Aula
Projeto B2: acting as an engineer in a global team
Nível: B2
Objetivo
Demonstrar comunicação B2 produzindo, do começo ao fim, os quatro artefatos centrais da engenharia em time global: um RFC, uma defesa de design review, um postmortem de incidente e um executive summary para liderança. Cada artefato deve ser coerente, conciso, tecnicamente crível e culturalmente adequado para um time distribuído.
Explicação
O Projeto B2 integra tudo o que foi estudado de B1 e B2 em um único ciclo de duas semanas. Não é 'tudo o que vimos': é a capacidade de usar vários padrões juntos, no ritmo e na ordem certos, sem perder clareza nem profissionalismo.
1. RFC (Request for Comments)
Um RFC de uma a duas páginas tem seis blocos, nesta ordem:
- Problem: qual é a dor real, com dados. `The problem is p99 latency on checkout averaging 2.1 seconds.`
- Goals: o que precisa ser verdade depois do projeto. `p99 latency below 400 milliseconds.`
- Non-goals: o que está fora de escopo. `We are not changing the payment provider.`
- Options: pelo menos duas alternativas, com trade-offs explícitos. `Option A: caching layer; Option B: database read replica.`
- Decision: qual opção foi escolhida e por quê. `We are going with Option A because the prototype reduced p99 by 35%.`
- Roll-out plan: como o change vai chegar aos usuários. `Staged: 1% day one, 10% day two, 100% day five.`
A ordem importa: o problema justifica as metas, as metas limitam as opções, as opções sustentam a decisão, e o roll-out é o compromisso operacional.
2. Design review
A design review é onde a decisão é defendida ou revisada. Três movimentos B2:
- Opening statement: uma frase com o problema, a decisão e o trade-off. `Today I'm proposing Option A: a caching layer in front of the database, trading memory for latency.`
- Handling Q&A: discordar com educação, adiar com plano. `I see your point about cache invalidation; let's park that and validate in the prototype.`
- Closing decision: fechar a conversa de forma executiva. `I will go with Option A unless I hear concerns by Friday.`
A review é técnica e adulta: senior engineers discordam, mas fecham a decisão na mesma call quando possível.
3. Incident response + postmortem
Quando a produção quebra, a linguagem muda: frases curtas, com timestamp, com ação. O postmortem vem depois, em texto longo e blameless.
- During the incident: `14:02 UTC: error rates spiked on checkout. 14:05 UTC: I declared an incident. 14:08 UTC: we rolled back the deploy. 14:15 UTC: error rates returned to normal.`
- In the postmortem: root cause (a causa fundamental), contributing factors (o que tornou o incidente mais provável), e action items (tarefas com owner e prazo). `Root cause: a missing index in yesterday's migration. Contributing factors: no canary, no load test on the new index.`
O tom é blameless: ninguém é apontado pelo nome; o que muda são os sistemas.
4. Executive summary
Liderança lê cinco coisas em uma página:
- Decision needed: a escolha que precisa ser feita. `Approve the staged roll-out of the new caching layer.`
- Current status: onde o projeto está. `Design review complete; prototype in progress.`
- Risk: o que pode dar errado. `A regional database outage could delay the roll-out by one sprint.`
- Impact: o que muda se for aprovado. `p99 latency reduced by 35% in the prototype; projected $400k in annual savings.`
- Recommendation: a recomendação final. `Approve Option A with the staged roll-out plan.`
A linguagem é direta, sem jargão desnecessário, com números quando possível. O 'so what' para o leitor vem na segunda linha.
Exemplos
| Inglês | Tradução | Observação |
|---|---|---|
| Today I'm proposing Option A: a caching layer in front of the database, trading memory for latency. | Hoje estou propondo a Opção A: uma camada de cache na frente do banco, trocando memória por latência. | Abertura de design review: problema + decisão + trade-off em uma frase. |
| I see your point about cache invalidation; let's park that and validate it in the prototype. | Entendo seu ponto sobre invalidação de cache; vamos deixar isso de lado e validar no protótipo. | Discordar com educação + adiar com plano. |
| I will go with Option A unless I hear concerns by Friday. | Vou seguir com a Opção A a menos que eu ouça preocupações até sexta. | Fechamento de decisão: assertivo, com prazo e cláusula de escape. |
| At 14:02 UTC we saw elevated error rates on the checkout endpoint. | Às 14:02 UTC vimos taxas de erro elevadas no endpoint de checkout. | Linha de timeline durante incidente: timestamp + sintoma. |
| The database is the prime suspect, but we are still investigating. | O banco é o principal suspeito, mas ainda estamos investigando. | Hipótese em aberto sem fechar o diagnóstico cedo demais. |
| Root cause: a missing index added in yesterday's migration. Contributing factors: no canary, no load test on the new index. | Causa raiz: um índice faltando adicionado na migração de ontem. Fatores contribuintes: sem canário, sem teste de carga no novo índice. | Estrutura canônica do postmortem: causa raiz + contribuintes separados. |
| Decision needed: approve the staged roll-out of the new caching layer. | Decisão necessária: aprovar o roll-out gradual da nova camada de cache. | Primeira linha do executive summary: a decisão, sem rodeios. |
| We are on track, with one open risk and a clear mitigation plan. | Estamos no prazo, com um risco em aberto e um plano de mitigação claro. | Status final positivo com transparência sobre o risco. |
Erros comuns
- Colocar a solução antes do problema no RFC: a audiência precisa do problema para avaliar a solução.
- Listar opções sem trade-offs: opção sem trade-off é propaganda, não engenharia.
- Sair da design review sem fechar a decisão: indecisão custa ciclos do time e atrasa o roll-out.
- Misturar hipótese com fato no postmortem: 'achamos que foi o banco' antes de confirmar vira narrativa, não análise.
- Apontar pessoas pelo nome no postmortem: tom blameless protege o time e produz mais sinal por incidente.
- Colocar jargão de engenharia no executive summary: liderança não precisa saber o que é TTL de cache; precisa saber o impacto em dólares.
- Esconder o risco no executive summary: liderança prefere um risco explícito a uma surpresa no roll-out.
- Fechar sem pedir a decisão: se a call acaba sem 'approve / reject / defer', o trabalho não terminou.
Prática guiada
Reescreva cada bloco abaixo no padrão B2 do Projeto.
- RFC — Problem: troque 'We have latency issues' por uma frase com dado concreto.
- RFC — Options: liste duas opções e escreva o trade-off de cada uma em uma frase.
- Design review — Opening: combine problema, decisão e trade-off em uma frase de abertura.
- Design review — Push-back: responda a um senior engineer que discordou usando 'I see your point, but...' + dado.
- Postmortem — Root cause: separe claramente causa raiz de fatores contribuintes.
- Executive summary — Recommendation: escreva a recomendação final em uma frase, com número de impacto.
Compare com a versão inicial: a versão B2 responde 'so what?' para a audiência em cada bloco.
Resumo
O Projeto B2 integra quatro artefatos em um ciclo: RFC (problem, goals, non-goals, options, decision, roll-out), design review (abertura com trade-off, manejo de Q&A, fechamento de decisão), postmortem (timeline com timestamp, root cause, contributing factors, action items com owner), e executive summary (decision needed, status, risk, impact, recommendation). O tom é blameless, conciso e executivo; jargão técnico só entra quando a audiência é técnica; números e prazos sempre.
Vocabulário
Palavras principais
The design review will focus on trade-offs, not on the code.
A design review vai focar nos trade-offs, não no código.We will publish the postmortem within five business days.
Vamos publicar o postmortem em até cinco dias úteis.The executive summary should fit on one page.
O executive summary deve caber em uma página.I was the incident commander for the database outage on Tuesday.
Fui o incident commander da queda do banco na terça.We need to align the stakeholders in product, support, and security before we ship.
Precisamos alinhar os stakeholders de produto, suporte e segurança antes de subir.'We will do a staged roll-out: 1% on day one, 10% on day two, 100% on day five.'
'Vamos fazer um roll-out gradual: 1% no dia um, 10% no dia dois, 100% no dia cinco.'We close the action items in the retro, not in stand-up.
Fechamos os action items na retro, não na stand-up.There is a trade-off between consistency and latency.
Há um trade-off entre consistência e latência.Thanks for the push-back; it made the design stronger.
Obrigado pelo push-back; deixou o design mais forte.Let's park that question and come back after the prototype.
Vamos deixar essa questão de lado e voltar depois do protótipo.The rationale for option B is in section 4 of the RFC.
O rationale da opção B está na seção 4 do RFC.The root cause was a missing index in the migration.
A causa raiz foi um índice faltando na migração.The lack of a canary was a contributing factor.
A falta de canário foi um fator contribuinte.We will add a canary step to the deploy pipeline.
Vamos adicionar um passo de canário ao pipeline de deploy.'Action item: add an index check to the migration template. Owner: Maria. Due: next sprint.'
'Action item: adicionar verificação de índice no template de migração. Owner: Maria. Prazo: próximoThe postmortem is blameless and forward-looking.
O postmortem é blameless e voltado para o futuro.Every paragraph should answer the 'so what' for the reader.
Cada parágrafo deve responder ao 'so what' para o leitor.História
História: Projeto B2: acting as an engineer in a global team
Nível: B2
História em inglês
Writing the RFC
On Monday morning, I drafted the RFC for the new caching layer and shared it on the team channel. I opened with the problem: p99 latency on checkout was averaging 2.1 seconds. I listed the goals: bring p99 below 400 milliseconds within the quarter. I made the non-goals explicit: we are not changing the payment provider. I presented two options with their trade-offs: a caching layer in front of the database, or a read replica. I closed with the roll-out plan: 1% on day one, 10% on day two, 100% on day five.
Defending the design in review
On Thursday, I defended the design in the design review with senior engineers in Berlin and São Paulo. I opened with: Today I'm proposing Option A, a caching layer, trading memory for latency. A senior engineer pushed back: I see the latency gain, but I worry about cache invalidation. I replied: I see your point; let's park that and validate in the prototype this week. At the end of the review, I said: I will go with Option A unless I hear concerns by Friday.
Leading the incident and writing the postmortem
On Friday at 14:02 UTC, error rates spiked on the checkout endpoint. I declared an incident at 14:05 UTC and took the role of incident commander. We identified the database as the prime suspect and rolled back the deploy at 14:08 UTC. Error rates returned to normal at 14:15 UTC; the team in San Francisco took over from there. On the following Monday, I wrote the postmortem: root cause was a missing index in the migration; contributing factors were no canary and no load test.
Presenting the executive summary
On Tuesday of week two, I joined the leadership call and presented the executive summary. I opened with: decision needed, approve the staged roll-out of the new caching layer. I followed with current status, risk, and impact: 35% latency reduction in the prototype, projected 400k in annual savings. I closed with the recommendation: approve Option A with the staged roll-out plan. The VP asked two clarifying questions, I answered both, and the decision was approved.
Tradução linha por linha
| Inglês | Tradução |
|---|---|
| On Monday morning, I drafted the RFC for the new caching layer and shared it on the team channel. | Na segunda de manhã, eu rascunhei o RFC da nova camada de cache e compartilhei no canal do time. |
| I opened with the problem: p99 latency on checkout was averaging 2.1 seconds. | Eu abri com o problema: a latência p99 no checkout estava em média 2,1 segundos. |
| I listed the goals: bring p99 below 400 milliseconds within the quarter. | Eu listei as metas: levar o p99 para abaixo de 400 milissegundos no trimestre. |
| I made the non-goals explicit: we are not changing the payment provider. | Eu deixei os non-goals explícitos: não vamos trocar o provedor de pagamento. |
| I presented two options with their trade-offs: a caching layer in front of the database, or a read replica. | Eu apresentei duas opções com seus trade-offs: uma camada de cache na frente do banco, ou uma read replica. |
| I closed with the roll-out plan: 1% on day one, 10% on day two, 100% on day five. | Eu fechei com o plano de roll-out: 1% no dia um, 10% no dia dois, 100% no dia cinco. |
| On Thursday, I defended the design in the design review with senior engineers in Berlin and São Paulo. | Na quinta, eu defendi o design na design review com engenheiros seniores em Berlim e São Paulo. |
| I opened with: Today I'm proposing Option A, a caching layer, trading memory for latency. | Eu abri com: hoje estou propondo a Opção A, uma camada de cache, trocando memória por latência. |
| A senior engineer pushed back: I see the latency gain, but I worry about cache invalidation. | Uma engenheira sênior fez push-back: vejo o ganho de latência, mas me preocupo com a invalidação de cache. |
| I replied: I see your point; let's park that and validate in the prototype this week. | Eu respondi: entendo seu ponto; vamos deixar isso de lado e validar no protótipo esta semana. |
| At the end of the review, I said: I will go with Option A unless I hear concerns by Friday. | No fim da review, eu disse: vou seguir com a Opção A a menos que eu ouça preocupações até sexta. |
| On Friday at 14:02 UTC, error rates spiked on the checkout endpoint. | Na sexta, às 14:02 UTC, as taxas de erro subiram no endpoint de checkout. |
| I declared an incident at 14:05 UTC and took the role of incident commander. | Eu declarei um incidente às 14:05 UTC e assumi o papel de incident commander. |
| We identified the database as the prime suspect and rolled back the deploy at 14:08 UTC. | Identificamos o banco como principal suspeito e fizemos roll-back do deploy às 14:08 UTC. |
| Error rates returned to normal at 14:15 UTC; the team in San Francisco took over from there. | As taxas de erro voltaram ao normal às 14:15 UTC; o time de São Francisco assumiu dali em diante. |
| On the following Monday, I wrote the postmortem: root cause was a missing index in the migration; contributing factors were no canary and no load test. | Na segunda seguinte, eu escrevi o postmortem: causa raiz foi um índice faltando na migração; fatores contribuintes foram ausência de canário e de teste de carga. |
| On Tuesday of week two, I joined the leadership call and presented the executive summary. | Na terça da semana dois, eu entrei na call de liderança e apresentei o executive summary. |
| I opened with: decision needed, approve the staged roll-out of the new caching layer. | Eu abri com: decisão necessária, aprovar o roll-out gradual da nova camada de cache. |
| I followed with current status, risk, and impact: 35% latency reduction in the prototype, projected 400k in annual savings. | Eu continuei com status atual, risco e impacto: redução de 35% na latência no protótipo, projeção de 400 mil dólares em economia anual. |
| I closed with the recommendation: approve Option A with the staged roll-out plan. | Eu fechei com a recomendação: aprovar a Opção A com o plano de roll-out gradual. |
| The VP asked two clarifying questions, I answered both, and the decision was approved. | A VP fez duas perguntas de esclarecimento, eu respondi as duas, e a decisão foi aprovada. |
Notas de vocabulário
- I opened with the problem = integração B2: RFC começa pelo problema, não pela tecnologia.
- trading memory for latency = padrão 'trade X for Y' explicita o trade-off em uma frase.
- let's park that and validate in the prototype = park + validate + prazo: discordar com plano.
- I will go with Option A unless I hear concerns by Friday = fechamento B2: assertivo, com prazo e cláusula de escape.
- I declared an incident at 14:05 UTC = linguagem de incidente: timestamp + ação + papel.
- the database as the prime suspect = hipótese marcada como hipótese, não como fato.
- root cause ... contributing factors = postmortem: separar causa técnica de fatores sistêmicos.
- decision needed ... current status ... risk ... impact ... recommendation = ordem canônica do executive summary em cinco blocos.
- approve Option A with the staged roll-out plan = recommendation B2: nome da opção + qualificação do plano.
- the decision was approved = fechamento do projeto: a decisão sai da call, não fica em aberto.
Perguntas de compreensão
- Por que o RFC abre pelo problema e não pela solução?
- Qual é a função do 'park' em uma design review?
- Como separar root cause de contributing factors no postmortem?
- Por que o executive summary abre com 'decision needed'?
- Qual é o tom certo de um postmortem?
- Como fechar uma design review sem indecisão?
- Por que usar estágios pequenos (1%, 10%, 100%) no roll-out?
- Como declarar um risco no executive summary?
- Qual é a estrutura canônica de um RFC B2?
Prática com a história
- Reescreva 'I think we should use a cache' como abertura de design review B2.
- Responda a um push-back: 'Cache invalidation is too complex for this scope.'
- Escreva a primeira linha de um executive summary para aprovar um roll-out.
- Separe root cause de contributing factors: deploy quebrou em produção.
- Feche uma design review sem indecisão.
- Declare um risco com prazo no executive summary.
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.