Post

Documentando decisões técnicas com RFC

O que é RFC?

RFC, ou Request for Comments, é um documento formal usado pela Internet Engineering Task Force (IETF) e pela Internet Society (ISOC) para descrever especificações, protocolos, procedimentos ou metodologias usadas na internet. Em termos mais simples, é uma maneira estruturada de documentar e compartilhar decisões técnicas.

Como usar RFC para documentar decisões de projeto?

Seguindo o modelo adotado pelo time do Rust (https://github.com/rust-lang/rfcs), uma boa RFC pode ser estruturada da seguinte forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

- Start Date: YYYY-MM-DD
- Links relacionados

# Summary

Nesta seção, você deve destacar os principais pontos da RFC e fornecer um contexto geral sobre a mudança proposta.  

O objetivo é dar uma visão rápida e clara do que está sendo proposto e por quê.

# Motivation

Aqui, você identifica o problema que está tentando resolver e justifica a necessidade da mudança. 

É importante alinhar essa motivação com os Stakeholders, garantindo que todos entendam e concordem com a razão por trás da proposta.

# Detailed Design

Esta seção é onde a ideia abstrata se transforma em um plano concreto. 

Aqui, você deve detalhar como a mudança será implementada, abordando:

- Especificações técnicas
- Passos para a implementação
- Análise de impacto
- Casos extremos (edge cases) e considerações adicionais
- Possíveis dependências
- Diagramas e exemplos que ilustrem a proposta

# Alternatives

Depois de detalhar o plano de implementação, é essencial mostrar que outras abordagens foram consideradas. 

Nesta seção, inclua:

- Diferentes abordagens que poderiam ser adotadas
- Prós e contras de cada alternativa
- Justificativa para a abordagem escolhida
- Documentação do processo de tomada de decisão

# Unresolved Questions

Por fim, é importante ser transparente sobre as questões que ainda não foram resolvidas. 

Esta seção serve para:

- Encorajar discussões adicionais
- Documentar possíveis problemas em aberto
- Guiar o desenvolvimento futuro
- Alinhar expectativas em relação ao que ainda precisa ser decidido

Ao seguir esse modelo, você não só facilita a colaboração e a revisão, mas também garante que as mudanças sejam implementadas de maneira eficiente e bem fundamentada.

Esta postagem está licenciada sob CC BY 4.0 pelo autor.