Facilitando a Arquitetura de Software

Capacitando equipes para tomar decisões de arquitetura

Facilitando a Arquitetura de Software
× Facilitando a Arquitetura de Software

Facilitando a Arquitetura de Software

Compartilhar

Autor: Andrew Harmel-Law

ISBN impresso: 978-85-7522-956-9
ISBN ebook: 978-85-7522-957-6
Ano: 2025
Páginas: 488
Preço impresso: R$ 152,00 O ebook deste livro está disponível na Amazon.

Opine sobre este livro

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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Conclusão
  • Índice remissivo
Ver sumário completo ▼

Sobre o autor

Andrew Harmel-Law

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 ▶