Postado em 27 de mar. de 2022 por Antonio Plais

Originalmente postado por Marc Lankhorst*, no blog da BiZZdesign - Adaptação e tradução autorizadas

No passado escrevemos bastante sobre a combinação da arquitetura corporativa com o desenvolvimento ágil e, mais recentemente, sobre a noção de arquitetura intencional. Está claro que, para qualquer organização ou sistema acima de um certo tamanho, uma prática sólida de arquitetura é necessária além das formas ágeis de trabalho. Por um lado, para uma verdadeira agilidade de negócio você precisa cuidar de muito mais do que "software em funcionamento" como medida única de progresso (como defendido pelo Manifesto Ágil original). Ela começa com um entendimento sólido do negócio em si, dos desafios que precisam ser respondidos, as várias restrições que vão desde os recursos disponíveis, os custos e o risco até a conformidade regulatória e as pressões competitivas, e muito mais.

Mais ainda, você precisa garantir que os resultados desenvolvidos (software em funcionamento mas também estrutura organizacional, capacidades, processos de negócio, e possivelmente até mesmo a infraestrutura física) também sejam flexíveis e não se transformem em "legados instantâneos" que serão difíceis de mudar no futuro. Estes aspectos do entendimento do contexto e do impacto mais amplo são onde a arquitetura corporativa e de soluções, e seus modelos, adicionam real valor.

Modelos de desenho no desenvolvimento de software

Como mencionado na nossa postagem anterior, nós vemos um declínio no uso de modelos de software formalizados (UML) sob a influência do desenvolvimento ágil. Criar e manter tais modelos exige um esforço substancial e geralmente duplica aquilo que já está visível no código do software, apenas representado de uma outra forma. Isso não é nenhuma surpresa, uma vez que o principal objetivo de tais modelos é fornecer uma especificação completa do desenho que possa ser traduzido em código funcional. Este era também o objetivo da Arquitetura Orientada por Modelos do Object Management Group (OMG), que visualizava uma sequência de transformações desde modelos de alto nível até os mais detalhados, e eventualmente chegando à geração de código de software.

Na prática, no entanto, isso se provou bastante desconfortável. Qual é o valor de um diagrama de classes UML detalhado se o código em si contém exatamente os mesmos detalhes? Naturalmente, existem ferramentas de software que podem (mais ou menos) manter isto em sincronismo, mas permanece o problema de que estes modelos geralmente não adicionam muito ao conhecimento que você pode obter simplesmente analisando o código em si. Mais ainda, especificar o comportamento do software em um modelo acaba sendo tão trabalhoso quanto simplesmente escrever o seu algoritmo diretamente no código. Existem alguns casos de uso especializados que analisam modelos, por exemplo, para verificação formal, mas a maioria dos desenvolvedores raramente cria modelos detalhados UML hoje em dia. Rascunhos no quadro branco são a principal forma de começar uma discussão sobre o desenho, e então eles se movem rapidamente para a codificação. Então, modelos detalhados de software não são geralmente úteis em ambientes ágeis.

Uma direção diferente é tomada em plataformas de pouca codificação (low-code). Elas facilitam o desenvolvimento rápido de aplicativos por meio da combinação de modelos simples e visuais, desenvolvimento arrastar-e-soltar em cima de uma plataforma inteligente, muitas vezes sem nenhuma codificação envolvida. Novamente, nenhum modelo detalhado do desenho do software é criado aqui, mas modelos são importantes, por exemplo usando BPMN para especificar o comportamento do aplicativo. O foco ainda é no aplicativo em si, e não na arquitetura mais ampla em torno dele, como exemplificado nos modelos abaixo:

blog ArquiteturaAgil 001

Estratégia em Uma Página: fornecendo contexto para mudar a arquitetura

Modelos de Arquitetura para a agilidade do negócio

