Em uma equipe ágil, quem é responsável por tomar decisões de arquitetura e design de alto nível que afetam todo o sistema, não apenas o trabalho que está sendo feito no sprint atual?
Talvez o proprietário do produto, o scrum master, a equipe do scrum ou outra pessoa?
Respostas:
fonte
Arquitetos, é claro, mas talvez não os tipos tradicionais de arquitetos.
Não quero dizer o tipo de arquiteto cirurgião-chefe que pensa e depois deixa os macacos para digitar. Refiro-me a um programador líder experiente que entende as vantagens e desvantagens de decisões difíceis de reverter e que aconselha as equipes sobre o que fazer.
É difícil encontrar arquitetos eficazes, mas pode ser uma posição fantástica e, portanto, você provavelmente tem pelo menos um programador experiente e atencioso que poderia fazê-lo bem. Essa pessoa precisa
Este último ponto leva muitas pessoas. Quando agilistas bem-intencionados dizem coisas como "A equipe é dona da arquitetura", eles têm esse "certo", mas eu acho o conselho quase completamente sem sentido em sua aplicação. Se você confiasse que as equipes assumissem a responsabilidade por sua própria arquitetura, então você não faria a pergunta em primeiro lugar, agora? Portanto, suponho que você faça a pergunta porque há alguma preocupação ou que
Se você precisar que alguém assuma a responsabilidade, entregue-o a quem quiser aceitá-la. Seriamente. Essa pessoa pelo menos se importa. Dê a essa pessoa os recursos necessários para realizar o trabalho e ajude-os quando necessário. Provavelmente não importa o quão competente a pessoa é, porque se ela se importa, ela tenta aprender o que precisa aprender. Naturalmente, essa pessoa precisa de apoio na forma de bons livros para ler e de uma comunidade de colegas e mentores a quem possam pedir ajuda e conselhos.
Se você se preocupa com a responsabilidade da pessoa errada, espero que saiba quem é a "pessoa certa" e lute para instalá-la como arquiteto. Um livro como The New Strategic Selling ajudará você a aprender as técnicas de vendas para que isso aconteça.
Se você só precisa de um bode expiatório, então silenciosamente leve os outros a dar a responsabilidade a quem quer que seja a carreira que você mais gostaria de destruir ou prejudicar. Pelo menos seja honesto sobre isso.
Voltando ao trabalho de um arquiteto eficaz, eles podem pensar em seu trabalho como uma posição gerencial, em vez de meramente uma posição de tomada de decisão. Se eles não delegarem pelo menos as decisões mais rotineiras às equipes, tornar-se-ão um gargalo e diminuirão a velocidade de toda a organização . Adicionar mais arquitetos ao topo não torna isso mais rápido. Cultivar melhores decisões de arquitetura a partir do zero. A técnica do quadro de delegações ajudará seu arquiteto a ficar mais confortável ao longo do tempo, delegando cada vez mais decisões às equipes, à medida que essas equipes ganham confiança mostrando competência.
Penso em um grande arquiteto como alguém que me ajuda a entender como projetar melhor meus sistemas, que me aconselhará pacientemente quando eu pedir e que ocasionalmente me impedirá de tomar uma decisão muito ruim. Esse arquiteto age como um líder no sentido mais verdadeiro da palavra: alguém que outros seguem voluntariamente .
Eu sei que isso foi muito.
Referências
Miller, A Nova Venda Estratégica . Este livro inclui um modelo para entender por que você não conseguiu fechar uma venda específica. Acho isso inestimável para entender por que os colegas de trabalho não fazem a coisa obviamente maravilhosa que estou sugerindo.
Weinberg, tornando-se um líder técnico . Este livro me ajudou a aprender como fazer a parte não-arquiteta do trabalho efetivo do arquiteto.
Appelo, Quadros de Delegações e Poker de Delegação . Não subestime o quão difícil é a delegação e o quanto é ruim para ela. Aprenda a fazê-lo de forma mais eficaz e confortável.
fonte
Portanto, a equipe se auto-organiza para tomar decisões arquitetônicas da maneira que achar melhor. Não existe uma regra rígida; ela pode variar de consenso a um "conselho" dos membros mais antigos, a designação de um membro em particular como autoridade de arquitetura, a deixar que o arquiteto escolha se existe um membro com esse cargo. .
fonte
Sinto que a resposta "" a quem é responsável por tomar decisões de arquitetura e design de alto nível? "Depende do tamanho e do número de equipes.
Para uma ou duas equipes com 3-7 em cada equipe, a equipe auto-organizada pode lidar com a liderança dos membros seniores.
Para 3 ou mais equipes, o aumento da complexidade leva à necessidade de uma equipe de arquitetura que possa ver se as várias sub-equipes estão fazendo um trabalho que fará interface com as outras equipes. Na minha experiência, esse ponto é alcançado quando há aproximadamente 8 equipes ou cerca de 50 pessoas.
fonte
Existem ótimos recursos da equipe do Scaled Agile Framework (SAFe) em seu site.
Essencialmente, ajuda a expandir o ágil em toda a organização, indo acima de uma única versão e no planejamento de portfólio e programa. A documentação deles mostra sugestões sobre como envolver seus arquitetos corporativos e de sistema no processo de introdução de épicos arquitetônicos no trem de lançamento.
Edite para maior clareza para abordar a questão mais diretamente:
Em um ambiente ágil em escala, existem várias camadas de propriedade sobre a arquitetura. A equipe de implementação ágil será proprietária da arquitetura emergente de baixo nível, refatorando conforme necessário para continuar a implementação de seus pedidos em atraso. As decisões de arquitetura de nível superior (sistemas operacionais, navegadores, plataformas, bibliotecas) são de responsabilidade dos arquitetos do sistema e da empresa. Eles apresentarão os casos de negócios para quando essas mudanças precisam ocorrer e recomendarão que essas alterações de arquitetura sejam adicionadas ao treinamento de liberação para as equipes de implementação.
Portanto, no que diz respeito às decisões de arquitetura de alto nível que vão além do sprint, geralmente você as toma em um nível acima da equipe. Esses profissionais tradicionalmente já têm um papel de "arquiteto" dentro da empresa.
fonte
Eu acho que a maioria das outras respostas está pensando sobre isso da perspectiva de estar dentro de um projeto.
Se esse é o único nível de arquitetura em uma organização, o resultado será francamente o caos. Eu testemunhei esse caos em primeira mão, infelizmente isso acontece.
De acordo com o TOGAF, o Departamento de Arquitetura Corporativa faz planos de alto nível para e com os negócios para criar e substituir o ambiente de TI. O arquiteto corporativo terá princípios de arquitetura definidos e os assinará nos níveis mais altos da organização e ajudará a criar a arquitetura e os requisitos de alto nível para cada projeto. Cada projeto é iniciado para fornecer um bloco de construção arquitetônico nessa arquitetura de alto nível.
Portanto, no nível do projeto, o Arquiteto de Soluções criará a arquitetura do projeto (possivelmente iterativamente) e será aprovado pelo Arquiteto Corporativo.
Agora, concentre-se em um projeto ágil. Um projeto ágil tem requisitos. Eles não estão na forma de um "Documento de Requisitos" maciço, mas são épicos e histórias. Esses épicos ainda exigem planejamento. Você não envia uma equipe de desenvolvedores em algumas corridas para o desconhecido. Você sabe em alto nível o que o sistema precisa fazer, quais outros sistemas ele precisa interagir e quais restrições de hardware / sistema operacional / idioma a organização possui e isso orienta e restringe as opções de arquitetura abertas ao Solution Architect. Por exemplo, se você está comprometido com o .NET e SQL Server, teria que fazer uma extremamentecaso convincente para implementar um site de comércio eletrônico baseado no Magento usando PHP e MySQL por causa dos custos envolvidos no suporte a dois bancos de dados, duas linguagens, dois servidores da web etc. Como alternativa, um projeto pode optar por usar uma biblioteca completamente diferente ou uma aparência e sentir e isso pode ter implicações para todos os outros projetos de bordo. É essencial ter a supervisão de um arquiteto corporativo para impedir que esse tipo de "dívida arquitetônica" ocorra.
fonte
Depende do design organizacional da organização e se o produto está em um portfólio. Organizações maiores e orientadas a funções podem nomear arquitetos seniores para liderar esse tipo de atividades.
Geralmente, um arquiteto sênior facilita e orienta as decisões de design, pois não afetam apenas a lista de pendências de produtos, podem afetar vários produtos em um portfólio de produtos.
Empresas menores e ágeis podem contar com desenvolvedores especialistas em sistemas para liderar a equipe de desenvolvimento a se alinhar ao projeto arquitetônico.
Por fim, as decisões de arquitetura precisam ser acordadas pela equipe de entrega que trabalha no produto. Arquitetos e líderes de tecnologia experientes estarão mais focados em facilitar a discussão sobre como o design deve ser, em vez de ditar o design.
fonte
Acho que a maioria das respostas já destaca que a equipe nem uma única pessoa deve tomar essas decisões.
O que eles não tocam é outro princípio do Agile:
Pensar em arquiteturas de alto nível e decisões de design muitas vezes não é tomado com simplicidade, possivelmente levando a desperdiçar muito esforço e adicionando complexidade desnecessária que poderia dificultar a extensão das coisas.
Durante sua iteração atual, você deve tomar decisões de arquitetura e design para suas necessidades atuais. Em vez de olhar para o futuro que nunca pode se tornar, concentre-se apenas no que você precisa agora. Provavelmente YAGNI uma arquitetura bem pensada agora, deixe a equipe lidar com isso pouco a pouco.
Outras leituras:
fonte