 Eu vou aqui demonstrar o uso de uma ferramenta open source para você começar a construir um projeto de arquitetura. Porque muitos dos nossos clientes, quando começam um projeto de arquitetura, a segunda pergunta que eles nos fazem é, qual ferramenta nós vamos usar? A gente falou, cara, mas você não sabe o que tem que fazer. Você já quer decidir a ferramenta que você vai usar? É, a gente precisa de ferramenta. Sim, precisamos de ferramenta. Mas o Excel e o Power Point não começam até da jeito. Mas tem soluções melhores. A ideia de você começar a usar uma ferramenta open source é interessante porque você ganha familiaridade com a anotação, com o modelo, com o estilo de uso e você consegue ver o que, deficiências ou coisas que você gostaria que uma ferramenta mais robusta tivesse. Então, se você já ganha um traquejo numa ferramenta open sem custo, você fica mais preparado para cobrar requisitos ou funcionalidades de uma ferramenta comercial. E a ideia é aqui falar um pouquinho. Quando você vai fazer um projeto, você precisa de uma ferramenta para responder algumas questões. Essa ferramenta vai te ajudar a fazer o quê? Uma ferramenta de EA pode te ajudar a desenhar processos? Ela pode te ajudar a desenhar um modelo de dados? O que vocês acham? Ela pode elaborar diagrama de componente, o ML? Ela pode documentar requisitos de um projeto? Pode. Pode desenhar um journey map? Pode. Mas o que você precisa para seu projeto? Se você não precisa desenhar um modelo de dados, quando você for avaliar uma ferramenta, você tem que ver uma ferramenta que não gere um modelo de dados. Porque senão você vai cobrar um requisito de uma ferramenta o qual você não precisa. E, aliás, você pode ter uma ferramenta dentro de casa, por exemplo, um Irwin, que gera modelos de dados muito bem. E aí, você vai migrar todos os modelos de dados para uma nova ferramenta? E como é que você vai justificar isso para seu chefe? Então, estamos migrando aqui 25 mil modelos de dados do Oracle 10, que eles servem do Postgreep para dentro de uma nova ferramenta. Quanto tempo você vai fazer isso? Um ano. O que você vai ganhar? Nada. Então, pensando nisso, a gente falou assim, tá bom, o ano passado a gente fez uma pesquisa de arquitetura corporativa no Pesquisa Nacional, de Ampton Nacional. A gente não olhou pesquisas internacionais, então a gente enviou para os nossos clientes, divulgamos em redes sociais e fizeram todo um trabalho para criar uma pesquisa. A gente divulgou o ano passado no evento e trouxe alguns dados dessa pesquisa. Dizendo o seguinte, quais são os objetivos que um projeto de EA, na época, nessa pesquisa de 2017, devia alcançar? Você vê que a gente está falando de, na época, falava-se muito em estratégia digital e ainda hoje se fala muito de viabilizar uma estratégia digital e uma ferramenta de EA pode auxiliar nesse processo. Aí vem toda a parte de otimização, otimização de ambiente de informação, otimização de custos, redução de infraestrutura e aí você já começa um projeto pedindo para comprar uma ferramenta. Aí você fala, poxa, já vai com outros objetivos do negócio, já estou gastando para economizar. Então, antes de você decidir pela ferramenta, eu vou fazer uma proposição de um modelo que pode ser o embrião de uma EA dentro da organização abaixo os custos. A partir daí, olhando para o negócio e quais são as perguntas que você precisa responder, eu trouxe um panorama aqui que uma ferramenta de EA deveria ajudar você a responder questões mais direcionadas a negócio, em menos da tecnologia. Você não deveria saber qual é o modelo de dados de um sistema, mas quais as entidades conceituais ou lógicas de informações necessárias para viabilizar um projeto ou uma implementação. Então, aqui eu trouxe alguns exemplos, como é que a tecnologia influencia o meu negócio. Onde é tecnologia essencial? Onde ela não é? Então, questões mais estratégicas são melhores direcionadores na escolha de uma ferramenta de EA do que questões técnicas. A gente já teve em projetos que a gente falou se essa ferramenta não faz o ML. Cara, você quer o ML ou você quer o ArchMate? Eu queria os dois. Ah, tá bom. Vamos entender a necessidade dos dois e vamos avaliar se faz sentido cobrar isso de uma ferramenta. Bom, pensando nisso, a gente foi lá e falou assim, existem três formas de você classificar uma ferramenta. E até já falaram um pouco disso, de outras maneiras. Existem ferramentas que são de estratégia, de planejamento estratégico, ou execução estratégica. Tem Business Canvas, você tem Balanced Core Card, Analyze Swatch, etc. Isso é um tipo de ferramenta. Você tem um outro tipo de ferramenta, que é ferramenta de EA, de arquitetura corporativa no estrito senso da palavra como ela foi concebida. Fazer o quê? Implantar linguagem de arquitetura, no caso ArchMate, definir os objetivos de negócio, desenhar a mapa de capacidades e as visões arquiteturais de domínio. Informação, sistemas, aplicações, entre outras. Fazer HitMap, matrizes e uma coisa importante que eu acho que deve ser 50% de uma ferramenta de EA, rastreabilidade. Você tem que poder cruzar tudo com tudo, por isso que eu gosto de matrizes. Existem ferramentas que permitem você fazer matrizes 2x2. Cruzar dois tipos de componentes, sistemas versus interfaces, interfaces versus dados, sistemas versus capacidades, objetivo versus sistemas, etc. Cruzando esse tipo de informação, você consegue ter um direcionamento para onde você tem que caminhar com arquitetura tecnológica. E, por fim, você tem o que a gente chama de ferramentas de engenharia de software. Que é ferramentas do quê? O ML, MIR, modelo de entidade relacional, modelos de BPM, modelos de decision management, e Flowchart e os famosos Scatnels Freeform. Isso são ferramentas de engenharia de software, onde você vai no detalhe para modelar. Muitas das vezes. Mas eu posso juntar tudo isso, não posso? Se eu juntar tudo isso, o que eu tenho? Uma super ferramenta de A. Você pode ter tudo isso numa ferramenta de A? Pode. Você vai encontrar facilmente? Não. Se você se propõe a ser o melhor em tudo, logo não será o melhor em nada. Então, saber muito bem qual é a ferramenta que você precisa, eu acho que faz a diferença na escolha. Porque, hoje, muita gente tem ferramentas de modelais de dados, ferramentas de modelais de um ML. E, às vezes, falta o quê? A ferramenta que conecta tudo isso, que é a ferramenta de arquitetura, para juntar e viabilizar isso. E, aí, eu fiz um comparativo. Eu trouxe aqui o framework do ZACMA para mostrar o seguinte. Ferramentas de estratégia são as duas primeiras linhas no ZACMA. Ferramentas de arquitetura são as linhas centrais. E, por fim, você tem os detalhes. Você pode até observar que o próprio ZACMA fala assim, oh, perspectiva técnica. Ali você precisa de detalhes. Se você precisa de detalhes de implementação, você precisa de ferramentas de engenharia de software. Você não precisa de ferramentas de arquitetura corporativa. Se você precisa definir planejamento estratégico, você precisa de ferramentas que te dê estratégia. O objetivo aqui é a gente falar da ferramenta de EA. Eu não vou falar de ferramentas de engenharia de software nem ferramentas de planejamento estratégico. Ferramentas até mescam partes disso no todo. Pensando nisso, aquela pesquisa que nós fizemos ano passado, também a gente perguntou qual era a ferramenta mais utilizada pelas empresas. Primeiro espanto, 74% das empresas não usam nenhuma ferramenta. Não usam porquê. Ou está no primeiro caso, não tem hora de arquitetura, logo não precisa de ferramenta de arquitetura. Ou está no segundo caso. Tem tantas opções que eu não sei qual escolher. Das ferramentas existentes no mercado foram listadas essas, a gente listou na pesquisa todas. E o ARC, que é a ferramenta que eu vou falar, tinha dado 11% das empresas. Ou seja, 11% das empresas que a gente entrevistou falam que usam ARC-Mate. O ARC, desculpa com a anotação ARC-Mate. Qual é a proposição que a gente trouxe? E é como a gente vem executando os projetos na PWC. É usar o ARC, como ferramenta de modelagem da linguagem ARC-Mate, usar um plugin dela, que se chama Repository Collaboration, que é pelo qual você consegue conectar o ARC no GitHub. E aí o seu GitHub vira o seu repositório central de projetos. E permite com que toda sua equipe de arquitetura, mais o cliente, trabalhe num único modelo. Seja visualizando, seja editando. Que eu acho que era a maior deficiência da ferramenta. O ARC, para quem não conhece, foi criado em 2010 na Universidade de Baltimore, na Inglaterra. Em 2010 e 2012, foi utilizada como ferramenta de ensino de arquitetura dentro da universidade. Depois os seus criadores tiraram ela da universidade e a partir daí começaram a evoluir. Então é uma ferramenta que tem 8 anos de vida. E saiu uma versão recente agora, dia 10 setembro, a 4.3. Que é a última que trabalha com o plugin. Ou seja, tem que usar a última versão para a gente trabalhar com o plugin. Como é que funciona isso? Acessar um endereço da ferramenta, baixar a última versão, tem para Windows, tem para Mac e tem para Linux. Ou seja, tem todos os sabores. Você pode usar, não é por causa de sabor que você não vai usar a ferramenta. Depois de você ter baixado a ferramenta descompactado ela ou instalado, eu gosto de usar a descompactada, porque é uma ferramenta Eclipse-Based. Então, você não precisa instalar Java como essência de execução. Você entra na própria página, você tem uma opção chamada plugins e vai aparecer alguns plugins para você. Um deles é o Repository Collaboration. Você vai baixar esse plugin, ele é um ZIP. Como é que você instala? Descompacta esse ZIP e move para a pasta plugins. Ou seja, todo mundo que trabalha com Java e Eclipse, já fez isso na vida. Feito isso, vai nascer um menu chamado Collaboration dentro da sua ferramenta. E é esse menu que vai permitir você trabalhar com GitHub, de forma colaborativa gerando todo o traceability de mudanças. Feito isso, só falta você criar uma conta no GitHub e criar um Repository lá para você entregar a sua ferramenta junto com o GitHub. A partir daqui, eu gravei pequenos vídeos demonstrando algumas funções, até por uma questão de conectividade, porque ia ter que usar... estar conectado no GitHub para não correr o risco de travar e desmerecer a ferramenta por problemas de conexão. Eu trouxe o vídeo. Mas, uma vez que você conecta no GitHub e baixa o projeto, você pode trabalhar offline. Então, você faz todo o seu modelo offline e no final do dia, ou depois de uma semana, você pode dar um Publish. E quando você for dar um Publish e alguém mexe no seu modelo, o que acontece? Vai dar um pau de merge. A ferramenta também controla a merge. Fala, esse modelo que você quer alterar, alguém já alterou. Você quer baixar a versão anterior ou você quer sobre escrever. É aquele famoso Search Control de desenvolvimento software. Então, vamos passar um vídeozinho. São vídeos curtos. Como é que é a parte do GitHub criando um repositório? Eu já tinha uma conta. Eu criei uma demo aqui, que é o Arkin Shunan. Esse é um projeto de seguradora. Cri um repositório público. Aí você pode criar quantos usuários você quiser. Limitar como público ou privado. Criado o repositório, eu vou abrir o meu projeto local que eu já tenho e vou mandar esse projeto para o GitHub, lá na nuvem, onde quer que esteja. Eu faço um adicionar ao Workspace, colo a URL do meu GitHub, coloco os usuários sem. Aí você pode criar um para cada um para controlar os commitments, os comentários. Feito isso, ele cria o repositório no GitHub, automaticamente. Ele está dando um pushing lá. Vai criar o traceability, que é o histórico do GitHub que ele te mostra ali. Então ele vai mostrar o primeiro, ou seja, a criação do modelo, o primeiro commit. E a partir daí, eu publico para subir a estrutura. Ou seja, no primeiro momento, quando eu adiciono, ele só cria a estrutura. No segundo momento, ele leva todo o meu modelo para a nuvem. Feito isso, ele quebra a estrutura de acordo com para quem já abriu o Arc ou para quem já viu a anotação ArcMate, ela tem aquela carinha ali, aquela estrutura. Estratégia, business, application, technology. Ele pega essa mesma estrutura e põe no GitHub. E aí você consegue trabalhar em camadas. Por isso que ele permite você trabalhar de forma colaborativa, porque cada um pode estar trabalhando num pedaço do seu XML, e não num XML inteiro. Muitas vezes a gente já viu clientes usando o Arc, mas fica mandando o ArchMate para lá e para cá. Dessa forma você não precisa. Você pode usar o GitHub. O próximo vídeo eu vou mostrar como é que a gente faz uma alteração. Então eu tenho aqui um vídeo criando uma alteração onde eu vou abrir um capability map que eu estava construindo. Vou adicionar três capacidades num agrupamento que eu chamei de reservas e vou colocar lá gestão de reservas, liquidação e reservas judiciais. São três capacidades de negócio que essa empresa desempenha e que precisam ser mapeadas numa arquitetura de negócio. Então a gente está desenhando aqui uma arquitetura de negócio de forma colaborativa. Feito isso, feito os ajustes eu vou lá e publico essa alteração para o GitHub. Quando eu vou publicar e perguntar o que você está fazendo e o que você encontrou faz uma descrição do que você está fazendo que tipo de alteração você está promovendo de forma clara para que as pessoas possam ver a evolução do modelo. Não faz que nem muitos desenvolvedores que você fez. Alterei o código Sobe. Ou então, incidente 152532 Sobe. Aí você tem que ir lá na outra ferramenta para achar o incidente. Nova versão e assim vai aparecer lá alteração do mapa de capacidades. Mapa de capacidade alterado e aí tem a onde a estrutura, a onde foi alterada aquela operação. Ou seja, eu não alterei todo o modelo. O First Commit permanece em application e business mas em diagramas ele foi alterado. Aqui por fim eu vou mostrar um outro recurso que é um recurso de rastreabilidade que é muito importante para você poder usar o modelo de forma viva, de forma dinâmica. Porque se for para construir modelo estático o vizio serve. Para baixo o vizio coloca lá porque não vai dar para fazer muito tipo de busca. Nessa parte eu vou pegar um componente que é uma aplicação financeira eu estou usando um recurso de busca pegar lá o Finacial Application e linkar a capacidade de liquidação. Ou seja, vou dar a capacidade de liquidação é realizada por uma aplicação financeira. Feito isso eu já consigo usar um outro recurso que se chama Visualizer claro, vamos submeter aqui eu estou sendo bem purista eu fiz uma alteração que já estou mandando para o servidor então vou dizer que eu fiz uma associação de uma aplicação ao mapa de capacidades então fica claro qual foi a alteração nessa versão do meu modelo subi essa alteração dano publish no repositório ficou registrado, ele dá um flush abre, escreve os objetos no repositório está feito isso a partir daí eu consigo usar um recurso que chama Visualizer que é um recurso de rastrabilidade onde eu consigo ver a minha capacidade de liquidação sendo realizada por uma aplicação financeira e aí eu posso aumentar um nível de análise eu quero ver dois níveis, a LMI traz além da aplicação, quais são subcomponentes ou sistemas relacionados quais são as funções e os serviços de negócio que estão sendo providos por esse sistema e aí você consegue até o nível por exemplo de código ou de classe se você assim um modelar o modelo, a gente normalmente trabalha com dois ou três níveis no máximo, isso já te dá insumo suficiente para desenhar uma estratégia de roadmap de arquitetura, para uma arquitetura de transição para uma arquitetura de evolução ou até para um descomissionamento ou seja, se eu desligar a aplicação financeira, quais são os serviços que caem e qual é a capacidade de negócio que deixa de ser atendida aqui eu já teria respondido essas perguntas por fim você pode pegar todo esse modelo realizado aqui e publicar ele de forma estática numa intranet para que toda a área de negócio consulte por exemplo, você não quer disponibilizar a ferramenta para a área de negócio usar por algum motivo, aí a ferramenta tem uma opção de publicar um relatório ele gera um reporte HTML navegável onde você pode publicar numa intranet e deixar disponível para toda a empresa navegar no seu modelo sem fazer alterações no modelo é o próximo vídeo que eu apresento aqui então eu vou pegar não, deu ruim não é este vídeo este vídeo é o mesmo do anterior para algum motivo o vídeo acredito a ferramenta permite você exportar o relatório em HTML de forma estática é? é um problema de TI deu algum problema em TI é o efeito de demonstração que eu tenho medo de você fazer um código e demonstrar ele dar erro, aqui eu vou gravar um vídeo porque vai dar problema de rede e aí o vídeo foi errado me sabotei bom e aí vamos dizer o quão bom essa ferramenta ou não onde estão os seus pontos fortes e as suas fragilidades o repositório o metamodelo, ele é bom e permite customizações então ele segue qual modelo? ele segue um metamodelo do ArchMate ele não segue o metamodelo do Togaf apesar do metamodelo do Togaf, do ArchMate tem em alto grau de similaridade mas a ferramenta segue do ArchMate 3 o modelagem é muito boa porque ele atende 100% do modelo ArchMate versão 3 alguns detalhes se você customizar a ferramenta, fazer algumas customizações e não modelar você não consegue fazer buscas depois elas limitam pouco, então por exemplo eu não modelei os sistemas eu poderia dizer criar atributos a tecnologia do sistema esse aqui é um sistema feito na linguagem Java, atributo linguagem, tecnologia, Java eu poderia fazer isso, eu customizo um modelo eu crio o atributo se eu quiser fazer uma query dizendo me liste todos os sistemas que são desenvolvidos em Java aí eu não faço porque ele foi concebido para usar ArchMate como ferramenta como um modelo então como eu deveria modelar? eu vou usar ArchMate, Java linkar todos os sistemas aquele componente e depois mandar listar todos os componentes que estão ligadas àquela tecnologia eu conseguiria ver todas as aplicações Java então sabendo fazer a pergunta para ferramenta tem várias formas de você modelar e obter a informação de forma rápida o mais difícil é saber quais são as perguntas que você quer que a ferramenta ou que o modelo te responda uma vez decidido isso a gente avalia ou se dá para usar nativo então por isso que a modelagem classificou como 75% mais ou menos análise de decisão, é ruim porque ela não te dá insumo de análise a análise cabe do interlocutor, do utilizador que aí tem que aplicar já algumas ferramentas de A fazem alguns tipos de análises de forma automatizada ela é bem pobre em isso mas se você tiver um analista de A, um arquiteto operativo bom, não júnior vai conseguir fazer análise para você um generalista com foco em arquitetura apresentação em relatórios tem, ele gera para o pessoal mais técnico ele gera Jasper, alguns relatórios em Jasper e tem plugin que você consegue escrever um relatório em Jasper e ele faz para você relatórios prontos são poucos mas você pode customizar a partir de plugins relatórios específicos então já ajudaria a criar algumas outras visões algumas extensões a administração também é fraca porque a administração fica toda a carga a carga do github você vai ter que criar os usuários no github das permissões lá porque ele não controla isso é, a parte de segurança com github até melhor o uso da ferramenta você delega a segurança por github quem vai poder ler o arquivo quem vai poder escrever etc usabilidade, é muito boa dá para fazer algumas buscas dinâmicas, gerar relatórios dinamicamente então por exemplo, se você já gerou todo seu modelo e você, que é uma visão específica você dá um botão direito e criar uma visão a partir desse componente de dois níveis ou seja, ele vai pegar aquele componente eu posso pegar lá o componente de negócio o business capability liquidação, e eu quero que ele me liste em dois níveis todos os outros componentes que estão amarrados ou dependentes da este ele gera automaticamente um diagrama pra você então isso é bem legal na parte de usabilidade configurações não dá pra mexer muito na ferramenta, ou seja, ela tem lá as suas features as suas funções definidas e você depende dos plugins pra expandir a comunidade é, vamos dizer assim, muito jovem mas vem crescendo já tem um plugin que eu ando estudando que é um plugin que permite fazer modelagem de dados modelo de entidade e relacionamento tem um plugin pra isso, então preciso fazer modelagem de dados e amarrar os modelos de dados a serviços, a componentes tecnológicos daria pra fazer adicionando um plugin fazendo uma coisa que às vezes a gente na consultoria faz uso, mas os puristas querem nos matar que fazer a estereotipação tem muita gente que não gosta de estereótipo você vai lá estereotipo algum tipo de objeto do Archmage, às vezes a gente dá uma estereotipada pra entender um relatório o hashtag estereotipo e por fim muitas das ferramentas de A trazem consigo boas práticas e frameworks muitas delas já trazem o ADM do Togaf, todo implantado é só você seguir passo a passo trazer alguns outros padrões embutidos só tem o Archmage como padrão e algumas restrições que são da própria linguagem Archmage para evitar que você cometa erros grosseiros você tem dois componentes ele tem um pincel mágico de ligação se você quer ligar o componente A com o B e não sabe qual é a ligação você usa o pincel mágico olha, essa ligação só pode ser de três tipos pode ser já chuta um fica mais fácil ele tem um wizard pra você então ele já impõe os padrões da linguagem do Archmage e a gente vê algumas vantagens pra você começar pelo fato de ser uma ferramenta livre você ainda tá numa fase embrionária você ainda não sabe o que realmente você precisa cobrar de uma ferramenta e dá pra começar um projeto de A do dia pra noite você não precisa fazer todo aquele processo de licitação, passar por compras RFI, RFP, avaliar balizar, contratar, licenciar você já começa o projeto você vai no site, faz os downloads GitHub é free, ferramenta free plugin free são parentes, alguns outros plugins tem que pagar mas são valores irrisórios tipo, 5 dólares por doação de PayPal abre uma conta no PayPal e colabora pro crescimento da ferramenta era isso que eu tinha pra mostrar pra vocês pessoal, eu deixei aqui o link meu e-mail e este projeto que eu apresentei pra vocês ele tá disponível lá no meu GitHub você pode entrar, pode dar um clone no meu repositório e importar pra dentro do seu baixar você não vai conseguir alterar lá porque tá só pra read, mal resto clona 100% e pode usar dentro de casa como template