Para entender este contexto mais amplo mostrado acima, modelos de arquitetura são extremamente úteis, e nós inclusive argumentamos que são ainda mais úteis em organizações ágeis rápidas. Nós vemos três problemas que  se colocam no caminho da verdadeira agilidade de negócio:

  1. Garantir que as pessoas envolvidas possuem uma compreensão compartilhada da direção da empresa e trabalham juntos para alcançar os seus objetivos. Quanto mais rápido você quer mudar, mais importante isso se torna. Em uma organização lenta pode haver tempo para os 'retardatários' alcançarem e para o resto da organização compensar, mas quando o tempo é essencial você não pode aceitar a falta de entendimento e engajamento imediatos em relação às metas e à direção da organização.
  2. Entender o efeitos (colaterais) das mudanças para evitar surpresas indesejadas. Com muita frequência temos visto acidentes acontecerem quando algum sistema e modificado ou substituído porque uma conexão com outro sistema não era conhecida ou suficientemente documentada. Em um mundo em rápida mudança e altamente automatizado, você não deseja que este tipo de falha e retrocesso aconteça, sem falar em todos os atrasos que isso causa.
  3. Balancear as mudanças de curto e de longo prazo, e tomar decisões que levem isso em consideração. É aqui onde um foco estreito no desenvolvimento ágil de software ao invés de na verdadeira agilidade do negócio é mais prejudicial. Sim, o software pode ser mudado com maior facilidade do que a infraestrutura física, mas um redesenho significativo causado por uma falha no entendimento do contexto e das restrições existentes ainda é muito caro tanto em termos financeiros como de tempo. No pior caso, se você não considera suficientemente este contexto mais amplo, você pode se colocar em um beco sem saída sem tempo para escapar antes que um concorrente vença no mercado.

Estes três problemas são onde modelos de arquitetura podem contribuir ao máximo para a agilidade do negócio. Enquanto modelos de software capturam todos os detalhes necessários para criar a codificação, modelos de arquitetura se concentram em comunicar a essência do contexto, direção e intenção da empresa, e na coerência entre suas várias partes e peças. Entender estas conexões é crucial para impulsionar a agilidade do negócio. Usando tais modelos você pode, por exemplo:

  • analisar a contribuição das iniciativas de mudança para as metas estratégicas da empresa e priorizar os investimentos de acordo
  • entender possíveis benefícios de negócio advindos da inovação tecnológica
  • otimizar a experiência dos seus clientes por meio de uma visão 360º da jornada do seu cliente e o que a afeta
  • definir uma espinha dorsal ou 'pista' arquitetural que acelere os desenvolvimentos futuros e garanta a agilidade no longo prazo
  • garantir que as equipes ágeis estão conscientes das dependências entre os seus trabalhos
  • analisar onde Informação Pessoal Identificável (PII-Personally Identifiable Information) é usada para garantir conformidade regulatória
  • endereçar o impacto para a continuidade do negócio dos riscos da TI e definir medidas mitigatórias

E a lista poderia ser aumentada. Tudo isso seria impossível de fazer apenas com documentos textuais ou rascunhos em quadros brancos (para não dizer de apenas pesquisar no código fonte).
Tais modelos propositalmente não são algum grande desenho antecipado criado por uma pequena equipe de especialistas em uma torre de marfim. Ao invés disso, eles deveriam ser construídos e possuídos coletivamente por todos envolvidos na mudança na empresa. Vários papéis contribuem contribuem com as suas partes e podem ver como elas são conectadas com as partes dos outros. Este entendimento compartilhado então facilita enormemente a agilidade e a velocidade que qualquer empresa adaptativa precisa. E, como mostramos na postagem mencionada anteriormente, a linguagem ArchiMate, com a sua natureza leve e simples, focada apenas no essencial, é perfeitamente adequada para ser usada em um ambiente ágil.

Naturalmente, você precisará de uma plataforma sólida para construir este espaço compartilhado de conhecimento. Se você quer saber como a suíte de produtos BiZZdesign HoriZZon pode suportar isso, você pode assistir nossos vídeos ou solicitar uma demonstração personalizada.

* Mark Lankhorst é Gerente de Consultoria & Evangelista-Chefe de Tecnologia da BiZZdesign, empresa líder em ferramentas para modelagem da arquitetura corporativa, representada no Brasil pela Centus Consultoria..

 

 

ArchiMate From theory to practice thumbnail

eBook A Empresa Adaptativa - Prosperando em uma Era de Mudanças

As organizações sempre tiveram que se adaptar a um mundo em mudança, mas o ambiente turbulento de hoje é mais demandante do que jamais foi. Sua organização precisa inovar mais rápido, em uma base contínua, enquanto mantém o controle sobre os riscos, orçamento e conformidade.

Solicite sua cópia GRÁTIS aqui