Facilitando a Arquitetura de Software
Capacitando equipes para tomar decisões de arquitetura
Descrição do livro
O papel do arquiteto de software está em constante transformação. Conforme os sistemas e suas interações com as equipes que os criam, gerenciam e fazem progredir se tornam mais complexos, muitas vezes é inviável para quem ocupa os papéis tradicionais de arquiteto estar em toda parte. O volume de trabalho de arquitetura é simplesmente grande demais, e a situação chegou ao limite.
Existe uma forma melhor. O autor Andrew Harmel-Law mostra como arquitetos e equipes de desenvolvimento podem colaborar para criar e evoluir arquiteturas mais eficientes para seus sistemas. As técnicas deste livro ajudarão você a aprender a criar uma mentalidade que permita a todos praticar arquitetura e criar os melhores sistemas que já imaginaram.
Com este livro, você:
• Entenderá as novas dinâmicas que afetam a entrega moderna de software;
• Aprenderá uma metodologia que une arquitetura de software e desenvolvimento;
• Cultivará a inter-relação fundamental entre decisões, recomendações e aconselhamentos, arquitetura e feedback de sistemas em execução;
• Iniciará práticas que maximizam vantagens e mitigam riscos;
• Criará uma abordagem ajustada à arquitetura, às habilidades de todos e à cultura da sua organização.
Ver menos ▲Sumário
- Apresentação
- Prefácio
- Capítulo 1: Práticas centralizadas de arquitetura em um mundo descentralizado
- Quais são as práticas tradicionais de arquitetura?
- Arquitetos da torre de marfim
- Arquitetos mãos na massa
- O que há de errado com as duas abordagens tradicionais?
- Cinco revoluções desencadearam o poder do software
- Os efeitos das cinco revoluções na prática da arquitetura
- O avanço da descentralização
- O colapso das práticas centralizadas de arquitetura
- O que é essencial em qualquer nova prática de arquitetura?
- Nenhuma abordagem pode proteger contra as forças do caos
- Arquiteturas devem aceitar a incerteza
- Arquiteturas devem permitir a emergência
- Conclusão
- Parte I: Princípios fundamentais
- Capítulo 2: Praticar arquitetura é tomar decisões
- Decisões são os pilares da arquitetura de software
- O que constitui uma decisão de arquitetura?
- Estrutura
- Características multifuncionais
- Dependências
- Interfaces
- Técnicas de criação
- Alguns exemplos de decisões de arquitetura e decisões não relacionadas à arquitetura
- Quem toma essas decisões de arquitetura?
- Decisões arquitetonicamente significativas
- Quando uma decisão de arquitetura é "significativa"?
- O que não deve ser considerado em relação à significância da arquitetura?
- Significância da arquitetura em relação ao software implantado
- Alguns exemplos de decisões significativas de arquitetura
- Conclusão
- Capítulo 3: Decisões em escala
- Processos de decisão
- Estágio 1: Decisão necessária
- Estágio 2: O ato de decidir
- Estágio 3: Decisão implementada
- Onde reside o equilíbrio de poder nos processos de decisão?
- de criação de opções do processo de tomada de decisão
- Processos de decisão em escala
- Abordagens padrão para decisões em escala
- Processos de decisão em um mundo em transformação
- Conclusão
- Capítulo 4: O processo de recomendação e aconselhamento da arquitetura
- A necessidade de um processo mais rápido e descentralizado de decisão
- recomendação e um contrato
- O processo de recomendação e aconselhamento de arquitetura é rápido
- O processo de recomendação e aconselhamento de arquitetura é descentralizado
- Dois exemplos do processo de recomendação e aconselhamento de arquitetura na prática
- História 1: Uma equipe de desenvolvimento decide usar Release Toggles
- História 2: Um arquiteto decide analisar um problema de fluxo de trabalho
- A centralidade da recomendação e do aconselhamento
- Aconselhamentos (e recomendações) são sugestões com justificativa
- de opções
- A responsabilização vem com a tomada de decisões, não com os aconselhamentos
- Aconselhamentos (e recomendações) são sugestões com justificativa
- A importância das conversas
- A importância da confiança
- Conclusão
- Capítulo 5: Implementando o processo de recomendação de arquitetura
- Primeiros passos
- Se você já tem poder de tomada de decisão
- Se atualmente você não tem poder de tomada de decisão
- Seja qual for o seu ponto de partida, comece aos poucos
- Superando os desafios do estágio inicial
- envolvidos
- Recomendações e aconselhamentos: busque as fontes certas
- Pergunte às pessoas certas e explore o "por que"
- Deixe claro quem é responsabilizado por cada decisão
- Inseguranças decorrentes do processo de recomendação e aconselhamento em arquitetura
- Falta de confiança nas habilidades decisórias próprias e alheias
- Falta de confiança na busca de recomendações e aconselhamentos e em quem os fornece
- Falta de confiança em saber tudo o que está acontecendo
- Conclusão
- Capítulo 6: Registros de decisões de arquitetura
- Introdução aos registros de decisões de arquitetura
- A estrutura de um ADR
- Título
- Meta-elementos
- Decisão
- Contexto
- Opções
- Consequências
- Recomendações e aconselhamentos
- Elaborando um ADR para apoiar a decisão
- Etapa 1: Crie seu ADR em branco e defina seus metadados
- Etapa 2: Escrever o contexto
- Etapa 3: Criar opções e analisar suas consequências
- Etapa 4: Propor uma opção escolhida
- Usando ADRs para facilitar o processo de recomendações e aconselhamentos
- Quando e como buscar recomendações e aconselhamentos
- Preparando a seção de recomendações e aconselhamentos
- Obtendo recomendações e aconselhamentos
- Atualizando o ADR para retratar as contribuições de outras pessoas
- Tomando sua decisão e finalizando o ADR
- Escolha a opção de decisão
- Escreva a seção de Decisão e atualize o título
- Mudando o status do ADR para aceito
- Compartilhe a decisão
- Ciclo de vida do ADR
- Padronização de status: rascunho, proposto, aceito e substituído
- Status não padronizados de ADR
- Gerenciando ADRs
- Aspectos fundamentais do gerenciamento de ADRs
- ADRs em wikis e arquivos rich text no controle de versão
- ADRs em sistemas de gerenciamento de tickets de tarefas
- Curadoria de ADRs
- Conclusão
- Parte II: Cultivando e desenvolvendo sua cultura de confiança descentralizada
- Capítulo 7: Substituindo a hierarquia pela confiança descentralizada
- A responsabilidade e a responsabilização mudaram
- A maioria das práticas tradicionais de governança se torna obsoleta
- existentes de arquitetura corporativa
- A responsabilização explícita dos ADRs é um freio para os imprudentes
- As equipes não são obrigadas a decidir
- A maioria das práticas tradicionais de governança se torna obsoleta
- O espaço de prática da arquitetura se abre
- Mantendo o espaço para uma cultura de aprendizado e confiança
- Dois exemplos de confiança (ou falta dela) na prática
- Não podemos presumir que uma cultura de confiança e aprendizado aparecerá do nada
- Uma cultura de confiança e aprendizado deve ser cultivada com cuidado
- Entenda a dinâmica da mudança em organizações de tamanhos diferentes
- Adote elementos de apoio a fim de proteger o espaço para a confiança
- Protegendo o espaço de prática da arquitetura
- Não existe uma receita padrão para os elementos de apoio
- Personalize qualquer elemento de apoio
- Reflita sobre sua motivação antes de adicionar qualquer elemento
- Netflix: um exemplo da mentalidade de identificação de fluxo
- Cuidado com as promessas sedutoras da certeza e da previsibilidade
- Faça experimentos para identificar o fluxo da sua organização
- Conclusão
- Capítulo 8: Um fórum de recomendação e aconselhamento de arquitetura
- Apresentando o fórum de recomendação e aconselhamento de arquitetura
- Uma pauta simples e permanente
- tradicionais de arquitetura
- Uma pauta simples e permanente
- Gerenciando um fórum de recomendação e aconselhamento de arquitetura
- Antes de um fórum de recomendação e aconselhamento de arquitetura
- Compartilhando a pauta
- Iniciando uma sessão do fórum de recomendação e aconselhamento de arquitetura
- Apresentando um ADR
- Fornecendo e recebendo recomendações e aconselhamentos
- Registrando as recomendações e aconselhamentos
- Dinâmica social no fórum de recomendações e aconselhamentos
- Interações de arquitetura são conflituosas e hierárquicas por padrão
- Argumentação coalescente: uma alternativa à argumentação conflituosa
- abordagem coalescente para a tomada de decisão
- Fóruns de recomendações e aconselhamentos catalisam fortes dinâmicas de grupo
- A experiência de quem oferece recomendações e aconselhamentos
- A experiência de quem procura recomendações e aconselhamentos
- A experiência de quem observa para aprender
- Participação compartilhada na criatividade concreta
- conceitual e a coesão social
- Descentralizando a execução enquanto centraliza a coordenação
- Especialização profunda no domínio: quando a centralização funciona melhor
- Transparência para coesão social e confiança
- O ritual que fortalece a cadência
- Iniciando o processo de recomendação e aconselhamento com um fórum
- Termos de referência
- próprio processo de recomendação e aconselhamento
- Quem convoca o primeiro fórum de recomendações e aconselhamentos?
- Como o primeiro fórum será diferente dos posteriores
- Termos de referência
- Conclusão
- Capítulo 9: CFRs testáveis e estratégia de tecnologia
- A importância do alinhamento organizacional
- Alinhamento não garante a eficácia
- Como identificar um alinhamento organizacional insuficiente
- Quatro meios de alinhamento
- Você está alinhado quando não é surpreendido
- Acordo mínimo viável
- Requisitos multifuncionais
- Estratégia de tecnologia
- Trabalhando em prol do acordo mínimo viável da sua organização
- Conclusão
- Capítulo 10: Princípios de arquitetura desenvolvidos coletivamente
- Obtenha os princípios de arquitetura de todos os envolvidos
- Exemplos de princípios de arquitetura
- Características de bons princípios de arquitetura
- Características de princípios inadequados de arquitetura
- Os princípios podem ser requisitos multifuncionais disfarçados
- aconselhamentos e os ADRs
- Capturando seus princípios de arquitetura com um workshop de princípios
- Preparando os recursos necessários para o seu workshop de princípios
- Organizando seu workshop de princípios
- Conduzindo seu workshop de princípios
- Apresentando seus princípios prontos para uso
- Mantendo a utilidade dos princípios
- O feedback das decisões deve influenciar os princípios de arquitetura
- Atualizando e mantendo princípios
- O feedback das decisões pode influenciar a estratégia técnica
- Conclusão
- Capítulo 11: Usando um radar de tecnologia
- Tendências tecnológicas e diretrizes de captura
- Os radares de tecnologia coletam e compartilham diretrizes de forma incessante
- Como funciona o Radar de Tecnologia da Thoughtworks
- Seu radar interno de tecnologia será estruturado de forma diferente
- O papel do seu radar no processo de recomendações e aconselhamentos
- Criando seu radar de tecnologia
- Coletando os blips
- Classificação e validação de blips
- Refinando os blips
- Posicionamento dos blips
- Documentando os blips
- Publicando o radar
- Atualizando seus blips
- Novas varreduras periódicas
- Atualizações pontuais com base na experiência compartilhada
- Capturando blips anteriores e seu histórico
- Conclusão
- Parte III: Navegando pelo panorama das decisões
- Capítulo 12: A arte de decidir
- A importância do lado mais sensível
- Delimitando o contexto
- Excluir é tão importante quanto incluir
- Perguntas que aprimoram o discernimento sobre a delimitação
- Envolva as partes interessadas adequadas
- Diferenciando as opções e suas consequências
- Não deixe que a delimitação restrinja sua criatividade
- Busque inspiração
- Aperfeiçoando o contexto e as opções com as recomendações e aconselhamentos
- Desenvolva sua metacognição
- Exercício 1: Compartilhe suas razões
- Exercício 2: Você está reagindo ou respondendo?
- desafiem você
- Lidando com pessoas pouco colaborativas
- Escolhendo uma opção de decisão
- Enfrentando o medo
- Superando o viés
- Tomando a decisão
- Quando você está tomando a decisão
- Quando outros estão tomando a decisão
- Conclusão
- Capítulo 13: Abordando a variabilidade da arquitetura
- O efeito da variabilidade na prática da arquitetura
- A variabilidade dificulta o desenvolvimento de sistemas
- A variabilidade é a essência do desenvolvimento de software
- Trabalhando de forma eficaz com a variabilidade da arquitetura
- Aborde a variabilidade ao tomar e testar decisões com rapidez
- Teste as decisões em profundidade usando seu contexto funcional
- funcional
- Aborde a variabilidade com decisões de menor impacto
- O impacto das decisões de arquitetura no fluxo futuro
- Uma boa infraestrutura técnica possibilita decisões de menor impacto
- Uma boa infraestrutura sociotécnica também possibilita decisões de menor impacto
- melhorar o fluxo
- Recrutando a variabilidade para combater o risco e identificar valor
- Mais vale rápido e errado do que devagar e certo
- Observe os casos atípicos
- Sequencie primeiro as decisões de maior valor
- Conclusão
- Capítulo 14: Variabilidade e interconectividade das decisões
- Encontrando um caminho por meio da variabilidade
- Apresentando os spikes
- Spikes podem lidar com variabilidade da arquitetura de forma mais econômica
- Onde os spikes se situam em um processo decisório?
- Aplicando spikes em ADRs
- ADRs com spike ainda seguem o processo de recomendações e aconselhamentos
- Examinando a interconectividade das decisões
- As decisões são uma série
- Decisões são uma hierarquia invertida
- Decisões são unidades únicas e indivisíveis
- Decisões são conversas bidirecionais
- Decisões inter-relacionadas são socialmente complexas
- Conclusão
- Parte IV: Centralizando o “aspecto social” em sua prática de arquitetura
- Capítulo 15: A transição de poder e da responsabilização
- Transições de poder nunca são simples
- A transição para aqueles que adquirem poder
- Será que todo mundo acredita que tem o poder de decidir?
- Todo mundo entende suas responsabilizações?
- Por que as pessoas não aproveitam o poder que lhes foi disponibilizado?
- A importância da segurança
- A transição para aqueles que devem compartilhar seu poder
- Medo entre aqueles que abriram mão do poder
- O comportamento daqueles que não gostam do fato de o poder ter sido compartilhado
- Transições são incômodas
- Conclusão
- Capítulo 16: Sobre liderança
- Equívocos sobre liderança
- Equívoco 1: Liderança é inata
- Equívoco 2: Liderança está vinculada à hierarquia
- Equívoco 3: Liderança é unidirecional
- Equívoco 4: Liderança é gestão
- O que é liderança
- Os 14 pontos de Deming
- Liderança servidora
- Liderança adaptativa
- Modelo líder-líder de liderança
- Desafios na transição para o modelo líder-líder de liderança
- A necessidade de uma liderança moral contínua
- Respondendo aos desafios morais
- Seja sensível a — mas não refém de — todas as suas culturas vigentes
- Não existem “líderes permanentes”
- Conclusão
- Capítulo 17: Ajustando o processo de recomendações e aconselhamentos à sua organização
- A subcultura de engenharia de software
- Razão 1: O desenvolvimento de software não segue modelos mentais padrão de criação
- qualquer outro lugar
- organização são poucos e distintos
- já é aceito
- Razão 1: O desenvolvimento de software não segue modelos mentais padrão de criação
- Bolhas do processo de recomendação e aconselhamento
- As bolhas são evidentes apenas para aqueles que as procuram
- Bolhas se auto-organizam
- As bolhas são permeáveis
- Expectativas externas sobre aqueles que estão dentro da bolha
- Expectativas evidentes
- Expectativas menos evidentes
- As bolhas apresentam uma interface independente da implementação
- O contrato de interface da bolha
- Explicite o trabalho valioso de tradução
- Bolhas em crescimento
- Crescimento incremental, equipe por equipe
- Garanta a proteção dos principais objetivos de sua prática de arquitetura
- Dividindo as bolhas quando ficam grandes demais
- Nenhum crescimento é eterno
- estiverem em risco
- Como dividir sua bolha
- Mantendo o alinhamento entre as bolhas
- Proteja e incentive as diferenças entre as bolhas
- Nenhum crescimento é eterno
- Conclusão
- Índice remissivo
Sobre o autor
Andrew Harmel-Law é um diretor técnico na Thoughtworks, especialista em design orientado a domínio, modernização de grande porte e transformações organizacionais. Entusiasta de open source, ele divide seu conhecimento especializado por meio de cursos online, publicações, apresentações públicas e programas de mentoria.… Ver perfil completo ▶






