Apresentação realizada em 25 de agosto de 2023, sobre o tema Conway's Law e Team Topologies.
Todos os créditos reservados a Felipe Coelho Machado, Paulo Immig e Warren Investimentos.
Sobre mim: https://www.linkedin.com/in/felipecmachado
2. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Mas afinal, do que se trata
essa Talk? (ou book talk)
Essa Talk visa trazer um tema que vem recebido mais relevância nos últimos tempos,
principalmente por ter conexões com assuntos como domain-driven design ou arquiteturas
de microsserviços.
Os temas que serão abordados hoje estão intrinsecamente relacionados a estruturas
organizacionais e arquitetura de software.
Além disso, esses assuntos são conhecimentos complementares e úteis para todos que
trabalham em empresas do segmento de tecnologias.
3. warren.com.br
E por que devemos saber
sobre isso?
● Estruturas organizacionais não são montadas na base do
improviso. Elas exigem muito estudo e análise.
● Elas estão profundamente relacionadas com a forma que
construímos software.
● Entender sobre esses assuntos nos permite melhorar o fluxo
contínuo da entrega, entender sobre como a comunicação
em uma organização funciona, termos uma grau de
colaboração mais efetivo, tomarmos melhores decisões
estratégicas e por mim construirmos software melhor.
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Disclaimer:
Este é um tema que
pode ser bastante
complexo.
A ideia hoje é despertar
a curiosidade de todos
para o assunto e dar
uma base sobre.
5. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
créditos a @suksr, que utilizou esses slides na QCon 2022
para falar de Team Topologies e muito mais.
“A system is more than the sum of its parts,
it’s a product of their interactions.”
Dr. Russell Ackoff
6. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Conway’s Law
“Any organization that designs a
system will produce a design whose
structure is a copy of the organization's
communication structure.”
—Melvin E. Conway (1967)
9. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Backend
Frontend DBAs
Frontend
Backend
Banco de dados
Comunicação
Comunicação
Estrutura
organizacional
x
Arquitetura de
software
10. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Times monolíticos não conseguem
desenvolver microsserviços.
Polêmica 1 Polêmica 2
Sistemas monolíticos não podem ser
mantidos por Squads.
11. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
A comunicação é
fundamental.
Quem define a
estrutura da
organização, define
também a
arquitetura do
software.
Logo, a estrutura da organização
e a qualidade do software estão
fortemente relacionadas.
13. warren.com.br
Teoria da Carga
Cognitiva
https://www.reforge.com/blog/managing-tech-debt
Elaborada pelo John Sweller, com PhD na área de Psicologia, no ano de 1988. Muito
utilizada na educação para otimizar o aprendizado.
A memória de trabalho humana é limitada e isso é uma restrição fundamental no
seu desempenho e na capacidade de aprendizado.
O mesmo se aplica aos times, que possuem um limite de informação que podem
reter, porém fica mais difícil quantificar qual é o limite.
Quanto maior o serviço, mais difícil será suportá-lo com qualidade, pois representam
um volume maior de carga cognitiva.
Team Topologies advoca para priorizar os times, criando uma organização otimizada
e levando em conta a carga cognitiva.
https://www.cursospm3.com.br/blog/topologia-dos-times/
https://www.thoughtworks.com/pt-br/radar/techniques/team-cognitive-load
https://sd.arquiteturadesoftware.online/determinando-a-granularidade-ideal-para-microsservicos-capitulo-3-v-1-0/
Conwayʼs Law & Team Topologies | Warren Talks | 2023
15. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Team Topologies?
Como você constrói a melhor organização de equipes
para seus objetivos, cultura e necessidades específicas?
Team Topologies é um livro prático, com passo a passo,
adaptável para o design organizacional e interação de
equipes. O livro aborda quatro tipos de equipes
fundamentais e três padrões de interação de equipes.
O livro representa um grande avanço no design
organizacional de empresas de software, apresentando
uma maneira bem definida para as equipes interagirem e
se relacionarem, o que ajuda a tornar a arquitetura de
software resultante mais compreensível e sustentável.
https://teamtopologies.com/
https://www.amazon.com.br/Team-Topologies-Organizing-Business-Technology/dp/1942788819
19. warren.com.br https://www.reforge.com/blog/managing-tech-debt
Conwayʼs Law & Team Topologies | Warren Talks | 2023
stream-aligned team
=> fluxo da mudança =>
stream-aligned team
stream-aligned team
stream-aligned team
You build it. You run it. You support it.
Stream-aligned teams geralmente suportam uma porção
do fluxo da mudança. Isto pode ser um conjunto de
features, uma jornada particular do cliente, uma persona
específica, um domínio de negócio ou até mesmo algum
produto de inovação.
Times tem autonomia para tomar decisões relacionadas
ao desenvolvimento e entrega do fluxo específico que ela
suporta de ponta à ponta.
Times são multidisciplinares, ou seja, compostos por
membros de diferentes habilidades e funções, desde
viabilidade comercial, UX, Design, PM, Backend, Frontend, a
até o monitoramento. https://teamtopologies.com/key-concepts
https://www.youtube.com/watch?v=f1k64DEjeBQ&ab_channel=ElemarJunior
Stream-Aligned Team
20. warren.com.br https://www.reforge.com/blog/managing-tech-debt
Conwayʼs Law & Team Topologies | Warren Talks | 2023
=> fluxo da mudança =>
stream-aligned team
stream-aligned team
Enabling Team
Como stream-aligned teams conseguem achar tempo para
pesquisar, aprender ou praticar novas habilidades? Através
dos Enabling Teams.
Enabling Teams são compostos por especialistas em algum
tema técnico ou domínio, e eles ajudam a reduzir os gaps de
capacidade.
Eles geralmente irão fazer sugestões de tooling, práticas,
frameworks, ou escolhas relacionadas ao ciclo de
desenvolvimento de um software.
Esses times possuem uma natureza altamente colaborativa,
buscando entender os desafios dos stream-aligned teams
para poder dar a correta orientação.
stream-aligned team
stream-aligned team
Enabling
Team
Enabling
Team
21. warren.com.br
A missão desse tipo de time é resolver um ou mais desafios
relacionados aos stream-aligned teams e reduzir a carga
cognitiva deles.
Eles são muito aplicáveis quando alguma parte do sistema
necessita algum expertise muito alto, sejam cálculos, alguma
matemática ou algo muito técnico/especializado.
Subsistemas muito complicados terão um acoplamento
aferente maior, pois mais gente depende dele. Logo serão mais
difíceis de serem alterados.
Muitas vezes sua frequência de mudança pode precisar ser
mais lenta, o que poderia travar a velocidade dos stream-aligned
teams.
https://www.reforge.com/blog/managing-tech-debt
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Complicated Subsystem Team
stream-aligned team
=> fluxo da mudança =>
stream-aligned team
stream-aligned team
stream-aligned team
CS
Team
Enabling
Team
Enabling
Team
22. warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
stream-aligned team
=> fluxo da mudança =>
stream-aligned team
stream-aligned team
stream-aligned team
Platform Team
CS
Team
O propósito de Platform Teams é habilitar Stream-Aligned
Teams a entregar valor com autonomia substancial,
reduzindo a coordenação exigida, reduzindo a carga cognitiva
e diminuindo o grau de profundidade exigido.
Precisam ser super colaborativos, entendendo a necessidade
dos outros times.
Uma dica é evitar times super especializados ou silos. Esses
times não podem virar gargalo para construir software de
forma rápida e segura. Exemplos: Times de DBAs, QAs, UX, Data
Processing ou Architecture.
platform team
platform team
Enabling
Team
Enabling
Team
24. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Takeaways
● Nem sempre é apenas sobre código;
● Times pequenos podem construir coisas grandes;
● Não lute contra a lei de Conway;
● Nenhum modelo é perfeito. Team Topologies não é
bala de prata;
● No final, o desenvolvimento de software é uma
atividade social;
● Na dúvida leia o livro pois o tempo da Talk
(provavelmente) já terminou.
25. warren.com.br
warren.com.br
Conwayʼs Law & Team Topologies | Warren Talks | 2023
Às vezes os
problemas de
software
precisam ser
corrigidos fora
do domínio
técnico.
Desenhe a
arquitetura da
organização
para produzir a
correta
arquitetura de
software.