Salve Roosters! Sejamos realistas, o objetivo da arquitetura em sua essência é entregar valor de negócio aos usuários, certo?
Bom, vejamos a definição de arquitetura do IEEE:
Conceitos ou atributos fundamentais de um sistema em seu ambiente incorporados em seus elementos, seus relacionamentos e nos princípios de seu design e evolução.
Essa definição é ótima, mas se restringe ao design.
Pois bem, no nosso momento histórico atual a pressão crescente por velocidade de entregas, esperada dos profissionais de TI dentro das organizações, apresenta novos desafios.
A experiência do usuário e as expectativas de acesso 24x7, estão sendo impulsionadas pela expansão esmagadora da tecnologia em nossas vidas diárias. Mudamos de PCs para tablets, smartphones e tecnologias wearable.
Já a tempos os computadores saíram dos laboratórios e agora estão em nossos bolsos. Eles estão quase sempre conectados, e suas capacidades estão superando as previsões mais loucas.
É esperado que os times de entrega de software de hoje operem na Internet e na cloud em tempo e escala full. Isso aumentou significativamente as demandas dos profissionais de TI e negócios digitais e resultou na adoção crescente de práticas de entrega ágil e contínua, baseada na cultura DevOps - quem desenvolve também opera.
Para enfrentar esses desafios e cumprir o objetivo de entregar valor aos usuários de softwares neste ambiente acelerado, acreditamos que é mais importante do que nunca que as atividades de arquitetura permitam a entrega continua de valor o mais rápido possível e garantir que elas não geram atrasos e bloqueios.
Complementando a definição de arquitetura frente a estes novos desafios, as quatro razões mais comuns para se desenvolver uma arquitetura de software atualmente, de acordo com o livro CAiP, são:
- Atender aos requisitos de atributos de qualidade para um sistema de software. A arquitetura está preocupada com a implementação de requisitos importantes de atributos de qualidade, como segurança, escalabilidade, desempenho e resiliência.
- Definir os princípios e padrões que orientam um projeto ou produto. A arquitetura é uma visão do futuro e ferramentas de apoio para ajudar a comunicar essa visão. Os desenhos e planos de arquitetura permitem que a arquitetura seja abstraída em um nível apropriado para tomada de decisões técnicas e de negócio. Eles também facilitam a análise de atributos e a comparação de opções.
- Construir serviços utilizáveis e até reutilizáveis. Um aspecto fundamental da arquitetura de software é definir boas interfaces para serviços.
- Criar um roadmap para o futuro da TI. A arquitetura lida com atividades de planejamento de transição que levam à implementação bem-sucedida de um novo desenho da TI. (Por exemplo, migração para cloud, uso de plataformas SaaS, absorção de novas tecnologias com AI, machine learning, etc…)
Por fim, nesse contexto a arquitetura contínua apoia o fluxo de trabalho dos arquitetos de software com um kit de ferramentas que inclui princípios, atividades práticas e ferramentas para superar os desafios que se impõem atualmente.
